Esempio n. 1
0
  /**
   * Given a map of key -> CompositeAttributeHolder, clone and add all entries to this attributes
   * map. Overriding b/c we need to put CAH in attributes.
   *
   * @param attributeHolders map of key -> CompositeAttributeHolder
   */
  public void setAllAttributeHolders(Map attributeHolders) {
    if (attributeHolders == null) return;

    clear();

    for (Iterator i = attributeHolders.entrySet().iterator(); i.hasNext(); ) {
      Map.Entry entry = (Map.Entry) i.next();
      String key = (String) entry.getKey();
      Object value = entry.getValue();

      if (CompositeAttributeHolder.class.isAssignableFrom(value.getClass())) {
        CompositeAttributeHolder original = (CompositeAttributeHolder) value;
        CompositeAttributeHolder copy = (CompositeAttributeHolder) original.clone();
        getAttributes().put(key, copy);
      } else if (AttributeHolder.class.isAssignableFrom(value.getClass())) {
        AttributeHolder original = (AttributeHolder) value;
        CompositeAttributeHolder copy = new CompositeAttributeHolder(original.getValue());
        if (original.isSerializable()) copy.serializable();
        if (original.isLocked()) copy.lock();
        getAttributes().put(key, copy);
      } else {
        set(key, value);
      }
    }
  }
Esempio n. 2
0
 protected AttributeHolder createHolderForValue(AttributeHolder old, Object value) {
   CompositeAttributeHolder attributeHolder = new CompositeAttributeHolder(value);
   if (old.isSerializable()) attributeHolder.serializable();
   if (CompositeAttributeHolder.class.isAssignableFrom(old.getClass())) {
     if (((CompositeAttributeHolder) old).isInheritable()) attributeHolder.setInheritable(true);
   }
   return attributeHolder;
 }
Esempio n. 3
0
  /**
   * Generate a new map of key -> CompsositeAttributeHolder containing all inheritable attributes
   *
   * @return map of inheritable attributes
   */
  public Map getAllInheritableAttributeHolders() {
    Map allInheritable = new HashMap();
    for (Iterator i = getAllAttributeHolders().entrySet().iterator(); i.hasNext(); ) {
      Map.Entry entry = (Map.Entry) i.next();
      String key = (String) entry.getKey();
      CompositeAttributeHolder attributeHolder = (CompositeAttributeHolder) entry.getValue();

      if (attributeHolder.isInheritable()) {
        allInheritable.put(key, attributeHolder);
      }
    }
    return allInheritable;
  }