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.SearchableCritera;
import org.mxchange.jcore.database.frontend.BaseDatabaseFrontend;
+import org.mxchange.jcore.database.result.Result;
import org.mxchange.jcore.database.storage.Storeable;
import org.mxchange.jcore.exceptions.BadTokenException;
import org.mxchange.jcore.exceptions.UnsupportedDatabaseBackendException;
* Constructor which accepts a contact manager
*
* @param manager Manager instance
+ * @throws org.mxchange.jcore.exceptions.UnsupportedDatabaseBackendException If the database backend is not supported
+ * @throws java.sql.SQLException If any SQL error occurs
*/
- public AddressbookContactDatabaseFrontend (final AddressbookContactManager manager) {
+ public AddressbookContactDatabaseFrontend (final AddressbookContactManager manager) throws UnsupportedDatabaseBackendException, SQLException {
// Call own constructor
this();
}
/**
- * Basic constrcutor
+ * Default but protected constructor
+ * @throws org.mxchange.jcore.exceptions.UnsupportedDatabaseBackendException If the database backend is not supported
+ * @throws java.sql.SQLException Any SQL exception from e.g. MySQL connector
*/
- protected AddressbookContactDatabaseFrontend () {
+ protected AddressbookContactDatabaseFrontend () throws UnsupportedDatabaseBackendException, SQLException {
// Trace message
this.getLogger().trace("CALLED!"); //NOI18N
// Set "table" name
this.setTableName("contacts"); //NOI18N
- try {
- // Initalize backend
- this.initBackend();
- } catch (final UnsupportedDatabaseBackendException ex) {
- // Abort program
- this.abortProgramWithException(ex);
- } catch (final SQLException ex) {
- // Abort here
- this.abortProgramWithException(ex);
- }
+ // Initalize backend
+ this.initBackend();
}
/**
// Then add it
this.getBackend().store((Storeable) contact);
- } catch (final IOException ex) {
- // Abort here
- this.abortProgramWithException(ex);
- } catch (final BadTokenException ex) {
+ } catch (final IOException | BadTokenException ex) {
// Abort here
this.abortProgramWithException(ex);
}
* Checks whether own contact is found in database
*
* @return Whether own contact is found
+ * @throws java.io.IOException If any IO error occurs
+ * @throws org.mxchange.jcore.exceptions.BadTokenException If a bad token was found
*/
@Override
- public boolean isOwnContactFound () throws SQLException {
+ public boolean isOwnContactFound () throws SQLException, IOException, BadTokenException {
+ // Get search criteria instance
+ SearchableCritera critera = new SearchCriteria();
+
+ // Add condition
+ critera.addCriteria(AddressbookContactDatabaseConstants.COLUMN_NAME_OWN_CONTACT, true);
+
+ // Get result
+ Result<? extends Storeable> result = this.getBackend().doSelectByCriteria(critera);
+
// Deligate this call to backend
- return this.getBackend().isRowFound(AddressbookContactDatabaseConstants.COLUMN_NAME_OWN_CONTACT, true);
+ return result.hasNext();
}
/**