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();
}
/**
this.getLogger().debug(MessageFormat.format("strippedToken={0},num={1},bool={2}", strippedToken, num, bool)); //NOI18N
// Now, let's try a gender check, if no null
- if ((strippedToken != null) && (num == null) && (bool == null) && ((strippedToken.equals("M")) || (strippedToken.equals("F")) || (strippedToken.equals("C")))) { //NOI18N
+ if ((strippedToken != null) && (num == null) && (bool == null) && (Gender.valueOf(strippedToken) instanceof Gender)) { //NOI18N
// Get first character
- gender = Gender.fromChar(strippedToken.charAt(0));
+ gender = Gender.valueOf(strippedToken);
// Debug message
this.getLogger().debug(MessageFormat.format("strippedToken={0},gender={1}", strippedToken, gender)); //NOI18N