コード例 #1
0
ファイル: BaseClass.java プロジェクト: evalica/xwiki-platform
  @Override
  public List<ObjectDiff> getDiff(Object oldObject, XWikiContext context) {
    ArrayList<ObjectDiff> difflist = new ArrayList<ObjectDiff>();
    BaseClass oldClass = (BaseClass) oldObject;
    for (PropertyClass newProperty : (Collection<PropertyClass>) getFieldList()) {
      String propertyName = newProperty.getName();
      PropertyClass oldProperty = (PropertyClass) oldClass.get(propertyName);
      String propertyType = newProperty.getClassType();

      if (oldProperty == null) {
        difflist.add(
            new ObjectDiff(
                getXClassReference(),
                getNumber(),
                "",
                ObjectDiff.ACTION_PROPERTYADDED,
                propertyName,
                propertyType,
                "",
                ""));
      } else if (!oldProperty.equals(newProperty)) {
        difflist.add(
            new ObjectDiff(
                getXClassReference(),
                getNumber(),
                "",
                ObjectDiff.ACTION_PROPERTYCHANGED,
                propertyName,
                propertyType,
                "",
                ""));
      }
    }

    for (PropertyClass oldProperty : (Collection<PropertyClass>) oldClass.getFieldList()) {
      String propertyName = oldProperty.getName();
      PropertyClass newProperty = (PropertyClass) get(propertyName);
      String propertyType = oldProperty.getClassType();

      if (newProperty == null) {
        difflist.add(
            new ObjectDiff(
                getXClassReference(),
                getNumber(),
                "",
                ObjectDiff.ACTION_PROPERTYREMOVED,
                propertyName,
                propertyType,
                "",
                ""));
      }
    }

    return difflist;
  }
コード例 #2
0
ファイル: BaseClass.java プロジェクト: evalica/xwiki-platform
  public BaseCollection fromValueMap(Map<String, ?> map, BaseCollection object) {
    for (PropertyClass property : (Collection<PropertyClass>) getFieldList()) {
      String name = property.getName();
      Object formvalue = map.get(name);
      if (formvalue != null) {
        BaseProperty objprop;
        objprop = property.fromValue(formvalue);
        if (objprop != null) {
          objprop.setObject(object);
          object.safeput(name, objprop);
        }
      }
    }

    return object;
  }
コード例 #3
0
ファイル: BaseClass.java プロジェクト: evalica/xwiki-platform
  public BaseCollection fromMap(Map<String, ?> map, BaseCollection object) {
    for (PropertyClass property : (Collection<PropertyClass>) getFieldList()) {
      String name = property.getName();
      Object formvalues = map.get(name);
      if (formvalues != null) {
        BaseProperty objprop;
        if (formvalues instanceof String[]) {
          objprop = property.fromStringArray(((String[]) formvalues));
        } else {
          objprop = property.fromString(formvalues.toString());
        }

        if (objprop != null) {
          objprop.setObject(object);
          object.safeput(name, objprop);
        }
      }
    }

    return object;
  }
コード例 #4
0
ファイル: BaseClass.java プロジェクト: evalica/xwiki-platform
  /**
   * Get the list of disabled properties that exist in a given object. This list is a subset of all
   * the disabled properties in a class, since the object could have been created and stored before
   * some of the class properties were added. The resulting list is unmodifiable, but the contained
   * elements are live.
   *
   * @param object the instance of this class where the disabled properties must exist
   * @return an unmodifiable list containing the disabled properties of the given object
   * @see PropertyClass#isDisabled()
   * @since 2.4M2
   */
  public List<PropertyClass> getDisabledObjectProperties(BaseObject object) {
    List<PropertyClass> disabledProperties = getDisabledProperties();
    if (disabledProperties == null) {
      return Collections.emptyList();
    }

    List<PropertyClass> disabledObjectProperties =
        new ArrayList<PropertyClass>(disabledProperties.size());

    for (PropertyClass property : disabledProperties) {
      try {
        if (object.get(property.getName()) != null) {
          disabledObjectProperties.add(property);
        }
      } catch (XWikiException ex) {
        // Not really gonna happen
      }
    }

    return Collections.unmodifiableList(disabledObjectProperties);
  }