Update Batch from Testing
[aaf/authz.git] / auth / auth-batch / src / main / java / org / onap / aaf / auth / batch / helpers / NsAttrib.java
1 /**
2  * ============LICENSE_START====================================================
3  * org.onap.aaf
4  * ===========================================================================
5  * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved.
6  * ===========================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  * 
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END====================================================
19  *
20  */
21
22 package org.onap.aaf.auth.batch.helpers;
23
24 import java.util.ArrayList;
25 import java.util.List;
26 import java.util.SortedMap;
27 import java.util.TreeMap;
28
29 import org.onap.aaf.misc.env.Env;
30 import org.onap.aaf.misc.env.TimeTaken;
31 import org.onap.aaf.misc.env.Trans;
32
33 import com.datastax.driver.core.ResultSet;
34 import com.datastax.driver.core.Row;
35 import com.datastax.driver.core.Session;
36 import com.datastax.driver.core.SimpleStatement;
37 import com.datastax.driver.core.Statement;
38
39 public class NsAttrib  {
40     public static final List<NsAttrib> data = new ArrayList<>();
41     public static final SortedMap<String,List<NsAttrib>> byKey = new TreeMap<>();
42     public static final SortedMap<String,List<NsAttrib>> byNS = new TreeMap<>();
43
44     public final String ns;
45     public final String key;
46     public final String value;
47     public static Creator<NsAttrib> v2_0_11 = new Creator<NsAttrib>() {
48         @Override
49         public NsAttrib create(Row row) {
50             return new NsAttrib(row.getString(0), row.getString(1), row.getString(2));
51         }
52
53         @Override
54         public String select() {
55             return "select ns,key,value from authz.ns_attrib";
56         }
57     };
58     
59     public NsAttrib(String ns, String key, String value) {
60         this.ns = ns;
61         this.key = key;
62         this.value = value;
63     }
64     
65     public static void load(Trans trans, Session session, Creator<NsAttrib> creator ) {
66         trans.info().log( "query: " + creator.select() );
67         ResultSet results;
68         TimeTaken tt = trans.start("Load NsAttributes", Env.REMOTE);
69         try {
70             Statement stmt = new SimpleStatement(creator.select());
71             results = session.execute(stmt);
72         } finally {
73             tt.done();
74         }
75         int count = 0;
76         tt = trans.start("Process NsAttributes", Env.SUB);
77
78         try {
79             for (Row row : results.all()) {
80                 ++count;
81                 NsAttrib ur = creator.create(row);
82                 data.add(ur);
83                 
84                 List<NsAttrib> lna = byKey.get(ur.key);
85                 if (lna==null) {
86                     lna = new ArrayList<>();
87                     byKey.put(ur.key, lna);
88                 }
89                 lna.add(ur);
90                 
91                 lna = byNS.get(ur.ns);
92                 if (lna==null) {
93                     lna = new ArrayList<>();
94                     byNS.put(ur.ns, lna);
95                 }
96                 lna.add(ur);
97             }
98         } finally {
99             tt.done();
100             trans.info().log("Found",count,"NS Attributes");
101         }
102     }
103
104     public String toString() {
105         return '"' + ns + "\",\"" + key + "\",\""  + value +'"';
106     }
107
108 }