*/
package org.opendaylight.yangtools.yang.parser.builder.util;
-import java.net.URI;
-import java.util.Date;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.model.api.DataNodeContainer;
import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
+import org.opendaylight.yangtools.yang.model.api.DocumentedNode;
import org.opendaylight.yangtools.yang.model.api.GroupingDefinition;
import org.opendaylight.yangtools.yang.model.api.SchemaPath;
import org.opendaylight.yangtools.yang.model.api.TypeDefinition;
public abstract class AbstractDocumentedDataNodeContainerBuilder extends AbstractDocumentedNodeBuilder implements DataNodeContainerBuilder {
protected final QName qname;
- protected final Map<QName, DataSchemaNode> childNodes = new TreeMap<>();
+ private final Map<QName, DataSchemaNode> childNodes = new TreeMap<>();
private final Set<DataSchemaNodeBuilder> addedChildNodes = new HashSet<>();
private final Set<GroupingDefinition> groupings = new TreeSet<>(Comparators.SCHEMA_NODE_COMP);
this.qname = qname;
}
- public AbstractDocumentedDataNodeContainerBuilder(final String moduleName, final int line, final QName qname, final SchemaPath path, final DataNodeContainer base) {
+ protected AbstractDocumentedDataNodeContainerBuilder(final String moduleName, final int line, final QName qname, final SchemaPath path, final DataNodeContainer base) {
super(moduleName, line);
this.qname = qname;
- URI ns = qname.getNamespace();
- Date rev = qname.getRevision();
- String pref = qname.getPrefix();
-
// We do copy of child nodes with namespace change
// FIXME: Copy should be part of builder API so impl we prevent
// cyclic dependencies and each builder carries its own semantic for copy.
- addedChildNodes.addAll(BuilderUtils.wrapChildNodes(moduleName, line, base.getChildNodes(), path, ns, rev, pref));
- addedGroupings.addAll(BuilderUtils.wrapGroupings(moduleName, line, base.getGroupings(), path, ns, rev, pref));
- addedTypedefs.addAll(BuilderUtils.wrapTypedefs(moduleName, line, base, path, ns, rev, pref));
+ addedChildNodes.addAll(BuilderUtils.wrapChildNodes(moduleName, line, base.getChildNodes(), path, qname));
+ addedGroupings.addAll(BuilderUtils.wrapGroupings(moduleName, line, base.getGroupings(), path, qname));
+ addedTypedefs.addAll(BuilderUtils.wrapTypedefs(moduleName, line, base, path, qname));
// FIXME: unkownSchemaNodes should be available in DataNodeContainer
-// addedUnknownNodes.addAll(BuilderUtils.wrapUnknownNodes(moduleName, line, base.getUnknownSchemaNodes(), path, ns,
-// rev, pref));
+ // addedUnknownNodes.addAll(BuilderUtils.wrapUnknownNodes(moduleName,
+ // line, base.getUnknownSchemaNodes(), path, qname));
usesNodes.addAll(base.getUses());
+
+ if (base instanceof DocumentedNode) {
+ DocumentedNode node = (DocumentedNode) base;
+ setDescription(node.getDescription());
+ setReference(node.getReference());
+ setStatus(node.getStatus());
+ }
}
@Override