예제 #1
0
  public <T> void setPersistentMapProperty(String prop, Map<String, T> value) {
    boolean dirty = false;

    synchronized (persistent_properties) {
      Map<String, T> existing = getPersistentMapProperty(prop, null);

      if (!BEncoder.mapsAreIdentical(value, existing)) {

        try {
          if (value == null) {

            persistent_properties.remove(prop);

          } else {

            persistent_properties.put(prop, value);
          }

          dirty = true;

        } catch (Throwable e) {

          Debug.printStackTrace(e);
        }
      }
    }

    if (dirty) {

      setDirty();
    }
  }