1 7 package fr.jayasoft.ivy.extendable; 8 9 import java.util.Collections ; 10 import java.util.HashMap ; 11 import java.util.Map ; 12 13 public class UnmodifiableExtendableItem implements ExtendableItem { 14 private Map _attributes = new HashMap (); 15 private Map _unmodifiableAttributesView = Collections.unmodifiableMap(_attributes); 16 private Map _stdAttributes = new HashMap (); 17 private Map _unmodifiableStdAttributesView = Collections.unmodifiableMap(_stdAttributes); 18 private Map _extraAttributes = new HashMap (); 19 private Map _unmodifiableExtraAttributesView = Collections.unmodifiableMap(_extraAttributes); 20 21 public UnmodifiableExtendableItem(Map stdAttributes, Map extraAttributes) { 22 if (stdAttributes != null) { 23 _attributes.putAll(stdAttributes); 24 _stdAttributes.putAll(stdAttributes); 25 } 26 if (extraAttributes != null) { 27 _attributes.putAll(extraAttributes); 28 _extraAttributes.putAll(extraAttributes); 29 } 30 } 31 public String getAttribute(String attName) { 32 return (String )_attributes.get(attName); 33 } 34 public String getExtraAttribute(String attName) { 35 return (String )_extraAttributes.get(attName); 36 } 37 public String getStandardAttribute(String attName) { 38 return (String )_stdAttributes.get(attName); 39 } 40 protected void setExtraAttribute(String attName, String attValue) { 41 setAttribute(attName, attValue, true); 42 } 43 protected void setStandardAttribute(String attName, String attValue) { 44 setAttribute(attName, attValue, false); 45 } 46 protected void setAttribute(String attName, String attValue, boolean extra) { 47 if (extra) { 48 _extraAttributes.put(attName, attValue); 49 } else { 50 _stdAttributes.put(attName, attValue); 51 } 52 _attributes.put(attName, attValue); 53 } 54 public Map getAttributes() { 55 return _unmodifiableAttributesView; 56 } 57 public Map getStandardAttributes() { 58 return _unmodifiableStdAttributesView; 59 } 60 public Map getExtraAttributes() { 61 return _unmodifiableExtraAttributesView; 62 } 63 64 } 65 | Popular Tags |