Remove Tabs, per Jococo
[aaf/authz.git] / auth / auth-batch / src / main / java / org / onap / aaf / auth / batch / helpers / NS.java
index 3df72e1..e76f523 100644 (file)
@@ -3,6 +3,8 @@
  * org.onap.aaf
  * ===========================================================================
  * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved.
+ *
+ * Modifications Copyright (C) 2018 IBM.
  * ===========================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -25,6 +27,8 @@ import java.util.Iterator;
 import java.util.Map;
 import java.util.TreeMap;
 
+import org.onap.aaf.auth.dao.cass.NsDAO;
+import org.onap.aaf.cadi.util.CSV;
 import org.onap.aaf.misc.env.Env;
 import org.onap.aaf.misc.env.TimeTaken;
 import org.onap.aaf.misc.env.Trans;
@@ -35,34 +39,58 @@ import com.datastax.driver.core.Session;
 import com.datastax.driver.core.SimpleStatement;
 import com.datastax.driver.core.Statement;
 
-public class NS implements Comparable<NS> {
-    public final static Map<String,NS> data = new TreeMap<>();
+public class    NS implements Comparable<NS> {
+    public static final Map<String,NS> data = new TreeMap<>();
 
-    public final String name, description, parent;
-    public final int scope,type;
+    public NsDAO.Data ndd;
+
+    public static Creator<NS> v2_0_11 = new Creator<NS> () {
+        @Override
+        public NS create(Row row) {
+            return new NS(row.getString(0),row.getString(1), row.getString(2),row.getInt(3),row.getInt(4));
+        }
+
+        @Override
+        public String select() {
+            return "SELECT name, description, parent, type, scope FROM authz.ns ";
+        }
+    };
 
     public NS(String name, String description, String parent, int type, int scope) {
-        this.name = name;
-        this.description = description;
-        this.parent = parent;
-        this.scope = scope;
-        this.type = type;
+        ndd = new NsDAO.Data();
+        ndd.name = name;
+        ndd.description = description;
+        ndd.parent = parent;
+        ndd.type = type;
+        // ndd.attrib = 
     }
     
     public static void load(Trans trans, Session session, Creator<NS> creator) {
         load(trans,session,
                 "select name, description, parent, type, scope from authz.ns;"
-                ,creator);
+                ,creator
+                , v -> data.put(v.ndd.name,v)
+                );
     }
     
     public static void loadOne(Trans trans, Session session, Creator<NS> creator, String ns) {
         load(trans,session,
                 ("select name, description, parent, type, scope from authz.ns WHERE name='"+ns+"';")
                 ,creator
+                , v -> data.put(v.ndd.name,v)
                 );
     }
 
-    private static void load(Trans trans, Session session, String query, Creator<NS> creator) {
+    public static void load(Trans trans, Session session, Creator<NS> creator, Visitor<NS> visitor) {
+         load(trans,session,creator.query(null),creator, visitor);
+    }
+    
+    public void row(final CSV.Writer csvw, String tag) {
+        csvw.row(tag,ndd.name,ndd.type,ndd.parent);
+    }
+
+
+    private static void load(Trans trans, Session session, String query, Creator<NS> creator, Visitor<NS> visitor) {
         trans.info().log( "query: " + query );
         ResultSet results;
         TimeTaken tt;
@@ -84,7 +112,7 @@ public class NS implements Comparable<NS> {
                 while (iter.hasNext()) {
                     row = iter.next();
                     NS ns = creator.create(row);
-                    data.put(ns.name,ns);
+                    visitor.visit(ns);
                 }
             } finally {
                 tt.done();
@@ -110,7 +138,7 @@ public class NS implements Comparable<NS> {
     }
         
     public String toString() {
-        return name;
+        return ndd.name;
     }
 
     /* (non-Javadoc)
@@ -118,7 +146,7 @@ public class NS implements Comparable<NS> {
      */
     @Override
     public int hashCode() {
-        return name.hashCode();
+        return ndd.name.hashCode();
     }
 
     /* (non-Javadoc)
@@ -126,12 +154,12 @@ public class NS implements Comparable<NS> {
      */
     @Override
     public boolean equals(Object obj) {
-        return name.equals(obj);
+        return ndd.name.equals(obj);
     }
 
     @Override
     public int compareTo(NS o) {
-        return name.compareTo(o.name);
+        return ndd.name.compareTo(o.ndd.name);
     }
     
     public static class NSSplit {
@@ -143,7 +171,9 @@ public class NS implements Comparable<NS> {
         }
     }
     public static NSSplit deriveParent(String dotted) {
-        if (dotted==null)return null;
+        if (dotted==null) {
+            return null;
+        }
         for (int idx = dotted.lastIndexOf('.');idx>=0; idx=dotted.lastIndexOf('.',idx-1)) {
             if (data.get(dotted.substring(0, idx))!=null) {
                 return new NSSplit(dotted,idx);
@@ -151,18 +181,5 @@ public class NS implements Comparable<NS> {
         }
         return null;
     }
-    
-    public static Creator<NS> v2_0_11 = new Creator<NS> () {
-        @Override
-        public NS create(Row row) {
-            return new NS(row.getString(0),row.getString(1), row.getString(2),row.getInt(3),row.getInt(4));
-        }
-        
-        @Override
-        public String select() {
-            return "SELECT name, description, parent, type, scope FROM authz.ns ";
-        }
-    };
 
-        
 }
\ No newline at end of file