import com.google.common.base.Preconditions;
-public final class SimpleNodeWrapper implements NodeWrapper<SimpleNode<?>>, SimpleNode<String> {
+public final class SimpleNodeWrapper implements NodeWrapper<SimpleNode<?>>, SimpleNode<Object> {
- private SimpleNode<String> simpleNode;
+ private SimpleNode<?> simpleNode;
private String localName;
- private String value;
+ private Object value;
private URI namespace;
private QName name;
- public SimpleNodeWrapper(String localName, String value) {
+ public SimpleNodeWrapper(String localName, Object value) {
this.localName = Preconditions.checkNotNull(localName);
this.value = value;
}
}
@Override
- public SimpleNode<String> unwrap(CompositeNode parent) {
+ public SimpleNode<Object> unwrap() {
if (simpleNode == null) {
if (name == null) {
Preconditions.checkNotNull(namespace);
name = new QName(namespace, localName);
}
- simpleNode = NodeFactory.createImmutableSimpleNode(name, parent, value);
+ simpleNode = NodeFactory.createImmutableSimpleNode(name, null, value);
value = null;
namespace = null;
localName = null;
name = null;
}
- return simpleNode;
+ return (SimpleNode<Object>) simpleNode;
}
@Override
public QName getNodeType() {
- return unwrap(null).getNodeType();
+ return unwrap().getNodeType();
}
@Override
public CompositeNode getParent() {
- return unwrap(null).getParent();
+ return unwrap().getParent();
}
@Override
- public String getValue() {
- return unwrap(null).getValue();
+ public Object getValue() {
+ return unwrap().getValue();
}
@Override
public ModifyAction getModificationAction() {
- return unwrap(null).getModificationAction();
+ return unwrap().getModificationAction();
}
@Override
- public MutableSimpleNode<String> asMutable() {
- return unwrap(null).asMutable();
+ public MutableSimpleNode<Object> asMutable() {
+ return unwrap().asMutable();
}
@Override
public QName getKey() {
- return unwrap(null).getKey();
+ return unwrap().getKey();
}
@Override
- public String setValue(String value) {
- return unwrap(null).setValue(value);
+ public Object setValue(Object value) {
+ return unwrap().setValue(value);
}
+
}