package alien4cloud.tosca.parser; import org.springframework.beans.BeanWrapper; import org.yaml.snakeyaml.nodes.Node; public class DefferedParsingValueExecutor extends AbstractTypeNodeParser implements Runnable, Comparable<DefferedParsingValueExecutor> { private final String key; private final BeanWrapper target; private final ParsingContextExecution context; private final MappingTarget mappingTarget; private final Node valueNode; private int deferredOrder; public DefferedParsingValueExecutor(String key, BeanWrapper target, ParsingContextExecution context, MappingTarget mappingTarget, Node valueNode) { this(key, target, context, mappingTarget, valueNode, 0); } public DefferedParsingValueExecutor(String key, BeanWrapper target, ParsingContextExecution context, MappingTarget mappingTarget, Node valueNode, int deferredOrder) { super(""); this.key = key; this.target = target; this.context = context; this.mappingTarget = mappingTarget; this.valueNode = valueNode; this.deferredOrder = deferredOrder; } public String getKey() { return key; } public int getDeferredOrder() { return deferredOrder; } public void setDeferredOrder(int deferredOrder) { this.deferredOrder = deferredOrder; } @Override public int compareTo(DefferedParsingValueExecutor o) { return Integer.compare(deferredOrder, o.getDeferredOrder()); } @Override public void run() { parseAndSetValue(target, key, valueNode, context, mappingTarget); } }