1 /*******************************************************************************
2 * Copyright (c) 2016 AT&T Intellectual Property. All rights reserved.
3 *******************************************************************************/
4 package com.att.authz.helpers;
6 import java.util.ArrayList;
9 import java.util.TreeMap;
10 import java.util.UUID;
12 import org.onap.aaf.inno.env.Env;
13 import org.onap.aaf.inno.env.TimeTaken;
14 import org.onap.aaf.inno.env.Trans;
15 import com.datastax.driver.core.ResultSet;
16 import com.datastax.driver.core.Row;
17 import com.datastax.driver.core.Session;
18 import com.datastax.driver.core.SimpleStatement;
19 import com.datastax.driver.core.Statement;
22 public static final List<Future> data = new ArrayList<Future>();
23 public static final TreeMap<String,List<Future>> byMemo = new TreeMap<String,List<Future>>();
26 public final String memo, target;
27 public final Date start, expires;
28 public Future(UUID id, String memo, String target, Date start, Date expires) {
33 this.expires = expires;
36 public static void load(Trans trans, Session session, Creator<Future> creator) {
37 trans.info().log( "query: " + creator.select() );
39 TimeTaken tt = trans.start("Load Futures", Env.REMOTE);
41 Statement stmt = new SimpleStatement(creator.select());
42 results = session.execute(stmt);
48 tt = trans.start("Process Futures", Env.SUB);
50 for(Row row : results.all()) {
52 Future f = creator.create(row);
55 List<Future> lf = byMemo.get(f.memo);
57 lf = new ArrayList<Future>();
58 byMemo.put(f.memo, lf);
64 trans.info().log("Found",count,"Futures");
68 public static Creator<Future> v2_0_15 = new Creator<Future>() {
70 public Future create(Row row) {
71 return new Future(row.getUUID(0),row.getString(1),row.getString(2),
72 row.getDate(3),row.getDate(4));
76 public String select() {
77 return "select id,memo,target,start,expires from authz.future";
81 public static void delete(List<Future> fl) {
82 if(fl==null || fl.isEmpty()) {
88 // Faster to start over, then look for entries.
90 for(Future f : data) {
91 List<Future> lf = byMemo.get(f.memo);
93 lf = new ArrayList<Future>();
94 byMemo.put(f.memo, lf);