package blue.stack.serializableParcelablegenerator.typeserializers.serializers;
import com.intellij.psi.PsiField;
import org.apache.xmlbeans.impl.common.NameUtil;
import blue.stack.serializableParcelablegenerator.typeserializers.TypeSerializer;
/**
* Modified by Dallas Gutauckis [dallas@gutauckis.com]
*/
public class EnumerationSerializer implements TypeSerializer {
@Override
public String writeValue(PsiField field, String parcel, String flags) {
String fieldName = field.getName();
return String.format("%s.writeInt(this.%s == null ? -1 : this.%s.ordinal());", parcel, fieldName, fieldName);
}
@Override
public String readValue(PsiField field, String parcel) {
String fieldName = field.getName();
String tmpFieldName = NameUtil.upperCaseFirstLetter(fieldName);
String format = "int tmp%s = %s.readInt();"
+ "this.%s = tmp%s == -1 ? null : %s.values()[tmp%s];";
return String.format(format, tmpFieldName, parcel, fieldName, tmpFieldName, field.getType().getCanonicalText(), tmpFieldName);
}
}