3327b78b0ef92cfd3b28cab05975c9b824f485ba
[policy/models.git] / models-interactions / model-impl / sdc / src / main / java / org / onap / policy / sdc / Service.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * sdc
4  * ================================================================================
5  * Copyright (C) 2017-2020 AT&T Intellectual Property. All rights reserved.
6  * Modifications Copyright (C) 2019-2020 Nordix Foundation.
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
11  *
12  *      http://www.apache.org/licenses/LICENSE-2.0
13  *
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  */
21
22 package org.onap.policy.sdc;
23
24 import java.io.Serializable;
25 import java.util.UUID;
26 import lombok.Data;
27
28 @Data
29 public class Service implements Serializable {
30
31     private static final long serialVersionUID = -1249276698549996806L;
32
33     /*
34      * Note the field names ending in "UUID" may not be changed without breaking the
35      * interface, due to limitations in the YAML encoder/decoder.
36      */
37     private UUID serviceUUID;
38     private UUID serviceInvariantUUID;
39     private String serviceName;
40     private String serviceVersion;
41
42     public Service() {
43         // Empty Constructor
44     }
45
46     public Service(UUID uuid) {
47         this.serviceUUID = uuid;
48     }
49
50     public Service(String name) {
51         this.serviceName = name;
52     }
53
54     /**
55      * Constructor.
56      *
57      * @param uuid service id
58      * @param invariantUuid service invariant id
59      * @param name name
60      * @param version version
61      */
62     public Service(UUID uuid, UUID invariantUuid, String name, String version) {
63         this.serviceUUID = uuid;
64         this.serviceInvariantUUID = invariantUuid;
65         this.serviceName = name;
66         this.serviceVersion = version;
67     }
68
69     /**
70      * Constructor.
71      *
72      * @param service copy object
73      */
74     public Service(Service service) {
75         this.serviceUUID = service.serviceUUID;
76         this.serviceInvariantUUID = service.serviceInvariantUUID;
77         this.serviceName = service.serviceName;
78         this.serviceVersion = service.serviceVersion;
79     }
80 }