(no commit message)
[utils] / security / impl / src / main / java / org / wamblee / security / authorization / OperationCondition.java
index 916ab19ae87f73742a550050a3bcec662f2e771c..3e8f8fb48c01515271b478ea012e5f2da04bb38d 100644 (file)
  */ 
 package org.wamblee.security.authorization;
 
+import javax.persistence.DiscriminatorColumn;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.Inheritance;
+import javax.persistence.InheritanceType;
+import javax.persistence.Table;
+import javax.persistence.Version;
+
 import org.wamblee.persistence.Persistent;
 
 /**
@@ -22,7 +32,28 @@ import org.wamblee.persistence.Persistent;
  * 
  * @author Erik Brakkee
  */
-public interface OperationCondition extends Persistent {
+@Entity
+@Table(name = "SEC_OPERATION_CONDITION")
+@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
+@DiscriminatorColumn(name = "TYPE")
+public abstract class OperationCondition {
+    
+    @Id
+    @GeneratedValue(strategy = GenerationType.AUTO)
+    private Long primaryKey;
+
+    @Version
+    private int version;
+    
+    public OperationCondition() { 
+        // Empty
+    }
+    
+    public OperationCondition(OperationCondition aCondition) { 
+        primaryKey = aCondition.primaryKey;
+        version = aCondition.version;
+    }
+    
     /**
      * Determines if the operation matches.
      * 
@@ -31,5 +62,5 @@ public interface OperationCondition extends Persistent {
      * 
      * @return True iff the operation matches.
      */
-    boolean matches(Operation aOperation);
+    public abstract boolean matches(Operation aOperation);
 }