From 1f8add441383e17daae8b99ca86ebb242e16a67f Mon Sep 17 00:00:00 2001 From: Peter Hormanns <peter.hormanns@hostsharing.net> Date: Wed, 18 Jul 2012 10:53:46 +0200 Subject: [PATCH] DomainOptions Model --- hsarback/src/de/hsadmin/mods/dom/DomainOption.java | 88 ++++++++++++++++++++++++++++++++++++++++++++ hsarback/src/de/hsadmin/mods/dom/Domain.java | 14 +++++++ hsarback/conf/META-INF/persistence.xml | 1 3 files changed, 103 insertions(+), 0 deletions(-) diff --git a/hsarback/conf/META-INF/persistence.xml b/hsarback/conf/META-INF/persistence.xml index 8651105..6efa7fe 100644 --- a/hsarback/conf/META-INF/persistence.xml +++ b/hsarback/conf/META-INF/persistence.xml @@ -17,6 +17,7 @@ <class>de.hsadmin.mods.pac.INetAddress</class> <class>de.hsadmin.mods.user.UnixUser</class> <class>de.hsadmin.mods.dom.Domain</class> + <class>de.hsadmin.mods.dom.DomainOption</class> <class>de.hsadmin.mods.email.EMailAddress</class> <class>de.hsadmin.mods.email.EMailAlias</class> <class>de.hsadmin.mods.db.DatabaseUser</class> diff --git a/hsarback/src/de/hsadmin/mods/dom/Domain.java b/hsarback/src/de/hsadmin/mods/dom/Domain.java index 451a5bb..f9ff399 100644 --- a/hsarback/src/de/hsadmin/mods/dom/Domain.java +++ b/hsarback/src/de/hsadmin/mods/dom/Domain.java @@ -4,13 +4,16 @@ import static javax.persistence.GenerationType.SEQUENCE; import java.util.Date; +import java.util.Set; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.EntityManager; +import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.JoinColumn; +import javax.persistence.ManyToMany; import javax.persistence.ManyToOne; import javax.persistence.SequenceGenerator; import javax.persistence.Table; @@ -64,6 +67,9 @@ @Column(name = "domain_dns_master", columnDefinition = "character varying(64)") private String dnsMaster; + @ManyToMany(fetch=FetchType.EAGER, mappedBy="domains") + private Set<DomainOption> domainOptions; + public Domain() { } @@ -207,6 +213,14 @@ "obj.user=:loginUser"; } + public Set<DomainOption> getDomainOptions() { + return domainOptions; + } + + public void setDomainOptions(Set<DomainOption> domainOptions) { + this.domainOptions = domainOptions; + } + public static enum Status { NONE(""), ERROR("error"), diff --git a/hsarback/src/de/hsadmin/mods/dom/DomainOption.java b/hsarback/src/de/hsadmin/mods/dom/DomainOption.java new file mode 100644 index 0000000..55db527 --- /dev/null +++ b/hsarback/src/de/hsadmin/mods/dom/DomainOption.java @@ -0,0 +1,88 @@ +package de.hsadmin.mods.dom; + +import static javax.persistence.GenerationType.SEQUENCE; + +import java.util.Set; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.EntityManager; +import javax.persistence.FetchType; +import javax.persistence.GeneratedValue; +import javax.persistence.Id; +import javax.persistence.JoinColumn; +import javax.persistence.JoinTable; +import javax.persistence.ManyToMany; +import javax.persistence.SequenceGenerator; +import javax.persistence.Table; + +import de.hsadmin.core.model.AbstractEntity; +import de.hsadmin.core.model.FieldValidation; +import de.hsadmin.mods.user.UnixUser; + +@Table(name="domain_option") +@Entity(name="DomainOption") +@SequenceGenerator(name = "DomainOptionSeqGen", sequenceName = "domain_option_id_seq") +public class DomainOption extends AbstractEntity { + + @Id + @Column(name = "domain_option_id", columnDefinition = "integer") + @GeneratedValue(strategy = SEQUENCE, generator = "DomainOptionSeqGen") + private long id; + + @FieldValidation("[a-z0-9]+") + @Column(name = "domain_option_name", columnDefinition = "character varying(256)", nullable = false) + private String name; + + @ManyToMany(fetch=FetchType.LAZY) + @JoinTable(name="domain__domain_option", + joinColumns={@JoinColumn(name="domain_option_id", referencedColumnName="domain_option_id")}, + inverseJoinColumns={@JoinColumn(name="domain_id", referencedColumnName="domain_id")}) + private Set<Domain> domains; + + @Override + public long id() { + return getId(); + } + + @Override + public String createStringKey() { + return name; + } + + @Override + public boolean isNew() { + return false; + } + + @Override + public UnixUser owningUser(EntityManager em) { + // TODO Auto-generated method stub + return null; + } + + public long getId() { + return id; + } + + public void setId(long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Set<Domain> getDomains() { + return domains; + } + + public void setDomains(Set<Domain> domains) { + this.domains = domains; + } + +} -- Gitblit v1.9.3