Community
Participate
Working Groups
Sometimes it's desirable to make queries aware of local dirty state.
New API has been added to CDOTransaction: public CDOQuery createQuery(String language, String queryString, boolean considerDirtyState); public CDOQuery createQuery(String language, String queryString, Object context, boolean considerDirtyState); An IQueryHandler can obtain the dirty state from the CDOQueryInfo passed into the executeQuery() method: public CDOChangeSetData getChangeSet(); The OCLQueryHandler uses this meachnism to provide a CDOView on the server that mimics the state of the dirty CDOTransaction on the client: public void executeQuery(CDOQueryInfo info, IQueryContext context) { ISession session = context.getView().getSession(); CDOBranchPoint branchPoint = CDOBranchUtil.copyBranchPoint(context); CDORevisionProvider revisionProvider = context.getView(); CDOChangeSetData changeSet = info.getChangeSet(); if (changeSet != null) { revisionProvider = new CDOChangeSetRevisionProvider(revisionProvider, changeSet); } CDOView view = CDOServerUtil.openView(session, branchPoint, info.isLegacyModeEnabled(), revisionProvider); ... }
Committed to HEAD
Available in R20110608-1407