46 // Static methods |
46 // Static methods |
47 // |
47 // |
48 |
48 |
49 public static ADRName getServiceObjectName( |
49 public static ADRName getServiceObjectName( |
50 String service, String instance) { |
50 String service, String instance) { |
51 |
51 Map<String, String> kvs = new HashMap<String, String>(); |
52 String namestr = String.format("%s:type=ServiceInfo,service=%s", |
52 kvs.put("type", "ServiceInfo"); |
53 SERVICE_DOMAIN, service); |
53 kvs.put("service", service); |
54 if (instance != null) |
54 kvs.put("instance", instance == null ? "" : instance); |
55 namestr = String.format("%s,instance=%s", namestr, instance); |
55 return (new ADRName(SERVICE_DOMAIN, kvs)); |
56 |
|
57 return (new ADRName(namestr)); |
|
58 } |
56 } |
59 |
57 |
60 public static ADRName toADRName(String service, String instance) { |
58 public static ADRName toADRName(String service, String instance) { |
61 try { |
59 try { |
62 return (getServiceObjectName(service, instance)); |
60 return (getServiceObjectName(service, instance)); |
75 return (null); |
73 return (null); |
76 } |
74 } |
77 } |
75 } |
78 |
76 |
79 public static String toFMRI(ADRName an) { |
77 public static String toFMRI(ADRName an) { |
80 |
78 String domain = an.getDomain(); |
81 String name = an.toString(); |
79 Map<String, String> kvs = an.getKVPairs(); |
82 String[] pieces = name.split(":", 2); |
|
83 String[] kvpairs = pieces[1].split(","); |
|
84 String domain = pieces[0]; |
|
85 |
|
86 Map<String, String> kvs = new HashMap<String, String>(); |
|
87 for (String s : kvpairs) { |
|
88 String[] kv = s.split("="); |
|
89 kvs.put(kv[0], kv[1]); |
|
90 } |
|
91 |
|
92 String service = kvs.get("service"); |
80 String service = kvs.get("service"); |
93 String instance = kvs.get("instance"); |
81 String instance = kvs.get("instance"); |
94 if (!domain.equals(SERVICE_DOMAIN) || service == null) |
82 if (!domain.equals(SERVICE_DOMAIN) || service == null) |
95 throw new IllegalArgumentException("Not an SMF Object name"); |
83 throw new IllegalArgumentException("Not an SMF Object name"); |
96 |
84 return ("svc:/" + (instance.equals("") ? |
97 return ("svc:/" + (instance == null ? |
|
98 service : service + ":" + instance)); |
85 service : service + ":" + instance)); |
99 } |
86 } |
100 |
87 |
101 public static String toService(ADRName an) { |
88 public static String toService(ADRName an) { |
102 |
89 String domain = an.getDomain(); |
103 String name = an.toString(); |
90 Map<String, String> kvs = an.getKVPairs(); |
104 String[] pieces = name.split(":", 2); |
91 String service = kvs.get("service"); |
105 String[] kvpairs = pieces[1].split(","); |
|
106 String domain = pieces[0]; |
|
107 String service = null; |
|
108 |
|
109 for (int i = 0; i < kvpairs.length; i++) { |
|
110 if (kvpairs[i].startsWith("service=")) { |
|
111 String[] kv = kvpairs[i].split("="); |
|
112 service = kv[1]; |
|
113 break; |
|
114 } |
|
115 } |
|
116 |
|
117 if (domain.equals(SERVICE_DOMAIN) && service != null) |
92 if (domain.equals(SERVICE_DOMAIN) && service != null) |
118 return service; |
93 return service; |
119 else |
94 else |
120 throw new IllegalArgumentException("Not an SMF Object name"); |
95 throw new IllegalArgumentException("Not an SMF Object name"); |
121 } |
96 } |