=== added file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/query/Direction.java' --- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/query/Direction.java 1970-01-01 00:00:00 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/query/Direction.java 2016-01-05 10:16:27 +0000 @@ -0,0 +1,37 @@ +package org.hisp.dhis.query; + +/* + * Copyright (c) 2004-2016, University of Oslo + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * Neither the name of the HISP project nor the names of its contributors may + * be used to endorse or promote products derived from this software without + * specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/** + * @author Morten Olav Hansen + */ +public enum Direction +{ + ASCENDING, DESCENDING +} === modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/query/Order.java' --- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/query/Order.java 2016-01-05 09:05:54 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/query/Order.java 2016-01-05 10:16:27 +0000 @@ -40,16 +40,16 @@ */ public class Order { - private boolean ascending; + private Direction direction; private boolean ignoreCase; private Property property; - public Order( Property property, boolean ascending ) + public Order( Property property, Direction direction ) { this.property = property; - this.ascending = ascending; + this.direction = direction; } public Order ignoreCase() @@ -60,7 +60,7 @@ public boolean isAscending() { - return ascending; + return Direction.ASCENDING == direction; } public boolean isIgnoreCase() @@ -98,31 +98,31 @@ String value1 = ignoreCase ? ((String) o1).toLowerCase() : (String) o1; String value2 = ignoreCase ? ((String) o2).toLowerCase() : (String) o2; - return ascending ? value1.compareTo( value2 ) : value2.compareTo( value1 ); + return isAscending() ? value1.compareTo( value2 ) : value2.compareTo( value1 ); } if ( Boolean.class.isInstance( o1 ) && Boolean.class.isInstance( o2 ) ) { - return ascending ? ((Boolean) o1).compareTo( (Boolean) o2 ) : ((Boolean) o2).compareTo( (Boolean) o1 ); + return isAscending() ? ((Boolean) o1).compareTo( (Boolean) o2 ) : ((Boolean) o2).compareTo( (Boolean) o1 ); } else if ( Integer.class.isInstance( o1 ) && Integer.class.isInstance( o2 ) ) { - return ascending ? ((Integer) o1).compareTo( (Integer) o2 ) : ((Integer) o2).compareTo( (Integer) o1 ); + return isAscending() ? ((Integer) o1).compareTo( (Integer) o2 ) : ((Integer) o2).compareTo( (Integer) o1 ); } else if ( Float.class.isInstance( o1 ) && Float.class.isInstance( o2 ) ) { - return ascending ? ((Float) o1).compareTo( (Float) o2 ) : ((Float) o2).compareTo( (Float) o1 ); + return isAscending() ? ((Float) o1).compareTo( (Float) o2 ) : ((Float) o2).compareTo( (Float) o1 ); } else if ( Double.class.isInstance( o1 ) && Double.class.isInstance( o2 ) ) { - return ascending ? ((Double) o1).compareTo( (Double) o2 ) : ((Double) o2).compareTo( (Double) o1 ); + return isAscending() ? ((Double) o1).compareTo( (Double) o2 ) : ((Double) o2).compareTo( (Double) o1 ); } else if ( Date.class.isInstance( o1 ) && Date.class.isInstance( o2 ) ) { - return ascending ? ((Date) o1).compareTo( (Date) o2 ) : ((Date) o2).compareTo( (Date) o1 ); + return isAscending() ? ((Date) o1).compareTo( (Date) o2 ) : ((Date) o2).compareTo( (Date) o1 ); } else if ( Enum.class.isInstance( o1 ) && Enum.class.isInstance( o2 ) ) { - return ascending ? String.valueOf( o1 ).compareTo( String.valueOf( o2 ) ) : String.valueOf( o2 ).compareTo( String.valueOf( o1 ) ); + return isAscending() ? String.valueOf( o1 ).compareTo( String.valueOf( o2 ) ) : String.valueOf( o2 ).compareTo( String.valueOf( o1 ) ); } return 0; @@ -130,22 +130,22 @@ public static Order asc( Property property ) { - return new Order( property, true ); + return new Order( property, Direction.ASCENDING ); } public static Order iasc( Property property ) { - return new Order( property, true ).ignoreCase(); + return new Order( property, Direction.ASCENDING ).ignoreCase(); } public static Order desc( Property property ) { - return new Order( property, false ); + return new Order( property, Direction.DESCENDING ); } public static Order idesc( Property property ) { - return new Order( property, false ).ignoreCase(); + return new Order( property, Direction.DESCENDING ).ignoreCase(); } public static Order from( String direction, Property property ) @@ -168,7 +168,7 @@ @Override public int hashCode() { - return Objects.hash( ascending, ignoreCase, property ); + return Objects.hash( direction, ignoreCase, property ); } @Override @@ -186,18 +186,19 @@ final Order other = (Order) obj; - return Objects.equals( this.ascending, other.ascending ) + return Objects.equals( this.direction, other.direction ) && Objects.equals( this.ignoreCase, other.ignoreCase ) && Objects.equals( this.property, other.property ); } + @Override public String toString() { return MoreObjects.toStringHelper( this ) - .add( "ascending", ascending ) + .add( "direction", direction ) .add( "ignoreCase", ignoreCase ) - .add( "property", property != null ? property.getName() : null ) + .add( "property", property ) .toString(); } } === modified file 'dhis-2/dhis-services/dhis-service-core/src/test/java/org/hisp/dhis/query/CriteriaQueryEngineTest.java' --- dhis-2/dhis-services/dhis-service-core/src/test/java/org/hisp/dhis/query/CriteriaQueryEngineTest.java 2016-01-04 02:27:49 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/test/java/org/hisp/dhis/query/CriteriaQueryEngineTest.java 2016-01-05 10:16:27 +0000 @@ -294,7 +294,7 @@ Schema schema = schemaService.getDynamicSchema( DataElement.class ); Query query = Query.from( schema ); - query.addOrder( new Order( schema.getProperty( "name" ), false ) ); + query.addOrder( new Order( schema.getProperty( "name" ), Direction.DESCENDING ) ); List objects = queryEngine.query( query ); assertEquals( 6, objects.size() ); @@ -313,7 +313,7 @@ Schema schema = schemaService.getDynamicSchema( DataElement.class ); Query query = Query.from( schema ); - query.addOrder( new Order( schema.getProperty( "name" ), true ) ); + query.addOrder( new Order( schema.getProperty( "name" ), Direction.ASCENDING ) ); List objects = queryEngine.query( query ); assertEquals( 6, objects.size() ); @@ -332,7 +332,7 @@ Schema schema = schemaService.getDynamicSchema( DataElement.class ); Query query = Query.from( schema ); - query.addOrder( new Order( schema.getProperty( "created" ), false ) ); + query.addOrder( new Order( schema.getProperty( "created" ), Direction.DESCENDING ) ); List objects = queryEngine.query( query ); assertEquals( 6, objects.size() ); @@ -351,7 +351,7 @@ Schema schema = schemaService.getDynamicSchema( DataElement.class ); Query query = Query.from( schema ); - query.addOrder( new Order( schema.getProperty( "created" ), true ) ); + query.addOrder( new Order( schema.getProperty( "created" ), Direction.ASCENDING ) ); List objects = queryEngine.query( query ); assertEquals( 6, objects.size() ); === modified file 'dhis-2/dhis-services/dhis-service-core/src/test/java/org/hisp/dhis/query/InMemoryQueryEngineTest.java' --- dhis-2/dhis-services/dhis-service-core/src/test/java/org/hisp/dhis/query/InMemoryQueryEngineTest.java 2016-01-04 02:27:49 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/test/java/org/hisp/dhis/query/InMemoryQueryEngineTest.java 2016-01-05 10:16:27 +0000 @@ -437,7 +437,7 @@ Query query = Query.from( schema ); query.setObjects( dataElements ); - query.addOrder( new Order( schema.getProperty( "name" ), false ) ); + query.addOrder( new Order( schema.getProperty( "name" ), Direction.DESCENDING ) ); List objects = queryEngine.query( query ); assertEquals( 6, objects.size() ); @@ -457,7 +457,7 @@ Query query = Query.from( schema ); query.setObjects( dataElements ); - query.addOrder( new Order( schema.getProperty( "name" ), true ) ); + query.addOrder( new Order( schema.getProperty( "name" ), Direction.ASCENDING ) ); List objects = queryEngine.query( query ); assertEquals( 6, objects.size() ); @@ -477,7 +477,7 @@ Query query = Query.from( schema ); query.setObjects( dataElements ); - query.addOrder( new Order( schema.getProperty( "created" ), false ) ); + query.addOrder( new Order( schema.getProperty( "created" ), Direction.DESCENDING ) ); List objects = queryEngine.query( query ); assertEquals( 6, objects.size() ); @@ -497,7 +497,7 @@ Query query = Query.from( schema ); query.setObjects( dataElements ); - query.addOrder( new Order( schema.getProperty( "created" ), true ) ); + query.addOrder( new Order( schema.getProperty( "created" ), Direction.ASCENDING ) ); List objects = queryEngine.query( query ); assertEquals( 6, objects.size() ); === modified file 'dhis-2/dhis-services/dhis-service-core/src/test/java/org/hisp/dhis/query/QueryServiceTest.java' --- dhis-2/dhis-services/dhis-service-core/src/test/java/org/hisp/dhis/query/QueryServiceTest.java 2016-01-04 02:27:49 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/test/java/org/hisp/dhis/query/QueryServiceTest.java 2016-01-05 10:16:27 +0000 @@ -370,7 +370,7 @@ Schema schema = schemaService.getDynamicSchema( DataElement.class ); Query query = Query.from( schema ); - query.addOrder( new Order( schema.getProperty( "name" ), false ) ); + query.addOrder( new Order( schema.getProperty( "name" ), Direction.DESCENDING ) ); List objects = queryService.query( query ); assertEquals( 6, objects.size() ); @@ -389,7 +389,7 @@ Schema schema = schemaService.getDynamicSchema( DataElement.class ); Query query = Query.from( schema ); - query.addOrder( new Order( schema.getProperty( "name" ), true ) ); + query.addOrder( new Order( schema.getProperty( "name" ), Direction.ASCENDING ) ); List objects = queryService.query( query ); assertEquals( 6, objects.size() ); @@ -408,7 +408,7 @@ Schema schema = schemaService.getDynamicSchema( DataElement.class ); Query query = Query.from( schema ); - query.addOrder( new Order( schema.getProperty( "created" ), false ) ); + query.addOrder( new Order( schema.getProperty( "created" ), Direction.DESCENDING ) ); List objects = queryService.query( query ); assertEquals( 6, objects.size() ); @@ -427,7 +427,7 @@ Schema schema = schemaService.getDynamicSchema( DataElement.class ); Query query = Query.from( schema ); - query.addOrder( new Order( schema.getProperty( "created" ), true ) ); + query.addOrder( new Order( schema.getProperty( "created" ), Direction.ASCENDING ) ); List objects = queryService.query( query ); assertEquals( 6, objects.size() );