* terms of the Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*/
-package org.opendaylight.yangtools.yang.data.impl.codec;
+package org.opendaylight.yangtools.yang.data.impl.codec.xml;
import com.google.common.base.Preconditions;
import com.google.common.base.Splitter;
import org.opendaylight.yangtools.yang.model.api.SchemaContext;
import org.w3c.dom.Element;
-public class InstanceIdentifierForXmlCodec {
+public final class InstanceIdentifierForXmlCodec {
private static final Pattern PREDICATE_PATTERN = Pattern.compile("\\[(.*?)\\]");
private static final Splitter SLASH_SPLITTER = Splitter.on('/');
private static final Splitter COLON_SPLITTER = Splitter.on(':');
private static final String SQUOTE = "'";
private static final String DQUOTE = "\"";
- public static final InstanceIdentifierForXmlCodec INSTANCE_IDENTIFIER_FOR_XML_CODEC = new InstanceIdentifierForXmlCodec();
+ private InstanceIdentifierForXmlCodec() {
- protected InstanceIdentifierForXmlCodec() {
}
- public InstanceIdentifier deserialize(final Element element, final SchemaContext schemaContext) {
+ public static InstanceIdentifier deserialize(final Element element, final SchemaContext schemaContext) {
Preconditions.checkNotNull(element, "Value of element for deserialization can't be null");
Preconditions.checkNotNull(schemaContext,
"Schema context for deserialization of instance identifier type can't be null");
return InstanceIdentifier.create(result);
}
- public Element serialize(final InstanceIdentifier data, final Element element) {
+ public static Element serialize(final InstanceIdentifier data, final Element element) {
Preconditions.checkNotNull(data, "Variable should contain instance of instance identifier and can't be null");
Preconditions.checkNotNull(element, "DOM element can't be null");
Map<String, String> prefixes = new HashMap<>();
return predicateStartIndex == -1 ? pathPart : pathPart.substring(0, predicateStartIndex);
}
- private PathArgument toPathArgument(final String xPathArgument, final Element element, final SchemaContext schemaContext) {
+ private static PathArgument toPathArgument(final String xPathArgument, final Element element, final SchemaContext schemaContext) {
final QName mainQName = toIdentity(xPathArgument, element, schemaContext);
// predicates
}
- public QName toIdentity(final String xPathArgument, final Element element, final SchemaContext schemaContext) {
+ public static QName toIdentity(final String xPathArgument, final Element element, final SchemaContext schemaContext) {
final String xPathPartTrimmed = getIdAndPrefixAsStr(xPathArgument).trim();
final Iterator<String> it = COLON_SPLITTER.split(xPathPartTrimmed).iterator();
package org.opendaylight.yangtools.yang.data.impl.codec.xml;
import static com.google.common.base.Preconditions.checkState;
-import static org.opendaylight.yangtools.yang.data.impl.codec.InstanceIdentifierForXmlCodec.INSTANCE_IDENTIFIER_FOR_XML_CODEC;
+
+import com.google.common.base.Function;
+import com.google.common.base.Objects;
+import com.google.common.base.Optional;
+import com.google.common.base.Preconditions;
+import com.google.common.base.Strings;
+import com.google.common.collect.ImmutableList;
import java.net.URI;
import java.util.List;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
-import com.google.common.base.Function;
-import com.google.common.base.Objects;
-import com.google.common.base.Optional;
-import com.google.common.base.Preconditions;
-import com.google.common.base.Strings;
-import com.google.common.collect.ImmutableList;
-
public class XmlDocumentUtils {
private static class ElementWithSchemaContext {
}
} else if (baseType instanceof InstanceIdentifierTypeDefinition) {
if (nodeValue instanceof InstanceIdentifier) {
- INSTANCE_IDENTIFIER_FOR_XML_CODEC.serialize((InstanceIdentifier)nodeValue,element);
+ InstanceIdentifierForXmlCodec.serialize((InstanceIdentifier)nodeValue,element);
} else {
Object value = nodeValue;
logger.debug("Value of {}:{} is not instance of InstanceIdentifier but is {}", baseType.getQName()
}
if (schema.getType() instanceof org.opendaylight.yangtools.yang.model.util.InstanceIdentifier) {
- value = INSTANCE_IDENTIFIER_FOR_XML_CODEC.deserialize(xmlElement,schemaCtx);
+ value = InstanceIdentifierForXmlCodec.deserialize(xmlElement,schemaCtx);
} else if(schema.getType() instanceof IdentityrefTypeDefinition){
- value = INSTANCE_IDENTIFIER_FOR_XML_CODEC.toIdentity(xmlElement.getTextContent(), xmlElement, schemaCtx);
+ value = InstanceIdentifierForXmlCodec.toIdentity(xmlElement.getTextContent(), xmlElement, schemaCtx);
}
if (value == null) {
value = codec.deserialize(text);
}
if (schema.getType() instanceof org.opendaylight.yangtools.yang.model.util.InstanceIdentifier) {
- value = INSTANCE_IDENTIFIER_FOR_XML_CODEC.deserialize(xmlElement,schemaCtx);
+ value = InstanceIdentifierForXmlCodec.deserialize(xmlElement,schemaCtx);
}
if (value == null) {
value = xmlElement.getTextContent();