AafTopicSetupService implementation
[dmaap/dbcapi.git] / src / main / java / org / onap / dmaap / dbcapi / aaf / AafNamespace.java
index aa4fb89..b5a887c 100644 (file)
@@ -3,13 +3,14 @@
  * org.onap.dmaap
  * ================================================================================
  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * Modifications Copyright (C) 2019 IBM.
  * ================================================================================
  * 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.
 
 package org.onap.dmaap.dbcapi.aaf;
 
-import java.util.ArrayList;
-
 import org.apache.log4j.Logger;
 import org.onap.dmaap.dbcapi.util.DmaapConfig;
 
+import java.util.ArrayList;
+import java.util.Objects;
+
 
 public class AafNamespace extends AafObject  {
-       static final Logger logger = Logger.getLogger(AafNamespace.class);
-       
+       private static final Logger logger = Logger.getLogger(AafNamespace.class);
+
        private String  name;
-       private ArrayList<String>       admin;
-       private ArrayList<String>       responsible;
-       
+       private ArrayList<String> admin;
+       private ArrayList<String> responsible;
+
        // in some environments, an AAF Namespace must be owned by a human.
        // So, when needed, this var can be set via a property
-       static private String NsOwnerIdentity;
-       
+       private static String NsOwnerIdentity;
+
        public AafNamespace(String ns, String identity ) {
                super();
                DmaapConfig p = (DmaapConfig)DmaapConfig.getConfig();
                NsOwnerIdentity = p.getProperty( "aaf.NsOwnerIdentity", "");
-               this.admin = new ArrayList<String>();
-               this.responsible = new ArrayList<String>();
-               
+               this.admin = new ArrayList<>();
+               this.responsible = new ArrayList<>();
+
                this.name = ns;
                this.admin.add( identity );
                this.responsible.add( NsOwnerIdentity );
@@ -73,7 +75,7 @@ public class AafNamespace extends AafObject  {
        //       output  "a", "b", "c"
        private String separatedList( ArrayList<String> list, String sep ) {
                if (list.isEmpty()) return null;
-               String aList = new String();
+               String aList = "";
                String delim = "";
                for( String item: list) {
                        if( ! item.isEmpty()) {
@@ -86,7 +88,7 @@ public class AafNamespace extends AafObject  {
 
        public String toJSON() {
 
-               String postJSON = String.format(" { \"name\": \"%s\", \"admin\": [", 
+               String postJSON = String.format(" { \"name\": \"%s\", \"admin\": [",
                                this.getName()
                                 );
                postJSON += separatedList( this.getAdmin(), "," );
@@ -94,11 +96,22 @@ public class AafNamespace extends AafObject  {
                postJSON += separatedList( this.getResponsible(), ",");
                postJSON += "]}";
                logger.info( "returning JSON: " + postJSON);
-                       
+
                return postJSON;
        }
-       
-       
-       
-       
+
+       @Override
+       public boolean equals(Object o) {
+               if (this == o) return true;
+               if (o == null || getClass() != o.getClass()) return false;
+               AafNamespace that = (AafNamespace) o;
+               return Objects.equals(name, that.name) &&
+                               Objects.equals(admin, that.admin) &&
+                               Objects.equals(responsible, that.responsible);
+       }
+
+       @Override
+       public int hashCode() {
+               return Objects.hash(name, admin, responsible);
+       }
 }