eafbe909bcd42220b67482627abc95c1657ce045
[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.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 }