litesoft
@ 151
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 |
// This Source Code is in the Public Domain per: http://litesoft.org/License.txt package org.litesoft.orsup.nonpublic; import org.litesoft.db.*; import org.litesoft.orsup.base.*; import org.litesoft.orsup.selection.*; public abstract class AbstractNonTransactionalFinder<FT extends NonTransactionalFinder> extends AbstractFinder implements NonTransactionalFinder<FT> { protected AbstractNonTransactionalFinder( ORFacilitatorInternalExtension pCommonSupport, boolean pIncludingImmortalInactives, POQueryFilterFactory pPOQueryFilterFactory ) { super( pCommonSupport, LOGGER, pIncludingImmortalInactives, pPOQueryFilterFactory ); } abstract protected FT create( boolean pIncludingImmortalInactives ); @SuppressWarnings({"unchecked"}) @Override public final FT includeImmortalInactives() { return isIncludingImmortalInactives() ? (FT) this : create( true ); } @SuppressWarnings({"unchecked"}) @Override public final FT excludeImmortalInactives() { return isIncludingImmortalInactives() ? create( false ) : (FT) this; } @Override public NonTransactionalFinder getNonTransactionalFinder() { return this; } /** * @param pPersistedObjectRegistrationName * - Persisted Object Class Name (getClass().getName()) * @param pSelectionWhereClause - null means all * @param pOrderBy - null means order immaterial * * @return An Iterator (!Null) that will manage the underlying ResultSet (& DBConnection) creating PO Keys as it goes * * @throws IllegalStateException - if the underlying 'set' POQueryFilter is not an POKeyQueryFilter * @throws UnsupportedOperationException - if the PO type does not have a "single" key * @throws DBException - other Exception regarding the OR layer */ @Override public final POKeyIterator findAllKeysCursored( String pPersistedObjectRegistrationName, WhereClause pSelectionWhereClause, OrderBy pOrderBy ) throws IllegalStateException, UnsupportedOperationException, DBException { return LLfindAllKeysCursored( pPersistedObjectRegistrationName, pSelectionWhereClause, pOrderBy ); } /** * @param pPersistedObjectClass - Persisted Object Class (getClass()) * @param pSelectionWhereClause - null means all * @param pOrderBy - null means order immaterial * * @return An Iterator (!Null) that will manage the underlying ResultSet (& DBConnection) creating PO Keys as it goes * * @throws IllegalStateException - if the underlying 'set' POQueryFilter is not an POKeyQueryFilter * @throws UnsupportedOperationException - if the PO type does not have a "single" key * @throws DBException - other Exception regarding the OR layer */ @Override public final POKeyIterator findAllKeysCursored( Class<? extends PersistentObject> pPersistedObjectClass, WhereClause pSelectionWhereClause, OrderBy pOrderBy ) throws IllegalStateException, UnsupportedOperationException, DBException { return findAllKeysCursored( pPersistedObjectClass.getName(), pSelectionWhereClause, pOrderBy ); } /** * @param pPersistedObjectRegistrationName * - Persisted Object Class Name (getClass().getName()) * @param pSelectionWhereClause - null means all * * @return An Iterator (!Null) that will manage the underlying ResultSet (& DBConnection) creating PO Keys as it goes * * @throws IllegalStateException - if the underlying 'set' POQueryFilter is not an POKeyQueryFilter * @throws UnsupportedOperationException - if the PO type does not have a "single" key * @throws DBException - other Exception regarding the OR layer */ @Override public final POKeyIterator findAllKeysCursored( String pPersistedObjectRegistrationName, WhereClause pSelectionWhereClause ) throws IllegalStateException, UnsupportedOperationException, DBException { return findAllKeysCursored( pPersistedObjectRegistrationName, pSelectionWhereClause, null ); } /** * @param pPersistedObjectClass - Persisted Object Class (getClass()) * @param pSelectionWhereClause - null means all * * @return An Iterator (!Null) that will manage the underlying ResultSet (& DBConnection) creating PO Keys as it goes * * @throws IllegalStateException - if the underlying 'set' POQueryFilter is not an POKeyQueryFilter * @throws UnsupportedOperationException - if the PO type does not have a "single" key * @throws DBException - other Exception regarding the OR layer */ @Override public final POKeyIterator findAllKeysCursored( Class<? extends PersistentObject> pPersistedObjectClass, WhereClause pSelectionWhereClause ) throws IllegalStateException, UnsupportedOperationException, DBException { return findAllKeysCursored( pPersistedObjectClass.getName(), pSelectionWhereClause, null ); } /** * @param pPersistedObjectRegistrationName * - Persisted Object Class Name (getClass().getName()) * @param pSelectionWhereClause - null means all * @param pOrderBy - null means order immaterial * * @return An Iterator (!Null) that will manage the underlying ResultSet (& DBConnection) creating POs as it goes * * @throws DBException - Exception regarding the OR layer */ @Override public final POQueryIterator findAllCursored( String pPersistedObjectRegistrationName, WhereClause pSelectionWhereClause, OrderBy pOrderBy ) throws DBException { return LLfindAllCursored( pPersistedObjectRegistrationName, pSelectionWhereClause, pOrderBy ); } /** * @param pPersistedObjectClass - Persisted Object Class (getClass()) * @param pSelectionWhereClause - null means all * @param pOrderBy - null means order immaterial * * @return An Iterator (!Null) that will manage the underlying ResultSet (& DBConnection) creating POs as it goes * * @throws DBException - Exception regarding the OR layer */ @SuppressWarnings({"unchecked"}) @Override public final <T extends PersistentObject> POQueryIterator<T> findAllCursored( Class<T> pPersistedObjectClass, WhereClause pSelectionWhereClause, OrderBy pOrderBy ) throws DBException { return (POQueryIterator<T>) findAllCursored( pPersistedObjectClass.getName(), pSelectionWhereClause, pOrderBy ); } /** * @param pPersistedObjectRegistrationName * - Persisted Object Class Name (getClass().getName()) * @param pSelectionWhereClause - null means all * * @return An Iterator (!Null) that will manage the underlying ResultSet (& DBConnection) creating POs as it goes * * @throws DBException - Exception regarding the OR layer */ @Override public final POQueryIterator findAllCursored( String pPersistedObjectRegistrationName, WhereClause pSelectionWhereClause ) throws DBException { return findAllCursored( pPersistedObjectRegistrationName, pSelectionWhereClause, null ); } /** * @param pPersistedObjectClass - Persisted Object Class (getClass()) * @param pSelectionWhereClause - null means all * * @return An Iterator (!Null) that will manage the underlying ResultSet (& DBConnection) creating POs as it goes * * @throws DBException - Exception regarding the OR layer */ @SuppressWarnings({"unchecked"}) @Override public final <T extends PersistentObject> POQueryIterator<T> findAllCursored( Class<T> pPersistedObjectClass, WhereClause pSelectionWhereClause ) throws DBException { return (POQueryIterator<T>) findAllCursored( pPersistedObjectClass.getName(), pSelectionWhereClause ); } /** * @param pPersistedObject - Persisted Object to be freshly read * * @return latest version of pPersistedObject, or Null if pPersistedObject is null OR has been deleted * * @throws DBException - Exception regarding the OR layer */ @Override public <T extends PersistentObject> T refresh( PersistentObject<T> pPersistedObject ) throws DBException { // todo: Caches //noinspection unchecked return pPersistedObject == null ? null : (T) findOne( pPersistedObject.getPersistentObjectURL() ); } protected final POKeyIterator LLfindAllKeysCursored( String pPersistedObjectRegistrationName, // WhereClause pSelectionWhereClause, OrderBy pOrderBy ) throws IllegalStateException, UnsupportedOperationException, DBException { MetaDataForPOinternalExtension metaDataForPO = getRequiredMetaDataForPO( pPersistedObjectRegistrationName ); POKeyQueryFilter zKeyFilter = POKeyQueryFilter.Force.type( createPOQueryFilter( metaDataForPO ) ); ORPersistenceHelper helper = (ORPersistenceHelper) getPersistenceHelper(); return helper.findAllKeysCursored( zKeyFilter, isIncludingImmortalInactives(), metaDataForPO, // getKeyCD( metaDataForPO, ", so can't findAllKeys" ), pSelectionWhereClause, pOrderBy ); } } |