Subversion Repository Public Repository

litesoft

Diff Revisions 228 vs 235 for /trunk/Java/core/Server/src/org/litesoft/bo/views/server/PoServerVoDataProvider.java

Diff revisions: vs.
  @@ -17,12 +17,13 @@
17 17 {
18 18 public static final WhereClauseFactory WCF = WhereClauseFactory.INSTANCE;
19 19
20 - private static final String VO_ID_ATTIBUTE_NAME = "ID";
20 + private static final String VO_ID_ATTRIBUTE_NAME = "ID";
21 21
22 22 protected MetaDataForPO mPOMetaData = null;
23 23 protected AttributeAccessorSCD<PersistentObject<?>> mPrimaryKeyASCD;
24 24 protected POrecordVersion mPOrecordVersion = POrecordVersion.INSTANCE;
25 25
26 + @SuppressWarnings({"UnusedDeclaration"})
26 27 public PoServerVoDataProvider( VoMetaData<T> pVOMetaData, MetaDataForPO pPOMetaData )
27 28 {
28 29 super( pVOMetaData );
  @@ -53,7 +54,7 @@
53 54 {
54 55 throw new PersistenceException( "POs w/ Multiple Primary Keys or no Primary Key are not supported" + this );
55 56 }
56 - Class<?> zVoIDtype = mVOMetaData.getVoAttribute( VO_ID_ATTIBUTE_NAME ).getType().getType();
57 + Class<?> zVoIDtype = mVOMetaData.getVoAttribute( VO_ID_ATTRIBUTE_NAME ).getType().getType();
57 58 Class zPoIDtype = (mPrimaryKeyASCD = zSCDs[0]).getColumnType();
58 59 if ( !zPoIDtype.equals( zVoIDtype ) )
59 60 {
  @@ -66,6 +67,7 @@
66 67 }
67 68 }
68 69
70 + @SuppressWarnings({"UnusedDeclaration"})
69 71 protected void assertMatchingVOsALL( Integer pMaxToReturn, SSMap[] pORed_ANDFilters )
70 72 {
71 73 if ( pMaxToReturn != null )
  @@ -89,7 +91,7 @@
89 91
90 92 zVO.setRecordVersion( mPOrecordVersion.get( pPO ) );
91 93
92 - zVO.setAttributeValue( VO_ID_ATTIBUTE_NAME, mPrimaryKeyASCD.getValueOnPO( pPO ) );
94 + zVO.setAttributeValue( VO_ID_ATTRIBUTE_NAME, mPrimaryKeyASCD.getValueOnPO( pPO ) );
93 95
94 96 updateView( zVO, pPO, pOnlyQueryAttributes, pExtraFlag );
95 97
  @@ -97,6 +99,7 @@
97 99 return zVO;
98 100 }
99 101
102 + @SuppressWarnings({"UnusedParameters"})
100 103 public void updateView( T pVO, PersistentObject pPO, boolean pOnlyQueryAttributes, boolean pExtraFlag )
101 104 {
102 105 String[] zAttributeNames = mVOMetaData.getAttributeNames();
  @@ -164,6 +167,7 @@
164 167 return findPO( pFinder, pMember.getID() );
165 168 }
166 169
170 + @SuppressWarnings({"UnusedParameters"})
167 171 public PersistentObject createNewPO( Transaction pTransaction, T pMember )
168 172 {
169 173 return mPOMetaData.createNew( pTransaction );
  @@ -183,7 +187,7 @@
183 187 }
184 188
185 189 /**
186 - * Get a single VO based on an ObejctURL
190 + * Get a single VO based on an ObjectURL
187 191 *
188 192 * @param pObjectURL if null, null will be return
189 193 *
  @@ -271,16 +275,20 @@
271 275 public SizedIterator<T> getMatchingVOs( Integer pMaxToReturn, SSMap... pORed_ANDFilters )
272 276 throws PersistenceException
273 277 {
274 - boolean zOnlyQueryAttributes = getMatchingVOsOnlyQueryAttributesFlag();
275 - UnfilteringFinder zFinder = DataStoreLocator.get().getUnfilteredFinder();
278 + WhereClause zWhereClause = new WhereClauseSupport( DataStoreLocator.get().getUnfilteredFinder(), mPOMetaData, mVOMetaData ).createWhereClause( pORed_ANDFilters );
276 279
277 - WhereClause zWhereClause = new WhereClauseSupport( zFinder, mPOMetaData, mVOMetaData ).createWhereClause( pORed_ANDFilters );
280 + return getMatchingVOs( pMaxToReturn, getMatchingVOsOnlyQueryAttributesFlag(), zWhereClause, augment_getMatchingVOs( createDefaultOrderBy() ) );
281 + }
278 282
279 - POQueryIterator zPOs = findAllCursored( zFinder, augment_getMatchingVOs( zWhereClause ), augment_getMatchingVOs( (OrderBy) null ) );
283 + protected SizedIterator<T> getMatchingVOs( Integer pMaxToReturn, boolean pOnlyQueryAttributes, WhereClause pWhereClause, OrderBy pOrderBy )
284 + {
285 + pWhereClause = augment_getMatchingVOs( pWhereClause );
286 + UnfilteringFinder zFinder = DataStoreLocator.get().getUnfilteredFinder();
287 + POQueryIterator zPOs = findAllCursored( zFinder, pWhereClause, pOrderBy );
280 288
281 289 if ( pMaxToReturn == null )
282 290 {
283 - return new SizedIterator<T>( new PoToVoIterator<T>( zOnlyQueryAttributes, zPOs ) );
291 + return new SizedIterator<T>( new PoToVoIterator<T>( pOnlyQueryAttributes, zPOs ) );
284 292 }
285 293 List<PersistentObject> zList = new ArrayList<PersistentObject>();
286 294 for ( int max = pMaxToReturn; zPOs.hasNext(); zList.add( zPOs.next() ) )
  @@ -288,11 +296,11 @@
288 296 if ( --max < 0 )
289 297 {
290 298 zPOs.dispose();
291 - return new SizedIterator<T>( zFinder.count( mPOMetaData.getPOregistrationName(), zWhereClause ) );
299 + return new SizedIterator<T>( zFinder.count( mPOMetaData.getPOregistrationName(), pWhereClause ) );
292 300 }
293 301 }
294 302 zPOs.dispose();
295 - return new SizedIterator<T>( new PoToVoIterator<T>( zOnlyQueryAttributes, zList.iterator() ) );
303 + return new SizedIterator<T>( new PoToVoIterator<T>( pOnlyQueryAttributes, zList.iterator() ) );
296 304 }
297 305
298 306 protected boolean getMatchingVOsOnlyQueryAttributesFlag()
  @@ -305,6 +313,12 @@
305 313 return pOrderBy;
306 314 }
307 315
316 + protected OrderBy createDefaultOrderBy()
317 + {
318 + // mPOMetaData
319 + return null; // todo...
320 + }
321 +
308 322 protected WhereClause augment_getMatchingVOs( WhereClause pWhereClause )
309 323 {
310 324 return pWhereClause;
  @@ -577,7 +591,7 @@
577 591
578 592 private Object getID( VoPoPair pVoPoPair )
579 593 {
580 - return (pVoPoPair != null) ? TypeConverter.to_Long( getAttributeValue( pVoPoPair.getPO(), VO_ID_ATTIBUTE_NAME ) ) : null;
594 + return (pVoPoPair != null) ? TypeConverter.to_Long( getAttributeValue( pVoPoPair.getPO(), VO_ID_ATTRIBUTE_NAME ) ) : null;
581 595 }
582 596
583 597 protected static class POrecordVersion