
com.aerospike.mapper.tools.mappers.EnumMapper Maven / Gradle / Ivy
package com.aerospike.mapper.tools.mappers;
import com.aerospike.client.AerospikeException;
import com.aerospike.mapper.tools.TypeMapper;
public class EnumMapper extends TypeMapper {
private final Class extends Enum>> clazz;
public EnumMapper(Class extends Enum>> clazz) {
this.clazz = clazz;
}
@Override
public Object toAerospikeFormat(Object value) {
return value.toString();
}
@Override
public Object fromAerospikeFormat(Object value) {
if (value == null) {
return null;
}
String stringValue = (String)value;
Enum>[] constants=clazz.getEnumConstants();
for (Enum> thisEnum : constants) {
if (thisEnum.toString().equals(stringValue)) {
return thisEnum;
}
}
throw new AerospikeException(String.format("Enum value of \"%s\" not found in type %s", stringValue, clazz.toString()));
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy