checkState(augSchema.targetPath !== null,
"Augmentation Schema does not contain Target Path (Target Path is NULL).");
- processUsesAugments(augSchema, module);
-\r
+ processUsesAugments(augSchema, module);\r
val targetPath = augSchema.targetPath;
var targetSchemaNode = findDataSchemaNode(schemaContext, targetPath);\r
if (targetSchemaNode instanceof DataSchemaNode && (targetSchemaNode as DataSchemaNode).isAddedByUses()) {
}\r
\r
if (targetSchemaNode == null) {\r
- throw new IllegalArgumentException("augment target not found")\r
+ throw new IllegalArgumentException("augment target not found: " + targetPath)\r
}\r
if (targetSchemaNode !== null) {
return null
}
- var String currentName = node.QName.localName\r
+ var QName currentName = node.QName\r
var Object currentNode = node
var Object parent = node;\r
- val tmpPath = new ArrayList<String>()\r
+ val tmpPath = new ArrayList<QName>()\r
val tmpTree = new ArrayList<SchemaNode>()\r
var AugmentationSchema augment = null;
tmpTree.add(currentNode as SchemaNode)\r
augment = findNodeInAugment((parent as AugmentationTarget).availableAugmentations, currentName);
if (augment == null) {
- currentName = (parent as DataSchemaNode).QName.localName;\r
+ currentName = (parent as DataSchemaNode).QName\r
currentNode = parent
}
}
var DataSchemaNode result = null;
for (name : tmpPath) {
if (actualParent instanceof DataNodeContainer) {
- result = (actualParent as DataNodeContainer).getDataChildByName(name);
- actualParent = (actualParent as DataNodeContainer).getDataChildByName(name);
+ result = (actualParent as DataNodeContainer).getDataChildByName(name.localName);
+ actualParent = (actualParent as DataNodeContainer).getDataChildByName(name.localName);
} else {
if (actualParent instanceof ChoiceNode) {
- result = (actualParent as ChoiceNode).getCaseNodeByName(name);
- actualParent = (actualParent as ChoiceNode).getCaseNodeByName(name);
+ result = (actualParent as ChoiceNode).getCaseNodeByName(name.localName);
+ actualParent = (actualParent as ChoiceNode).getCaseNodeByName(name.localName);
}
}
}
}
}
- private def AugmentationSchema findNodeInAugment(Collection<AugmentationSchema> augments, String name) {
- for (augment : augments) {
- if (augment.getDataChildByName(name) != null) {
+ private def AugmentationSchema findNodeInAugment(Collection<AugmentationSchema> augments, QName name) {
+ for (augment : augments) {\r
+ val DataSchemaNode node = augment.getDataChildByName(name);\r
+ if (node != null) {
return augment;
}
}
return result\r
} else {\r
var DataSchemaNode result = null;\r
- var String currentName = node.QName.localName\r
- var tmpPath = new ArrayList<String>()\r
+ var QName currentName = node.QName\r
+ var tmpPath = new ArrayList<QName>()\r
var Object parent = null\r
val SchemaPath sp = node.path
val dataNodeParent = parent as DataNodeContainer;\r
for (u : dataNodeParent.uses) {\r
if (result == null) {\r
- result = getResultFromUses(u, currentName)\r
+ result = getResultFromUses(u, currentName.localName)\r
}\r
}\r
if (result == null) {
- currentName = (parent as SchemaNode).QName.localName
- if (parent instanceof DataSchemaNode) {
- val SchemaPath nodeSp = (parent as DataSchemaNode).path
+ currentName = (parent as SchemaNode).QName
+ if (parent instanceof SchemaNode) {
+ val SchemaPath nodeSp = (parent as SchemaNode).path
val List<QName> nodeNames = nodeSp.path
val List<QName> nodeNewNames = new ArrayList(nodeNames)
nodeNewNames.remove(nodeNewNames.size - 1)
List<SchemaNode> dataTree) {\r
\r
var DataSchemaNode result = null;
- var String currentName = node.QName.localName
- var tmpPath = new ArrayList<String>()\r
+ var QName currentName = node.QName
+ var tmpPath = new ArrayList<QName>()\r
tmpPath.add(currentName)\r
var int i = 1;\r
var Object parent = null
parent = parentNode
} else {
parent = dataTree.get(dataTree.size - (i+1))
- tmpPath.add((parent as SchemaNode).QName.localName);
+ tmpPath.add((parent as SchemaNode).QName)
}\r
val dataNodeParent = parent as DataNodeContainer;
for (u : dataNodeParent.uses) {
if (result == null) {\r
- result = getResultFromUses(u, currentName)
+ result = getResultFromUses(u, currentName.localName)
}
}
if (result == null) {
i = i + 1\r
- currentName = (parent as SchemaNode).QName.localName
+ currentName = (parent as SchemaNode).QName
}
} while (result == null);
\r
return gr.getDataChildByName(currentName)
}\r
\r
- private def getTargetNode(List<String> tmpPath, DataSchemaNode node) {
+ private def getTargetNode(List<QName> tmpPath, DataSchemaNode node) {
var DataSchemaNode result = node
if (tmpPath.size == 1) {
if (result != null && result.addedByUses) {
Collections.reverse(tmpPath);
tmpPath.remove(0);
- for (name : tmpPath) {
- newParent = (newParent as DataNodeContainer).getDataChildByName(name);
+ for (name : tmpPath) {\r
+ // searching by local name is must, because node has different namespace in its original location
+ newParent = (newParent as DataNodeContainer).getDataChildByName(name.localName);
}
if (newParent != null && newParent.addedByUses) {
newParent = findOriginal(newParent);