Alternative MR replication method
[dmaap/dbcapi.git] / src / main / java / org / onap / dmaap / dbcapi / model / ReplicationType.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * org.onap.dmaap
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  */
20 package org.onap.dmaap.dbcapi.model;
21
22 import java.util.HashMap;
23 import java.util.Map;
24
25 import javax.xml.bind.annotation.XmlRootElement;
26
27
28 @XmlRootElement
29 public enum ReplicationType {
30         REPLICATION_NOT_SPECIFIED(0),
31         REPLICATION_NONE(1),
32         REPLICATION_EDGE_TO_CENTRAL(10),
33         REPLICATION_EDGE_TO_CENTRAL_TO_GLOBAL(110),
34         REPLICATION_CENTRAL_TO_EDGE(20),
35         REPLICATION_CENTRAL_TO_GLOBAL(21),
36         REPLICATION_GLOBAL_TO_CENTRAL(30),
37         REPLICATION_GLOBAL_TO_CENTRAL_TO_EDGE(120),
38         REPLICATION_EDGE_TO_FQDN(40),
39         REPLICATION_FQDN_TO_EDGE(41),
40         REPLICATION_FQDN_TO_GLOBAL(50),
41         REPLICATION_GLOBAL_TO_FQDN(51),
42         REPLICATION_EDGE_TO_FQDN_TO_GLOBAL(130),
43         REPLICATION_GLOBAL_TO_FQDN_TO_EDGE (140);
44
45     private int value;
46     private static Map map = new HashMap<>();
47
48     private ReplicationType(int value) {
49         this.value = value;
50     }
51
52     static {
53         for (ReplicationType repType : ReplicationType.values()) {
54             map.put(repType.value, repType);
55         }
56     }
57
58     public static ReplicationType valueOf(int repType) {
59         return (ReplicationType) map.get(repType);
60     }
61
62     public int getValue() {
63         return value;
64     }
65
66     static public ReplicationType Validator( String input ){
67    
68                 ReplicationType t;
69                 try {
70                         t = ReplicationType.valueOf( input );
71                 } catch ( IllegalArgumentException e ) {
72                         t = REPLICATION_NOT_SPECIFIED;
73                 }
74                 return t;
75         }
76
77         public boolean involvesGlobal() {
78         
79                 
80                 if ( ( this.compareTo(REPLICATION_CENTRAL_TO_GLOBAL) == 0 ) ||
81                          ( this.compareTo(REPLICATION_GLOBAL_TO_CENTRAL) == 0 ) ||
82                          ( this.compareTo(REPLICATION_EDGE_TO_CENTRAL_TO_GLOBAL) == 0 ) ||
83                          ( this.compareTo(REPLICATION_GLOBAL_TO_CENTRAL_TO_EDGE) == 0 ) ||
84                          ( this.compareTo(REPLICATION_EDGE_TO_FQDN_TO_GLOBAL) == 0 ) ||
85                          ( this.compareTo(REPLICATION_GLOBAL_TO_FQDN_TO_EDGE) == 0 ) ||
86                          ( this.compareTo(REPLICATION_FQDN_TO_GLOBAL) == 0 ) ||
87                          ( this.compareTo(REPLICATION_GLOBAL_TO_FQDN) == 0 ) ) {
88                         return true;
89                 }
90                 return false;
91         }
92         
93         public boolean involvesFQDN() {
94                 if ( 
95                                 ( this.compareTo(REPLICATION_EDGE_TO_FQDN) == 0 ) ||
96                                 ( this.compareTo(REPLICATION_EDGE_TO_FQDN_TO_GLOBAL) == 0 ) ||
97                                 ( this.compareTo(REPLICATION_GLOBAL_TO_FQDN_TO_EDGE) == 0 ) ||
98                                 ( this.compareTo(REPLICATION_FQDN_TO_GLOBAL) == 0 ) ||
99                                 ( this.compareTo(REPLICATION_GLOBAL_TO_FQDN) == 0 ) ||
100                                 ( this.compareTo(REPLICATION_FQDN_TO_EDGE) == 0 ) 
101                                 ) {
102                         return true;
103                 }
104                 return false;
105         }
106
107
108
109 }