2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6 * ================================================================================
7 * Copyright (C) 2017 Amdocs
8 * =============================================================================
9 * Licensed under the Apache License, Version 2.0 (the "License");
10 * you may not use this file except in compliance with the License.
11 * You may obtain a copy of the License at
13 * http://www.apache.org/licenses/LICENSE-2.0
15 * Unless required by applicable law or agreed to in writing, software
16 * distributed under the License is distributed on an "AS IS" BASIS,
17 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 * See the License for the specific language governing permissions and
19 * limitations under the License.
21 * ECOMP is a trademark and service mark of AT&T Intellectual Property.
22 * ============LICENSE_END=========================================================
25 package org.openecomp.appc.executor.objects;
28 import org.apache.commons.lang3.StringUtils;
31 public class UniqueRequestIdentifier {
32 private static final String IDENTIFIER_DELIMITER = "@";
34 private String originatorID;
35 private String requestID;
36 private String subRequestID;
38 private UniqueRequestIdentifier(){
41 public UniqueRequestIdentifier(String originatorID,
43 String subRequestID) {
45 this.originatorID = originatorID;
46 this.requestID = requestID;
47 this.subRequestID = subRequestID;
50 public String toIdentifierString(){
51 StringBuilder stringBuilder = new StringBuilder();
52 if(originatorID != null){
53 stringBuilder.append(originatorID);
55 stringBuilder.append(IDENTIFIER_DELIMITER);
57 if(requestID != null){
58 stringBuilder.append(requestID);
60 stringBuilder.append(IDENTIFIER_DELIMITER);
62 if(subRequestID != null){
63 stringBuilder.append(subRequestID);
65 return stringBuilder.toString();
68 public static UniqueRequestIdentifier getUniqueRequestIdentifier(String identifierString){
69 String[] splitIdentifier = identifierString.split(IDENTIFIER_DELIMITER);
70 if(splitIdentifier == null || splitIdentifier.length <2){
71 throw new IllegalArgumentException("input identifierString is not valid "+identifierString);
73 String originatorID = splitIdentifier[0];
74 String requestID = StringUtils.isEmpty(splitIdentifier[1])? null :splitIdentifier[1];
75 String subRequestID = splitIdentifier.length>=3 ? splitIdentifier[2] : null;
76 return new UniqueRequestIdentifier(originatorID,requestID,subRequestID);
78 public String toString(){
79 return "originatorID = " + originatorID +
80 " , requestID = " + requestID +
81 " , subRequestID = " + subRequestID;
84 public boolean equals(Object obj){
88 if(!(obj instanceof UniqueRequestIdentifier)){
91 UniqueRequestIdentifier identifier = (UniqueRequestIdentifier)obj;
92 if(this.originatorID == null){
93 if(identifier.originatorID !=null)
96 else if(!this.originatorID.equals(identifier.originatorID))
99 if(this.requestID == null){
100 if(identifier.requestID !=null)
103 else if(!this.requestID.equals(identifier.requestID))
106 if(this.subRequestID == null){
107 if(identifier.subRequestID !=null)
110 else if(!this.subRequestID.equals(identifier.subRequestID))
116 public int hashCode(){
117 final int prime = 31;
119 result = result * prime + (this.originatorID == null ? 0 :this.originatorID.hashCode());
120 result = result * prime + (this.requestID == null ? 0 :this.requestID.hashCode());
121 result = result * prime + (this.subRequestID == null ? 0 :this.subRequestID.hashCode());