示例#1
0
    private void merge(Difference mergeMe) {
      for (PropertyChangeEvent pce : mergeMe.getNonChildChanges()) {
        addNonChildChange(pce);
      }

      Map<String, AddRemoveMoveDifference> childChanges = mergeMe.getChildChanges();
      for (Map.Entry<String, AddRemoveMoveDifference> childEntry : childChanges.entrySet()) {
        String propertyName = childEntry.getKey();
        AddRemoveMoveDifference arm = childEntry.getValue();

        for (AddData add : arm.getAdds()) {
          addAdd(propertyName, new AddData(add));
        }

        for (RemoveData remove : arm.getRemoves()) {
          addRemove(propertyName, new RemoveData(remove));
        }

        for (MoveData move : arm.getMoves()) {
          addMove(propertyName, new MoveData(move));
        }
      }
    }
示例#2
0
  /** Prints very pretty version of modifications */
  @Override
  public String toString() {
    StringBuffer sb =
        new StringBuffer(
            "Differences(num=" + differences.size() + ",cost=" + getDifferenceCost() + "\n");

    int lcv = 1;
    for (Difference d : differences.values()) {
      BaseHK2JAXBBean source = d.getSource();

      String xmlPath = source._getXmlPath();
      String instanceName = source._getInstanceName();

      List<PropertyChangeEvent> events = d.getNonChildChanges();
      sb.append(
          lcv + ". Modified Bean sourcePath=" + xmlPath + " sourceInstance=" + instanceName + "\n");

      for (PropertyChangeEvent event : events) {
        sb.append(
            "\tCHANGED: "
                + event.getPropertyName()
                + " from "
                + event.getOldValue()
                + " to "
                + event.getNewValue()
                + "\n");
      }

      Map<String, AddRemoveMoveDifference> childChanges = d.getChildChanges();

      for (Map.Entry<String, AddRemoveMoveDifference> childEntry : childChanges.entrySet()) {
        String propertyName = childEntry.getKey();

        sb.append("  CHANGED CHILD: " + propertyName + "\n");
        AddRemoveMoveDifference arm = childEntry.getValue();

        for (AddData ad : arm.getAdds()) {
          BaseHK2JAXBBean added = ad.getToAdd();
          int index = ad.getIndex();

          String addedXmlPath = added._getXmlPath();
          String addedInstanceName = added._getInstanceName();

          sb.append(
              "    ADDED: addedPath="
                  + addedXmlPath
                  + " addedInstanceName="
                  + addedInstanceName
                  + " addedIndex="
                  + index
                  + "\n");
        }

        for (RemoveData rd : arm.getRemoves()) {
          String removedXmlPath = rd.getChild()._getXmlPath();
          String removedInstanceName = rd.getChild()._getInstanceName();

          sb.append(
              "    REMOVED: removedPath="
                  + removedXmlPath
                  + " removedInstanceName="
                  + removedInstanceName
                  + "\n");
        }

        for (MoveData md : arm.getMoves()) {
          sb.append(
              "    MOVED: oldIndex=" + md.getOldIndex() + " newIndex=" + md.getNewIndex() + "\n");
        }
      }

      lcv++;
    }

    return sb.toString() + "\n," + System.identityHashCode(this) + ")";
  }
示例#3
0
 public void addMove(String propName, MoveData md) {
   AddRemoveMoveDifference arm = getARMDiff(propName);
   arm.addMove(md);
 }
示例#4
0
 public void addRemove(String propName, RemoveData removeData) {
   AddRemoveMoveDifference arm = getARMDiff(propName);
   arm.addRemove(removeData);
 }
示例#5
0
 public void addAdd(String propName, AddData toAdd) {
   AddRemoveMoveDifference arm = getARMDiff(propName);
   arm.addAdd(toAdd);
 }