*/
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;
*
* @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.
*
*
* @return True if the condition matches, false otherwise.
*/
- boolean matches(User aUser);
+ public abstract boolean matches(User aUser);
}