- }
-
- /**
- * Add nodes defined in target grouping to current context.
- *
- * @param module
- * current module
- * @param usesNode
- * @param targetGrouping
- */
- private void processUsesNode(final ModuleBuilder module, final UsesNodeBuilder usesNode,
- final GroupingBuilder targetGrouping) {
- DataNodeContainerBuilder parent = usesNode.getParent();
- URI namespace = null;
- Date revision = null;
- String prefix = null;
- if (parent instanceof ModuleBuilder || parent instanceof AugmentationSchemaBuilder) {
- namespace = module.getNamespace();
- revision = module.getRevision();
- prefix = module.getPrefix();
- } else {
- QName parentQName = parent.getQName();
- namespace = parentQName.getNamespace();
- revision = parentQName.getRevision();
- prefix = parentQName.getPrefix();
- }
- SchemaPath parentPath = parent.getPath();
- // child nodes
- Set<DataSchemaNodeBuilder> newChildren = processUsesDataSchemaNode(usesNode,
- targetGrouping.getChildNodeBuilders(), parentPath, namespace, revision, prefix);
- usesNode.getTargetChildren().addAll(newChildren);
- // groupings
- Set<GroupingBuilder> newGroupings = processUsesGroupings(targetGrouping.getGroupingBuilders(), parentPath,
- namespace, revision, prefix);
- usesNode.getTargetGroupings().addAll(newGroupings);
- // typedefs
- Set<TypeDefinitionBuilder> newTypedefs = processUsesTypedefs(targetGrouping.getTypeDefinitionBuilders(),
- parentPath, namespace, revision, prefix);
- usesNode.getTargetTypedefs().addAll(newTypedefs);
- // unknown nodes
- List<UnknownSchemaNodeBuilder> newUnknownNodes = processUsesUnknownNodes(
- targetGrouping.getUnknownNodeBuilders(), parentPath, namespace, revision, prefix);
- usesNode.getTargetUnknownNodes().addAll(newUnknownNodes);
- }
-
- /**
- * Check if target grouping contains uses nodes and if it does, merge
- * current uses with them.
- *
- * @param module
- * @param usesNode
- * @param targetGrouping
- */
- private void processUsesTarget(final ModuleBuilder module, final UsesNodeBuilder usesNode,
- final GroupingBuilder targetGrouping) {
- DataNodeContainerBuilder parent = usesNode.getParent();
- URI namespace = null;
- Date revision = null;
- String prefix = null;
- if (parent instanceof ModuleBuilder || parent instanceof AugmentationSchemaBuilder) {
- namespace = module.getNamespace();
- revision = module.getRevision();
- prefix = module.getPrefix();
- } else {
- QName parentQName = parent.getQName();
- namespace = parentQName.getNamespace();
- revision = parentQName.getRevision();
- prefix = parentQName.getPrefix();
- }
- SchemaPath parentPath = parent.getPath();
-
- for (UsesNodeBuilder unb : targetGrouping.getUses()) {
- Set<DataSchemaNodeBuilder> newChildren = processUsesDataSchemaNode(usesNode, unb.getTargetChildren(),
- parentPath, namespace, revision, prefix);
- usesNode.getTargetChildren().addAll(newChildren);
-
- Set<GroupingBuilder> newGroupings = processUsesGroupings(unb.getTargetGroupings(), parentPath, namespace,
- revision, prefix);
- usesNode.getTargetGroupings().addAll(newGroupings);
-
- Set<TypeDefinitionBuilder> newTypedefs = processUsesTypedefs(unb.getTargetTypedefs(), parentPath,
- namespace, revision, prefix);
- usesNode.getTargetTypedefs().addAll(newTypedefs);
-
- List<UnknownSchemaNodeBuilder> newUnknownNodes = processUsesUnknownNodes(unb.getTargetUnknownNodes(),
- parentPath, namespace, revision, prefix);
- usesNode.getTargetUnknownNodes().addAll(newUnknownNodes);