code: protected Object undoCollection(Object potentialCollection, Object otherObject) {
          if ((potentialCollection != null) && (otherObject != null) && (potentialCollection instanceof Collection) &&
              !(otherObject instanceof Collection)) {
              if ((((Collection) potentialCollection).size() == 1) && ((Collection) potentialCollection).iterator()
                  .next().getClass().equals(otherObject.getClass())) {
                  potentialCollection = ((Collection) potentialCollection).iterator().next();
              }
          }
          return potentialCollection;
      }
docs: Sometimes an attribute in one object is a single-entity collection and on the other it is just the object.
  Check the passed potentialCollection and if it is a single-entry collection of the same type as the otherObject, return just the collection element.
  Otherwise, return the original collection.