summaryrefslogtreecommitdiffstats
path: root/Master/Reference Architectures and Patterns/EJB 3.0 Code/Micah Examples/src/examples/entity/single_table
diff options
context:
space:
mode:
Diffstat (limited to 'Master/Reference Architectures and Patterns/EJB 3.0 Code/Micah Examples/src/examples/entity/single_table')
-rw-r--r--Master/Reference Architectures and Patterns/EJB 3.0 Code/Micah Examples/src/examples/entity/single_table/Car.java21
-rw-r--r--Master/Reference Architectures and Patterns/EJB 3.0 Code/Micah Examples/src/examples/entity/single_table/Coupe.java31
-rw-r--r--Master/Reference Architectures and Patterns/EJB 3.0 Code/Micah Examples/src/examples/entity/single_table/Motorcycle.java22
-rw-r--r--Master/Reference Architectures and Patterns/EJB 3.0 Code/Micah Examples/src/examples/entity/single_table/RoadVehicle.java72
-rw-r--r--Master/Reference Architectures and Patterns/EJB 3.0 Code/Micah Examples/src/examples/entity/single_table/RoadVehicleStatelessBean.java50
-rw-r--r--Master/Reference Architectures and Patterns/EJB 3.0 Code/Micah Examples/src/examples/entity/single_table/Roadster.java31
-rw-r--r--Master/Reference Architectures and Patterns/EJB 3.0 Code/Micah Examples/src/examples/entity/single_table/client/RoadVehicleClient.java54
-rw-r--r--Master/Reference Architectures and Patterns/EJB 3.0 Code/Micah Examples/src/examples/entity/single_table/interfaces/RoadVehicleStateless.java16
8 files changed, 297 insertions, 0 deletions
diff --git a/Master/Reference Architectures and Patterns/EJB 3.0 Code/Micah Examples/src/examples/entity/single_table/Car.java b/Master/Reference Architectures and Patterns/EJB 3.0 Code/Micah Examples/src/examples/entity/single_table/Car.java
new file mode 100644
index 0000000..5c72d7f
--- /dev/null
+++ b/Master/Reference Architectures and Patterns/EJB 3.0 Code/Micah Examples/src/examples/entity/single_table/Car.java
@@ -0,0 +1,21 @@
+package examples.entity.single_table;
+
+import java.io.Serializable;
+
+import javax.persistence.DiscriminatorValue;
+import javax.persistence.Entity;
+
+@Entity(name="CarSingle")
+@DiscriminatorValue("CAR")
+public class Car extends RoadVehicle implements Serializable {
+ public final AcceleratorType acceleratorType = AcceleratorType.PEDAL;
+
+ public Car() {
+ super();
+ numWheels = 4;
+ }
+
+ public String toString() {
+ return "Car: "+super.toString();
+ }
+}
diff --git a/Master/Reference Architectures and Patterns/EJB 3.0 Code/Micah Examples/src/examples/entity/single_table/Coupe.java b/Master/Reference Architectures and Patterns/EJB 3.0 Code/Micah Examples/src/examples/entity/single_table/Coupe.java
new file mode 100644
index 0000000..31af7d5
--- /dev/null
+++ b/Master/Reference Architectures and Patterns/EJB 3.0 Code/Micah Examples/src/examples/entity/single_table/Coupe.java
@@ -0,0 +1,31 @@
+package examples.entity.single_table;
+
+import java.io.Serializable;
+
+import javax.persistence.DiscriminatorValue;
+import javax.persistence.Entity;
+
+@Entity(name="CoupeSingle")
+@DiscriminatorValue("COUPE")
+public class Coupe extends Car implements Serializable {
+ public enum BoringFactor {BORING,BORINGER,BORINGEST};
+
+ private BoringFactor boringFactor;
+
+ public Coupe() {
+ super();
+ numPassengers = 5;
+ }
+
+ public BoringFactor getBoringFactor() {
+ return boringFactor;
+ }
+
+ public void setBoringFactor(BoringFactor boringFactor) {
+ this.boringFactor = boringFactor;
+ }
+
+ public String toString() {
+ return "Coupe: "+super.toString();
+ }
+}
diff --git a/Master/Reference Architectures and Patterns/EJB 3.0 Code/Micah Examples/src/examples/entity/single_table/Motorcycle.java b/Master/Reference Architectures and Patterns/EJB 3.0 Code/Micah Examples/src/examples/entity/single_table/Motorcycle.java
new file mode 100644
index 0000000..018cb5d
--- /dev/null
+++ b/Master/Reference Architectures and Patterns/EJB 3.0 Code/Micah Examples/src/examples/entity/single_table/Motorcycle.java
@@ -0,0 +1,22 @@
+package examples.entity.single_table;
+
+import java.io.Serializable;
+
+import javax.persistence.DiscriminatorValue;
+import javax.persistence.Entity;
+
+@Entity(name="MotorcycleSingle")
+@DiscriminatorValue("MOTORCYCLE")
+public class Motorcycle extends RoadVehicle implements Serializable {
+ public final AcceleratorType acceleratorType = AcceleratorType.THROTTLE;
+
+ public Motorcycle() {
+ super();
+ numWheels = 2;
+ numPassengers = 2;
+ }
+
+ public String toString() {
+ return "Motorcycle: "+super.toString();
+ }
+}
diff --git a/Master/Reference Architectures and Patterns/EJB 3.0 Code/Micah Examples/src/examples/entity/single_table/RoadVehicle.java b/Master/Reference Architectures and Patterns/EJB 3.0 Code/Micah Examples/src/examples/entity/single_table/RoadVehicle.java
new file mode 100644
index 0000000..75a258a
--- /dev/null
+++ b/Master/Reference Architectures and Patterns/EJB 3.0 Code/Micah Examples/src/examples/entity/single_table/RoadVehicle.java
@@ -0,0 +1,72 @@
+package examples.entity.single_table;
+
+import java.io.Serializable;
+
+import javax.persistence.DiscriminatorColumn;
+import javax.persistence.DiscriminatorType;
+import javax.persistence.DiscriminatorValue;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.Inheritance;
+import javax.persistence.InheritanceType;
+import javax.persistence.Table;
+
+@Entity(name="RoadVehicleSingle")
+@Table(name="RoadVehicleSingle")
+@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
+@DiscriminatorColumn(name="DISC", discriminatorType=DiscriminatorType.STRING)
+@DiscriminatorValue("ROADVEHICLE")
+public class RoadVehicle implements Serializable {
+ public enum AcceleratorType {PEDAL,THROTTLE};
+
+ @Id
+ protected int id;
+ protected int numPassengers;
+ protected int numWheels;
+ protected String make;
+ protected String model;
+
+ public RoadVehicle() {
+ id = (int) System.nanoTime();
+ }
+
+ public int getNumPassengers() {
+ return numPassengers;
+ }
+
+ public void setNumPassengers(int numPassengers) {
+ this.numPassengers = numPassengers;
+ }
+
+ public int getNumWheels() {
+ return numWheels;
+ }
+
+ public void setNumWheels(int numWheels) {
+ this.numWheels = numWheels;
+ }
+
+ public int getId() {
+ return id;
+ }
+
+ public String getMake() {
+ return make;
+ }
+
+ public void setMake(String make) {
+ this.make = make;
+ }
+
+ public String getModel() {
+ return model;
+ }
+
+ public void setModel(String model) {
+ this.model = model;
+ }
+
+ public String toString() {
+ return "Make: "+make+", Model: "+model+", Number of passengers: "+numPassengers;
+ }
+}
diff --git a/Master/Reference Architectures and Patterns/EJB 3.0 Code/Micah Examples/src/examples/entity/single_table/RoadVehicleStatelessBean.java b/Master/Reference Architectures and Patterns/EJB 3.0 Code/Micah Examples/src/examples/entity/single_table/RoadVehicleStatelessBean.java
new file mode 100644
index 0000000..94d27db
--- /dev/null
+++ b/Master/Reference Architectures and Patterns/EJB 3.0 Code/Micah Examples/src/examples/entity/single_table/RoadVehicleStatelessBean.java
@@ -0,0 +1,50 @@
+package examples.entity.single_table;
+
+import java.util.List;
+
+import javax.ejb.Stateless;
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+import javax.persistence.Query;
+
+import examples.entity.single_table.Coupe.BoringFactor;
+import examples.entity.single_table.Roadster.CoolFactor;
+import examples.entity.single_table.interfaces.RoadVehicleStateless;
+
+@Stateless
+public class RoadVehicleStatelessBean implements RoadVehicleStateless {
+ @PersistenceContext(unitName="pu1")
+ EntityManager em;
+
+ public void doSomeStuff() {
+ Coupe c = new Coupe();
+ c.setMake("Bob");
+ c.setModel("E400");
+ c.setBoringFactor(BoringFactor.BORING);
+ em.persist(c);
+
+ Roadster r = new Roadster();
+ r.setMake("Mini");
+ r.setModel("Cooper S");
+ r.setCoolFactor(CoolFactor.COOLEST);
+ em.persist(r);
+
+ Motorcycle m = new Motorcycle();
+ em.persist(m);
+ }
+
+ public List getAllRoadVehicles() {
+ Query q = em.createQuery("SELECT r FROM RoadVehicleSingle r");
+ return q.getResultList();
+ }
+
+ public void deleteAll(String type) {
+ Query q = em.createQuery("DELETE FROM "+type);
+ q.executeUpdate();
+ }
+
+ public void updateAll(String type) {
+ Query q = em.createQuery("UPDATE "+type+" r SET r.numPassengers = 1");
+ q.executeUpdate();
+ }
+}
diff --git a/Master/Reference Architectures and Patterns/EJB 3.0 Code/Micah Examples/src/examples/entity/single_table/Roadster.java b/Master/Reference Architectures and Patterns/EJB 3.0 Code/Micah Examples/src/examples/entity/single_table/Roadster.java
new file mode 100644
index 0000000..ae308ac
--- /dev/null
+++ b/Master/Reference Architectures and Patterns/EJB 3.0 Code/Micah Examples/src/examples/entity/single_table/Roadster.java
@@ -0,0 +1,31 @@
+package examples.entity.single_table;
+
+import java.io.Serializable;
+
+import javax.persistence.DiscriminatorValue;
+import javax.persistence.Entity;
+
+@Entity(name="RaodsterSingle")
+@DiscriminatorValue("ROADSTER")
+public class Roadster extends Car implements Serializable {
+ public enum CoolFactor {COOL,COOLER,COOLEST};
+
+ private CoolFactor coolFactor;
+
+ public Roadster() {
+ super();
+ numPassengers = 2;
+ }
+
+ public CoolFactor getCoolFactor() {
+ return coolFactor;
+ }
+
+ public void setCoolFactor(CoolFactor coolFactor) {
+ this.coolFactor = coolFactor;
+ }
+
+ public String toString() {
+ return "Roadster: "+super.toString();
+ }
+}
diff --git a/Master/Reference Architectures and Patterns/EJB 3.0 Code/Micah Examples/src/examples/entity/single_table/client/RoadVehicleClient.java b/Master/Reference Architectures and Patterns/EJB 3.0 Code/Micah Examples/src/examples/entity/single_table/client/RoadVehicleClient.java
new file mode 100644
index 0000000..6ef6ea6
--- /dev/null
+++ b/Master/Reference Architectures and Patterns/EJB 3.0 Code/Micah Examples/src/examples/entity/single_table/client/RoadVehicleClient.java
@@ -0,0 +1,54 @@
+package examples.entity.single_table.client;
+
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
+
+import examples.entity.single_table.interfaces.RoadVehicleStateless;
+
+
+public class RoadVehicleClient {
+ public static void main(String[] args) {
+ String action = "insert";
+ String type = "RoadVehicleSingle";
+
+ if (args.length>0) {
+ if (args[0].startsWith("update")) {
+ action="update";
+ }
+ else if (args[0].startsWith("delete")) {
+ action="delete";
+ }
+
+ if (args.length == 2) {
+ type = args[1];
+ }
+ }
+
+ InitialContext ic;
+ try {
+ ic = new InitialContext();
+ RoadVehicleStateless rvs = (RoadVehicleStateless)ic.lookup(RoadVehicleStateless.class.getName());
+
+ if (action.equals("insert")) {
+ System.out.println("Inserting...");
+ rvs.doSomeStuff();
+ }
+ else if (action.equals("update")) {
+ System.out.println("Updating "+type+"...");
+ rvs.updateAll(type);
+ }
+ else if (action.equals("delete")) {
+ System.out.println("Deleting "+type+"...");
+ rvs.deleteAll(type);
+ }
+
+ System.out.println("Here is the list of all RoadVehicles:\n");
+ for (Object o : rvs.getAllRoadVehicles()) {
+ System.out.println("RoadVehicle: "+o);
+ }
+ }
+ catch (NamingException e) {
+ e.printStackTrace();
+ }
+ }
+}
diff --git a/Master/Reference Architectures and Patterns/EJB 3.0 Code/Micah Examples/src/examples/entity/single_table/interfaces/RoadVehicleStateless.java b/Master/Reference Architectures and Patterns/EJB 3.0 Code/Micah Examples/src/examples/entity/single_table/interfaces/RoadVehicleStateless.java
new file mode 100644
index 0000000..c85da7e
--- /dev/null
+++ b/Master/Reference Architectures and Patterns/EJB 3.0 Code/Micah Examples/src/examples/entity/single_table/interfaces/RoadVehicleStateless.java
@@ -0,0 +1,16 @@
+package examples.entity.single_table.interfaces;
+
+import java.util.List;
+
+import javax.ejb.Remote;
+
+@Remote
+public interface RoadVehicleStateless {
+ public void doSomeStuff();
+
+ public List getAllRoadVehicles();
+
+ public void deleteAll(String type);
+
+ public void updateAll(String type);
+}