(no commit message)
[utils] / security / impl / src / main / java / org / wamblee / usermgt / Group.java
index 13075aa2efe0645333a8042a32444ac4e2d8691b..b203c63d20dfb74d0e89536400f3761726306622 100644 (file)
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
- */ 
+ */
 package org.wamblee.usermgt;
 
-import org.wamblee.persistence.AbstractPersistent;
-
 import java.io.Serializable;
 
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.NamedQueries;
+import javax.persistence.NamedQuery;
+import javax.persistence.Table;
+import javax.persistence.Version;
+
 /**
  * Represents a group.
  * 
  * @author Erik Brakkee
  */
-public class Group extends AbstractPersistent implements Serializable,
-    Comparable {
+@Entity
+@Table(name = "SEC_GROUP")
+@NamedQueries( {
+    @NamedQuery(name = Group.QUERY_FIND_BY_NAME, query = "select g from Group g where g.name = :" +
+        Group.NAME_PARAM),
+    @NamedQuery(name = Group.QUERY_COUNT_GROUPS, query = "select count(g) from Group g"),
+    @NamedQuery(name = Group.QUERY_ALL_GROUPS, query = "select g from Group g") })
+public class Group implements Serializable, Comparable {
+
+    public static final String QUERY_FIND_BY_NAME = "Group.findByName";
+    public static final String QUERY_COUNT_GROUPS = "Group.count";
+    public static final String QUERY_ALL_GROUPS = "Group.all";
+    public static final String NAME_PARAM = "name";
+
+    @Id
+    @GeneratedValue(strategy = GenerationType.AUTO)
+    private Long primaryKey;
+
+    @Version
+    private int version;
+
     /**
      * Group name.
      */
+    @Column(nullable = false, unique = true)
     private String name;
 
     /**
@@ -46,7 +74,8 @@ public class Group extends AbstractPersistent implements Serializable,
      * 
      */
     public Group(Group aGroup) {
-        super(aGroup);
+        primaryKey = aGroup.primaryKey;
+        version = aGroup.version;
         name = aGroup.name;
     }
 
@@ -84,6 +113,9 @@ public class Group extends AbstractPersistent implements Serializable,
      */
     @Override
     public boolean equals(Object aGroup) {
+        if (aGroup == null) {
+            return false;
+        }
         if (!(aGroup instanceof Group)) {
             return false;
         }
@@ -110,6 +142,14 @@ public class Group extends AbstractPersistent implements Serializable,
         return name.compareTo(((Group) aGroup).name);
     }
 
+    public Long getPrimaryKey() {
+        return primaryKey;
+    }
+
+    public void setPrimaryKey(Long aKey) {
+        primaryKey = aKey;
+    }
+
     /*
      * (non-Javadoc)
      *