package com.ntlab.irisserver.models;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.List;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import javax.ws.rs.WebApplicationException;
import javax.ws.rs.core.Response;
@Component
public class KeywordManager {
private static KeywordManager theInstance = null;
String[] keywords = {"0"};
//シングルトンパターンでインスタンス作成
public static KeywordManager getInstance() {
if(theInstance == null) {
theInstance = new KeywordManager();
}
return theInstance;
}
//------------------------------------------------------------------------------
//読み込んだファイルのキーワードをStringの配列で返す
public String[] getKeywords(String path){
var response = Response.status(Response.Status.NO_CONTENT);
if(path == null){
response.status(400).entity("パスがありません");
throw new WebApplicationException(response.build());
} else if(FileRead(path).size() == 0){
response.status(404).entity(path+"に対応したファイルがありません");
throw new WebApplicationException(response.build());
} else {
keywords = FileRead(path).toArray(new String[FileRead(path).size()]);
}
return keywords;
}
//-----------------------------------------------------------------------------
//pathのファイルを読み込み
private List<String> FileRead(String path) {
List<String> ss = new ArrayList<String>();
try {
BufferedReader buffReader = new BufferedReader(new FileReader(path));
String s;
while ((s = buffReader.readLine()) != null) {
ss.add(s);
}
buffReader.close();
} catch (IOException e) {
e.printStackTrace();
}
return ss;
}
}