KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > tirsen > nanning > attribute > ClassAttributes


1 package com.tirsen.nanning.attribute;
2
3 import java.lang.reflect.Field JavaDoc;
4 import java.lang.reflect.Method JavaDoc;
5 import java.util.HashMap JavaDoc;
6 import java.util.Map JavaDoc;
7
8 public class ClassAttributes {
9
10     private Class JavaDoc attributeClass;
11     private Map JavaDoc classAttributes = new HashMap JavaDoc();
12     private Map JavaDoc fieldAttributes = new HashMap JavaDoc();
13     private Map JavaDoc methodAttributes = new HashMap JavaDoc();
14
15     public ClassAttributes(Class JavaDoc aClass) {
16         this.attributeClass = aClass;
17     }
18
19     public Class JavaDoc getAttributeClass() {
20         return attributeClass;
21     }
22
23     void setMethodAttribute(Method JavaDoc method, String JavaDoc attributeName, String JavaDoc attributeValue) {
24         getMap(methodAttributes, method).put(attributeName, attributeValue);
25     }
26
27     void setFieldAttribute(Field JavaDoc field, String JavaDoc attributeName, String JavaDoc attributeValue) {
28         getMap(fieldAttributes, field).put(attributeName, attributeValue);
29     }
30
31     void setClassAttribute(String JavaDoc attributeName, String JavaDoc attributeValue) {
32         classAttributes.put(attributeName, attributeValue);
33     }
34
35     public String JavaDoc getAttribute(String JavaDoc attribute) {
36         return (String JavaDoc) classAttributes.get(attribute);
37     }
38
39     public boolean hasAttribute(String JavaDoc attribute) {
40         return classAttributes.containsKey(attribute);
41     }
42
43     public String JavaDoc getAttribute(Field JavaDoc field, String JavaDoc attribute) {
44         return (String JavaDoc) getMap(fieldAttributes, field).get(attribute);
45     }
46
47     private Map JavaDoc getMap(Map JavaDoc map, Object JavaDoc key) {
48         assert map != null : "properties not loaded";
49         Map JavaDoc result = (Map JavaDoc) map.get(key);
50         if (result == null) {
51             result = new HashMap JavaDoc();
52             map.put(key, result);
53         }
54         return result;
55     }
56
57     public boolean hasAttribute(Field JavaDoc field, String JavaDoc attribute) {
58         return getMap(fieldAttributes, field).containsKey(attribute);
59     }
60
61     public String JavaDoc getAttribute(Method JavaDoc method, String JavaDoc attribute) {
62         return (String JavaDoc) getMap(methodAttributes, method).get(attribute);
63     }
64
65     public boolean hasAttribute(Method JavaDoc method, String JavaDoc attribute) {
66         return getMap(methodAttributes, method).containsKey(attribute);
67     }
68 }
69
Popular Tags