?? terms.java
字號(hào):
package toocom.ocgl;
import java.util.*;
/**
* This class allows to specify several terms for a given object, corresponding to different languages. Each term is
* linked to a language. The available languages are ENGLISH, FRENCH, GERMAN and SPANISH.
*
* @author Fr閐閞ic F黵st
*/
public class Terms{
/** The terms hashtable contains the different terms identified by an instance of the Language class. */
private Hashtable terms;
public Terms(){
this.terms = new Hashtable();
String s = new String("");
for(Iterator i = Language.getAllLanguages().iterator();i.hasNext();){
this.terms.put((Language) i.next(),s);
}
}
/** Creates the Terms class and add the term of the given language. Giving * for the term will create the GENERIC_CONCEPT_TERM. */
public Terms(String term, Language l){
this.terms = new Hashtable();
String s = new String("");
for(Iterator i = Language.getAllLanguages().iterator();i.hasNext();){
this.terms.put((Language) i.next(),s);
}
if(term != null){
if(term.equals("*")){
LinkedList languages = Language.getAllLanguages();
for(int i = 0;i < languages.size();i ++){
Language lbis = (Language) languages.get(i);
this.terms.put(lbis,"*");
}
}
else this.terms.put(l,term);
}
}
/** Creates a term with the same term for all languages. */
public Terms(String term){
this.terms = new Hashtable();
for(Iterator i = Language.getAllLanguages().iterator();i.hasNext();){
this.terms.put((Language) i.next(),term);
}
}
public Terms cloneTerms(){
Terms result = new Terms();
for(Iterator i = Language.getAllLanguages().iterator();i.hasNext();){
Language l = (Language) i.next();
result.setTerm(this.getTerm(l),l);
}
return result;
}
/** Returns a copy of the term with the given suffix appended to the end of all terms. */
public Terms appendAndCopy(String suffix){
Terms result = new Terms();
for(Iterator i = Language.getAllLanguages().iterator();i.hasNext();){
Language l = (Language) i.next();
result.setTerm(this.getTerm(l) + suffix,l);
}
return result;
}
/** Add to the end of all terms the correspondings terms of t, separated by the
* specified string, copy and return it. */
public Terms appendAndCopy(Terms t,String separator){
Terms result = new Terms();
for(Iterator i = Language.getAllLanguages().iterator();i.hasNext();){
Language l = (Language) i.next();
result.setTerm(this.getTerm(l) + separator + t.getTerm(l),l);
}
return result;
}
/** Appends the given suffix to the end of all terms. */
public void append(String suffix){
for(Iterator i = Language.getAllLanguages().iterator();i.hasNext();){
Language l = (Language) i.next();
this.setTerm(this.getTerm(l) + suffix,l);
}
}
/** Add to the end of all terms the correspondings terms of t. */
public void append(Terms t){
for(Iterator i = Language.getAllLanguages().iterator();i.hasNext();){
Language l = (Language) i.next();
this.terms.put(this.getTerm(l) + t.getTerm(l),l);
}
}
/** Add to the end of all terms the correspondings terms of t, separated by the
* specified string. */
public void appendWithSeparator(Terms t,String separator){
for(Iterator i = Language.getAllLanguages().iterator();i.hasNext();){
Language l = (Language) i.next();
this.terms.put(this.getTerm(l) + separator + t.getTerm(l),l);
}
}
/** Returns true if the terms of the Term end with the corresponding terms of end. */
public boolean endsWith(Terms end){
for(Iterator i = Language.getAllLanguages().iterator();i.hasNext();){
Language l = (Language) i.next();
if(!this.getTerm(l).endsWith(end.getTerm(l))) return false;
}
return true;
}
/** Returns the part of the different terms that is situated before " - ". */
public Terms getFirstPart(){
Terms result = new Terms();
for(Iterator i = Language.getAllLanguages().iterator();i.hasNext();){
Language l = (Language) i.next();
result.setTerm(this.getTerm(l).substring(0,this.getTerm(l).indexOf(" - ")),l);
}
return result;
}
/** Returns a generic concept term. */
public static Terms getGenericConceptTerms(){
Terms result = new Terms();
for(Iterator i = Language.getAllLanguages().iterator();i.hasNext();){
result.setTerm(CGConstants.GENERIC_CONCEPT_LABEL,(Language) i.next());
}
return result;
}
/** Returns an undefined term. */
public static Terms getUndefinedTerms(){
Terms result = new Terms();
for(Iterator i = Language.getAllLanguages().iterator();i.hasNext();){
result.setTerm(CGConstants.UNDEFINED_ELEMENT,(Language) i.next());
}
return result;
}
/** Add a term of the given language or modify the term if it already exists. Given * for the term will creates the GENERIC_CONCEPT_TERM. */
public void setTerm(String term, Language l){
if(term != null){
if(term.equals("*")){
LinkedList languages = Language.getAllLanguages();
for(int i = 0;i < languages.size();i ++){
Language lbis = (Language) languages.get(i);
this.terms.put(lbis,"*");
}
}
else this.terms.put(l,term);
}
}
/** Add a negation in front of the terms and returns a copy of the terms. */
public Terms denyTerms(){
Terms result = new Terms();
LinkedList languages = Language.getAllLanguages();
for(int i = 0;i < languages.size();i ++){
Language l = (Language) languages.get(i);
result.setTerm(CGConstants.NEGATION_SYMBOL + " " + this.terms.get(l),l);
}
return result;
}
/** Returns the term for the given language, null if any term exists for this language. */
public String getTerm(Language l){
return ((String) this.terms.get(l));
}
/** Returns true if t contains the same terms for the specified language than the Terms, or if the term corresponding to the language does not exist for the Terms nor for t. */
public boolean equals(Terms t, Language l){
String temp = (String) this.terms.get(l);
if(temp == null){
if(t.getTerm(l) == null) return true;
else return false;
}
else{
if(t.getTerm(l) == null) return false;
else return (t.getTerm(l).equals(temp));
}
}
/** Returns true if the t Terms contains the same terms for each language than the Terms. */
public boolean equals(Terms t){
LinkedList languages = Language.getAllLanguages();
for(int i = 0;i < languages.size();i ++){
Language l = (Language) languages.get(i);
if(!this.equals(t,l)) return false;
}
return true;
}
/** Returns a string with all the terms in the different languages. */
public String toString(){
String result = "";
for(Enumeration en = terms.keys(); en.hasMoreElements() ;){
Language l = (Language) en.nextElement();
String temp = (String) this.terms.get(l);
if(temp != null){
if(!result.equals("")) result = result + " , ";
result = result + temp + "(" + l.getLabel() + ")";
}
}
return result;
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -