From 348c8e86763808f2c03f62c5dc198cbc163ccb8b Mon Sep 17 00:00:00 2001 From: Roland Haeder Date: Mon, 24 Aug 2015 13:30:16 +0200 Subject: [PATCH] =?utf8?q?Updated=20jcore=20+=20some=20more=20fixes=20for?= =?utf8?q?=20changed=20database=20backend=20(Table=20Data=20Gateway=20Patt?= =?utf8?q?ern)=20Signed-off-by:Roland=20H=C3=A4der=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- lib/jcore.jar | Bin 113421 -> 112955 bytes nbproject/project.properties | 1 + .../AddressbookContactDatabaseFrontend.java | 45 ++++++++++++------ .../contact/AddressbookContactFrontend.java | 5 +- .../contact/AddressbookContactManager.java | 15 ++---- 5 files changed, 40 insertions(+), 26 deletions(-) diff --git a/lib/jcore.jar b/lib/jcore.jar index 4ad2d9d51895e21f4aa9cee85a33acf155bc655c..d426e0dec31b4479bf275fbb9cc6ca3ba25ffd7c 100644 GIT binary patch delta 12915 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 T%uqeVx_F9H0w3LtHPL?q|C{jv delta 13091 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 diff --git a/nbproject/project.properties b/nbproject/project.properties index d1a9fce..7d2fb23 100644 --- a/nbproject/project.properties +++ b/nbproject/project.properties @@ -78,6 +78,7 @@ run.test.classpath=\ ${javac.test.classpath}:\ ${build.test.classes.dir} source.encoding=UTF-8 +source.reference.jcore.jar=../jcore/src/ source.reference.log4j-api-2.3.jar=/home/quix0r/MyProjects/JARs/log4j-api-2.3-sources.jar source.reference.log4j-core-2.3.jar=/home/quix0r/MyProjects/JARs/log4j-core-2.3-sources.jar src.dir=src diff --git a/src/org/mxchange/addressbook/database/frontend/contact/AddressbookContactDatabaseFrontend.java b/src/org/mxchange/addressbook/database/frontend/contact/AddressbookContactDatabaseFrontend.java index 89802a8..e51b942 100644 --- a/src/org/mxchange/addressbook/database/frontend/contact/AddressbookContactDatabaseFrontend.java +++ b/src/org/mxchange/addressbook/database/frontend/contact/AddressbookContactDatabaseFrontend.java @@ -17,19 +17,16 @@ package org.mxchange.addressbook.database.frontend.contact; import java.io.IOException; +import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.sql.SQLException; import java.text.MessageFormat; import java.util.Iterator; import java.util.Map; -import java.util.StringTokenizer; -import org.mxchange.addressbook.contact.book.BookContact; -import org.mxchange.addressbook.contact.user.UserContact; import org.mxchange.addressbook.database.contact.AddressbookContactDatabaseConstants; import org.mxchange.addressbook.exceptions.ContactAlreadyAddedException; import org.mxchange.addressbook.manager.contact.AddressbookContactManager; import org.mxchange.jcore.contact.Contact; -import org.mxchange.jcore.contact.Gender; import org.mxchange.jcore.criteria.searchable.SearchCriteria; import org.mxchange.jcore.criteria.searchable.SearchableCriteria; import org.mxchange.jcore.database.frontend.BaseDatabaseFrontend; @@ -110,9 +107,27 @@ public class AddressbookContactDatabaseFrontend extends BaseDatabaseFrontend imp throw new ContactAlreadyAddedException(contact); } + // Clear dataset from previous usage + this.clearDataSet(); + + // Get field iterator + Iterator> iterator = contact.iterator(); + + // Iterate over all + while (iterator.hasNext()) { + // Get next field + Map.Entry field = iterator.next(); + + // Add it to data set + this.addToDataSet(field.getKey().getName(), field.getValue()); + } + // Then add it - this.getBackend().store((Storeable) contact); - } catch (final IOException | BadTokenException ex) { + Result result = this.doInsertDataSet(); + + // Debug message + this.getLogger().debug(MessageFormat.format("result={0}", result)); //NOI18N + } catch (final IOException | BadTokenException | SQLException | NoSuchMethodException | IllegalAccessException | InvocationTargetException ex) { // Abort here this.abortProgramWithException(ex); } @@ -123,6 +138,8 @@ public class AddressbookContactDatabaseFrontend extends BaseDatabaseFrontend imp /** * Shuts down the database layer + * @throws java.sql.SQLException If an SQL error occurs + * @throws java.io.IOException If an IO error occurs */ @Override public void doShutdown () throws SQLException, IOException { @@ -147,9 +164,15 @@ public class AddressbookContactDatabaseFrontend extends BaseDatabaseFrontend imp * @return Total contact count */ @Override - public int getContactsCount () throws SQLException { + public int getContactsCount () throws SQLException, IOException { // And deligate to backend - return this.getBackend().getTotalCount(); //NOI18N + return this.getBackend().getTotalRows(); //NOI18N + } + + @Override + public String getIdName () { + // Return id column + return AddressbookContactDatabaseConstants.COLUMN_ID; } /** @@ -281,10 +304,4 @@ public class AddressbookContactDatabaseFrontend extends BaseDatabaseFrontend imp public Storeable toStoreable (final Map map) throws NoSuchMethodException, IllegalAccessException, IllegalArgumentException, InvocationTargetException { throw new UnsupportedOperationException("Not supported yet: map=" + map); } - - @Override - public String getIdName () { - // Return id column - return AddressbookContactDatabaseConstants.COLUMN_ID; - } } diff --git a/src/org/mxchange/addressbook/database/frontend/contact/AddressbookContactFrontend.java b/src/org/mxchange/addressbook/database/frontend/contact/AddressbookContactFrontend.java index 213575e..d1c46b7 100644 --- a/src/org/mxchange/addressbook/database/frontend/contact/AddressbookContactFrontend.java +++ b/src/org/mxchange/addressbook/database/frontend/contact/AddressbookContactFrontend.java @@ -44,9 +44,10 @@ public interface AddressbookContactFrontend extends DatabaseFrontend { * Some "getter" for total contacts count * * @return Total contacts count - * @throws java.sql.SQLException If any SQL error occurs + * @throws java.sql.SQLException If an SQL error occurs + * @throws java.io.IOException If an IO error occurs */ - public int getContactsCount () throws SQLException; + public int getContactsCount () throws SQLException, IOException; /** * Checks if given Contact is found diff --git a/src/org/mxchange/addressbook/manager/contact/AddressbookContactManager.java b/src/org/mxchange/addressbook/manager/contact/AddressbookContactManager.java index 3def29d..d928695 100644 --- a/src/org/mxchange/addressbook/manager/contact/AddressbookContactManager.java +++ b/src/org/mxchange/addressbook/manager/contact/AddressbookContactManager.java @@ -683,11 +683,11 @@ public class AddressbookContactManager extends BaseManager implements Manageable // Abort here throw new NullPointerException("contact is null"); //NOI18N } - - // Debug message - /* NOISY-DEBUG: */ this.getLogger().debug(MessageFormat.format("Adding '{0}' '{1}' at pos '{2}' ...", contact.getFirstName(), contact.getFamilyName(), this.size())); //NOI18N try { - // Check if contact is found + // Debug message + /* NOISY-DEBUG: */ this.getLogger().debug(MessageFormat.format("Adding '{0}' '{1}' at pos '{2}' ...", contact.getFirstName(), contact.getFamilyName(), this.size())); //NOI18N + + // Check if contact is found if (this.getContactDatabase().isContactFound(contact)) { // Contact already added // @todo Do something here @@ -707,13 +707,8 @@ public class AddressbookContactManager extends BaseManager implements Manageable this.getLogger().trace("EXIT!"); //NOI18N } - /** - * Getter for size - * - * @return size of contact "book" - */ @Override - public final int size () { + public final int size () throws IOException { // Init size int size = -1; -- 2.39.5