Subversion Repository Public Repository

litesoft

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
// 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.*;
import org.litesoft.orsup.transact.*;

public class UnfilteringFinderImpl extends AbstractNonTransactionalFinder<UnfilteringFinder> implements UnfilteringFinder
{
    protected UnfilteringFinderImpl( ORFacilitatorInternalExtension pCommonSupport, boolean pIncludingImmortalInactives )
    {
        super( pCommonSupport, pIncludingImmortalInactives, null );
    }

    @Override
    protected UnfilteringFinder create( boolean pIncludingImmortalInactives )
    {
        return new UnfilteringFinderImpl( this, pIncludingImmortalInactives );
    }

    @Override
    public final Transaction createUnaugmentedTransaction()
    {
        return getTransactionFactory().createTransaction( this, false );
    }

    /**
     * @param pPersistedObjectRegistrationName
     *                              - Persisted Object Class Name (getClass().getName())
     * @param pSelectionWhereClause - null means all
     *
     * @throws DBException - Exception regarding the OR layer
     */
    @Override
    public final long count( String pPersistedObjectRegistrationName, WhereClause pSelectionWhereClause )
            throws DBException
    {
        ORPersistenceHelper helper = (ORPersistenceHelper) getPersistenceHelper();
        MetaDataForPO metaDataForPO = getRequiredMetaDataForPO( pPersistedObjectRegistrationName );
        return helper.count( isIncludingImmortalInactives(), metaDataForPO, pSelectionWhereClause );
    }

    /**
     * @param pPersistedObjectClass - Persisted Object Class (getClass())
     * @param pSelectionWhereClause - null means all
     *
     * @throws DBException - Exception regarding the OR layer
     */
    @Override
    public final long count( Class<? extends PersistentObject> pPersistedObjectClass, WhereClause pSelectionWhereClause )
            throws DBException
    {
        return count( pPersistedObjectClass.getName(), pSelectionWhereClause );
    }

    /**
     * @param pPersistedObjectRegistrationName
     *                              - Persisted Object Class Name (getClass().getName())
     * @param pSelectionWhereClause - null means any will do
     * @param pOrderBy              - null means order immaterial
     * @param pUpdateValuePairs     - additional columns to set
     *
     * @return 'snaged' PO or Null if no POs available to be 'snaged'
     *
     * @throws UnsupportedOperationException - if the PO type does not support 'snaging'
     * @throws DBException                   - Exception regarding the OR layer
     */
    @Override
    public final PersistentObject<?> snagOne( String pPersistedObjectRegistrationName, WhereClause pSelectionWhereClause, OrderBy pOrderBy, ColumnUpdateValuePair... pUpdateValuePairs )
            throws UnsupportedOperationException, DBException
    {
        MetaDataForPO metaDataForPO = getRequiredMetaDataForPO( pPersistedObjectRegistrationName );
        if ( !metaDataForPO.isSnagable() )
        {
            throw new UnsupportedOperationException( pPersistedObjectRegistrationName + " is not flagged as 'Snaggable'" );
        }
        SimpleColumnDefinition zKeyCD = getKeyCD( metaDataForPO, ", and is therefore not 'Snaggable'" );

        AttributeAccessorSCD zSnagCD = metaDataForPO.getAccessorSCDrequired( metaDataForPO.getSnagAttributeName() );

        Long zUniqueSnagValue = mCommonSupport.getNextSequenceNumber( "Snags" );

        PersistenceHelper helper = getPersistenceHelper();
        if ( !helper.snagOne( metaDataForPO, zKeyCD, zSnagCD, zUniqueSnagValue, pSelectionWhereClause, pOrderBy, pUpdateValuePairs ) )
        {
            return null;
        }
        return findOne( pPersistedObjectRegistrationName, //
                        WhereClauseFactory.INSTANCE.isEqual( zSnagCD, zUniqueSnagValue ) );
    }

    /**
     * @param pPersistedObjectClass - Persisted Object Class (getClass())
     * @param pSelectionWhereClause - null means any will do
     * @param pOrderBy              - null means order immaterial
     * @param pUpdateValuePairs     - additional columns to set
     *
     * @return 'snaged' PO or Null if no POs available to be 'snaged'
     *
     * @throws UnsupportedOperationException - if the PO type does not support 'snaging'
     * @throws DBException                   - Exception regarding the OR layer
     */
    @SuppressWarnings({"unchecked"}) @Override
    public final <T extends PersistentObject> T snagOne( Class<T> pPersistedObjectClass, WhereClause pSelectionWhereClause, OrderBy pOrderBy, ColumnUpdateValuePair... pUpdateValuePairs )
            throws UnsupportedOperationException, DBException
    {
        return (T) snagOne( pPersistedObjectClass.getName(), pSelectionWhereClause, pOrderBy, pUpdateValuePairs );
    }
}

Commits for litesoft/trunk/Java/core/Server/src/org/litesoft/orsup/nonpublic/UnfilteringFinderImpl.java

Diff revisions: vs.
Revision Author Commited Message
151 Diff Diff GeorgeS picture GeorgeS Thu 17 Mar, 2011 04:16:22 +0000
49 Diff Diff GeorgeS picture GeorgeS Mon 12 Apr, 2010 02:59:10 +0000

License Text

24 Diff Diff GeorgeS picture GeorgeS Wed 24 Feb, 2010 01:51:38 +0000
2 GeorgeS picture GeorgeS Sun 07 Feb, 2010 12:50:58 +0000