98fde5b64cae212ad4d696c8dd11d94d0cc08383
[sdc.git] /
1 /*-
2  * ============LICENSE_START=======================================================
3  * SDC
4  * ================================================================================
5  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  * 
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  * Modifications copyright (c) 2019 Nokia
20  * ================================================================================
21  */
22
23 package org.openecomp.sdc.vendorsoftwareproduct.types.composition;
24
25 import com.google.common.annotations.VisibleForTesting;
26
27 public class CompositionEntityId {
28   private String id;
29   private CompositionEntityId parentId;
30
31   @VisibleForTesting
32   CompositionEntityId() {}
33
34   public CompositionEntityId(String id, CompositionEntityId parentId) {
35     this.id = id;
36     this.parentId = parentId;
37   }
38
39   public String getId() {
40     return id;
41   }
42
43   public CompositionEntityId getParentId() {
44     return parentId;
45   }
46
47   @Override
48   public int hashCode() {
49     int result = id != null ? id.hashCode() : 0;
50     result = 31 * result + (parentId != null ? parentId.hashCode() : 0);
51     return result;
52   }
53
54   @Override
55   public boolean equals(Object object) {
56     if (this == object) {
57       return true;
58     }
59     if (object == null || getClass() != object.getClass()) {
60       return false;
61     }
62
63     CompositionEntityId that = (CompositionEntityId) object;
64
65     if (id != null ? !id.equals(that.id) : that.id != null) {
66       return false;
67     }
68     return parentId != null ? parentId.equals(that.parentId) : that.parentId == null;
69
70   }
71
72   @Override
73   public String toString() {
74     return parentId == null
75         ? id
76         : parentId.toString() + "/" + id;
77   }
78 }