There are multiple places where we are creating a well-known QName
with a new namespace. Use QName.withModule() so we do not end up
checking localName over and over.
Change-Id: I932bf3762bfb6ae201e6b309f8a7d95887b99b00
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit
c88bb5b55f973303e4a6b04aced3ad10fdd1b96d)
import org.opendaylight.yangtools.yang.binding.util.RpcServiceInvoker;
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.common.RpcResult;
+import org.opendaylight.yangtools.yang.common.YangConstants;
import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
import org.opendaylight.yangtools.yang.model.api.SchemaPath;
this.codec = Preconditions.checkNotNull(codec);
this.delegate = Preconditions.checkNotNull(delegate);
- inputQname = QName.create(BindingReflections.getQNameModule(type), "input").intern();
+ inputQname = YangConstants.operationInputQName(BindingReflections.getQNameModule(type)).intern();
}
@Nonnull
import org.opendaylight.yangtools.yang.common.RpcError.ErrorSeverity;
import org.opendaylight.yangtools.yang.common.RpcResult;
import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
+import org.opendaylight.yangtools.yang.common.YangConstants;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
import org.opendaylight.yangtools.yang.model.api.SchemaPath;
class RpcServiceAdapter implements InvocationHandler {
-
private final ImmutableMap<Method, RpcInvocationStrategy> rpcNames;
private final Class<? extends RpcService> type;
private final BindingToNormalizedNodeCodec codec;
final NormalizedNode<?, ?> domData = input.getResult();
final DataObject bindingResult;
if (domData != null) {
- final SchemaPath rpcOutput = rpc.createChild(QName.create(rpc.getLastComponent(), "output"));
+ final SchemaPath rpcOutput = rpc.createChild(YangConstants.operationOutputQName(
+ rpc.getLastComponent().getModule()));
bindingResult = codec.fromNormalizedNodeRpcData(rpcOutput, (ContainerNode) domData);
} else {
bindingResult = null;
}
} else {
// We are looking for instantiation via uses in other module
- final QName instantiedName = QName.create(namespace(), origDef.getQName().getLocalName());
+ final QName instantiedName = origDef.getQName().withModule(namespace());
final DataSchemaNode potential = getSchema().getDataChildByName(instantiedName);
// We check if it is really instantiated from same
// definition as class was derived
SchemaNode result = targetGrouping;
for (final QName node : targetPath.getPathFromRoot()) {
if (result instanceof DataNodeContainer) {
- final QName resultNode = QName.create(result.getQName().getModule(), node.getLocalName());
+ final QName resultNode = node.withModule(result.getQName().getModule());
result = ((DataNodeContainer) result).getDataChildByName(resultNode);
} else if (result instanceof ChoiceSchemaNode) {
result = ((ChoiceSchemaNode) result).getCaseNodeByName(node.getLocalName());
if(ChildOf.class.isAssignableFrom(currentArg.getType()) && BindingReflections.isAugmentationChild(currentArg.getType())) {
currentQName = BindingReflections.findQName(currentArg.getType());
} else {
- currentQName = QName.create(currentQName, BindingReflections.findQName(currentArg.getType()).getLocalName());
+ currentQName = BindingReflections.findQName(currentArg.getType()).withModule(currentQName.getModule());
}
Optional<DataNodeContainer> potential = findDataNodeContainer(currentContainer.get(), currentQName);
if (potential.isPresent()) {
import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.base.Preconditions.checkState;
+
import com.google.common.base.Optional;
import com.google.common.cache.CacheBuilder;
import com.google.common.cache.CacheLoader;
import org.opendaylight.yangtools.yang.binding.YangModuleInfo;
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.common.QNameModule;
+import org.opendaylight.yangtools.yang.common.YangConstants;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
} else if (isRpcType(key)) {
final String className = key.getSimpleName();
if (className.endsWith(BindingMapping.RPC_OUTPUT_SUFFIX)) {
- return QName.create(module, "output").intern();
- } else {
- return QName.create(module, "input").intern();
+ return YangConstants.operationOutputQName(module.getModule()).intern();
}
+
+ return YangConstants.operationInputQName(module.getModule()).intern();
}
/*
* Fallback for Binding types which do not have QNAME field
throw new IllegalArgumentException("Supplied class " + key + "is not derived from YANG.");
}
}
-
}
/**