더북(TheBook)

베이스 클래스들을 만들었으면 SearchEngine 인터페이스의 구현체를 생성한다. 현재 구현체는 몇몇 문서들을 나열한 간단한 클래스다(예제 2-4 참고). <isf-book>/ch02/src에서 이 파일들을 찾을 수 있다.

 예제 2-4 MySearchEngine.java

package com.apress.isf.java.service;

 

import java.util.ArrayList;

import java.util.List;

 

import com.apress.isf.java.model.Document;

import com.apress.isf.java.model.Type;

public class MySearchEngine implements SearchEngine {

 

@Override

public List<Document> findByType(Type documentType) {

List<Document> result = new ArrayList<Document>();

for (Document document : storage()) {

if (document.getType().getName().equals(documentType.getName()))

result.add(document);

}

return result;

}

 

@Override

public List<Document> listAll() {

return storage();

}

 

private List<Document> storage() {

List<Document> result = new ArrayList<Document>();

 

Type type = new Type();

type.setName("PDF");

type.setDesc("Portable Document Format");

type.setExtension(".pdf");

 

Document document = new Document();

document.setName("Book Template");

document.setType(type);

document.setLocation("/Users/felipeg/Documents/Random/Book Template.pdf");

 

result.add(document);

 

document = new Document();

document.setName("Sample Contract");

document.setType(type);

document.setLocation("/Users/felipeg/Documents/Contracts/Sample Contract.pdf");

 

result.add(document);

 

type = new Type();

type.setName("NOTE");

type.setDesc("Text Notes");

type.setExtension(".txt");

 

document = new Document();

document.setName("Clustering with RabbitMQ");

document.setType(type);

document.setLocation("/Users/felipeg/Documents/Random/Clustering with RabbitMQ.txt");

 

result.add(document);

 

type = new Type();

type.setName("WEB");

type.setDesc("Web Link");

type.setExtension(".url");

 

document = new Document();

document.setName("Pro Spring Security Book");

document.setType(type);

document.setLocation("http://www.apress.com/9781430248187");

 

result.add(document);

 

return result;

}

 

}


신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.