@Override public MetaValue createMetaValue(MetaType metaType, Properties object) { PropertiesMetaValue map = new PropertiesMetaValue(object); return map; }
/** * @param metaType - a PropertiesMetaType * @param value - a comma separated list of key=value pairs */ public MetaValue buildMetaValue(String value) throws Exception { Properties props = new Properties(); String[] pairs = value.split(","); for(int n = 0; n < pairs.length; n ++) { String[] kv = pairs[n].split("="); props.put(kv[0], kv[1]); } PropertiesMetaValue metaValue = new PropertiesMetaValue(props); return metaValue; }
@Override public MetaValue clone() { PropertiesMetaValue clone = new PropertiesMetaValue(); clone.putAll(this); return clone; }
/** * Build a PropertiesMetaValue from a Properties by copying all key/value * pairs from props into the new PropertiesMetaValue. * * @param props - the Properties to copy * @return PropertiesMetaValue */ public static PropertiesMetaValue wrap(Map<String,String> props) { PropertiesMetaValue value = new PropertiesMetaValue(); value.putAll(props); return value; }
/** * @param metaType - a PropertiesMetaType * @param value - a comma separated list of key=value pairs */ public MetaValue buildMetaValue(String value) throws Exception { Properties props = new Properties(); String[] pairs = value.split(","); for(int n = 0; n < pairs.length; n ++) { String[] kv = pairs[n].split("="); String key = kv[0]; int colon = key.indexOf(':'); if(colon >= 0 ) { // This key has the domain prefix String domain = key.substring(0, colon); key = key.substring(colon+1); props.setProperty("domain", domain); } props.setProperty(key, kv[1]); } PropertiesMetaValue metaValue = new PropertiesMetaValue(props); return metaValue; }
/** * Create a PropertiesMetaValue * @param metaType * @param value * @param mapping * @return */ protected MetaValue createPropertiesValue(PropertiesMetaType metaType, Object value, Map<Object, MetaValue> mapping) { if (value == null) return null; if((value instanceof Hashtable) == false) throw new IllegalArgumentException("PropertiesMetaType requires a java.lang.Properties value, value.class: "+value.getClass()); Hashtable pvalue = (Hashtable) value; PropertiesMetaValue pmv = new PropertiesMetaValue(); for(Object key : pvalue.keySet()) { if ((key instanceof String) == false) throw new IllegalArgumentException("key("+key+") is not a String"); String skey = (String) key; Object ovalue = pvalue.get(skey); if ((key instanceof String) == false) throw new IllegalArgumentException("value for key("+key+") is not a String, value.class: "+ovalue.getClass()); String svalue = (String) ovalue; pmv.setProperty(skey, svalue); } return pmv; }
@Override public MetaValue createMetaValue(MetaType metaType, ObjectName object) { String[] itemNames = {"domain", "keyPropertyList"}; PropertiesMetaValue keyValues = new PropertiesMetaValue(); for(Object key : object.getKeyPropertyList().keySet()) { Object value = object.getKeyProperty((String)key); keyValues.put(key, value); } MetaValue[] itemValues = {SimpleValueSupport.wrap(object.getDomain()), keyValues}; CompositeValueSupport mv = new CompositeValueSupport(ObjectNameTypeBuilder.META_TYPE, itemNames, itemValues); return mv; }
/** * Create the properties value. * * @param value the persisted properties value * @param metaType the properties meta type * @return the properties value */ protected MetaValue createPropertiesValue( PersistedPropertiesValue value, PropertiesMetaType metaType) { PropertiesMetaValue properties = new PropertiesMetaValue(); for(PersistedPair pair : value.getEntries()) { properties.setProperty(pair.getKey(), pair.getValue()); } return properties; }