1 /*******************************************************************************
2 * Copyright (c) 2016 AT&T Intellectual Property. All rights reserved.
3 *******************************************************************************/
4 package com.att.authz.helpers;
6 import java.util.HashSet;
7 import java.util.Iterator;
9 import java.util.TreeMap;
11 import org.onap.aaf.inno.env.Env;
12 import org.onap.aaf.inno.env.TimeTaken;
13 import org.onap.aaf.inno.env.Trans;
14 import com.datastax.driver.core.ResultSet;
15 import com.datastax.driver.core.Row;
16 import com.datastax.driver.core.Session;
17 import com.datastax.driver.core.SimpleStatement;
18 import com.datastax.driver.core.Statement;
20 public class Role implements Comparable<Role> {
21 public static final TreeMap<Role,Set<String>> data = new TreeMap<Role,Set<String>>();
22 public static final TreeMap<String,Role> keys = new TreeMap<String,Role>();
24 public final String ns, name, description;
25 private String full, encode;
26 public final Set<String> perms;
28 public Role(String full) {
29 ns = name = description = "";
31 perms = new HashSet<String>();
34 public Role(String ns, String name, String description,Set<String> perms) {
37 this.description = description;
43 public String encode() {
45 encode = ns + '|' + name;
50 public String fullName() {
52 full = ns + '.' + name;
57 public static void load(Trans trans, Session session ) {
58 load(trans,session,"select ns, name, description, perms from authz.role;");
61 public static void loadOneNS(Trans trans, Session session, String ns ) {
62 load(trans,session,"select ns, name, description, perms from authz.role WHERE ns='" + ns + "';");
65 private static void load(Trans trans, Session session, String query) {
66 trans.info().log( "query: " + query );
67 TimeTaken tt = trans.start("Read Roles", Env.REMOTE);
71 Statement stmt = new SimpleStatement( query );
72 results = session.execute(stmt);
78 Iterator<Row> iter = results.iterator();
80 tt = trans.start("Load Roles", Env.SUB);
82 while(iter.hasNext()) {
84 Role rk =new Role(row.getString(0),row.getString(1), row.getString(2),row.getSet(3,String.class));
85 keys.put(rk.encode(), rk);
86 data.put(rk,rk.perms);
92 trans.info().log("Found",data.size(),"roles");
97 public String toString() {
102 * @see java.lang.Object#hashCode()
105 public int hashCode() {
106 return encode().hashCode();
110 * @see java.lang.Object#equals(java.lang.Object)
113 public boolean equals(Object obj) {
114 return encode().equals(obj);
118 public int compareTo(Role o) {
119 return encode().compareTo(o.encode());
122 public static String fullName(String role) {
123 return role.replace('|', '.');