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
// This Source Code is in the Public Domain per: http://unlicense.org
package org.litesoft.ui.def.nonpublic.support;

import org.litesoft.commonfoundation.base.*;
import org.litesoft.core.util.*;
import org.litesoft.ui.support.*;

@SuppressWarnings("EqualsAndHashcode")
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();
    }

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

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

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

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

    @Override
    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 ( ToStringBuilder pBuilder : pBuilders ) {
                pBuilder.toStringBuilder( LineIndentUtil.newLine( pSB, pDepth ), pDepth );
            }
        }
    }

    protected static String required( String pWhat, String pSource ) {
        return Confirm.significant( 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
950 Diff Diff GeorgeS picture GeorgeS Thu 19 Jun, 2014 17:57:04 +0000

New Lines

948 Diff Diff GeorgeS picture GeorgeS Sat 07 Jun, 2014 23:42:39 +0000

Jusefuls Formatter Updated to New Code Format

947 Diff Diff GeorgeS picture GeorgeS Fri 06 Jun, 2014 23:36:56 +0000

Correct Spelling of package!

939 Diff Diff GeorgeS picture GeorgeS Mon 02 Jun, 2014 21:30:31 +0000

Extracting commonfoundation

821 Diff Diff GeorgeS picture GeorgeS Sun 19 Aug, 2012 00:08:41 +0000
819 Diff Diff GeorgeS picture GeorgeS Sat 18 Aug, 2012 18:09:40 +0000
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