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
|
// This Source Code is in the Public Domain per: http://litesoft.org/License.txt
package org.litesoft.core.util;
import java.io.*;
import org.litesoft.core.simpletypes.nonpublic.*;
import org.litesoft.core.typeutils.*;
public interface Hintable
{
public static final Hint[] EMPTY_ARRAY = new Hint[0];
public boolean anyHints();
/**
* @return !null and No Nulls
*/
public Hint[] getHints();
/**
* Return the value associated with pName if any.
*
* @param pName !null or empty
*
* @return null or value associated with pName
*
* @throws IllegalArgumentException if pName was null or empty
*/
public String getHintValue( String pName )
throws IllegalArgumentException;
/**
* Add the Hint (if pValue is not null or empty) and return any previous Hint's Value with the same pName
*
* @param pName !null or empty
*
* @return null or previous Hint's Value with the same pName
*
* @throws IllegalArgumentException if pName was null or empty
*/
public String addHint( String pName, String pValue )
throws IllegalArgumentException;
/**
* Add the Hint (if it was not null) and return any previous Hint's Value with the same Hint Name
*
* @return null or previous Hint's Value with the same Hint Name
*/
public String addHint( Hint pHint );
/**
* Remove the Hint indicated by pName and return its Value
*
* @param pName !null or empty
*
* @return null if not found or removed Hint's Value
*
* @throws IllegalArgumentException if pName was null or empty
*/
public String removeHint( String pName )
throws IllegalArgumentException;
public class Hint extends CompareSupport implements Serializable
{
private String mName, mValue;
/**
* @deprecated GWT ONLY
*/
public Hint()
{
}
public Hint( String pName, String pValue )
{
mName = Strings.assertNotNullNotEmpty( "Hint Name", pName );
mValue = Strings.assertNotNullNotEmpty( "Hint Value", pValue );
}
public String getName()
{
return mName;
}
public String getValue()
{
return mValue;
}
public String toString()
{
return "Hint( \"" + mName + "\", \"" + mValue + "\" )";
}
public boolean equals( Object o )
{
return (o instanceof Hint) && equals( (Hint) o );
}
public boolean equals( Hint them )
{
return (this == them) || //
((them != null) //
&& equal( this.mName, them.mName ) //
&& equal( this.mValue, them.mValue ) //
);
}
public int compareTo( Object pObject )
{
Hint them = (Hint) pObject;
return compareEm( this.mName.compareTo( them.mName ), //
this.mValue.compareTo( them.mValue ) );
}
public int hashCode()
{
return (31 * mName.hashCode()) + mValue.hashCode();
}
}
}
|