/*- * ============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; } } }