[AAF-21] Initial code import
[aaf/authz.git] / authz-batch / src / main / java / com / att / authz / actions / ActionDAO.java
diff --git a/authz-batch/src/main/java/com/att/authz/actions/ActionDAO.java b/authz-batch/src/main/java/com/att/authz/actions/ActionDAO.java
new file mode 100644 (file)
index 0000000..4e951f8
--- /dev/null
@@ -0,0 +1,43 @@
+/*******************************************************************************
+ * Copyright (c) 2016 AT&T Intellectual Property. All rights reserved.
+ *******************************************************************************/
+package com.att.authz.actions;
+
+import java.io.IOException;
+
+import com.att.authz.env.AuthzTrans;
+import com.att.dao.CassAccess;
+import com.att.dao.aaf.hl.Function;
+import com.att.dao.aaf.hl.Question;
+import com.att.inno.env.APIException;
+import com.datastax.driver.core.Cluster;
+import com.datastax.driver.core.Session;
+
+public abstract class ActionDAO<T,RV> implements Action<T,RV> {
+       protected final Question q; 
+       protected final Function f;
+       private boolean clean;
+
+       public ActionDAO(AuthzTrans trans, Cluster cluster) throws APIException, IOException {
+               q = new Question(trans, cluster, CassAccess.KEYSPACE, false);
+               f = new Function(trans,q);
+               clean = true;
+       }
+       
+       public ActionDAO(AuthzTrans trans, ActionDAO<?,?> predecessor) {
+               q = predecessor.q;
+               f = new Function(trans,q);
+               clean = false;
+       }
+       
+       public Session getSession(AuthzTrans trans) throws APIException, IOException {
+               return q.historyDAO.getSession(trans);
+       }
+
+       public void close(AuthzTrans trans) {
+               if(clean) {
+                       q.close(trans);
+               }
+       }
+
+}