- if (!(actualPath.isEmpty())) {
- final Builder parent = actualPath.getFirst();
- if (parent instanceof DataNodeContainerBuilder) {
- if (parent instanceof AugmentationSchemaBuilder) {
- usesBuilder.setAugmenting(true);
- }
- ((DataNodeContainerBuilder) parent).addUsesNode(usesBuilder);
- } else {
- throw new YangParseException(name, line,
- "Unresolved parent of uses " + groupingPathStr);
+ public UsesNodeBuilder addUsesNode(final String groupingPathStr, final List<String> parentPath, final int line) {
+ final List<String> pathToUses = new ArrayList<String>(parentPath);
+ Builder parent = null;
+ if (!actualPath.isEmpty()) {
+ parent = actualPath.getFirst();
+ }
+ if (parent != null && !(parent instanceof DataNodeContainerBuilder)) {
+ throw new YangParseException(name, line, "Unresolved parent of uses " + groupingPathStr);
+ }
+ final UsesNodeBuilder usesBuilder;
+ if (parent == null) {
+ usesBuilder = new UsesNodeBuilderImpl(groupingPathStr, line, this);
+ } else {
+ usesBuilder = new UsesNodeBuilderImpl(groupingPathStr, line, (DataNodeContainerBuilder) parent);
+ if (parent instanceof AugmentationSchemaBuilder) {
+ usesBuilder.setAugmenting(true);