(no commit message)
[utils] / security / impl / src / main / java / org / wamblee / security / authorization / UserCondition.java
index 9f0963b7dc86b9d2762d74f190afab6fd3c436f5..293869b45edc00daaf26670a1f8f9016bdeb4fee 100644 (file)
  */ 
 package org.wamblee.security.authorization;
 
+import javax.persistence.DiscriminatorColumn;
+import javax.persistence.DiscriminatorType;
+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;
 
 import org.wamblee.usermgt.User;
@@ -24,7 +35,28 @@ import org.wamblee.usermgt.User;
  * 
  * @author Erik Brakkee
  */
-public interface UserCondition extends Persistent {
+@Entity
+@Table(name = "SEC_USER_CONDITION")
+@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
+@DiscriminatorColumn(name = "TYPE")
+public abstract class UserCondition {
+    
+    @Id
+    @GeneratedValue(strategy = GenerationType.AUTO)
+    private Long primaryKey;
+
+    @Version
+    private int version;
+    
+    public UserCondition() { 
+        // Empty.
+    }
+    
+    public UserCondition(UserCondition aCondition) { 
+        primaryKey = aCondition.primaryKey;
+        version = aCondition.version;
+    }
+    
     /**
      * Determines if the condition matches.
      * 
@@ -33,5 +65,5 @@ public interface UserCondition extends Persistent {
      * 
      * @return True if the condition matches, false otherwise.
      */
-    boolean matches(User aUser);
+    public abstract boolean matches(User aUser);
 }