AT&T 2.0.19 Code drop, stage 3
[aaf/authz.git] / auth / auth-batch / src / main / java / org / onap / aaf / auth / 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.helpers;
23
24 import java.util.ArrayList;
25 import java.util.List;
26 import java.util.TreeMap;
27
28 import org.onap.aaf.misc.env.Env;
29 import org.onap.aaf.misc.env.TimeTaken;
30 import org.onap.aaf.misc.env.Trans;
31
32 import com.datastax.driver.core.ResultSet;
33 import com.datastax.driver.core.Row;
34 import com.datastax.driver.core.Session;
35 import com.datastax.driver.core.SimpleStatement;
36 import com.datastax.driver.core.Statement;
37
38 public class NsAttrib  {
39         public static final List<NsAttrib> data = new ArrayList<NsAttrib>();
40     public static final TreeMap<String,List<NsAttrib>> byKey = new TreeMap<String,List<NsAttrib>>();
41     public static final TreeMap<String,List<NsAttrib>> byNS = new TreeMap<String,List<NsAttrib>>();
42
43         public final String ns,key,value;
44         
45         public NsAttrib(String ns, String key, String value) {
46                 this.ns = ns;
47                 this.key = key;
48                 this.value = value;
49         }
50         
51         public static void load(Trans trans, Session session, Creator<NsAttrib> creator ) {
52                 trans.info().log( "query: " + creator.select() );
53         ResultSet results;
54         TimeTaken tt = trans.start("Load NsAttributes", Env.REMOTE);
55                 try {
56                 Statement stmt = new SimpleStatement(creator.select());
57                 results = session.execute(stmt);
58         } finally {
59                 tt.done();
60         }
61                 int count = 0;
62         tt = trans.start("Process NsAttributes", Env.SUB);
63
64         try {
65                 for(Row row : results.all()) {
66                         ++count;
67                         NsAttrib ur = creator.create(row);
68                         data.add(ur);
69                         
70                         List<NsAttrib> lna = byKey.get(ur.key);
71                         if(lna==null) {
72                                 lna = new ArrayList<NsAttrib>();
73                                 byKey.put(ur.key, lna);
74                         }
75                         lna.add(ur);
76                         
77                         lna = byNS.get(ur.ns);
78                         if(lna==null) {
79                                 lna = new ArrayList<NsAttrib>();
80                                 byNS.put(ur.ns, lna);
81                         }
82                         lna.add(ur);
83                 }
84         } finally {
85                 tt.done();
86                 trans.info().log("Found",count,"NS Attributes");
87         }
88         }
89
90         public static Creator<NsAttrib> v2_0_11 = new Creator<NsAttrib>() {
91                 @Override
92                 public NsAttrib create(Row row) {
93                         return new NsAttrib(row.getString(0), row.getString(1), row.getString(2));
94                 }
95
96                 @Override
97                 public String select() {
98                         return "select ns,key,value from authz.ns_attrib";
99                 }
100         };
101
102
103         public String toString() {
104                 return '"' + ns + "\",\"" + key + "\",\""  + value +'"';
105         }
106
107 }