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
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
// This Source Code is in the Public Domain per: http://litesoft.org/License.txt
package org.litesoft.ui.def.nonpublic.support;

import org.litesoft.core.typeutils.*;
import org.litesoft.core.util.*;
import org.litesoft.ui.support.*;

public abstract class AbstractFormUsage implements Comparable,
                                                   ToStringBuilder
{
    // Basic Base Form
    abstract public boolean isHot();

    abstract public String getRootType();

    // Basic Sub Form
    abstract public String getRelAttributeRef();

    // Shared
    abstract public Integer getUniqueID();

    abstract public IntendedUse getIntendedUse();

    abstract public LabelUsage[] getLabels();

    abstract public ActionUsage[] getActions();

    abstract public AttributeUsage[] getAttributes();

    abstract public FormUsage[] getRelSubForms();

    public boolean isBaseForm()
    {
        return (getRootType() != null);
    }

    public final int compareTo( AbstractFormUsage pThem )
    {
        Compare zCompare;
        if ( isBaseForm() )
        {
            zCompare = Compare.first( this.getRootType(), pThem.getRootType() );
            zCompare = zCompare.then( this.isHot(), pThem.isHot() );
        }
        else
        {
            zCompare = Compare.first( this.getRelAttributeRef(), pThem.getRelAttributeRef() );
        }
        zCompare = zCompare.then( this.getUniqueID(), pThem.getUniqueID() );
        zCompare = zCompare.then( this.getIntendedUse(), pThem.getIntendedUse() );
        return zCompare.result();
    }

    public final int compareTo( Object pObject )
    {
        return compareTo( (AbstractFormUsage) pObject );
    }

    protected final boolean LLequals( AbstractFormUsage pThem )
    {
        return (pThem != null) && //
               Objects.areNonArraysEqual( this.getRelAttributeRef(), pThem.getRelAttributeRef() ) && //
               Objects.areNonArraysEqual( this.getRootType(), pThem.getRootType() ) && //
               UtilsCommon.areNonArraysEqual( this.isHot(), pThem.isHot() ) && //
               Objects.areNonArraysEqual( this.getIntendedUse(), pThem.getIntendedUse() ) && //
               Objects.areNonArraysEqual( this.getUniqueID(), pThem.getUniqueID() );
    }

    public final int hashCode()
    {
        return getRootOrRel().hashCode();
    }

    protected final String getRootOrRel()
    {
        return isBaseForm() ? getRootType() : getRelAttributeRef();
    }

    public final StringBuilder toStringBuilder( StringBuilder pSB, int pDepth )
    {
        pSB.append( getIntendedUse() ).append( ',' ).append( getRootOrRel() );
        if ( isHot() )
        {
            pSB.append( " (-HOT-)" );
        }
        if ( anyChildren() )
        {
            pSB.append( ":" );
            int subDepth = pDepth + 1;

            addPreChildren( pSB, subDepth );
            add( pSB, subDepth, "Labels", getLabels() );
            add( pSB, subDepth, "Actions", getActions() );
            add( pSB, subDepth, "Attributes", getAttributes() );
            add( pSB, subDepth, "RelSubForms", getRelSubForms() );
            addPostChildren( pSB, subDepth );
        }
        return pSB;
    }

    protected void addPreChildren( StringBuilder pSB, int pDepth )
    {
    }

    protected void addPostChildren( StringBuilder pSB, int pDepth )
    {
    }

    abstract protected boolean anyChildren();

    protected static void add( StringBuilder pSB, int pDepth, String pWhat, ToStringBuilder[] pBuilders )
    {
        if ( pBuilders.length != 0 )
        {
            LineIndentUtil.newLine( pSB, pDepth++ ).append( pWhat ).append( ':' );
            for ( int i = 0; i < pBuilders.length; i++ )
            {
                pBuilders[i].toStringBuilder( LineIndentUtil.newLine( pSB, pDepth ), pDepth );
            }
        }
    }

    protected static String required( String pWhat, String pSource )
    {
        return UtilsCommon.assertNotNullNotEmpty( pWhat, pSource );
    }
}

Commits for litesoft/trunk/Java/core/jvm1.4/src/org/litesoft/ui/def/nonpublic/support/AbstractFormUsage.java

Diff revisions: vs.
Revision Author Commited Message
804 Diff Diff GeorgeS picture GeorgeS Wed 15 Aug, 2012 12:48:51 +0000
49 Diff Diff GeorgeS picture GeorgeS Mon 12 Apr, 2010 02:59:10 +0000

License Text

2 GeorgeS picture GeorgeS Sun 07 Feb, 2010 12:50:58 +0000