I built a new addition to the analysis of Arabic names using Java Arabic Names Analysis (Palantir Plugin ArabicNamesAnalysis)
In the helperFactory class that contains the main controls and buttons. There are new controls to handle the results. And there is a new button named (Analysis) to handle the user event. When the event is fired it calls the next procedure (doAnalyse)
doAnalyse() : this is the main procedure that calls the remaining functions.
It takes the written text and calls the language opposition procedure, then the sex type method will be called on the resulted word to determine the type (male or female). Then the work derivations will be extracted by calling the derivations procedure. Finally the meaning procedure is called to get the word meaning.These four processes are grouped in the AnalysisManager.
AnalysisManager: this class contains four methods:
isFemale(String name): determines if the name belongs to male or female.
languageOpposition(String name): to get the translation of the word in the opposite language (if the argument is written in English it returns it in the Arabic).
processDerivations(String name): to get the word derivations
processMeaning(String name): to get the word meaning the previous procedure use another procedure to access XML files and get the translation and derivations and meaning. These procedures are grouped in the XmlManager
XmlManager: contains the following procedures:
parseTranslation(InputStream): this procedure parses the translation.XML file to map the words and their oppositions.
getTranslation(String) : to get the word translation to return it to the languageOpposition procedure.
parseDerivations(InputSream): to parse the ArQuery.xml to use it in the processDerivations procedure to get the name derivations.
parseMeaning(InputSream) : to parse the name.XML file to use it in the processMeaning procedure to get the name meaning.
fillMap(): helper procedure in the XML parsing
getBytesFromFile(): to convert the file to the array of bytes.