KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > fr > jayasoft > ivy > extendable > UnmodifiableExtendableItem


1 /*
2  * This file is subject to the licence found in LICENCE.TXT in the root directory of the project.
3  * Copyright Jayasoft 2005 - All rights reserved
4  *
5  * #SNAPSHOT#
6  */

7 package fr.jayasoft.ivy.extendable;
8
9 import java.util.Collections JavaDoc;
10 import java.util.HashMap JavaDoc;
11 import java.util.Map JavaDoc;
12
13 public class UnmodifiableExtendableItem implements ExtendableItem {
14     private Map JavaDoc _attributes = new HashMap JavaDoc();
15     private Map JavaDoc _unmodifiableAttributesView = Collections.unmodifiableMap(_attributes);
16     private Map JavaDoc _stdAttributes = new HashMap JavaDoc();
17     private Map JavaDoc _unmodifiableStdAttributesView = Collections.unmodifiableMap(_stdAttributes);
18     private Map JavaDoc _extraAttributes = new HashMap JavaDoc();
19     private Map JavaDoc _unmodifiableExtraAttributesView = Collections.unmodifiableMap(_extraAttributes);
20     
21     public UnmodifiableExtendableItem(Map JavaDoc stdAttributes, Map JavaDoc 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 JavaDoc getAttribute(String JavaDoc attName) {
32         return (String JavaDoc)_attributes.get(attName);
33     }
34     public String JavaDoc getExtraAttribute(String JavaDoc attName) {
35         return (String JavaDoc)_extraAttributes.get(attName);
36     }
37     public String JavaDoc getStandardAttribute(String JavaDoc attName) {
38         return (String JavaDoc)_stdAttributes.get(attName);
39     }
40     protected void setExtraAttribute(String JavaDoc attName, String JavaDoc attValue) {
41         setAttribute(attName, attValue, true);
42     }
43     protected void setStandardAttribute(String JavaDoc attName, String JavaDoc attValue) {
44         setAttribute(attName, attValue, false);
45     }
46     protected void setAttribute(String JavaDoc attName, String JavaDoc 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 JavaDoc getAttributes() {
55         return _unmodifiableAttributesView;
56     }
57     public Map JavaDoc getStandardAttributes() {
58         return _unmodifiableStdAttributesView;
59     }
60     public Map JavaDoc getExtraAttributes() {
61         return _unmodifiableExtraAttributesView;
62     }
63
64 }
65
Popular Tags