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

import org.litesoft.commonfoundation.base.*;

import java.io.*;

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

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

    private final PersistentObjectURL mPersistentObjectURL;
    private String mDisplayValue;

    public ObjectHandle( PersistentObjectURL pPersistentObjectURL, String pDisplayValue ) {
        Confirm.isNotNull( "PersistentObjectURL", mPersistentObjectURL = pPersistentObjectURL );
        mDisplayValue = ConstrainTo.significantOrNull( 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 ( Currently.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 ( Currently.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
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

849 Diff Diff GeorgeS picture GeorgeS Tue 11 Sep, 2012 17:11:59 +0000

Clean up serialization

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 GeorgeS picture GeorgeS Wed 24 Feb, 2010 01:51:38 +0000