package tutor; import java.util.*; /** * This class represents a set of {@linkplain tutor.LanguagePointer}s which are * contained in a file. * * @see tutor.LanguagePointer * @author http://bumble.sf.net * */ public class LanguagePointerSet extends Object { //-------------------------------------------- private Vector set; //-------------------------------------------- public static String NEWLINE = System.getProperty("line.separator"); //-------------------------------------------- /** construct a new empty set to hold translations which * will be added later, possibly by a Record object */ public LanguagePointerSet() { this.set = new Vector(); } //-------------------------------------------- /** how many language file pointers */ public int count() { return this.set.size(); } //-------------------------------------------- /** is the set empty */ public boolean isEmpty() { if (this.set.size() == 0) { return true; } else { return false; } } //-------------------------------------------- /** return a particular language pointer based on its language code. * These language codes will be in accordance with whatever * is the applicable RFC and will probably be supplied by the * java 'locale' class which contains all of these codes * built in. */ public LanguagePointer getLanguageByCode(String sLanguageCode) { LanguagePointer tReturn = new LanguagePointer(); LanguagePointer tCurrentLanguagePointer; Enumeration ii = this.set.elements(); while (ii.hasMoreElements()) { tCurrentLanguagePointer = (LanguagePointer)ii.nextElement(); if (tCurrentLanguagePointer.getLanguageCode().equals(sLanguageCode)) { tReturn = tCurrentLanguagePointer; } } //-- while return tReturn; } //-- getLanguagePointerByCode //-------------------------------------------- /** return a particular language pointer based on its language code. * */ public LanguagePointer getLanguagePointerByCode(String sLanguageCode) { LanguagePointer tReturn = new LanguagePointer(); LanguagePointer tCurrentLanguagePointer; Enumeration ii = this.set.elements(); while (ii.hasMoreElements()) { tCurrentLanguagePointer = (LanguagePointer)ii.nextElement(); if (tCurrentLanguagePointer.getLanguageCode().equals(sLanguageCode)) { tReturn = tCurrentLanguagePointer; } } //-- while return tReturn; } //-- getLanguagePointerByCode //-------------------------------------------- /** add a LanguagePointer object to the set. LanguagePointer objects * may become available for adding as the Record object * parses through the data string. */ public void addLanguagePointer(LanguagePointer tLanguagePointer) { this.set.addElement(tLanguagePointer); } //-------------------------------------------- public String print() { StringBuffer sbReturn = new StringBuffer(""); LanguagePointer tCurrentLanguagePointer; Enumeration ii = this.set.elements(); while (ii.hasMoreElements()) { tCurrentLanguagePointer = (LanguagePointer)ii.nextElement(); sbReturn.append(tCurrentLanguagePointer.print()); sbReturn.append(NEWLINE); } return sbReturn.toString(); } //-- print //-------------------------------------------- public String toString() { StringBuffer sbReturn = new StringBuffer(""); LanguagePointer tCurrentLanguagePointer; Enumeration ii = this.set.elements(); while (ii.hasMoreElements()) { tCurrentLanguagePointer = (LanguagePointer)ii.nextElement(); sbReturn.append(tCurrentLanguagePointer.toString()); sbReturn.append(NEWLINE); } return sbReturn.toString(); } //-------------------------------------------- /** return a string which displays the data contained * by the object at a particular time, in an * unambiguous format. */ public String debug() { StringBuffer sbReturn = new StringBuffer(""); LanguagePointer tCurrentLanguagePointer; Enumeration ii = this.set.elements(); while (ii.hasMoreElements()) { tCurrentLanguagePointer = (LanguagePointer)ii.nextElement(); sbReturn.append(tCurrentLanguagePointer.print()); } return sbReturn.toString(); } //-- method: debug //-------------------------------------------- /** A main method for console testing */ public static void main(String[] args) throws Exception { StringBuffer sbUsageMessage = new StringBuffer(""); sbUsageMessage.append("usage: java LanguagePointerSet ."); sbUsageMessage.append(NEWLINE); if (args.length == 0) { System.out.println(sbUsageMessage); System.exit(-1); } LanguagePointerSet ts = new LanguagePointerSet(); ts.addLanguagePointer(new LanguagePointer("eu bumble.sf.net/eu/")); ts.addLanguagePointer(new LanguagePointer("fr bumble.sf.net/fr/")); ts.addLanguagePointer(new LanguagePointer("es bumble.sf.net/es/")); // System.out.println(".getLanguagePointerByCode(\"en\").getLanguagePointer()"); // System.out.println(ts.getLanguagePointerByCode("en").getLanguagePointer()); System.out.println("\n .toString()"); System.out.print(ts.toString()); System.out.println("\n .print()"); System.out.print(ts.print()); } //-- main() } //-- LanguagePointerSet class