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
package org.litesoft.orsup.base;

import org.litesoft.bo.*;
import org.litesoft.bo.attributes.*;
import org.litesoft.bo.change.*;
import org.litesoft.core.util.*;
import org.litesoft.util.*;

public abstract class SupplimentedSCD extends TypeConverter implements SimpleColumnDefinitionExtended,
                                                                       BuildAMDs

{
    public enum Form
    {
        ToOne, ToMany, Local
    }

    private String mName;
    private String mColumnName;
    private boolean mHasSearchColumn = false;
    private String mSearchColumnName;
    private AttributeMetaData mAMD;
    private boolean mRequired;

    public SupplimentedSCD( String pName, String pColumnName, boolean pRequired, AttributeMetaData pAMD )
    {
        mName = Utils.assertNotNullNotEmpty( "Name", pName );
        mSearchColumnName = mColumnName = Utils.noEmpty( pColumnName );
        Utils.assertNotNull( "AttributeMetaData", mAMD = pAMD );
        if ( mColumnName != null )
        {
            Class zColumnType = getColumnType();
            Utils.assertNotNull( "ColumnType", zColumnType );
            pRequired |= zColumnType.isPrimitive();
            if ( mHasSearchColumn = (this instanceof CharacterCaseIgnored) )
            {
                mSearchColumnName += "_CI";
            }
        }
        mRequired = pRequired;
    }

    public final String getName()
    {
        return mName;
    }

    public final String getColumnName()
    {
        return mColumnName;
    }

    public boolean hasSearchColumn()
    {
        return mHasSearchColumn;
    }

    public String getSearchColumnName()
    {
        return mSearchColumnName;
    }

    public final Class getColumnType()
    {
        AttributeMetaData.Type zType = mAMD.getType();
        if ( zType != null )
        {
            BoAttribute.AttributeType zBoAttributeType = zType.getBoAttributeType();
            if ( zBoAttributeType != null )
            {
                return zBoAttributeType.getType();
            }
        }
        return null;
    }

    public final boolean isRequired()
    {
        return mRequired;
    }

    public AttributeMetaData getAMD()
    {
        return mAMD;
    }

    public final boolean isColumnTypeComparable()
    {
        Class zColumnType = getColumnType();
        return (zColumnType != null) && Comparable.class.isAssignableFrom( zColumnType );
    }

    public final boolean isColumnTypeString()
    {
        return String.class == getColumnType();
    }

    public Mutability getMutability()
    {
        return mAMD.getMutability();
    }

    public final boolean isPersisted()
    {
        return getColumnName() != null;
    }

    abstract public Form getForm();
}

Commits for litesoft/trunk/Java/core/Server/src/org/litesoft/orsup/base/SupplimentedSCD.java

Diff revisions: vs.
Revision Author Commited Message
2 GeorgeS picture GeorgeS Sun 07 Feb, 2010 12:50:58 +0000