+
+ public static String entityTypeFromEntityPath(YangInstanceIdentifier entityPath) {
+ YangInstanceIdentifier parent = entityPath;
+ while (!parent.isEmpty()) {
+ if (EntityType.QNAME.equals(parent.getLastPathArgument().getNodeType())) {
+ YangInstanceIdentifier.NodeIdentifierWithPredicates entityTypeLastPathArgument =
+ (YangInstanceIdentifier.NodeIdentifierWithPredicates) parent.getLastPathArgument();
+ return (String) entityTypeLastPathArgument.getKeyValues().get(ENTITY_TYPE_QNAME);
+ }
+ parent = parent.getParent();
+ }
+ return null;
+ }
+
+ static DOMEntity createEntity(YangInstanceIdentifier entityPath) {
+ String entityType = null;
+ YangInstanceIdentifier entityId = null;
+ for (PathArgument pathArg: entityPath.getPathArguments()) {
+ if (pathArg instanceof NodeIdentifierWithPredicates) {
+ NodeIdentifierWithPredicates nodeKey = (NodeIdentifierWithPredicates) pathArg;
+ Entry<QName, Object> key = nodeKey.getKeyValues().entrySet().iterator().next();
+ if (ENTITY_TYPE_QNAME.equals(key.getKey())) {
+ entityType = key.getValue().toString();
+ } else if (ENTITY_ID_QNAME.equals(key.getKey())) {
+ entityId = (YangInstanceIdentifier) key.getValue();
+ }
+ }
+ }
+
+ return new DOMEntity(entityType, entityId);
+ }