package alien4cloud.json.deserializer;
import com.fasterxml.jackson.databind.node.JsonNodeType;
import org.alien4cloud.tosca.model.definitions.*;
/**
* Custom deserializer to handle multiple operation parameters types.
*/
public class OperationParameterDeserializer extends AbstractDiscriminatorPolymorphicDeserializer<IValue> {
public OperationParameterDeserializer() {
super(IValue.class);
addToRegistry("type", PropertyDefinition.class);
addToRegistry("function", FunctionPropertyValue.class);
addToRegistry("function_concat", ConcatPropertyValue.class);
addToRegistry("value", JsonNodeType.STRING.toString(), ScalarPropertyValue.class);
addToRegistry("value", JsonNodeType.ARRAY.toString(), ListPropertyValue.class);
addToRegistry("value", JsonNodeType.OBJECT.toString(), ComplexPropertyValue.class);
setValueStringClass(ScalarPropertyValue.class);
}
}