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;
import org.codehaus.jackson.JsonToken;
public abstract class StringResourceProperty extends PrimitiveResourceProperty {
abstract public void set(Resource obj, String val);
public abstract String get(Resource obj);
@Override public void copy(Resource lhs, Resource rhs) {
set(lhs, get(rhs));
}
public void parse(Resource obj, JsonParser jp) throws JsonParseException, IOException {
if (jp.getCurrentToken() == JsonToken.VALUE_NULL) {
set(obj, null);
} else {
set(obj, jp.getText());
}
}
@Override public void generate(Resource obj, JsonGenerator generator, String key) throws JsonGenerationException, IOException {
String o = get(obj);
if (null != o) {
generator.writeFieldName(key);
generator.writeString(o);
}
}
}