package com.openfeint.internal.resource; import java.io.IOException; import org.codehaus.jackson.JsonGenerationException; import org.codehaus.jackson.JsonGenerator; import org.codehaus.jackson.JsonParseException; import org.codehaus.jackson.JsonParser; public abstract class EnumResourceProperty<T extends Enum<T>> extends PrimitiveResourceProperty { Class<T> mEnumClass; public EnumResourceProperty(Class<T> enumClass) { mEnumClass = enumClass; } @Override public void copy(Resource lhs, Resource rhs) { set(lhs, get(rhs)); } abstract public void set(Resource obj, T val); public abstract T get(Resource obj); @Override public void parse(Resource obj, JsonParser jp) throws JsonParseException, IOException { set(obj, Enum.valueOf(mEnumClass, jp.getText())); } @Override public void generate(Resource obj, JsonGenerator generator, String key) throws JsonGenerationException, IOException { T val = get(obj); generator.writeFieldName(key); generator.writeString(val.toString()); } }