30
30
package com .jcabi .immutable ;
31
31
32
32
import com .jcabi .aspects .Immutable ;
33
+ import java .io .Serializable ;
34
+ import java .util .Comparator ;
33
35
34
36
/**
35
37
* Comparator for arrays.
40
42
* @since 1.0
41
43
*/
42
44
@ Immutable
43
- public interface ArrayComparator <T > extends java .util .Comparator <T > {
45
+ @ SuppressWarnings ("unchecked" )
46
+ public interface ArrayComparator <T > extends Comparator <T > {
44
47
45
48
/**
46
49
* Default comparator.
47
50
* @param <T> Type of argument
48
51
*/
49
52
@ Immutable
50
- final class Default <T > implements ArrayComparator <T > {
53
+ final class Default <T > implements ArrayComparator <T >, Serializable {
54
+ /**
55
+ * Serialization marker.
56
+ */
57
+ private static final long serialVersionUID = 0x54ef44fb3ef2efa3L ;
58
+ @ Override
59
+ public String toString () {
60
+ return "DEFAULT" ;
61
+ }
51
62
@ Override
52
63
public int compare (final T left , final T right ) {
53
- return Comparable . class . cast ( left ).compareTo (right );
64
+ return (( Comparable < T >) left ).compareTo (right );
54
65
}
55
66
}
56
67
@@ -59,7 +70,15 @@ public int compare(final T left, final T right) {
59
70
* @param <T> Type of argument
60
71
*/
61
72
@ Immutable
62
- final class Neutral <T > implements ArrayComparator <T > {
73
+ final class Neutral <T > implements ArrayComparator <T >, Serializable {
74
+ /**
75
+ * Serialization marker.
76
+ */
77
+ private static final long serialVersionUID = 0x54ef489b3ef2eca3L ;
78
+ @ Override
79
+ public String toString () {
80
+ return "NEUTRAL" ;
81
+ }
63
82
@ Override
64
83
public int compare (final T left , final T right ) {
65
84
return 1 ;
@@ -71,10 +90,18 @@ public int compare(final T left, final T right) {
71
90
* @param <T> Type of argument
72
91
*/
73
92
@ Immutable
74
- final class Reverse <T > implements ArrayComparator <T > {
93
+ final class Reverse <T > implements ArrayComparator <T >, Serializable {
94
+ /**
95
+ * Serialization marker.
96
+ */
97
+ private static final long serialVersionUID = 0x545f489d3ed2eca3L ;
98
+ @ Override
99
+ public String toString () {
100
+ return "REVERSE" ;
101
+ }
75
102
@ Override
76
103
public int compare (final T left , final T right ) {
77
- return Comparable . class . cast ( right ).compareTo (left );
104
+ return (( Comparable < T >) right ).compareTo (left );
78
105
}
79
106
}
80
107
0 commit comments