2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6 * Modifications Copyright (C) 2019 IBM.
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
12 * http://www.apache.org/licenses/LICENSE-2.0
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=========================================================
22 package org.onap.dmaap.dbcapi.aaf;
24 import org.apache.log4j.Logger;
25 import org.onap.dmaap.dbcapi.util.DmaapConfig;
27 import java.util.ArrayList;
28 import java.util.Objects;
31 public class AafNamespace extends AafObject {
32 private static final Logger logger = Logger.getLogger(AafNamespace.class);
35 private ArrayList<String> admin;
36 private ArrayList<String> responsible;
38 // in some environments, an AAF Namespace must be owned by a human.
39 // So, when needed, this var can be set via a property
40 private static String NsOwnerIdentity;
42 public AafNamespace(String ns, String identity ) {
44 DmaapConfig p = (DmaapConfig)DmaapConfig.getConfig();
45 NsOwnerIdentity = p.getProperty( "aaf.NsOwnerIdentity", "");
46 this.admin = new ArrayList<>();
47 this.responsible = new ArrayList<>();
50 this.admin.add( identity );
51 this.responsible.add( NsOwnerIdentity );
53 public void setName( String ns ) {
56 public String getName() {
59 public ArrayList<String> getAdmin() {
62 public void setAdmin(ArrayList<String> admin) {
65 public ArrayList<String> getResponsible() {
68 public void setResponsible(ArrayList<String> responsible) {
69 this.responsible = responsible;
73 // given an Array of Strings, return a String that is a separated list of quoted strings.
74 // e.g. input [ a, b, c ]
75 // output "a", "b", "c"
76 private String separatedList( ArrayList<String> list, String sep ) {
77 if (list.isEmpty()) return null;
80 for( String item: list) {
81 if( ! item.isEmpty()) {
82 aList += String.format( "%s\"%s\"", delim, item );
89 public String toJSON() {
91 String postJSON = String.format(" { \"name\": \"%s\", \"admin\": [",
94 postJSON += separatedList( this.getAdmin(), "," );
95 postJSON += "], \"responsible\":[";
96 postJSON += separatedList( this.getResponsible(), ",");
98 logger.info( "returning JSON: " + postJSON);
104 public boolean equals(Object o) {
105 if (this == o) return true;
106 if (o == null || getClass() != o.getClass()) return false;
107 AafNamespace that = (AafNamespace) o;
108 return Objects.equals(name, that.name) &&
109 Objects.equals(admin, that.admin) &&
110 Objects.equals(responsible, that.responsible);
114 public int hashCode() {
115 return Objects.hash(name, admin, responsible);