| 1 21 22 package org.opensubsystems.patterns.listdata.persist.db.impl; 23 24 import java.util.HashMap ; 25 import java.util.Map ; 26 27 import org.opensubsystems.core.error.OSSException; 28 import org.opensubsystems.core.persist.db.DatabaseSchema; 29 import org.opensubsystems.core.persist.db.ModifiableDatabaseSchemaImpl; 30 import org.opensubsystems.core.util.DatabaseUtils; 31 import org.opensubsystems.patterns.listdata.data.ListOptions; 32 import org.opensubsystems.patterns.listdata.persist.db.ListDatabaseSchema; 33 import org.opensubsystems.patterns.listdata.persist.db.ListDatabaseUtils; 34 35 45 public abstract class ModifiableListDatabaseSchemaImpl extends ModifiableDatabaseSchemaImpl 46 implements ListDatabaseSchema 47 { 48 50 55 protected Map m_mapListableTableNames; 56 57 63 protected Map m_mapMandatoryRetrieveColumns; 64 65 70 protected Map m_mapSortableColumns; 71 72 77 protected Map m_mapFilterableColumns; 78 79 81 116 public ModifiableListDatabaseSchemaImpl( 117 DatabaseSchema[] arrDependentSchemas, 118 String strSchemaName, 119 int iSchemaVersion, 120 boolean bIsInDomain, 121 Map mapModifiableTableNames, 122 Map mapListableTableNames, 123 Map mapMandatoryRetrieveColumns, 124 Map mapSortableColumns, 125 Map mapFilterableColumns 126 ) throws OSSException 127 { 128 super(arrDependentSchemas, strSchemaName, iSchemaVersion, bIsInDomain, 129 mapModifiableTableNames); 130 131 m_mapListableTableNames = mapListableTableNames; 132 m_mapMandatoryRetrieveColumns = mapMandatoryRetrieveColumns; 133 m_mapSortableColumns = mapSortableColumns; 134 m_mapFilterableColumns = mapFilterableColumns; 135 } 136 137 160 public ModifiableListDatabaseSchemaImpl( 161 DatabaseSchema[] arrDependentSchemas, 162 String strSchemaName, 163 int iSchemaVersion, 164 boolean bIsInDomain, 165 Integer iDataType, 166 String strTableName, 167 int[] arrMandatoryRetrieveColumns, 168 int[] arrSortableColumns, 169 int[] arrFilterableColumns 170 ) throws OSSException 171 { 172 super(arrDependentSchemas, strSchemaName, iSchemaVersion, bIsInDomain, 173 iDataType, strTableName); 174 175 m_mapListableTableNames = new HashMap (1); 176 m_mapListableTableNames.put(iDataType, strTableName); 177 m_mapMandatoryRetrieveColumns = new HashMap (); 178 m_mapMandatoryRetrieveColumns.put(iDataType, arrMandatoryRetrieveColumns); 179 m_mapSortableColumns = new HashMap (); 180 m_mapSortableColumns.put(iDataType, arrSortableColumns); 181 m_mapFilterableColumns = new HashMap (1); 182 m_mapFilterableColumns.put(iDataType, arrFilterableColumns); 183 } 184 185 214 public ModifiableListDatabaseSchemaImpl( 215 DatabaseSchema[] arrDependentSchemas, 216 String strSchemaName, 217 int iSchemaVersion, 218 boolean bIsInDomain, 219 Map mapModifiableTableNames, 220 Integer iListableDataType, 221 String strListableTableName, 222 int[] arrMandatoryRetrieveColumns, 223 int[] arrSortableColumns, 224 int[] arrFilterableColumns 225 ) throws OSSException 226 { 227 super(arrDependentSchemas, strSchemaName, iSchemaVersion, bIsInDomain, 228 mapModifiableTableNames); 229 230 m_mapListableTableNames = new HashMap (1); 231 m_mapListableTableNames.put(iListableDataType, strListableTableName); 232 m_mapMandatoryRetrieveColumns = new HashMap (); 233 m_mapMandatoryRetrieveColumns.put(iListableDataType, arrMandatoryRetrieveColumns); 234 m_mapSortableColumns = new HashMap (); 235 m_mapSortableColumns.put(iListableDataType, arrSortableColumns); 236 m_mapFilterableColumns = new HashMap (1); 237 m_mapFilterableColumns.put(iListableDataType, arrFilterableColumns); 238 } 239 240 244 251 public Map getMandatoryRetrieveColumns() 252 { 253 return m_mapMandatoryRetrieveColumns; 254 } 255 256 263 public Map getSortableColumns() 264 { 265 return m_mapSortableColumns; 266 } 267 268 275 public Map getFilterbleColumns() 276 { 277 return m_mapFilterableColumns; 278 } 279 280 283 public String getSelectList( 284 ListOptions options, 285 int iDataType 288 ) throws OSSException 289 { 290 int[] arrMandatoryRetrieveColumns; 291 int[] arrSortableColumns; 292 int[] arrFilterableColumns; 293 String strTableName; 294 Integer intDataType = new Integer (iDataType); 295 296 arrMandatoryRetrieveColumns = (int[])m_mapMandatoryRetrieveColumns.get(intDataType); 297 arrSortableColumns = (int[])m_mapSortableColumns.get(intDataType); 298 arrFilterableColumns = (int[])m_mapFilterableColumns.get(intDataType); 299 strTableName = (String )m_mapListableTableNames.get(intDataType); 300 301 options.setRetrieveColumnCodes(DatabaseUtils.mergeColumnsSafely( 302 options.getShowColumnCodes(), 303 arrMandatoryRetrieveColumns)); 304 options.setSortableColumnCodes(arrSortableColumns); 305 options.setFilterableColumnCodes(arrFilterableColumns); 306 307 return ListDatabaseUtils.getInstance().getSelectList(strTableName, 308 options, this); 309 } 310 } 311 | Popular Tags |