|
DisplayFormManager.java
|
// FILE. . . . . /home/hak/hlt/src/hlt/osf/io/DisplayFormManager.java // EDIT BY . . . Hassan Ait-Kaci // ON MACHINE. . Hak-Laptop // STARTED ON. . Mon Sep 02 15:36:33 2013
|
package hlt.osf.io; import hlt.osf.base.Sort; import hlt.osf.util.BitCode; import hlt.osf.util.Decoded; import hlt.osf.exec.Taxonomy; import hlt.language.util.ArrayList; import hlt.language.util.IntIterator; import java.util.HashSet; import java.util.HashMap; import java.util.Iterator;
| This class defines methods that format various OSF constructs to enable them to be legibly displayed. |
public class DisplayFormManager { public String displayBottomForm () { return Sort.bottom().toString(); } public String displayTopForm () { return Sort.top().toString(); } public final String displaySortForm (Sort sort) { return sort.toString(); } public final String displayForm (Sort sort) { if (sort.isTop()) return displayTopForm(); if (sort.isBottom()) return displayBottomForm(); return displaySortForm(sort); }
| This is the display form of an array of sorts. |
public final String displaySortsForm (Sort[] sorts) { if (sorts == null) // This should never happen! return "*null sort array*"; if (sorts.length == 0) // This should happen only for the lubs of top or the glbs of bottom return "*no sort*"; if (sorts.length == 1) return sorts[0].toString(); StringBuilder buf = new StringBuilder("{"); for (int i=sorts.length; i-->0;) buf.append(sorts[i] + (i>0 ? "; ":"")); return buf.append("}").toString(); }
| This is the display form of disjunctive sorts which are represented as ArrayLists. |
public final String displaySortsForm (ArrayList sorts) { if (sorts == null) // This should never happen! return "*null disjunctive sort*"; if (sorts.isEmpty()) return displayBottomForm(); if (sorts.size() == 1) return sorts.get(0).toString(); StringBuilder buf = new StringBuilder("{"); for (Iterator i=sorts.iterator(); i.hasNext();) buf.append(i.next() + (i.hasNext() ? "; " : "")); return buf.append("}").toString(); }
| This is the display form of disjunctive sorts which are represented as a BitCode. |
public final String displayForm (BitCode sorts, Taxonomy taxonomy) { if (sorts == null) // This should never happen! return "*null disjunctive sort*"; if (sorts.isEmpty()) return displayBottomForm(); if (sorts.cardinality() == 1) return taxonomy.get(sorts.nextSetBit(0)).toString(); StringBuilder buf = new StringBuilder("{"); for (IntIterator i=sorts.iterator(); i.hasNext();) buf.append(taxonomy.get(i.next()) + (i.hasNext() ? "; " : "")); return buf.append("}").toString(); }
| This is the display form of a HashSet of sorts. If the boolean argument is true, a null or empty set will be printed as top otherwise as false. If the set has more than one element, top is not printed. |
public final String displayForm (HashSet sorts, boolean upper) { if (sorts == null || sorts.isEmpty()) return upper ? "*EVERYTHING*" : "*NOTHING*"; if (sorts.size() == 1) return sorts.iterator().next().toString(); StringBuffer buf = new StringBuffer(); int size = sorts.contains(Sort.top()) ? sorts.size()-1 : sorts.size(); int count = 0; for (Iterator it = sorts.iterator(); it.hasNext();) { Sort sort = (Sort)it.next(); if (sort.isTop()) continue; if (count++ > Decoded.enumSize()) { buf.append("... ("+size+" elements in total)"); break; } buf.append(sort+" "); } return buf.toString(); } public String quotedDisplayForm (double x) { return String.valueOf(x); } public String unquotedDisplayForm (double x) { return quotedDisplayForm(x); } // /** // * The following is a table to keep a record of tags labelling // * psi-terms that have already been displayed and thus need not be // * redisplayed beyond their tag. This allows printing circular // * objects, and saves on the display form of objects that are // * shared. A tag is of the form <tt>Classname#n</tt>, where // * <tt>Classname</tt> is the name of the class of the tagged object // * and <tt>n</tt> is a number. Therefore, the table <tt>_tags</tt> is // * a table of tables: it maps a classname to a table that maps a // * number to the object it designates. // */ private final HashMap _tags = new HashMap(); public DisplayFormManager clearTags () { _tags.clear(); return this; } // private final String _getTag (ObjectInstance o) // { // HashMap typeTags = (HashMap)_tags.get(o.type()); // if (typeTags == null) // { // _tags.put(o.type(),typeTags = new HashMap()); // return null; // } // return (String)typeTags.get(o); // } // private final String _putTag (ObjectInstance o) // { // HashMap typeTags = (HashMap)_tags.get(o.type()); // if (typeTags == null) // _tags.put(o.type(),typeTags = new HashMap()); // String tag = "#"+typeTags.size(); // typeTags.put(o,tag); // return tag; // } }
This file was generated on Mon Sep 09 09:18:00 PDT 2019 from file DisplayFormManager.java
by the hlt.language.tools.Hilite Java tool written by Hassan Aït-Kaci