*/
package org.mxchange.jcore.contact;
+import java.lang.reflect.Field;
import java.text.MessageFormat;
+import java.util.Iterator;
+import java.util.Map;
import java.util.Objects;
import org.mxchange.jcore.BaseFrameworkSystem;
import org.mxchange.jcore.client.Client;
/**
* House number
*/
- private int houseNumber;
+ private Long houseNumber;
/**
- * Marker whether this contact is user's own data
+ * Flag whether this contact is user's own data
*/
private boolean ownContact;
/**
* ZIP code
*/
- private long zipCode;
+ private Long zipCode;
/**
* No instances can be created of this class
* @return the houseNumber
*/
@Override
- public int getHouseNumber () {
+ public Long getHouseNumber () {
return this.houseNumber;
}
* @param houseNumber the houseNumber to set
*/
@Override
- public final void setHouseNumber (final int houseNumber) {
+ public final void setHouseNumber (final Long houseNumber) {
this.houseNumber = houseNumber;
}
* @return Value from field
*/
@Override
- public Object getValueFromColumn (final String columnName) {
+ public Object getValueFromColumn (final String columnName) throws IllegalArgumentException {
// Trace message
this.getLogger().trace(MessageFormat.format("columnName={0} - CALLED!", columnName));
-
+
+ // A '$' means not our field
+ if (columnName.startsWith("$")) {
+ // Don't handle these
+ throw new IllegalArgumentException("columnsName contains $");
+ }
+
// Determine if the given column is boolean
if (this.isBooleanField(this, "BaseContact", columnName)) {
+ // Debug message
+ this.getLogger().debug("Column " + columnName + " represents a boolean field.");
+
// Yes, then call other method
- return this.getBooleanField(this, "BaseContact", columnName);
+ return this.getBooleanField(this, "BaseContact", this.convertColumnNameToGetterMethod(columnName, true));
}
-
+
// Convert column name to field name
String methodName = this.convertColumnNameToGetterMethod(columnName, false);
-
+
// Debug message
this.getLogger().debug(MessageFormat.format("field={0}", methodName));
-
+
// Get field
Object value = this.getField(this, "BaseContact", methodName);
-
+
// Trace message
this.getLogger().trace("value=" + value + " - EXIT!");
-
+
// Return it
return value;
}
* @return the zipCode
*/
@Override
- public final long getZipCode () {
+ public final Long getZipCode () {
return this.zipCode;
}
* @param zipCode the zipCode to set
*/
@Override
- public final void setZipCode (final long zipCode) {
+ public final void setZipCode (final Long zipCode) {
this.zipCode = zipCode;
}
public boolean isValueEqual (final String columnName, final boolean bool) {
// Trace message
this.getLogger().trace(MessageFormat.format("columnName={0},bool={1} - CALLED!", columnName, bool));
-
+
// Convert column name to field name
String methodName = this.convertColumnNameToGetterMethod(columnName, true);
-
+
// Debug message
this.getLogger().debug(MessageFormat.format("field={0}", methodName));
-
+
// Init class instance
boolean value = this.getBooleanField(this, "BaseContact", methodName);
-
+
// Debug message
this.getLogger().debug(MessageFormat.format("value={0}", value));
-
+
// Compare it
boolean isFound = (bool == value);
-
+
// Trace message
this.getLogger().trace(MessageFormat.format("isFound={0} - EXIT!", isFound));
-
+
// Return result
return isFound;
}
+ /**
+ * Returns an iterator of all values from this object
+ * @return An iterator
+ */
+ @Override
+ public Iterator<Map.Entry<Field, Object>> iterator () {
+ return this.fieldIterator(this, "BaseContact");
+ }
+
/**
* Shows this contact to the user
*
public void show (final Client client) {
// Trace message
this.getLogger().trace(MessageFormat.format("client={0} - CALLED!", client)); //NOI18N
-
+
// The client must be set
if (client == null) {
// Not set
throw new NullPointerException("client is null");
}
-
+
// Display name "box"
client.displayNameBox(this);
-
+
// Display address "box"
client.displayAddressBox(this);
-
+
// Display other data "box"
client.displayOtherDataBox(this);
}