package no.divvun.Analyzer.Client; import java.io.*; import no.divvun.Analyzer.Communication.*; import no.divvun.Analyzer.Objects.*; /** * This class implements the DivvunBasicServices interface and provides client * applications a default implementation of the required functionality. For * documentation of the methods see the DivvunBasicServices interface class. * @author tomi */ public class DivvunBasicServicesImplementation implements DivvunBasicServices { private DivvunServerConnectionSocket serverConnection; private DivvunRequestListener listener; private DivvunBasicServicesImplementation() {} public DivvunBasicServicesImplementation(DivvunRequestListener listener, String serverAddress, int serverPort) throws DivvunServerConnectionException { this.listener = listener; serverConnection = new DivvunServerConnectionSocket(); serverConnection.initialize(listener, serverAddress, serverPort); } public void initServer(Parameters parameters) { InitRequest request = new InitRequest(); request.setParameters(parameters); serverConnection.sendRequest(request); } public Analysis getAnalysis(String word) { AnalyzeRequest request = new AnalyzeRequest(); request.setWord(word); Response response = serverConnection.sendRequest(request); listener.requestCompleted(response); return response.getElementContainer().getAnalysis(); } public Generation generateWordform (String word) { GenerateRequest request = new GenerateRequest(); request.setWord(word); Response response = serverConnection.sendRequest(request); listener.requestCompleted(response); return response.getElementContainer().getGeneration(); } public Paradigm getFullParadigm(String word, String POS) { ParadigmRequest request = new ParadigmRequest(); request.setWord(word); request.setPOS(POS); Response response = serverConnection.sendRequest(request); listener.requestCompleted(response); return response.getElementContainer().getParadigm(); } public String hyphenateWord(String word, String POS) { HyphenateRequest request = new HyphenateRequest(); request.setWord(word); Response response = serverConnection.sendRequest(request); listener.requestCompleted(response); return response.getElementContainer().getHyphenation(); } public void disconnect() throws IOException{ serverConnection.closeConnection(); } public Response sendRequest(Request request) { Response response = serverConnection.sendRequest(request); listener.requestCompleted(response); return response; } }