- private XmlElement getConfigElement(final XmlElement operationElement) throws NetconfDocumentedException{
- final Optional<XmlElement> configChildNode = operationElement.getOnlyChildElementOptionally(CONFIG_KEY);
- if (!configChildNode.isPresent()) {
- throw new NetconfDocumentedException("Can't get child element with name: " + CONFIG_KEY,
- ErrorType.application,
- ErrorTag.unknown_element,
+ 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());
+ }
+
+ }
+
+ private XmlElement getElement(final XmlElement operationElement, String elementName) throws NetconfDocumentedException {
+ final Optional<XmlElement> childNode = operationElement.getOnlyChildElementOptionally(elementName);
+ if (!childNode.isPresent()) {
+ throw new NetconfDocumentedException(elementName + " element is missing",
+ ErrorType.protocol,
+ ErrorTag.missing_element,