Пример #1
0
 /**
  * Creates a deep copy of this feature map using the given string objects. This method is usually
  * called form another deepCopy-method.
  *
  * @param stringObjs The string objects to be used.
  * @return A deep copy.
  */
 FeatureMap deepCopy(HashMap<Integer, StringObject> stringObjs) {
   FeatureMap fm = new FeatureMap();
   for (String feature : features.keySet()) {
     StringRef s = features.get(feature);
     StringObject se = stringObjs.get(s.getID());
     if (se != null) {
       fm.setFeature(feature, se.newStringRef());
     } else {
       StringRef sr = new StringRef(s.getString());
       fm.setFeature(feature, sr);
       stringObjs.put(s.getID(), sr.getStringObject());
     }
   }
   return fm;
 }
Пример #2
0
 String getIdentifier(List<Integer> mvars, String[] usedFeatureNames) {
   String s = "(";
   int i = 0;
   for (String n : usedFeatureNames) {
     i++;
     if (!getFeatureNames().contains(n)) continue;
     StringRef v = getFeature(n);
     if (v.getString() == null) {
       if (mvars.contains(v.getID())) {
         s += i + ":" + mvars.indexOf(v.getID()) + ",";
       }
     } else {
       s += i + ":" + v.getString() + ",";
     }
   }
   return s + ")";
 }
Пример #3
0
 public String toString() {
   String s = "";
   Set<String> featureKeys = features.keySet();
   if (featureKeys.size() > 0) s += "(";
   for (String feature : new TreeSet<String>(features.keySet())) {
     // traverse the feature names in alphabetical order
     StringRef sr = features.get(feature);
     s += feature + ":";
     if (sr.getString() == null) {
       s += sr.getID();
     } else {
       s += sr.getString();
     }
     s += ",";
   }
   if (featureKeys.size() > 0) {
     s = s.substring(0, s.length() - 1) + ")";
   }
   return s;
 }