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.DatabaseSchemaImpl; 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 44 public abstract class ListDatabaseSchemaImpl extends DatabaseSchemaImpl 45 implements ListDatabaseSchema 46 { 47 49 54 protected Map m_mapListableTableNames; 55 56 62 protected Map m_mapMandatoryRetrieveColumns; 63 64 69 protected Map m_mapSortableColumns; 70 71 76 protected Map m_mapFilterableColumns; 77 78 80 111 public ListDatabaseSchemaImpl( 112 DatabaseSchema[] arrDependentSchemas, 113 String strSchemaName, 114 int iSchemaVersion, 115 boolean bIsInDomain, 116 Map mapListableTableNames, 117 Map mapMandatoryRetrieveColumns, 118 Map mapSortableColumns, 119 Map mapFilterableColumns 120 ) throws OSSException 121 { 122 super(arrDependentSchemas, strSchemaName, iSchemaVersion, bIsInDomain); 123 124 m_mapListableTableNames = mapListableTableNames; 125 m_mapMandatoryRetrieveColumns = mapMandatoryRetrieveColumns; 126 m_mapSortableColumns = mapSortableColumns; 127 m_mapFilterableColumns = mapFilterableColumns; 128 } 129 130 154 public ListDatabaseSchemaImpl( 155 DatabaseSchema[] arrDependentSchemas, 156 String strSchemaName, 157 int iSchemaVersion, 158 boolean bIsInDomain, 159 Integer iListableDataType, 160 String strListableTableName, 161 int[] arrMandatoryRetrieveColumns, 162 int[] arrSortableColumns, 163 int[] arrFilterableColumns 164 ) throws OSSException 165 { 166 super(arrDependentSchemas, strSchemaName, iSchemaVersion, bIsInDomain); 167 168 m_mapListableTableNames = new HashMap (1); 169 m_mapListableTableNames.put(iListableDataType, strListableTableName); 170 m_mapMandatoryRetrieveColumns = new HashMap (1); 171 m_mapMandatoryRetrieveColumns.put(iListableDataType, arrMandatoryRetrieveColumns); 172 m_mapSortableColumns = new HashMap (1); 173 m_mapSortableColumns.put(iListableDataType, arrSortableColumns); 174 m_mapFilterableColumns = new HashMap (1); 175 m_mapFilterableColumns.put(iListableDataType, arrFilterableColumns); 176 } 177 178 180 183 190 public Map getMandatoryRetrieveColumns() 191 { 192 return m_mapMandatoryRetrieveColumns; 193 } 194 195 202 public Map getSortableColumns() 203 { 204 return m_mapSortableColumns; 205 } 206 207 214 public Map getFilterbleColumns() 215 { 216 return m_mapFilterableColumns; 217 } 218 219 222 public String getSelectList( 223 ListOptions options, 224 int iDataType 227 ) throws OSSException 228 { 229 int[] arrMandatoryRetrieveColumns; 230 int[] arrSortableColumns; 231 int[] arrFilterableColumns; 232 String strTableName; 233 Integer intDataType = new Integer (iDataType); 234 235 arrMandatoryRetrieveColumns = (int[])m_mapMandatoryRetrieveColumns.get(intDataType); 236 arrSortableColumns = (int[])m_mapSortableColumns.get(intDataType); 237 arrFilterableColumns = (int[])m_mapFilterableColumns.get(intDataType); 238 strTableName = (String )m_mapListableTableNames.get(intDataType); 239 240 options.setRetrieveColumnCodes(DatabaseUtils.mergeColumnsSafely( 241 options.getShowColumnCodes(), 242 arrMandatoryRetrieveColumns)); 243 options.setSortableColumnCodes(arrSortableColumns); 244 options.setFilterableColumnCodes(arrFilterableColumns); 245 246 return ListDatabaseUtils.getInstance().getSelectList(strTableName, 247 options, this); 248 } 249 } 250 | Popular Tags |