blob: b77a89f0b8d100bcab21abb194fb46466a3da5ae [file] [log] [blame]
/*
* See LICENSE file in distribution for copyright and licensing information.
*/
package org.yaml.snakeyaml.issues.issue9;
import org.yaml.snakeyaml.constructor.Constructor;
import org.yaml.snakeyaml.nodes.Node;
import org.yaml.snakeyaml.nodes.ScalarNode;
public class BeanConstructor extends Constructor {
public BeanConstructor() {
super(BeanHolder.class);
// TODO the tag may start with !!
// yamlConstructors.put("tag:yaml.org,2002:org.yaml.snakeyaml.issues.issue9.Bean1",
yamlConstructors.put("tag:yaml.org,2002:org.yaml.snakeyaml.issues.issue9.Bean1",
new Bean1ScalarConstructor());
yamlConstructors.put("tag:yaml.org,2002:org.yaml.snakeyaml.issues.issue9.BeanHolder",
new BeanHolderScalarConstructor());
}
private class Bean1ScalarConstructor extends ConstructScalar {
@Override
public Object construct(Node node) {
ScalarNode snode = (ScalarNode) node;
if (snode.getValue().length() == 0) {
return new Bean1();
} else {
return new Bean1(Integer.parseInt(snode.getValue()));
}
}
}
private class BeanHolderScalarConstructor extends ConstructScalar {
@Override
public Object construct(Node node) {
return new BeanHolder();
}
}
}