* 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.
import java.util.Set;
import java.util.TreeMap;
+import org.onap.aaf.auth.dao.cass.RoleDAO;
import org.onap.aaf.misc.env.Env;
import org.onap.aaf.misc.env.TimeTaken;
import org.onap.aaf.misc.env.Trans;
public static final TreeMap<String,Role> byName = new TreeMap<>();
private static List<Role> deleteRoles = new ArrayList<>();
- public final String ns;
- public final String name;
- public final String description;
+ public RoleDAO.Data rdd;
private String full;
private String encode;
- public final Set<String> perms;
-
+
public Role(String full) {
- ns = name = description = "";
+ rdd = new RoleDAO.Data();
+ rdd.ns = "";
+ rdd.name = "";
+ rdd.description = "";
+ rdd.perms = new HashSet<>();
this.full = full;
- perms = new HashSet<>();
}
-
+
public Role(String ns, String name, String description,Set<String> perms) {
- this.ns = ns;
- this.name = name;
- this.description = description;
+ rdd = new RoleDAO.Data();
+ rdd.ns = ns;
+ rdd.name = name;
+ rdd.description = description;
+ rdd.perms = perms;
this.full = null;
this.encode = null;
- this.perms = perms;
}
-
+
public String encode() {
if (encode==null) {
- encode = ns + '|' + name;
- }
+ encode = rdd.ns + '|' + rdd.name;
+ }
return encode;
}
public String fullName() {
if (full==null) {
- full = ns + '.' + name;
- }
+ full = rdd.ns + '.' + rdd.name;
+ }
return full;
}
private static void load(Trans trans, Session session, String query) {
trans.info().log( "query: " + query );
TimeTaken tt = trans.start("Read Roles", Env.REMOTE);
-
+
ResultSet results;
try {
Statement stmt = new SimpleStatement( query );
row = iter.next();
Role rk =new Role(row.getString(0),row.getString(1), row.getString(2),row.getSet(3,String.class));
keys.put(rk.encode(), rk);
- data.put(rk,rk.perms);
+ data.put(rk,rk.rdd.perms);
byName.put(rk.fullName(), rk);
}
} finally {
trans.info().log("Found",data.size(),"roles");
}
}
-
+
public static long count(Trans trans, Session session) {
String query = "select count(*) from authz.role LIMIT 1000000;";
trans.info().log( "query: " + query );
public static String fullName(String role) {
return role.replace('|', '.');
}
-
+
public static void stageRemove(Role r) {
deleteRoles.add(r);
}
-
+
public static void executeRemove() {
for (Role p : deleteRoles) {
keys.remove(p.encode);
deleteRoles.clear();
}
+ public static void clear() {
+ data.clear();
+ keys.clear();
+ byName.clear();
+ deleteRoles.clear();
+ }
+
}
\ No newline at end of file