Class TranslationEngine
java.lang.Object
com.iizix.translate.TranslationEngine
- All Implemented Interfaces:
ITranslationEngine
- Direct Known Subclasses:
EditorTranslationEngine, TestEngine
The translation engine: two current translators are provided: Google and Microsoft, but the interface allows others. This engine is built to provide support to use multiple translators in parallel, with its own language capabilities and this engine would select the most suitable one to use.
- Author:
- Christopher Mindus
Field Summary
FieldsModifier and TypeFieldDescriptionstatic booleanDebug mode.static final CharsetAlways UTF-8 encoded.static final StringThe "UTF-8" string.Fields inherited from interface ITranslationEngine
REQTYPE_POST, REQTYPE_POST_OVERRIDES_GETConstructor Summary
ConstructorsModifierConstructorDescriptionprotectedConstructor.protectedTranslationEngine(boolean recreate) Constructor.Method Summary
Modifier and TypeMethodDescriptionvoidcancel()Cancels pending or running translation job.booleancanTranslate(String sourceLanguageCode, String targetLanguageCode) Checks if a translation is handled between two language codes.protected voidClears the language queue after reconfiguration.static ITranslationEngineGets the translation engine instance.Gets the translation queues.final booleanChecks if this engine has been released: the application that registered it was unloaded or reloaded, or an engine of the same class from another class loader replaced it, andgetInstance()no longer returns it.protected abstract TranslationQueuenewTranslationQueue(String sourceLanguageCode, String targetLanguageCode, ITranslator translator) Creates a new TranslationQueue instance.Requests a function using HTTPS POST, configured for proxy as specified in Eclipse or the Server.static booleanreleaseEngine(ClassLoader loader) Releases the registered engine if its class was defined by the class loaderloaderor by a class loader that hasloaderamong its parents.Requests a function using HTTPS GET or POST with "X-HTTP-Method-Override: GET", configured for proxy as specified in Eclipse or the Server.requestJSON(String httpRequest, Map<String, String> params, Map<String, String> headers, int type, int sizeLimit) Requests a function using HTTPS GET or POST with "X-HTTP-Method-Override: GET", configured for proxy as specified in Eclipse or the Server.requestString(String httpRequest, String params, Map<String, String> headers, int type, int sizeLimit) Requests a function using HTTPS GET or POST with "X-HTTP-Method-Override: GET", configured for proxy as specified in Eclipse or the Server.requestString(String httpRequest, Map<String, String> params, Map<String, String> headers, int type, int sizeLimit) Requests a function using HTTPS GET or POST with "X-HTTP-Method-Override: GET", configured for proxy as specified in Eclipse or the Server.booleantranslate(KString sourceText, String sourceLanguageCode, String targetLanguageCode, ITranslationReply replyCallback) Translates a text in plain text or HTML.Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface ITranslationEngine
configureProxy, getProxy, getReadyState, getTranslator, isLanguageHandled
Field Details
ENCODING
Always UTF-8 encoded.ENCODING_NAME
The "UTF-8" string.DEBUG
public static boolean DEBUGDebug mode.
Constructor Details
TranslationEngine
protected TranslationEngine()Constructor.- Throws:
InternalError- if the engine is already instantiated.
TranslationEngine
protected TranslationEngine(boolean recreate) Constructor.A registered engine of the SAME class but from ANOTHER class loader is replaced by this one, with an INFO line: it belongs to an application that has been reloaded (hot deploy) without its engine having been released (belt and braces to
releaseEngine(ClassLoader)). A registered engine of another class is refused as before.- Parameters:
recreate- Flag to replace a registered engine, whatever its class.- Throws:
InternalError- if an engine of another class is already registered andrecreateis false.
Method Details
getInstance
Gets the translation engine instance.An engine that has been released, because the application that registered it was unloaded or reloaded, is never returned: the reply is then
nullor the engine registered since.- Returns:
- The engine, or
nullif no engine is registered.
releaseEngine
Releases the registered engine if its class was defined by the class loaderloaderor by a class loader that hasloaderamong its parents. Called by the server when an application is unloaded or reloaded (hot deploy), so that the engine the application registered does not outlive it: the reloaded application registers its own engine anew, and the released engine no longer keeps the old class loader reachable from this class.An engine registered through another class loader (another application, the Designer) is left alone.
- Parameters:
loader- The class loader of the application that is unloaded,nullfor none.- Returns:
trueif an engine was released,falseif no engine is registered or the registered engine does not belong to the class loader.
isReleased
public final boolean isReleased()Checks if this engine has been released: the application that registered it was unloaded or reloaded, or an engine of the same class from another class loader replaced it, andgetInstance()no longer returns it.- Returns:
- true if released, false if not.
getQueues
Gets the translation queues.- Specified by:
getQueuesin interfaceITranslationEngine- Returns:
- The array of translation queues.
clearLanguageQueue
protected void clearLanguageQueue()Clears the language queue after reconfiguration.canTranslate
Checks if a translation is handled between two language codes.- Specified by:
canTranslatein interfaceITranslationEngine- Parameters:
sourceLanguageCode- The source language code, null for automatic detection.targetLanguageCode- The target language code.- Returns:
- true if supported, false if not.
cancel
public void cancel()Cancels pending or running translation job.- Specified by:
cancelin interfaceITranslationEngine
translate
public boolean translate(KString sourceText, String sourceLanguageCode, String targetLanguageCode, ITranslationReply replyCallback) Translates a text in plain text or HTML.- Specified by:
translatein interfaceITranslationEngine- Parameters:
sourceText- The source text to translate.sourceLanguageCode- The source language code, null for automatic detection.targetLanguageCode- The target language code.replyCallback- Callback when translation completes.- Returns:
- true for success, false for failure (error is logged).
- Throws:
NullPointerException- If sourceText, targetLanguageCode or replyCallback is null.
newTranslationQueue
protected abstract TranslationQueue newTranslationQueue(String sourceLanguageCode, String targetLanguageCode, ITranslator translator) Creates a new TranslationQueue instance.- Parameters:
sourceLanguageCode- The source language code, null for auto-detect.targetLanguageCode- The target language code.translator- The translator.
requestJSON
public JSONObject requestJSON(String httpRequest, Map<String, String> params, Map<String, throws IOException, JSONExceptionString> headers, int type, int sizeLimit) Requests a function using HTTPS GET or POST with "X-HTTP-Method-Override: GET", configured for proxy as specified in Eclipse or the Server.- Specified by:
requestJSONin interfaceITranslationEngine- Parameters:
httpRequest- The request string.params- The parameters, null for none.headers- The HTTP headers, null for none.type- Type of request: REQTYPE_* value.sizeLimit- The size limit imposed, 5120 for Google, 10K for Microsoft.- Returns:
- The parsed JSON object.
- Throws:
IOException- For I/O errors.JSONException- For JSON exceptions.
requestJSON
public JSONObject requestJSON(String httpRequest, String params, Map<String, String> headers, int type, int sizeLimit) throws IOException, JSONExceptionRequests a function using HTTPS GET or POST with "X-HTTP-Method-Override: GET", configured for proxy as specified in Eclipse or the Server.- Specified by:
requestJSONin interfaceITranslationEngine- Parameters:
httpRequest- The request string.params- The parameters, null for none.headers- The HTTP headers, null for none.type- Type of request: REQTYPE_* value.sizeLimit- The size limit imposed, 5120 for Google, 10K for Microsoft.- Returns:
- The parsed JSON object.
- Throws:
IOException- For I/O errors.JSONException- For JSON exceptions.
requestString
public String requestString(String httpRequest, Map<String, String> params, Map<String, throws IOExceptionString> headers, int type, int sizeLimit) Requests a function using HTTPS GET or POST with "X-HTTP-Method-Override: GET", configured for proxy as specified in Eclipse or the Server.- Specified by:
requestStringin interfaceITranslationEngine- Parameters:
httpRequest- The request string.params- The parameters, null for none.headers- The HTTP headers, null for none.type- Type of request: REQTYPE_* value.sizeLimit- The size limit imposed, 5120 for Google, 10K for Microsoft.- Returns:
- The reply string.
- Throws:
IOException- For I/O errors.
requestString
public String requestString(String httpRequest, String params, Map<String, String> headers, int type, int sizeLimit) throws IOExceptionRequests a function using HTTPS GET or POST with "X-HTTP-Method-Override: GET", configured for proxy as specified in Eclipse or the Server.- Specified by:
requestStringin interfaceITranslationEngine- Parameters:
httpRequest- The request string.params- The parameters, null for none.headers- The HTTP headers, null for none.type- Type of request: REQTYPE_* value.sizeLimit- The size limit imposed, 5120 for Google, 10K for Microsoft.- Returns:
- The reply string.
- Throws:
IOException- For I/O errors.
postRequestJSON
public String postRequestJSON(String httpRequest, Map<String, String> headers, String data) throws IOExceptionRequests a function using HTTPS POST, configured for proxy as specified in Eclipse or the Server.- Specified by:
postRequestJSONin interfaceITranslationEngine- Parameters:
httpRequest- The request string.headers- The HTTP headers, never null.data- The data string.- Returns:
- The reply string.
- Throws:
IOException- For I/O errors.