本文整理了Java中org.opendaylight.controller.netconf.util.xml.XmlElement.getDomElement()
方法的一些代码示例,展示了XmlElement.getDomElement()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。XmlElement.getDomElement()
方法的具体详情如下:
包路径:org.opendaylight.controller.netconf.util.xml.XmlElement
类名称:XmlElement
方法名:getDomElement
暂无
代码示例来源:origin: org.opendaylight.controller/netconf-util
public static String toString(final XmlElement xmlElement) {
return toString(xmlElement.getDomElement(), false);
}
代码示例来源:origin: org.opendaylight.controller/mdsal-netconf-connector
private ModifyAction getDefaultOperation(final XmlElement operationElement) throws NetconfDocumentedException {
final NodeList elementsByTagName = operationElement.getDomElement().getElementsByTagName(DEFAULT_OPERATION_KEY);
if(elementsByTagName.getLength() == 0) {
return ModifyAction.MERGE;
} else if(elementsByTagName.getLength() > 1) {
throw new NetconfDocumentedException("Multiple " + DEFAULT_OPERATION_KEY + " elements",
ErrorType.rpc, ErrorTag.unknown_attribute, ErrorSeverity.error);
} else {
return ModifyAction.fromXmlValue(elementsByTagName.item(0).getTextContent());
}
}
代码示例来源:origin: org.opendaylight.controller/netconf-testtool
@Override
protected Element handleWithNoSubsequentOperations(final Document document, final XmlElement operationElement) throws NetconfDocumentedException {
final Element element = XmlUtil.createElement(document, XmlNetconfConstants.DATA_KEY, Optional.<String>absent());
for(final XmlElement e : storage.getConfigList()) {
final Element domElement = e.getDomElement();
element.appendChild(element.getOwnerDocument().importNode(domElement, true));
}
return element;
}
代码示例来源:origin: org.opendaylight.controller/netconf-testtool
@Override
protected Element handleWithNoSubsequentOperations(final Document document, final XmlElement operationElement) throws NetconfDocumentedException {
final Element element = XmlUtil.createElement(document, XmlNetconfConstants.DATA_KEY, Optional.<String>absent());
for(final XmlElement e : storage.getConfigList()) {
final Element domElement = e.getDomElement();
element.appendChild(element.getOwnerDocument().importNode(domElement, true));
}
return element;
}
代码示例来源:origin: org.opendaylight.controller/netconf-notifications-impl
private static Element getPlaceholder(final Document innerResult)
throws NetconfDocumentedException {
final XmlElement rootElement = XmlElement.fromDomElementWithExpected(
innerResult.getDocumentElement(), XmlNetconfConstants.RPC_REPLY_KEY, XmlNetconfConstants.RFC4741_TARGET_NAMESPACE);
return rootElement.getOnlyChildElement(XmlNetconfConstants.DATA_KEY).getDomElement();
}
代码示例来源:origin: org.opendaylight.controller/netconf-impl
private static Document filtered(XmlElement filter, Document originalReplyDocument) throws NetconfDocumentedException {
Document result = XmlUtil.newDocument();
// even if filter is empty, copy /rpc/data
Element rpcReply = originalReplyDocument.getDocumentElement();
Node rpcReplyDst = result.importNode(rpcReply, false);
result.appendChild(rpcReplyDst);
XmlElement dataSrc = XmlElement.fromDomElement(rpcReply).getOnlyChildElement("data", XmlNetconfConstants.RFC4741_TARGET_NAMESPACE);
Element dataDst = (Element) result.importNode(dataSrc.getDomElement(), false);
rpcReplyDst.appendChild(dataDst);
addSubtree(filter, dataSrc, XmlElement.fromDomElement(dataDst));
return result;
}
代码示例来源:origin: org.opendaylight.controller/netconf-impl
private Element getConfigSnapshot(final NetconfOperationRouter opRouter) throws NetconfDocumentedException {
final Document responseDocument = opRouter.onNetconfMessage(
getConfigMessage, null);
XmlElement dataElement;
XmlElement xmlElement = XmlElement.fromDomElementWithExpected(responseDocument.getDocumentElement(),
XmlNetconfConstants.RPC_REPLY_KEY, XmlNetconfConstants.URN_IETF_PARAMS_XML_NS_NETCONF_BASE_1_0);
dataElement = xmlElement.getOnlyChildElement(XmlNetconfConstants.DATA_KEY);
return dataElement.getDomElement();
}
代码示例来源:origin: org.opendaylight.controller/netconf-testtool
.fromDomElement(ncAllFeatureDefinition)
.getChildElements("configfile")) {
ncAllFeatureDefinition.removeChild(configfile.getDomElement());
代码示例来源:origin: org.opendaylight.controller/mdsal-netconf-connector
private Datastore extractTargetParameter(final XmlElement operationElement) throws NetconfDocumentedException {
final NodeList elementsByTagName = operationElement.getDomElement().getElementsByTagName(TARGET_KEY);
// Direct lookup instead of using XmlElement class due to performance
if (elementsByTagName.getLength() == 0) {
throw new NetconfDocumentedException("Missing target element", ErrorType.rpc, ErrorTag.missing_attribute, ErrorSeverity.error);
} else if (elementsByTagName.getLength() > 1) {
throw new NetconfDocumentedException("Multiple target elements", ErrorType.rpc, ErrorTag.unknown_attribute, ErrorSeverity.error);
} else {
final XmlElement targetChildNode = XmlElement.fromDomElement((Element) elementsByTagName.item(0)).getOnlyChildElement();
return Datastore.valueOf(targetChildNode.getName());
}
}
代码示例来源:origin: org.opendaylight.controller/netconf-impl
private static MatchingResult addSubtree2(XmlElement filter, XmlElement src, XmlElement dstParent) throws NetconfDocumentedException {
Document document = dstParent.getDomElement().getOwnerDocument();
MatchingResult matches = matches(src, filter);
if (matches != MatchingResult.NO_MATCH && matches != MatchingResult.CONTENT_MISMATCH) {
Element copied = (Element) document.importNode(src.getDomElement(), filterHasChildren == false);
boolean shouldAppend = filterHasChildren == false;
if (filterHasChildren) { // this implies TAG_MATCH
copied = (Element) document.importNode(src.getDomElement(), true);
dstParent.getDomElement().appendChild(copied);
代码示例来源:origin: org.opendaylight.controller/sal-netconf-connector
@Override
public synchronized DOMNotification toNotification(final NetconfMessage message) {
final Map.Entry<Date, XmlElement> stripped = stripNotification(message);
final QName notificationNoRev;
try {
notificationNoRev = QName.create(stripped.getValue().getNamespace(), stripped.getValue().getName()).withoutRevision();
} catch (final MissingNameSpaceException e) {
throw new IllegalArgumentException("Unable to parse notification " + message + ", cannot find namespace", e);
}
final Collection<NotificationDefinition> notificationDefinitions = mappedNotifications.get(notificationNoRev);
Preconditions.checkArgument(notificationDefinitions.size() > 0,
"Unable to parse notification %s, unknown notification. Available notifications: %s", notificationDefinitions, mappedNotifications.keySet());
// FIXME if multiple revisions for same notifications are present, we should pick the most recent. Or ?
// We should probably just put the most recent notification versions into our map. We can expect that the device sends the data according to the latest available revision of a model.
final NotificationDefinition next = notificationDefinitions.iterator().next();
// We wrap the notification as a container node in order to reuse the parsers and builders for container node
final ContainerSchemaNode notificationAsContainerSchemaNode = NetconfMessageTransformUtil.createSchemaForNotification(next);
final ContainerNode content = parserFactory.getContainerNodeParser().parse(Collections.singleton(stripped.getValue().getDomElement()),
notificationAsContainerSchemaNode);
return new NetconfDeviceNotification(content, stripped.getKey());
}
代码示例来源:origin: org.opendaylight.controller/mdsal-netconf-connector
/**
* Parses xml element rpc input into normalized node or null if rpc does not take any input
* @param oElement rpc xml element
* @param input input container schema node, or null if rpc does not take any input
* @return parsed rpc into normalized node, or null if input schema is null
*/
@Nullable
private NormalizedNode<?, ?> rpcToNNode(final XmlElement oElement, @Nullable final ContainerSchemaNode input) {
return input == null ? null : DomToNormalizedNodeParserFactory
.getInstance(DomUtils.defaultValueCodecProvider(), schemaContext.getCurrentContext())
.getContainerNodeParser()
.parse(Collections.singletonList(oElement.getDomElement()), input);
}
代码示例来源:origin: org.opendaylight.controller/mdsal-netconf-connector
private NormalizedNode filterToNormalizedNode(XmlElement element, DataSchemaNode schemaNode) throws NetconfDocumentedException {
DomToNormalizedNodeParserFactory parserFactory = DomToNormalizedNodeParserFactory
.getInstance(DomUtils.defaultValueCodecProvider(), schemaContext.getCurrentContext());
final NormalizedNode parsedNode;
if (schemaNode instanceof ContainerSchemaNode) {
parsedNode = parserFactory.getContainerNodeParser().parse(Collections.singletonList(element.getDomElement()), (ContainerSchemaNode) schemaNode);
} else if (schemaNode instanceof ListSchemaNode) {
parsedNode = parserFactory.getMapNodeParser().parse(Collections.singletonList(element.getDomElement()), (ListSchemaNode) schemaNode);
} else {
throw new NetconfDocumentedException("Schema node of the top level element is not an instance of container or list",
ErrorType.application, ErrorTag.unknown_element, ErrorSeverity.error);
}
return parsedNode;
}
代码示例来源:origin: org.opendaylight.controller/mdsal-netconf-connector
private NormalizedNode parseIntoNormalizedNode(final DataSchemaNode schemaNode, final XmlElement element,
final DomToNormalizedNodeParserFactory.BuildingStrategyProvider editOperationStrategyProvider) {
if (schemaNode instanceof ContainerSchemaNode) {
return DomToNormalizedNodeParserFactory
.getInstance(DomUtils.defaultValueCodecProvider(), schemaContext.getCurrentContext(), editOperationStrategyProvider)
.getContainerNodeParser()
.parse(Collections.singletonList(element.getDomElement()), (ContainerSchemaNode) schemaNode);
} else if (schemaNode instanceof ListSchemaNode) {
return DomToNormalizedNodeParserFactory
.getInstance(DomUtils.defaultValueCodecProvider(), schemaContext.getCurrentContext(), editOperationStrategyProvider)
.getMapNodeParser()
.parse(Collections.singletonList(element.getDomElement()), (ListSchemaNode) schemaNode);
} else {
//this should never happen since edit-config on any other node type should not be possible nor makes sense
LOG.debug("DataNode from module is not ContainerSchemaNode nor ListSchemaNode, aborting..");
}
throw new UnsupportedOperationException("implement exception if parse fails");
}
代码示例来源:origin: org.opendaylight.controller/config-netconf-connector
private Element toXml(Document doc, Object result, AttributeIfc returnType, String namespace, String elementName) throws NetconfDocumentedException {
AttributeMappingStrategy<?, ? extends OpenType<?>> mappingStrategy = new ObjectMapper().prepareStrategy(returnType);
Optional<?> mappedAttributeOpt = mappingStrategy.mapAttribute(result);
Preconditions.checkState(mappedAttributeOpt.isPresent(), "Unable to map return value %s as %s", result, returnType.getOpenType());
// FIXME: multiple return values defined as leaf-list and list in yang should not be wrapped in output xml element,
// they need to be appended directly under rpc-reply element
//
// Either allow List of Elements to be returned from NetconfOperation or
// pass reference to parent output xml element for netconf operations to
// append result(s) on their own
Element tempParent = XmlUtil.createElement(doc, "output", Optional.of(XmlNetconfConstants.URN_IETF_PARAMS_XML_NS_NETCONF_BASE_1_0));
new ObjectXmlWriter().prepareWritingStrategy(elementName, returnType, doc).writeElement(tempParent, namespace, mappedAttributeOpt.get());
XmlElement xmlElement = XmlElement.fromDomElement(tempParent);
return xmlElement.getChildElements().size() > 1 ? tempParent : xmlElement.getOnlyChildElement().getDomElement();
}
内容来源于网络,如有侵权,请联系作者删除!