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