1 package org.opendaylight.controller.cluster.datastore.node.utils;
3 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
5 import java.util.HashMap;
8 public class NodeIdentifierFactory {
9 private static final Map<String, YangInstanceIdentifier.PathArgument> cache = new HashMap<>();
10 public static YangInstanceIdentifier.PathArgument getArgument(String id){
11 YangInstanceIdentifier.PathArgument value = cache.get(id);
14 value = cache.get(id);
16 value = createPathArgument(id);
24 private static YangInstanceIdentifier.PathArgument createPathArgument(String id){
25 final NodeIdentifierWithPredicatesGenerator
26 nodeIdentifierWithPredicatesGenerator = new NodeIdentifierWithPredicatesGenerator(id);
27 if(nodeIdentifierWithPredicatesGenerator.matches()){
28 return nodeIdentifierWithPredicatesGenerator.getPathArgument();
31 final NodeIdentifierWithValueGenerator
32 nodeWithValueGenerator = new NodeIdentifierWithValueGenerator(id);
33 if(nodeWithValueGenerator.matches()){
34 return nodeWithValueGenerator.getPathArgument();
37 final AugmentationIdentifierGenerator augmentationIdentifierGenerator = new AugmentationIdentifierGenerator(id);
38 if(augmentationIdentifierGenerator.matches()){
39 return augmentationIdentifierGenerator.getPathArgument();
42 return new NodeIdentifierGenerator(id).getArgument();