Esempio n. 1
0
  @Override
  public String[] unparse(LoadContext context, CDOMObject obj) {
    Changes<ChangeProf> changes =
        context.getObjectContext().getListChanges(obj, ListKey.CHANGEPROF);
    Collection<ChangeProf> added = changes.getAdded();
    if (added == null || added.isEmpty()) {
      // Zero indicates no Token
      return null;
    }
    HashMapToList<CDOMGroupRef<WeaponProf>, CDOMReference<WeaponProf>> m =
        new HashMapToList<CDOMGroupRef<WeaponProf>, CDOMReference<WeaponProf>>();
    for (ChangeProf cp : added) {
      CDOMReference<WeaponProf> source = cp.getSource();
      CDOMGroupRef<WeaponProf> result = cp.getResult();
      m.addToListFor(result, source);
    }

    SortedSet<CDOMReference<WeaponProf>> set =
        new TreeSet<CDOMReference<WeaponProf>>(ReferenceUtilities.REFERENCE_SORTER);
    Set<String> returnSet = new TreeSet<String>();
    for (CDOMGroupRef<WeaponProf> result : m.getKeySet()) {
      StringBuilder sb = new StringBuilder();
      boolean needComma = false;
      set.clear();
      set.addAll(m.getListFor(result));
      for (CDOMReference<WeaponProf> source : set) {
        if (needComma) {
          sb.append(Constants.COMMA);
        }
        needComma = true;
        String sourceLst = source.getLSTformat(false);
        if (sourceLst.startsWith(Constants.LST_TYPE_EQUAL)) {
          sb.append(Constants.LST_TYPE_DOT);
          sb.append(sourceLst.substring(5));
        } else {
          sb.append(sourceLst);
        }
      }
      sb.append(Constants.EQUALS).append(result.getLSTformat(false).substring(5));
      returnSet.add(sb.toString());
    }
    return new String[] {StringUtil.join(returnSet, Constants.PIPE)};
  }