import org.opendaylight.yangtools.yang.parser.builder.api.AugmentationSchemaBuilder;\r
import org.opendaylight.yangtools.yang.parser.builder.api.Builder;\r
import org.opendaylight.yangtools.yang.parser.builder.api.DataNodeContainerBuilder;\r
+import org.opendaylight.yangtools.yang.parser.builder.api.DataSchemaNodeBuilder;\r
+import org.opendaylight.yangtools.yang.parser.builder.api.GroupingBuilder;\r
import org.opendaylight.yangtools.yang.parser.builder.api.SchemaNodeBuilder;\r
+import org.opendaylight.yangtools.yang.parser.builder.api.TypeDefinitionBuilder;\r
import org.opendaylight.yangtools.yang.parser.builder.api.UsesNodeBuilder;\r
import org.opendaylight.yangtools.yang.parser.util.RefineHolder;\r
import org.opendaylight.yangtools.yang.parser.util.YangParseException;\r
private final List<SchemaNodeBuilder> refineBuilders = new ArrayList<SchemaNodeBuilder>();\r
private final List<RefineHolder> refines = new ArrayList<RefineHolder>();\r
\r
+ private final Set<DataSchemaNodeBuilder> targetChildren = new HashSet<>();\r
+ private final Set<GroupingBuilder> targetGroupings = new HashSet<>();\r
+ private final Set<TypeDefinitionBuilder> targetTypedefs = new HashSet<>();\r
+ private final List<UnknownSchemaNodeBuilder> targetUnknownNodes = new ArrayList<>();\r
+\r
public UsesNodeBuilderImpl(final String moduleName, final int line, final String groupingName) {\r
super(moduleName, line);\r
this.groupingName = groupingName;\r
}\r
\r
@Override\r
- public void addRefineNode(SchemaNodeBuilder refineNode) {\r
+ public void addRefineNode(DataSchemaNodeBuilder refineNode) {\r
+ // add to refine nodes\r
refineBuilders.add(refineNode);\r
+ // replace in target children\r
+ DataSchemaNodeBuilder toRemove = null;\r
+ for(DataSchemaNodeBuilder child : targetChildren) {\r
+ if(child.getQName().equals(refineNode.getQName())) {\r
+ toRemove = child;\r
+ break;\r
+ }\r
+ }\r
+ targetChildren.remove(toRemove);\r
+ targetChildren.add(refineNode);\r
}\r
\r
@Override\r
refines.add(refine);\r
}\r
\r
+ @Override\r
+ public Set<DataSchemaNodeBuilder> getTargetChildren() {\r
+ return targetChildren;\r
+ }\r
+\r
+ @Override\r
+ public Set<GroupingBuilder> getTargetGroupings() {\r
+ return targetGroupings;\r
+ }\r
+\r
+ @Override\r
+ public Set<TypeDefinitionBuilder> getTargetTypedefs() {\r
+ return targetTypedefs;\r
+ }\r
+\r
+ @Override\r
+ public List<UnknownSchemaNodeBuilder> getTargetUnknownNodes() {\r
+ return targetUnknownNodes;\r
+ }\r
+\r
@Override\r
public int hashCode() {\r
final int prime = 31;\r