aboutsummaryrefslogtreecommitdiffstats
path: root/dmaap-bc/src/main/java/org/onap/dmaap/dbcapi/model/MR_Client.java
blob: 0631f078dd4e4458b781d0f10140c243ba1083ad (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
/*-
 * ============LICENSE_START=======================================================
 * org.onap.dmaap
 * ================================================================================
 * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
 * ================================================================================
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *      http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * ============LICENSE_END=========================================================
 */

package org.onap.dmaap.dbcapi.model;

import java.util.Date;

import javax.xml.bind.annotation.XmlRootElement;

import org.onap.dmaap.dbcapi.database.DatabaseClass;

import io.swagger.annotations.ApiModelProperty;

@XmlRootElement
public class MR_Client extends DmaapObject {

	@ApiModelProperty( value="a tag indicating a logical deployment site")
	private String dcaeLocationName;
	@ApiModelProperty( value="the URL for a MR instance - typically in the same dcaeLocation - that this client should use to access the topic")
	private	String	topicURL;
	@ApiModelProperty( value="Fully Qualified Topic Name constructed by dbcapi")
	private String fqtn;
	@ApiModelProperty( value="an AAF Role to be granted an appropriate Permission.  If specified, takes precedence over clientIdentity, for backwards compatibility.")
	private String clientRole;
	@ApiModelProperty( value="one or more actions from the set (\"pub\", \"sub\", \"view\") for which this client needs Permission")
	private String[] action;
	@ApiModelProperty( value="a unique identifier generated by dbcapi for this client")
	private String mrClientId;
	@ApiModelProperty( value="an AAF identity to be associated to an appropriate topic Role")
	private	String clientIdentity;
	

	public MR_Client() {
		this.mrClientId = DatabaseClass.getNextClientId();
		this.lastMod = new Date();
		this.setLastMod();
		debugLogger.debug( "MR_Client constructor " + this.lastMod );
			
	}
	
	public MR_Client( String dLN,
					String f,
					String cR,
					String[] a ) {
		this.dcaeLocationName = dLN;
		this.fqtn = f;
		this.clientRole = cR;
		int i = 0;
		
		if (a != null) {
			this.action = new String[a.length];
			for (String aa : a) {
				this.action[i++] = new String(aa);
			}
		}
		this.setStatus( DmaapObject_Status.NEW );
		this.mrClientId = DatabaseClass.getNextClientId();
		this.setLastMod();
		debugLogger.debug( "MR_Client constructor w initialization " + this.lastMod );
	}

	public String getDcaeLocationName() {
		return dcaeLocationName;
	}

	public void setDcaeLocationName(String dcaeLocationName) {
		this.dcaeLocationName = dcaeLocationName;
	}

	public String getFqtn() {
		return fqtn;
	}

	public void setFqtn(String fqtn) {
		this.fqtn = fqtn;
	}

	public String getClientRole() {
		return clientRole;
	}

	public void setClientRole(String clientRole) {
		this.clientRole = clientRole;
	}

	public String[] getAction() {
		return action;
	}

	public void setAction(String[] action) {
		this.action = action;
	}
	
	@ApiModelProperty( hidden=true )
	public boolean isPublisher() {
		return hasAction( "pub");
	}
	@ApiModelProperty( hidden=true )
	public boolean isSubscriber() {
		return hasAction( "sub");
	}
	
	public boolean hasAction( String val ) {
		for (String s: this.action) {
			if ( s!= null && s.equals(val)) {
				return true;
			}
		}
		return false;
	}
	public String getMrClientId() {
		return mrClientId;
	}

	public void setMrClientId(String mrClientId) {
		this.mrClientId = mrClientId;
	}



	public String getTopicURL() {
		return topicURL;
	}

	public void setTopicURL(String topicURL) {
		this.topicURL = topicURL;
	}

	public String getClientIdentity() {
		return clientIdentity;
	}

	public void setClientIdentity(String clientIdentity) {
		this.clientIdentity = clientIdentity;
	}
	public boolean hasClientIdentity() {
		if ( this.clientIdentity == null || this.clientIdentity.isEmpty() ) {
			return false;
		} else {
			return true;
		}
	}

	
}