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
package org.litesoft.bo.attributes;

import org.litesoft.core.simpletypes.nonpublic.*;
import org.litesoft.core.util.*;

import java.util.*;

public class BooleanDisplayOptions implements PropertyOfAMD
{
    public static BooleanDisplayOptions of( String pTrueFalseText )
    {
        if ( null == (pTrueFalseText = UtilsCommon.noEmpty( pTrueFalseText )) )
        {
            return null;
        }
        int zAt = pTrueFalseText.indexOf( '/' );
        if ( zAt != -1 )
        {
            if ( (zAt != 0) && (zAt != (pTrueFalseText.length() - 1)) && (-1 == pTrueFalseText.indexOf( '/', zAt + 1 )) )
            {
                return getInstance( pTrueFalseText, zAt );
            }
        }
        throw new IllegalArgumentException( "True &/ False text missing (seperated by a '/')" );
    }

    public static BooleanDisplayOptions get( AttributeMetaData pAMD )
    {
        return (BooleanDisplayOptions) pAMD.getProperties().get( MAP_KEY );
    }

    private static synchronized BooleanDisplayOptions getInstance( String pTrueFalseText, int pSepAt )
    {
        BooleanDisplayOptions zInstance = sInstances.get( pTrueFalseText );
        if ( zInstance == null )
        {
            sInstances.put( pTrueFalseText, zInstance = new BooleanDisplayOptions( pTrueFalseText, pSepAt ) );
        }
        return zInstance;
    }

    private static HashMap<String, BooleanDisplayOptions> sInstances = new HashMap<String, BooleanDisplayOptions>();

    private static final String MAP_KEY = "BooleanDisplayOptions";

    private BooleanDisplayOptions( String pTrueFalseText, int pSepAt )
    {
        mTrueText = pTrueFalseText.substring( 0, pSepAt );
        mFalseText = pTrueFalseText.substring( pSepAt + 1 );
    }

    private String mTrueText, mFalseText;

    public String getTrueText()
    {
        return mTrueText;
    }

    public String getFalseText()
    {
        return mFalseText;
    }

    @Override
    public String toString()
    {
        return MAP_KEY + ".of( \"" + mTrueText + '/' + mFalseText + "\" )";
    }

    public String getMapKey()
    {
        return MAP_KEY;
    }

    @Override
    public boolean equals( Object them )
    {
        return (this == them) || ((them != null) && (this.getClass() == them.getClass()) && LLequals( (BooleanDisplayOptions) them ));
    }

    private boolean LLequals( BooleanDisplayOptions them )
    {
        return (this.mTrueText.equals( them.mTrueText )) && (this.mFalseText.equals( them.mFalseText ));
    }

    @Override
    public int hashCode()
    {
        return EqualSupport.hashCodeEm( mTrueText.hashCode(), mFalseText.hashCode() );
    }
}

Commits for litesoft/trunk/Java/core/Anywhere/src/org/litesoft/bo/attributes/BooleanDisplayOptions.java

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