Annotation of java/classes/org/w3c/tools/resources/PropertiesAttribute.java, revision 1.3
1.1 bmahe 1: // PropertiesAttribute.java
1.3 ! ylafon 2: // $Id: PropertiesAttribute.java,v 1.2 1999/09/07 13:28:53 ylafon Exp $
1.1 bmahe 3: // (c) COPYRIGHT MIT and INRIA, 1996.
4: // Please first read the full copyright statement in file COPYRIGHT.html
5:
6: package org.w3c.tools.resources ;
7:
1.3 ! ylafon 8: import java.util.Enumeration;
1.1 bmahe 9:
1.3 ! ylafon 10: import org.w3c.util.ArrayDictionary;
1.1 bmahe 11:
12: /**
13: * The generic description of an PropertiesAttribute.
14: * A PropertiesAttribute instance holds a String to String mapping, it
15: * should be used only with care, since people may act on a reference to
16: * it.
17: */
18:
1.2 ylafon 19: public class PropertiesAttribute extends ArrayAttribute {
1.1 bmahe 20:
21: /**
22: * Is the given object a valid PropertiesAttribute value ?
23: * @param obj The object to test.
24: * @return A boolean <strong>true</strong> if value is valid.
25: */
26:
27: public boolean checkValue(Object obj) {
28: return (obj == null) || (obj instanceof ArrayDictionary);
29: }
1.3 ! ylafon 30:
1.1 bmahe 31: /**
1.2 ylafon 32: * Unpickle an attribute array from a string array.
33: * @param array the String array
34: * @return a Object array
35: */
36: public Object unpickle(String array[]) {
37: if (array.length < 1)
38: return null;
39: ArrayDictionary a = new ArrayDictionary(array.length, 5);
40: for (int i = 0 ; i < array.length ; i++) {
41: String encoded = array[i];
42: int idx = encoded.indexOf('=');
43: if (idx != -1) {
44: String key = encoded.substring(0, idx);
45: String value = encoded.substring(idx+1);
46: a.put(key, value);
47: }
1.1 bmahe 48: }
1.2 ylafon 49: return a;
1.1 bmahe 50: }
51:
52: /**
1.2 ylafon 53: * Pickle an attribute array into a String array.
54: * @param array the attribute array
55: * @return a String array
56: */
57: public String[] pickle(Object o) {
58: ArrayDictionary a = (ArrayDictionary) o;
59: Enumeration e = a.keys();
60: int len = a.size();
61: String array[] = new String[len];
62:
63: for (int i = 0 ; i < len ; i++ ) {
64: String key = (String) e.nextElement();
65: array[i] = key+"="+(String) a.get(key);
1.1 bmahe 66: }
1.2 ylafon 67: return array;
1.1 bmahe 68: }
1.3 ! ylafon 69:
1.1 bmahe 70: /**
71: * Create a description for a generic property list attribute.
72: * @param name The attribute name.
73: * @param def The default value for these attributes.
74: * @param flags The associated flags.
75: */
76:
77: public PropertiesAttribute(String name, String def, int flags) {
78: super(name, def, flags) ;
1.2 ylafon 79: this.type = "java.lang.String";
80: }
81:
82: public PropertiesAttribute() {
83: super();
84: this.type = "java.lang.String";
1.1 bmahe 85: }
86:
87: }
1.3 ! ylafon 88:
1.1 bmahe 89:
Webmaster