ServiceItems now have owners
authorGeorgios Gousios <gousiosg@gmail.com>
Fri, 16 Sep 2011 13:46:10 +0000 (16:46 +0300)
committerGeorgios Gousios <gousiosg@gmail.com>
Fri, 16 Sep 2011 13:46:10 +0000 (16:46 +0300)
model/src/main/scala/gr/grnet/aquarium/model/Entity.scala
model/src/main/scala/gr/grnet/aquarium/model/Permission.scala
model/src/main/scala/gr/grnet/aquarium/model/ServiceItem.scala
model/src/main/scala/gr/grnet/aquarium/model/ServiceItemConfig.scala

index c7b7007..03bd596 100644 (file)
@@ -1,6 +1,7 @@
 package gr.grnet.aquarium.model
 
 import javax.persistence._
+import java.util.{HashSet, Set}
 
 @javax.persistence.Entity
 @Inheritance(strategy=InheritanceType.SINGLE_TABLE)
@@ -14,4 +15,12 @@ abstract class Entity extends Id {
 
   @Column(name = "CREDITS", nullable = true)
   var credits: Int = 0
+
+  @OneToMany(mappedBy = "entity",  targetEntity = classOf[Permission],
+             cascade = Array(CascadeType.ALL))
+  var permissions : Set[Permission] = new HashSet[Permission]()
+
+  @OneToMany(mappedBy = "owner",  targetEntity = classOf[ServiceItem],
+             cascade = Array(CascadeType.ALL))
+  var serviceItems : Set[ServiceItem] = new HashSet[ServiceItem]()
 }
\ No newline at end of file
index 3608706..e975a23 100644 (file)
@@ -2,11 +2,22 @@ package gr.grnet.aquarium.model
 
 import javax.persistence._
 
-@Table(name = "ORGANIZATION")
+@Table(name = "PERMISSION")
 @javax.persistence.Entity
 class Permission extends Id {
 
+  @ManyToOne(cascade = Array(CascadeType.ALL),
+             targetEntity = classOf[Action])
+  @JoinColumn(name = "ACTION_ID")
   var action : Action = _
 
+  @ManyToOne(cascade = Array(CascadeType.ALL),
+             targetEntity = classOf[Entity])
+  @JoinColumn(name = "ENTITY_ID")
   var entity : Entity = _
+
+  @ManyToOne(cascade = Array(CascadeType.ALL),
+             targetEntity = classOf[Entity])
+  @JoinColumn(name = "SERVICE_ITEM_ID")
+  var item : ServiceItem = _
 }
\ No newline at end of file
index ca998bd..f15f467 100644 (file)
@@ -1,21 +1,28 @@
 package gr.grnet.aquarium.model
 
+import java.util.{Set, HashSet}
 import javax.persistence._
 
 @javax.persistence.Entity
 @Table(name = "SERVICE_ITEM")
 @NamedQueries(Array(
   new NamedQuery(name="allSi", query="select si from ServiceItem si"),
-  new NamedQuery(name="siPerEntity", query="select si from ServiceItem ")
+  new NamedQuery(name="siPerEntity",
+                 query="select si from ServiceItem si where si.owner = :owner")
 ))
 class ServiceItem extends Id {
 
   @Column(name = "URL")
   var url : String = ""
 
+  @ManyToOne(cascade = Array(CascadeType.ALL),
+             targetEntity = classOf[ServiceItem])
+  @JoinColumn(name = "ENTITY_ID")
+  var owner : gr.grnet.aquarium.model.Entity = _
+
   @OneToMany(mappedBy = "item",  targetEntity = classOf[ServiceItemConfig],
              cascade = Array(CascadeType.ALL))
-  var configItems : java.util.Set[ServiceItemConfig] = new java.util.HashSet[ServiceItemConfig]()
+  var configItems : Set[ServiceItemConfig] = new HashSet[ServiceItemConfig]()
 
   @OneToMany(mappedBy = "item",  targetEntity = classOf[Bill],
              cascade = Array(CascadeType.ALL))
@@ -25,4 +32,8 @@ class ServiceItem extends Id {
              targetEntity = classOf[ServiceTemplate])
   @JoinColumn(name = "SERVICE_TEMPLATE_ID")
   var template : ServiceTemplate = _
+
+  @OneToMany(mappedBy = "item",  targetEntity = classOf[Permission],
+             cascade = Array(CascadeType.ALL))
+  var permissions : Set[Permission] = new HashSet[Permission]()
 }
index cea35f9..e8df329 100644 (file)
@@ -1,6 +1,7 @@
 package gr.grnet.aquarium.model
 
 import javax.persistence._
+import java.util.{Set, HashSet}
 
 @Table(name = "SERVICE_ITEM_CONFIG")
 @javax.persistence.Entity
@@ -21,5 +22,5 @@ class ServiceItemConfig extends Id {
 
   @OneToMany(mappedBy = "item",  targetEntity = classOf[RuntimeData],
              cascade = Array(CascadeType.ALL))
-  var runtime : java.util.Set[RuntimeData] = new java.util.HashSet[RuntimeData]()
+  var runtime : Set[RuntimeData] = new HashSet[RuntimeData]()
 }
\ No newline at end of file