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
128
129
130
131
132
package org.litesoft.orsup.base;

import java.io.*;

import org.litesoft.util.*;

/**
 * This class is a serializable, long-lived reference to a persistent object
 * <p/>
 * Other @ tags here...
 */
public class ObjectHandle implements Serializable,
                                     Comparable<ObjectHandle>
{
    static final long serialVersionUID = -112473324534691343L;

    public static final ObjectHandle[] EMPTY_ARRAY = new ObjectHandle[0];
    public static final char HANDLE_SEPARATOR = '\n';

    private PersistentObjectURL mPersistentObjectURL;
    private String mDisplayValue;

    public ObjectHandle( PersistentObjectURL pPersistentObjectURL, String pDisplayValue )
    {
        Utils.assertNotNull( "PersistentObjectURL", mPersistentObjectURL = pPersistentObjectURL );
        mDisplayValue = Utils.noEmpty( pDisplayValue );
    }

    public ObjectHandle( PersistentObjectURL pPersistentObjectURL )
    {
        this( pPersistentObjectURL, null );
    }

    protected boolean isDisplayValue()
    {
        return (mDisplayValue != null);
    }

    public PersistentObjectURL getPersistentObjectURL()
    {
        return mPersistentObjectURL;
    }

    /**
     * Print the handle with ID information
     *
     * @return Description of the Returned Value
     */
    public String printHandle()
    {
        String base = "Key" + " = " + mPersistentObjectURL;
        return isDisplayValue() ? base + ": " + mDisplayValue : base;
    }

    public int compareTo( ObjectHandle pOther )
    {
        return this.toString().compareTo( pOther.toString() );
    }

    public boolean equals( Object o )
    {
        return (this == o) || ((o instanceof ObjectHandle) && equals( (ObjectHandle) o ));
    }

    public boolean equals( ObjectHandle them )
    {
        return (this == them) || ((them != null) //
                                  && this.mPersistentObjectURL.equals( them.mPersistentObjectURL ) //
        );
    }

    public int hashCode()
    {
        return mPersistentObjectURL.hashCode();
    }

    public String toString()
    {
        return isDisplayValue() ? mDisplayValue : printHandle();
    }

    public String getDisplayValue()
    {
        return isDisplayValue() ? mDisplayValue : getNoDisplayValue();
    }

    private String getNoDisplayValue()
    {
        return mPersistentObjectURL.toString();
    }

    public ObjectHandle setDisplayValue( String pDisplayValue )
    {
        mDisplayValue = (pDisplayValue == null) ? null : pDisplayValue.trim();
        return this;
    }

    public String getIdentifyingString()
    {
        return getNoDisplayValue();
    }

    public static String getIdentifyingString( ObjectHandle[] handles )
    {
        if ( Utils.isNullOrEmpty( handles ) )
        {
            return "";
        }
        StringBuilder ret = new StringBuilder();
        for ( ObjectHandle handle : handles )
        {
            ret.append( ObjectHandle.HANDLE_SEPARATOR );
            ret.append( handle.getIdentifyingString() );
        }
        return ret.toString().substring( 1 );
    }

    public static String getDisplayValue( ObjectHandle[] handles )
    {
        if ( Utils.isNullOrEmpty( handles ) )
        {
            return "";
        }
        StringBuilder ret = new StringBuilder();
        for ( ObjectHandle handle : handles )
        {
            ret.append( ObjectHandle.HANDLE_SEPARATOR );
            ret.append( handle.getDisplayValue() );
        }
        return ret.toString().substring( 1 );
    }
}

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

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