/**
*
*/
package ecologylab.serialization.library.apple;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import ecologylab.serialization.TranslationContext;
import ecologylab.serialization.annotations.simpl_classes;
import ecologylab.serialization.annotations.simpl_collection;
import ecologylab.serialization.annotations.simpl_inherit;
import ecologylab.serialization.annotations.simpl_nowrap;
import ecologylab.serialization.annotations.simpl_tag;
import ecologylab.serialization.deserializers.ISimplDeserializationPost;
/**
* @author Zachary O. Toups (zach@ecologylab.net)
*/
@simpl_tag("dict")
@simpl_inherit
public class DictionaryProperty extends Property implements ISimplDeserializationPost
{
@simpl_collection
@simpl_nowrap
@simpl_classes(
{ DictionaryProperty.class, StringProperty.class, KeyProperty.class, ArrayProperty.class,
IntegerProperty.class, TrueProperty.class, FalseProperty.class, RealProperty.class,
DataProperty.class })
List<Property> properties;
/**
* Not currently serialized; used for access only.
*/
Map<String, Property> propertyMap;
public DictionaryProperty()
{
}
@Override
public void deserializationPostHook(TranslationContext translationContext, Object object)
{
debug("deser post hook!");
propertyMap = new HashMap<String, Property>();
Iterator<Property> propertyIter = properties.iterator();
while (propertyIter.hasNext())
{
KeyProperty key = (KeyProperty) propertyIter.next();
Property value = propertyIter.next();
String temp = key.getContents();
propertyMap.put(key.getContents(), value);
}
debug("done desr");
}
public Property getProperty(String key)
{
return this.propertyMap.get(key);
}
}