import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
+
import java.net.URI;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
+
import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.common.QNameModule;
import org.opendaylight.yangtools.yang.model.api.AugmentationSchema;
import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
import org.opendaylight.yangtools.yang.model.api.GroupingDefinition;
import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode;
import org.opendaylight.yangtools.yang.model.api.UsesNode;
import org.opendaylight.yangtools.yang.model.util.RevisionAwareXPathImpl;
-import org.opendaylight.yangtools.yang.parser.builder.api.AbstractDataNodeContainerBuilder;
import org.opendaylight.yangtools.yang.parser.builder.api.AugmentationSchemaBuilder;
import org.opendaylight.yangtools.yang.parser.builder.api.Builder;
import org.opendaylight.yangtools.yang.parser.builder.api.DataSchemaNodeBuilder;
import org.opendaylight.yangtools.yang.parser.builder.api.GroupingBuilder;
+import org.opendaylight.yangtools.yang.parser.builder.api.UnknownSchemaNodeBuilder;
import org.opendaylight.yangtools.yang.parser.builder.api.TypeDefinitionBuilder;
import org.opendaylight.yangtools.yang.parser.builder.api.UsesNodeBuilder;
-import org.opendaylight.yangtools.yang.parser.util.ParserUtils;
+import org.opendaylight.yangtools.yang.parser.builder.util.AbstractDataNodeContainerBuilder;
import org.opendaylight.yangtools.yang.parser.util.YangParseException;
public final class AugmentationSchemaBuilderImpl extends AbstractDataNodeContainerBuilder implements
private boolean resolved;
private AugmentationSchemaBuilder copyOf;
- public AugmentationSchemaBuilderImpl(final String moduleName, final int line, final String augmentTargetStr, int order) {
+ public AugmentationSchemaBuilderImpl(final String moduleName, final int line, final String augmentTargetStr, final int order) {
super(moduleName, line, null);
this.order = order;
this.augmentTargetStr = augmentTargetStr;
- targetPath = ParserUtils.parseXPathString(augmentTargetStr);
+ targetPath = BuilderUtils.parseXPathString(augmentTargetStr);
}
@Override
}
if (parent instanceof UsesNodeBuilder) {
- ModuleBuilder mb = ParserUtils.getParentModule(this);
+ final ModuleBuilder mb = BuilderUtils.getParentModule(this);
+ final QNameModule qm = QNameModule.create(mb.getNamespace(), mb.getRevision());
+
List<QName> newPath = new ArrayList<>();
- List<QName> parsedPath = targetPath.getPath();
- for (QName name : parsedPath) {
- newPath.add(new QName(mb.getNamespace(), mb.getRevision(), name.getPrefix(), name.getLocalName()));
+ for (QName name : targetPath.getPathFromRoot()) {
+ newPath.add(QName.create(qm, name.getPrefix(), name.getLocalName()));
}
instance.targetPath = SchemaPath.create(newPath, false);
} else {
// CHILD NODES
for (DataSchemaNodeBuilder node : addedChildNodes) {
- childNodes.add(node.build());
+ childNodes.put(node.getQName(), node.build());
}
- instance.childNodes = ImmutableSet.copyOf(childNodes);
+ instance.childNodes = ImmutableSet.copyOf(childNodes.values());
// USES
for (UsesNodeBuilder builder : addedUsesNodes) {
}
@Override
- public int compareTo(AugmentationSchemaImpl o) {
- Iterator<QName> thisIt = this.targetPath.getPath().iterator();
- Iterator<QName> otherIt = o.getTargetPath().getPath().iterator();
+ public int compareTo(final AugmentationSchemaImpl o) {
+ Iterator<QName> thisIt = this.targetPath.getPathFromRoot().iterator();
+ Iterator<QName> otherIt = o.getTargetPath().getPathFromRoot().iterator();
while (thisIt.hasNext()) {
if (otherIt.hasNext()) {
int comp = thisIt.next().compareTo(otherIt.next());