2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6 * Copyright (C) 2017 Amdocs
7 * ================================================================================
8 * Licensed under the Apache License, Version 2.0 (the "License");
9 * you may not use this file except in compliance with the License.
10 * You may obtain a copy of the License at
12 * http://www.apache.org/licenses/LICENSE-2.0
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS,
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * See the License for the specific language governing permissions and
18 * limitations under the License.
19 * ============LICENSE_END=========================================================
20 * ECOMP is a trademark and service mark of AT&T Intellectual Property.
23 package org.openecomp.appc.executor.objects;
26 import org.apache.commons.lang3.StringUtils;
29 public class UniqueRequestIdentifier {
30 private static final String IDENTIFIER_DELIMITER = "@";
32 private String originatorID;
33 private String requestID;
34 private String subRequestID;
36 private UniqueRequestIdentifier(){
39 public UniqueRequestIdentifier(String originatorID,
41 String subRequestID) {
43 this.originatorID = originatorID;
44 this.requestID = requestID;
45 this.subRequestID = subRequestID;
48 public String toIdentifierString(){
49 StringBuilder stringBuilder = new StringBuilder();
50 if(originatorID != null){
51 stringBuilder.append(originatorID);
53 stringBuilder.append(IDENTIFIER_DELIMITER);
55 if(requestID != null){
56 stringBuilder.append(requestID);
58 stringBuilder.append(IDENTIFIER_DELIMITER);
60 if(subRequestID != null){
61 stringBuilder.append(subRequestID);
63 return stringBuilder.toString();
66 public static UniqueRequestIdentifier getUniqueRequestIdentifier(String identifierString){
67 String[] splitIdentifier = identifierString.split(IDENTIFIER_DELIMITER);
68 if(splitIdentifier == null || splitIdentifier.length <2){
69 throw new IllegalArgumentException("input identifierString is not valid "+identifierString);
71 String originatorID = splitIdentifier[0];
72 String requestID = StringUtils.isEmpty(splitIdentifier[1])? null :splitIdentifier[1];
73 String subRequestID = splitIdentifier.length>=3 ? splitIdentifier[2] : null;
74 return new UniqueRequestIdentifier(originatorID,requestID,subRequestID);
76 public String toString(){
77 return "originatorID = " + originatorID +
78 " , requestID = " + requestID +
79 " , subRequestID = " + subRequestID;
82 public boolean equals(Object obj){
86 if(!(obj instanceof UniqueRequestIdentifier)){
89 UniqueRequestIdentifier identifier = (UniqueRequestIdentifier)obj;
90 if(this.originatorID == null){
91 if(identifier.originatorID !=null)
94 else if(!this.originatorID.equals(identifier.originatorID))
97 if(this.requestID == null){
98 if(identifier.requestID !=null)
101 else if(!this.requestID.equals(identifier.requestID))
104 if(this.subRequestID == null){
105 if(identifier.subRequestID !=null)
108 else if(!this.subRequestID.equals(identifier.subRequestID))
114 public int hashCode(){
115 final int prime = 31;
117 result = result * prime + (this.originatorID == null ? 0 :this.originatorID.hashCode());
118 result = result * prime + (this.requestID == null ? 0 :this.requestID.hashCode());
119 result = result * prime + (this.subRequestID == null ? 0 :this.subRequestID.hashCode());