1 /*******************************************************************************
2 * Copyright (c) 2016 AT&T Intellectual Property. All rights reserved.
3 *******************************************************************************/
4 package com.att.authz.helpers;
6 import java.util.Iterator;
8 import java.util.TreeMap;
10 import org.onap.aaf.inno.env.Env;
11 import org.onap.aaf.inno.env.TimeTaken;
12 import org.onap.aaf.inno.env.Trans;
13 import com.datastax.driver.core.ResultSet;
14 import com.datastax.driver.core.Row;
15 import com.datastax.driver.core.Session;
16 import com.datastax.driver.core.SimpleStatement;
17 import com.datastax.driver.core.Statement;
19 public class Perm implements Comparable<Perm> {
20 public static final TreeMap<Perm,Set<String>> data = new TreeMap<Perm,Set<String>>();
21 public static final TreeMap<String,Perm> keys = new TreeMap<String,Perm>();
23 public final String ns, type, instance, action,description;
24 private String fullType = null, fullPerm = null, encode = null;
25 public final Set<String> roles;
27 public String encode() {
29 encode = ns + '|' + type + '|' + instance + '|' + action;
34 public String fullType() {
36 fullType = ns + '.' + type;
41 public String fullPerm() {
43 fullPerm = ns + '.' + type + '|' + instance + '|' + action;
48 public Perm(String ns, String type, String instance, String action, String description, Set<String> roles) {
51 this.instance = instance;
53 this.description = description;
55 // this.full = encode();//ns+'.'+type+'|'+instance+'|'+action;
59 public static void load(Trans trans, Session session) {
60 load(trans, session, "select ns, type, instance, action, description, roles from authz.perm;");
63 public static void loadOneNS(Trans trans, Session session, String ns) {
64 load(trans, session, "select ns, type, instance, action, description, roles from authz.perm WHERE ns='" + ns + "';");
68 private static void load(Trans trans, Session session, String query) {
70 trans.info().log( "query: " + query );
71 TimeTaken tt = trans.start("Read Perms", Env.REMOTE);
74 Statement stmt = new SimpleStatement( query );
75 results = session.execute(stmt);
81 Iterator<Row> iter = results.iterator();
83 tt = trans.start("Load Perms", Env.SUB);
85 while(iter.hasNext()) {
87 Perm pk = new Perm(row.getString(0),row.getString(1),row.getString(2),row.getString(3), row.getString(4), row.getSet(5,String.class));
88 keys.put(pk.encode(), pk);
89 data.put(pk,pk.roles);
95 trans.info().log("Found",data.size(),"perms");
99 public String toString() {
104 * @see java.lang.Object#hashCode()
107 public int hashCode() {
108 return encode().hashCode();
112 * @see java.lang.Object#equals(java.lang.Object)
115 public boolean equals(Object obj) {
116 return encode().equals(obj);
120 public int compareTo(Perm o) {
121 return encode().compareTo(o.encode());