All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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> clazz;
	
	public EnumMapper(Class> 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