package alma.logoot.logootengine; import java.util.ArrayList; /** * Ensemble de triplet définissant une position pour un caractère * * @author Driz */ public class LogootIdContainer extends ArrayList<LogootIdentifier> implements Comparable<LogootIdContainer> { /** * */ private static final long serialVersionUID = 8707580451647621697L; public LogootIdContainer() { super(); } public LogootIdContainer(String s) { try { s = s.split("^[<]")[1]; s = s.split("[>]$")[0]; } catch (Exception e) { System.err.println("LogootIdContainer : Deserialization error."); } String[] splited = s.split("[>][<]"); for ( int i = 0; i < splited.length; i++) { this.add(new LogootIdentifier(splited[i])); } } public String toString() { String result = ""; for (LogootIdentifier l : this) { result += l.toString(); } return result; } /** * Def23 p59 */ public int compareTo(LogootIdContainer o) { if (size() > 0 && o.size() > 0) { for (int i = 0; i < Math.min(size(), o.size()); i++) { int comp = get(i).compareTo(o.get(i)); if (comp != 0) return comp; } if (size() > o.size()) return 1; else if (size() < o.size()) return -1; } return 0; } public boolean equals(LogootIdContainer o) { return this.compareTo(o) == 0; } }