4747@ RunWith (Parameterized .class )
4848@ Category ({MiscTests .class , SmallTests .class })
4949public class TestStruct {
50-
5150 @ ClassRule
5251 public static final HBaseClassTestRule CLASS_RULE =
5352 HBaseClassTestRule .forClass (TestStruct .class );
5453
55- @ Parameterized .Parameter (value = 0 )
54+ @ Parameterized .Parameter ()
5655 public Struct generic ;
5756
5857 @ SuppressWarnings ("rawtypes" )
@@ -88,16 +87,21 @@ public static Collection<Object[]> params() {
8887 return Arrays .asList (params );
8988 }
9089
91- static final Comparator <byte []> NULL_SAFE_BYTES_COMPARATOR =
92- new Comparator <byte []>() {
93- @ Override
94- public int compare (byte [] o1 , byte [] o2 ) {
95- if (o1 == o2 ) return 0 ;
96- if (null == o1 ) return -1 ;
97- if (null == o2 ) return 1 ;
98- return Bytes .compareTo (o1 , o2 );
99- }
100- };
90+ static final Comparator <byte []> NULL_SAFE_BYTES_COMPARATOR = (o1 , o2 ) -> {
91+ if (o1 == o2 ) {
92+ return 0 ;
93+ }
94+
95+ if (null == o1 ) {
96+ return -1 ;
97+ }
98+
99+ if (null == o2 ) {
100+ return 1 ;
101+ }
102+
103+ return Bytes .compareTo (o1 , o2 );
104+ };
101105
102106 /**
103107 * A simple object to serialize.
@@ -134,7 +138,7 @@ public int compareTo(Pojo1 o) {
134138 if (cmp != 0 ) {
135139 return cmp ;
136140 }
137- cmp = Integer .valueOf (intFieldAsc ). compareTo ( Integer . valueOf ( o .intFieldAsc ) );
141+ cmp = Integer .compare (intFieldAsc , o .intFieldAsc );
138142 if (cmp != 0 ) {
139143 return cmp ;
140144 }
@@ -173,13 +177,10 @@ public boolean equals(Object obj) {
173177 return false ;
174178 }
175179 if (stringFieldAsc == null ) {
176- if (other .stringFieldAsc != null ) {
177- return false ;
178- }
179- } else if (!stringFieldAsc .equals (other .stringFieldAsc )) {
180- return false ;
180+ return other .stringFieldAsc == null ;
181+ } else {
182+ return stringFieldAsc .equals (other .stringFieldAsc );
181183 }
182- return true ;
183184 }
184185 }
185186
@@ -225,16 +226,17 @@ public int compareTo(Pojo2 o) {
225226 if (cmp != 0 ) {
226227 return cmp ;
227228 }
229+
228230 if (null == stringFieldDsc ) {
229231 cmp = 1 ;
230- }
231- else if (null == o .stringFieldDsc ) {
232+ } else if (null == o .stringFieldDsc ) {
232233 cmp = -1 ;
233- }
234- else if (stringFieldDsc .equals (o .stringFieldDsc )) {
234+ } else if (stringFieldDsc .equals (o .stringFieldDsc )) {
235235 cmp = 0 ;
236+ } else {
237+ cmp = -stringFieldDsc .compareTo (o .stringFieldDsc );
236238 }
237- else cmp = - stringFieldDsc . compareTo ( o . stringFieldDsc );
239+
238240 if (cmp != 0 ) {
239241 return cmp ;
240242 }
@@ -274,56 +276,58 @@ public boolean equals(Object obj) {
274276 return false ;
275277 }
276278 if (stringFieldDsc == null ) {
277- if (other .stringFieldDsc != null ) {
278- return false ;
279- }
280- } else if (!stringFieldDsc .equals (other .stringFieldDsc )) {
281- return false ;
279+ return other .stringFieldDsc == null ;
280+ } else {
281+ return stringFieldDsc .equals (other .stringFieldDsc );
282282 }
283- return true ;
284283 }
285284 }
286285
287286 /**
288287 * A custom data type implementation specialized for {@link Pojo1}.
289288 */
290289 private static class SpecializedPojo1Type1 implements DataType <Pojo1 > {
291-
292290 private static final RawStringTerminated stringField = new RawStringTerminated ("/" );
293291 private static final RawInteger intField = new RawInteger ();
294292 private static final RawDouble doubleField = new RawDouble ();
295293
296294 /**
297295 * The {@link Struct} equivalent of this type.
298296 */
299- public static Struct GENERIC =
300- new StructBuilder ().add (stringField )
301- .add (intField )
302- .add (doubleField )
303- .toStruct ();
297+ public static Struct GENERIC = new StructBuilder ().add (stringField ).add (intField )
298+ .add (doubleField ).toStruct ();
304299
305300 @ Override
306- public boolean isOrderPreserving () { return true ; }
301+ public boolean isOrderPreserving () {
302+ return true ;
303+ }
307304
308305 @ Override
309- public Order getOrder () { return null ; }
306+ public Order getOrder () {
307+ return null ;
308+ }
310309
311310 @ Override
312- public boolean isNullable () { return false ; }
311+ public boolean isNullable () {
312+ return false ;
313+ }
313314
314315 @ Override
315- public boolean isSkippable () { return true ; }
316+ public boolean isSkippable () {
317+ return true ;
318+ }
316319
317320 @ Override
318321 public int encodedLength (Pojo1 val ) {
319- return
320- stringField .encodedLength (val .stringFieldAsc ) +
322+ return stringField .encodedLength (val .stringFieldAsc ) +
321323 intField .encodedLength (val .intFieldAsc ) +
322324 doubleField .encodedLength (val .doubleFieldAsc );
323325 }
324326
325327 @ Override
326- public Class <Pojo1 > encodedClass () { return Pojo1 .class ; }
328+ public Class <Pojo1 > encodedClass () {
329+ return Pojo1 .class ;
330+ }
327331
328332 @ Override
329333 public int skip (PositionedByteRange src ) {
@@ -355,7 +359,6 @@ public int encode(PositionedByteRange dst, Pojo1 val) {
355359 * A custom data type implementation specialized for {@link Pojo2}.
356360 */
357361 private static class SpecializedPojo2Type1 implements DataType <Pojo2 > {
358-
359362 private static RawBytesTerminated byteField1 = new RawBytesTerminated ("/" );
360363 private static RawBytesTerminated byteField2 =
361364 new RawBytesTerminated (Order .DESCENDING , "/" );
@@ -366,36 +369,41 @@ private static class SpecializedPojo2Type1 implements DataType<Pojo2> {
366369 /**
367370 * The {@link Struct} equivalent of this type.
368371 */
369- public static Struct GENERIC =
370- new StructBuilder ().add (byteField1 )
371- .add (byteField2 )
372- .add (stringField )
373- .add (byteField3 )
374- .toStruct ();
372+ public static Struct GENERIC = new StructBuilder ().add (byteField1 ).add (byteField2 )
373+ .add (stringField ).add (byteField3 ).toStruct ();
375374
376375 @ Override
377- public boolean isOrderPreserving () { return true ; }
376+ public boolean isOrderPreserving () {
377+ return true ;
378+ }
378379
379380 @ Override
380- public Order getOrder () { return null ; }
381+ public Order getOrder () {
382+ return null ;
383+ }
381384
382385 @ Override
383- public boolean isNullable () { return false ; }
386+ public boolean isNullable () {
387+ return false ;
388+ }
384389
385390 @ Override
386- public boolean isSkippable () { return true ; }
391+ public boolean isSkippable () {
392+ return true ;
393+ }
387394
388395 @ Override
389396 public int encodedLength (Pojo2 val ) {
390- return
391- byteField1 .encodedLength (val .byteField1Asc ) +
397+ return byteField1 .encodedLength (val .byteField1Asc ) +
392398 byteField2 .encodedLength (val .byteField2Dsc ) +
393399 stringField .encodedLength (val .stringFieldDsc ) +
394400 byteField3 .encodedLength (val .byteField3Dsc );
395401 }
396402
397403 @ Override
398- public Class <Pojo2 > encodedClass () { return Pojo2 .class ; }
404+ public Class <Pojo2 > encodedClass () {
405+ return Pojo2 .class ;
406+ }
399407
400408 @ Override
401409 public int skip (PositionedByteRange src ) {
0 commit comments