Holger's
Java API

com.antelmann.sql
Class PropertyMapper<T extends DBEntry>

java.lang.Object
  extended by com.antelmann.sql.BaseRowMapper<T>
      extended by com.antelmann.sql.PropertyMapper<T>
Type Parameters:
T - specifies the entry class to be mapped; this is purposely kept to a DBEntry type and not to a PropertyEntry type, so that this can be used as a generic base class for types that do not necessarily implement PropertyEntry.
All Implemented Interfaces:
TransactionRequired, MappingInfo, ObjectRowMapper<T>, Converter<RowItem,T>

public abstract class PropertyMapper<T extends DBEntry>
extends BaseRowMapper<T>

allows to easily map only remaining columns that are not mapped otherwise to properties - if applicable and desirable. By default, the properties are NOT mapped (so that you can safely inherit and use the methods without initial effects for a deeper inheritance setting); you first have to enable it via setMapRemainingColumnsAsProperties(boolean) and then use the appropriate methods in this abstract class to properly support this.

Since:
15.08.2014, 22:01:08
Author:
holger
See Also:
PropertyEntry, GenericPropertyEntryMapper

Nested Class Summary
 
Nested classes/interfaces inherited from interface com.antelmann.util.Converter
Converter.Adapter<T1,T2>
 
Field Summary
 
Fields inherited from class com.antelmann.sql.BaseRowMapper
db, helper
 
Constructor Summary
PropertyMapper(Database<Connection> db, MappingInfo mi, IDFactory idFactory, Class<T> type, Object... topics)
           
PropertyMapper(Database<Connection> db, String tableName, String idColumn)
           
PropertyMapper(Database<Connection> db, String tableName, String idColumn, IDFactory idFactory, Class<T> type)
           
PropertyMapper(Database<Connection> db, String tableName, String idColumn, String displayColumn)
           
PropertyMapper(Database<Connection> db, String tableName, String idColumn, String displayColumn, IDFactory idFactory, Class<T> type)
           
PropertyMapper(Database<Connection> db, String tableName, String idColumn, String displayColumn, IDFactory idFactory, Class<T> type, String query)
           
 
Method Summary
 Set<String> getAllReservedColumns()
          returns all columns that are not to be mapped as properties as they are already reserved for special topics that are mapped otherwise.
 boolean isMapRemainingColumnsAsProperties()
           
 boolean mapColumnsAsProperties(RowItem row, DBEntry entry)
          maps all columns that are not reserved otherwise to properties only if the given entry is actually a PropertyEntry and isMapRemainingColumnsAsProperties() is true.
 boolean mapPropertiesAsColumns(DBEntry entry, Map<String,Object> map)
          maps all properties that are not already contained in the given map only if the given entry is actually a PropertyEntry and isMapRemainingColumnsAsProperties() is true.
 void setMapRemainingColumnsAsProperties(boolean flag)
          if set to true (and T implements PropertyEntry), all remaining columns will be mapped to properties
 
Methods inherited from class com.antelmann.sql.BaseRowMapper
addColumnsForTopic, applyFromMapping, checkExistence, convert, convertBack, convertTopicFilter, emptyStringsToNull, extractReference, extractStub, extractStub, generateNewID, generateRowProperties, getAll, getColumnDisplayMapping, getColumnNames, getColumnsForTopic, getColumnSize, getConnection, getConnectionHelper, getDisplayColumn, getDisplayNameForColumn, getEntryClass, getEntryClassMapper, getIDColumn, getIDFactory, getMappedValue, getMappingForTopic, getNextIntID, getNextIntIDFactory, getNextIntIDFactory, getPreStoreFilter, getReadOnlyColumns, getRestrictMappedColumns, getResultSet, getSQLTypeforColumn, getStubColumns, getStubQuery, getStubResultSet, getSupportedTopicColumns, getTableColumnNames, getTableName, getTableQuery, getTableQueryForComboFilter, getTransactionCounter, getUniqueRandomString, handleAfterStore, initMapping, isMappedTopic, isTranslate, javaToSql, javaToSql, lockTable, mapReference, mapReference, mapToRow, removeColumnTopic, setColumnsForTopic, setDisplayColumn, setEntryClass, setEntryClassMapper, setIDFactory, setMappedValue, setNextIntIdAsFactory, setPreStoreFilter, setReadOnlyColumns, setRestrictedMappedColumns, setStubQuery, setTableQuery, setTableQuery, setTopic, setTranslate, sqlToJava, toSQLMap, verifyBeforeDelete, verifyBeforeStore
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface com.antelmann.sql.ObjectRowMapper
instantiate
 

Constructor Detail

PropertyMapper

public PropertyMapper(Database<Connection> db,
                      MappingInfo mi,
                      IDFactory idFactory,
                      Class<T> type,
                      Object... topics)
               throws DatabaseException
Throws:
DatabaseException

PropertyMapper

public PropertyMapper(Database<Connection> db,
                      String tableName,
                      String idColumn,
                      IDFactory idFactory,
                      Class<T> type)
               throws DatabaseException
Throws:
DatabaseException

PropertyMapper

public PropertyMapper(Database<Connection> db,
                      String tableName,
                      String idColumn,
                      String displayColumn,
                      IDFactory idFactory,
                      Class<T> type,
                      String query)
               throws DatabaseException
Throws:
DatabaseException

PropertyMapper

public PropertyMapper(Database<Connection> db,
                      String tableName,
                      String idColumn,
                      String displayColumn,
                      IDFactory idFactory,
                      Class<T> type)
               throws DatabaseException
Throws:
DatabaseException

PropertyMapper

public PropertyMapper(Database<Connection> db,
                      String tableName,
                      String idColumn,
                      String displayColumn)
               throws DatabaseException
Throws:
DatabaseException

PropertyMapper

public PropertyMapper(Database<Connection> db,
                      String tableName,
                      String idColumn)
               throws DatabaseException
Throws:
DatabaseException
Method Detail

isMapRemainingColumnsAsProperties

public final boolean isMapRemainingColumnsAsProperties()
See Also:
setMapRemainingColumnsAsProperties(boolean)

setMapRemainingColumnsAsProperties

public void setMapRemainingColumnsAsProperties(boolean flag)
if set to true (and T implements PropertyEntry), all remaining columns will be mapped to properties

See Also:
PropertyEntry

getAllReservedColumns

public Set<String> getAllReservedColumns()
returns all columns that are not to be mapped as properties as they are already reserved for special topics that are mapped otherwise. Subclasses should add all mapped topics to this set to avoid them to be mapped as properties (or override this method, alternatively)

See Also:
mapColumnsAsProperties(RowItem, DBEntry)

mapColumnsAsProperties

public boolean mapColumnsAsProperties(RowItem row,
                                      DBEntry entry)
maps all columns that are not reserved otherwise to properties only if the given entry is actually a PropertyEntry and isMapRemainingColumnsAsProperties() is true.

Returns:
true only if any column is actually mapped as a property
See Also:
isMapRemainingColumnsAsProperties(), getAllReservedColumns(), mapPropertiesAsColumns(DBEntry, Map)

mapPropertiesAsColumns

public boolean mapPropertiesAsColumns(DBEntry entry,
                                      Map<String,Object> map)
maps all properties that are not already contained in the given map only if the given entry is actually a PropertyEntry and isMapRemainingColumnsAsProperties() is true.

Returns:
true only if any property is actually mapped as a column
See Also:
isMapRemainingColumnsAsProperties(), mapColumnsAsProperties(RowItem, DBEntry)


(c) Holger Antelmann since 2001- all rights reserved (contact: info@antelmann.com)
see www.antelmann.com/developer for further details and available downloads