]> git.mxchange.org Git - jjobs-ejb.git/commitdiff
Please cherry-pick:
authorRoland Häder <roland@mxchange.org>
Mon, 15 Aug 2016 11:00:00 +0000 (13:00 +0200)
committerRoland Haeder <roland@mxchange.org>
Tue, 16 Aug 2016 19:24:59 +0000 (21:24 +0200)
- splitted contact remote interface into general and administrative purposes

src/java/org/mxchange/jcontacts/contact/JobsContactSessionBean.java
src/java/org/mxchange/jcontacts/contact/LandingAdminContactSessionBean.java [new file with mode: 0644]

index 8eafc5c3e9dfbe85774f426be652844093e54fc1..4bb8b9cce9afaaa9e6d8c2993adfd88ed69f89ef 100644 (file)
@@ -17,7 +17,6 @@
 package org.mxchange.jcontacts.contact;
 
 import java.text.MessageFormat;
-import java.util.GregorianCalendar;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Objects;
@@ -25,7 +24,6 @@ import javax.ejb.Stateless;
 import javax.persistence.NoResultException;
 import javax.persistence.Query;
 import org.mxchange.jcontacts.contact.utils.ContactUtils;
-import org.mxchange.jcontacts.exceptions.ContactAlreadyAddedException;
 import org.mxchange.jcontacts.exceptions.ContactNotFoundException;
 import org.mxchange.jjobs.database.BaseJobsDatabaseBean;
 
@@ -48,39 +46,6 @@ public class JobsContactSessionBean extends BaseJobsDatabaseBean implements Cont
        public JobsContactSessionBean () {
        }
 
-       @Override
-       public Contact addContact (final Contact contact) throws ContactAlreadyAddedException {
-               // Trace message
-               this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.addContact: contact={1} - CALLED!", this.getClass().getSimpleName(), contact)); //NOI18N
-
-               // Is the instance set?
-               if (null == contact) {
-                       // Throw NPE
-                       throw new NullPointerException("contact is null"); //NOI18N
-               } else if (contact.getContactId() != null) {
-                       // Should be null
-                       throw new IllegalArgumentException(MessageFormat.format("contact.contactId={0} - is not null", contact.getContactId())); //NOI18N
-               }
-
-               // Set created timestamp
-               contact.setContactCreated(new GregorianCalendar());
-
-               // Set all created timestamps, if instance is there
-               this.setAllContactPhoneEntriesCreated(contact);
-
-               // Persist it
-               this.getEntityManager().persist(contact);
-
-               // Flush it to get contactId set
-               this.getEntityManager().flush();
-
-               // Trace message
-               this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.addContact: contact.contactId={1} after persisting - EXIT!", this.getClass().getSimpleName(), contact.getContactId())); //NOI18N
-
-               // Return it
-               return contact;
-       }
-
        @Override
        public Contact findContactByEmailAddress (final String emailAddress) throws ContactNotFoundException {
                // Log trace message
diff --git a/src/java/org/mxchange/jcontacts/contact/LandingAdminContactSessionBean.java b/src/java/org/mxchange/jcontacts/contact/LandingAdminContactSessionBean.java
new file mode 100644 (file)
index 0000000..dbbe9f1
--- /dev/null
@@ -0,0 +1,101 @@
+/*
+ * Copyright (C) 2016 Cho-Time GmbH
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+package org.mxchange.jcontacts.contact;
+
+import de.chotime.landingpage.database.BaseLandingDatabaseBean;
+import java.text.MessageFormat;
+import java.util.GregorianCalendar;
+import javax.ejb.Stateless;
+import org.mxchange.jcontacts.exceptions.ContactAlreadyAddedException;
+
+/**
+ * An administrative contact EJB
+ * <p>
+ * @author Roland Haeder<rhaeder@cho-time.de>
+ */
+@Stateless (name = "adminContact", description = "An administrative contact EJB")
+public class LandingAdminContactSessionBean extends BaseLandingDatabaseBean implements AdminContactSessionBeanRemote {
+
+       /**
+        * Serial number
+        */
+       private static final long serialVersionUID = 542_145_347_916L;
+
+       /**
+        * Default constructor
+        */
+       public LandingAdminContactSessionBean () {
+       }
+
+       @Override
+       public Contact addContact (final Contact contact) throws ContactAlreadyAddedException {
+               // Trace message
+               this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.addContact: contact={1} - CALLED!", this.getClass().getSimpleName(), contact)); //NOI18N
+
+               // Is the instance set?
+               if (null == contact) {
+                       // Throw NPE
+                       throw new NullPointerException("contact is null"); //NOI18N
+               } else if (contact.getContactId() != null) {
+                       // Should be null
+                       throw new IllegalArgumentException(MessageFormat.format("contact.contactId={0} - is not null", contact.getContactId())); //NOI18N
+               }
+
+               // Set created timestamp
+               contact.setContactCreated(new GregorianCalendar());
+
+               // Set all created timestamps, if instance is there
+               this.setAllContactPhoneEntriesCreated(contact);
+
+               // Persist it
+               this.getEntityManager().persist(contact);
+
+               // Flush it to get contactId set
+               this.getEntityManager().flush();
+
+               // Trace message
+               this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.addContact: contact.contactId={1} after persisting - EXIT!", this.getClass().getSimpleName(), contact.getContactId())); //NOI18N
+
+               // Return it
+               return contact;
+       }
+
+       @Override
+       public void deleteContactData (Contact contact) {
+               // Trace message
+               this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.deleteContactData: contact={1} - CALLED!", this.getClass().getSimpleName(), contact)); //NOI18N
+
+               // Is the instance set?
+               if (null == contact) {
+                       // Throw NPE
+                       throw new NullPointerException("contact is null"); //NOI18N
+               } else if (contact.getContactId() != null) {
+                       // Should be null
+                       throw new IllegalArgumentException(MessageFormat.format("contact.contactId={0} - is not null", contact.getContactId())); //NOI18N
+               }
+
+               // Merge it to get a managed entity back
+               Contact managedContact = this.getEntityManager().getReference(contact.getClass(), contact.getContactId());
+
+               // Remove it from database
+               this.getEntityManager().remove(managedContact);
+
+               // Trace message
+               this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.deleteContactData: EXIT!", this.getClass().getSimpleName()));
+       }
+
+}