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
133
134
135
136
137
// This Source Code is in the Public Domain per: http://litesoft.org/License.txt
package org.litesoft.orsup.base;

import java.io.*;

import org.litesoft.core.typeutils.*;

/**
 * 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 )
    {
        Objects.assertNotNull( "PersistentObjectURL", mPersistentObjectURL = pPersistentObjectURL );
        mDisplayValue = Strings.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;
    }

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

    @Override
    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 ) //
        );
    }

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

    @Override
    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 ( Objects.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 ( Objects.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
809 Diff Diff GeorgeS picture GeorgeS Thu 16 Aug, 2012 04:10:46 +0000
804 Diff Diff GeorgeS picture GeorgeS Wed 15 Aug, 2012 12:48:51 +0000
801 Diff Diff GeorgeS picture GeorgeS Wed 15 Aug, 2012 03:59:02 +0000
49 Diff Diff GeorgeS picture GeorgeS Mon 12 Apr, 2010 02:59:10 +0000

License Text

24 Diff Diff GeorgeS picture GeorgeS Wed 24 Feb, 2010 01:51:38 +0000
2 GeorgeS picture GeorgeS Sun 07 Feb, 2010 12:50:58 +0000