Package com.iizix.translate
Class TranslationQueue
- java.lang.Object
- com.iizix.translate.TranslationQueue
public class TranslationQueue extends java.lang.Object
Translation queue object that holds the translations required from one language to another. The queue is enabled to have the same translation multiple times and only queries the translator once. Future implementations could hold a history of the most used ones, etc...- Author:
- Christopher Mindus
Field Summary
Fields Modifier and Type Field Description protected java.lang.String
sourceLanguageCode
The source language code, null for auto-detect.protected java.lang.String
sourceLanguageDescription
The description of source language.protected java.lang.String
targetLanguageCode
The target language code.protected java.lang.String
targetLanguageDescription
The description of target language.protected ITranslator
translator
The translator.
Constructor Summary
Constructors Modifier Constructor Description protected
TranslationQueue(java.lang.String sourceLanguageCode, java.lang.String targetLanguageCode, ITranslator translator)
Constructor.
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected boolean
addRequest(KString sourceText, ITranslationReply reply)
Adds a translation request.protected void
cancel()
Cancels the queue.protected void
cancelJob()
Cancels the job instance if any, called from a synchronized block.protected void
clearJobInstance()
Clears the job instance if any, called from a synchronized block.void
deconfigure()
Deconfigures the queue and its translator.protected KString[]
getAll()
Gets all current elements in queue, without removing them.protected KString
getNext()
Gets an item from the queue that needs processing.protected int
getQueueElementCount()
Gets the queue translations count.long
getTranslatedCount()
Gets the count of translated texts in this queue.protected boolean
isCanceled()
Checks the cancel state.protected void
onCompleted(KString sourceText, Translation translation)
Informs the queue of a completed translation.protected boolean
processQueuedElement()
Processes one element from queue.protected void
scheduleJobInstance()
Schedules a new translation job instance if required, called from a synchronized block.
Field Detail
sourceLanguageCode
protected final java.lang.String sourceLanguageCode
The source language code, null for auto-detect.
targetLanguageCode
protected final java.lang.String targetLanguageCode
The target language code.
sourceLanguageDescription
protected final java.lang.String sourceLanguageDescription
The description of source language.
targetLanguageDescription
protected final java.lang.String targetLanguageDescription
The description of target language.
translator
protected final ITranslator translator
The translator.
Constructor Detail
TranslationQueue
protected TranslationQueue(java.lang.String sourceLanguageCode, java.lang.String targetLanguageCode, ITranslator translator)
Constructor.- Parameters:
sourceLanguageCode
- The source language code, null for auto-detect.targetLanguageCode
- The target language code.translator
- The translator.
Method Detail
addRequest
protected boolean addRequest(KString sourceText, ITranslationReply reply)
Adds a translation request.- Parameters:
sourceText
- The source text.reply
- Callback when translation completes.- Returns:
- true for new request added, false for request already pending.
scheduleJobInstance
protected void scheduleJobInstance()
Schedules a new translation job instance if required, called from a synchronized block.Override as required.
getNext
protected KString getNext()
Gets an item from the queue that needs processing.- Returns:
- The string to translate, null for no more entries.
getAll
protected KString[] getAll()
Gets all current elements in queue, without removing them.- Returns:
- The string array to translate, null for no more entries.
clearJobInstance
protected void clearJobInstance()
Clears the job instance if any, called from a synchronized block.Override as required.
cancelJob
protected void cancelJob()
Cancels the job instance if any, called from a synchronized block.Override as required.
cancel
protected void cancel()
Cancels the queue.
isCanceled
protected boolean isCanceled()
Checks the cancel state.
getQueueElementCount
protected int getQueueElementCount()
Gets the queue translations count.
processQueuedElement
protected boolean processQueuedElement()
Processes one element from queue.- Returns:
- true for success, false for no more elements in queue.
onCompleted
protected void onCompleted(KString sourceText, Translation translation)
Informs the queue of a completed translation.- Parameters:
sourceText
- The source text.translation
- The translation instance.
getTranslatedCount
public long getTranslatedCount()
Gets the count of translated texts in this queue.- Returns:
- The count of successful translations.
deconfigure
public void deconfigure()
Deconfigures the queue and its translator.