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

com.talk2object.plum.interaction.annotation.parameter.helper.EnumParameterWrapper Maven / Gradle / Ivy

package com.talk2object.plum.interaction.annotation.parameter.helper;

import java.util.ArrayList;
import java.util.List;

import com.talk2object.plum.interaction.annotation.parameter.EnumParameter;

public class EnumParameterWrapper extends AbstractParameterWrapper {

	private EnumParameter getEnumParameter() {
		return (EnumParameter) parameter;
	}

	@Override
	Object[] getAnnotatedInitValue() {
		return getEnumParameter().initValue();
	}

	@Override
	Object[] getAnnotatedOptionValues() {
		// not support
		return new Object[0];

	}

	@Override
	public List getOptions() {

		List annotatedOptions = super.getOptions();

		if (annotatedOptions.isEmpty()) {

			List enumValues = new ArrayList();

			for (Object obj : targetClass.getEnumConstants())
				enumValues.add(obj);

			return enumValues;
		} else
			return annotatedOptions;
	}

	@Override
	public Object value2Object(Object value) {
		String strValue = (String) value;

		Class enumClass = targetClass;

		Object enumVal = Enum.valueOf(enumClass, strValue);

		return enumVal;
	}

}