dhis2-devs team mailing list archive
-
dhis2-devs team
-
Mailing list archive
-
Message #39490
[Branch ~dhis2-devs-core/dhis2/trunk] Rev 19994: remove old type/numbertype/texttype from data element
------------------------------------------------------------
revno: 19994
committer: Morten Olav Hansen <mortenoh@xxxxxxxxx>
branch nick: dhis2
timestamp: Fri 2015-09-04 17:49:08 +0700
message:
remove old type/numbertype/texttype from data element
modified:
dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/ValueType.java
dhis-2/dhis-api/src/main/java/org/hisp/dhis/dataelement/DataElement.java
dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/table/JdbcEventAnalyticsTableManager.java
dhis-2/dhis-services/dhis-service-analytics/src/test/java/org/hisp/dhis/analytics/DataQueryGroupsTest.java
dhis-2/dhis-services/dhis-service-analytics/src/test/java/org/hisp/dhis/analytics/data/QueryPlannerTest.java
dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/program/DefaultProgramDataEntryService.java
dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/program/DefaultProgramIndicatorService.java
dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/startup/TableAlteror.java
dhis-2/dhis-services/dhis-service-core/src/main/resources/org/hisp/dhis/dataelement/hibernate/DataElement.hbm.xml
dhis-2/dhis-services/dhis-service-core/src/test/java/org/hisp/dhis/program/ProgramDataEntryServiceTest.java
dhis-2/dhis-services/dhis-service-dxf2/src/test/java/org/hisp/dhis/dxf2/events/NoRegistrationSingleEventServiceTest.java
dhis-2/dhis-services/dhis-service-dxf2/src/test/java/org/hisp/dhis/dxf2/events/RegistrationMultiEventsServiceTest.java
dhis-2/dhis-services/dhis-service-dxf2/src/test/java/org/hisp/dhis/dxf2/events/RegistrationSingleEventServiceTest.java
dhis-2/dhis-services/dhis-service-eventreporting/src/test/java/org/hisp/dhis/caseaggregation/CaseAggregationConditionServiceTest.java
dhis-2/dhis-services/dhis-service-eventreporting/src/test/java/org/hisp/dhis/caseaggregation/CaseAggregationConditionStoreTest.java
dhis-2/dhis-support/dhis-support-test/src/main/java/org/hisp/dhis/DhisConvenienceTest.java
dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/DataValueController.java
--
lp:dhis2
https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk
Your team DHIS 2 developers is subscribed to branch lp:dhis2.
To unsubscribe from this branch go to https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk/+edit-subscription
=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/ValueType.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/ValueType.java 2015-09-04 05:24:21 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/ValueType.java 2015-09-04 10:49:08 +0000
@@ -118,120 +118,7 @@
return this == DATE || this == DATETIME;
}
- /**
- * TODO replace string value type on data element with ValueType and remove
- * this method.
- */
- public static ValueType getFromDataElement( DataElement dataElement )
- {
- return getFromDataElementTypes( dataElement.getType(), dataElement.getNumberType(), dataElement.getTextType() );
- }
-
- public static void setDataElementTypes( DataElement dataElement, ValueType valueType )
- {
- switch ( valueType )
- {
- case INTEGER:
- {
- dataElement.setType( DataElement.VALUE_TYPE_INT );
- dataElement.setNumberType( DataElement.VALUE_TYPE_INT );
- dataElement.setTextType( null );
- break;
- }
- case INTEGER_POSITIVE:
- {
- dataElement.setType( DataElement.VALUE_TYPE_INT );
- dataElement.setNumberType( DataElement.VALUE_TYPE_POSITIVE_INT );
- dataElement.setTextType( null );
- break;
- }
- case INTEGER_NEGATIVE:
- {
- dataElement.setType( DataElement.VALUE_TYPE_INT );
- dataElement.setNumberType( DataElement.VALUE_TYPE_NEGATIVE_INT );
- dataElement.setTextType( null );
- break;
- }
- case INTEGER_ZERO_OR_POSITIVE:
- {
- dataElement.setType( DataElement.VALUE_TYPE_INT );
- dataElement.setNumberType( DataElement.VALUE_TYPE_ZERO_OR_POSITIVE_INT );
- dataElement.setTextType( null );
- break;
- }
- case NUMBER:
- {
- dataElement.setType( DataElement.VALUE_TYPE_INT );
- dataElement.setNumberType( DataElement.VALUE_TYPE_NUMBER );
- dataElement.setTextType( null );
- break;
- }
- case UNIT_INTERVAL:
- {
- dataElement.setType( DataElement.VALUE_TYPE_INT );
- dataElement.setNumberType( DataElement.VALUE_TYPE_UNIT_INTERVAL );
- dataElement.setTextType( null );
- break;
- }
- case PERCENTAGE:
- {
- dataElement.setType( DataElement.VALUE_TYPE_INT );
- dataElement.setNumberType( DataElement.VALUE_TYPE_PERCENTAGE );
- dataElement.setTextType( null );
- break;
- }
- case TEXT:
- {
- dataElement.setType( DataElement.VALUE_TYPE_STRING );
- dataElement.setTextType( DataElement.VALUE_TYPE_TEXT );
- dataElement.setNumberType( null );
- break;
- }
- case LONG_TEXT:
- {
- dataElement.setType( DataElement.VALUE_TYPE_STRING );
- dataElement.setTextType( DataElement.VALUE_TYPE_LONG_TEXT );
- dataElement.setNumberType( null );
- break;
- }
- case BOOLEAN:
- {
- dataElement.setType( DataElement.VALUE_TYPE_BOOL );
- dataElement.setNumberType( null );
- dataElement.setTextType( null );
- break;
- }
- case TRUE_ONLY:
- {
- dataElement.setType( DataElement.VALUE_TYPE_TRUE_ONLY );
- dataElement.setNumberType( null );
- dataElement.setTextType( null );
- break;
- }
- case DATE:
- {
- dataElement.setType( DataElement.VALUE_TYPE_DATE );
- dataElement.setNumberType( null );
- dataElement.setTextType( null );
- break;
- }
- case DATETIME:
- {
- dataElement.setType( DataElement.VALUE_TYPE_DATETIME );
- dataElement.setNumberType( null );
- dataElement.setTextType( null );
- break;
- }
- case USERNAME:
- {
- dataElement.setType( DataElement.VALUE_TYPE_USER_NAME );
- dataElement.setNumberType( null );
- dataElement.setTextType( null );
- break;
- }
- }
- }
-
+ // TODO keeping this in for now, legacy reasons
public static ValueType getFromDataElementTypes( String type, String numberType, String textType )
{
if ( DataElement.VALUE_TYPE_STRING.equals( type ) )
=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/dataelement/DataElement.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/dataelement/DataElement.java 2015-09-04 09:29:23 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/dataelement/DataElement.java 2015-09-04 10:49:08 +0000
@@ -35,7 +35,6 @@
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement;
import com.google.common.collect.Sets;
-
import org.hisp.dhis.analytics.AggregationType;
import org.hisp.dhis.attribute.AttributeValue;
import org.hisp.dhis.common.BaseDimensionalObject;
@@ -143,22 +142,6 @@
private DataElementDomain domainType;
/**
- * The value type of this DataElement; e.g. DataElement.VALUE_TYPE_INT or
- * DataElement.VALUE_TYPE_BOOL.
- */
- private String type;
-
- /**
- * The number type. Is relevant when type is VALUE_TYPE_INT.
- */
- private String numberType;
-
- /**
- * The text type. Is relevant when type is VALUE_TYPE_STRING.
- */
- private String textType;
-
- /**
* The aggregation operator of this DataElement; e.g. DataElement.SUM og
* DataElement.AVERAGE.
*/
@@ -283,46 +266,6 @@
}
/**
- * Returns the value type. If value type is int and the number type exists,
- * the number type is returned, otherwise the type is returned.
- */
- public String getDetailedNumberType()
- {
- return (type != null && type.equals( VALUE_TYPE_INT ) && numberType != null) ? numberType : type;
- }
-
- /**
- * Returns the value type. If value type is string and the text type exists,
- * the text type is returned, if the type is string and the text type does
- * not exist string is returned.
- */
- public String getDetailedTextType()
- {
- return (type != null && type.equals( VALUE_TYPE_STRING ) && textType != null) ? textType : type;
- }
-
- /**
- * Returns the detailed data element type. If value type is int, the number
- * type is returned. If value type is string, the text type is returned.
- * Otherwise the type is returned.
- */
- public String getDetailedType()
- {
- if ( VALUE_TYPE_INT.equals( type ) )
- {
- return numberType;
- }
- else if ( VALUE_TYPE_STRING.equals( type ) )
- {
- return textType;
- }
- else
- {
- return type;
- }
- }
-
- /**
* Returns the data set of this data element. If this data element has
* multiple data sets, the data set with the highest collection frequency is
* returned.
@@ -596,7 +539,7 @@
{
return DimensionType.PROGRAM_DATAELEMENT;
}
-
+
// -------------------------------------------------------------------------
// Helper getters
// -------------------------------------------------------------------------
@@ -617,45 +560,14 @@
@JacksonXmlProperty( namespace = DxfNamespaces.DXF_2_0 )
public ValueType getValueType()
{
- return valueType != null ? valueType : ValueType.getFromDataElement( this );
+ return valueType;
}
public void setValueType( ValueType valueType )
{
- ValueType.setDataElementTypes( this, valueType );
this.valueType = valueType;
}
- public String getType()
- {
- return type;
- }
-
- public void setType( String type )
- {
- this.type = type;
- }
-
- public String getNumberType()
- {
- return numberType;
- }
-
- public void setNumberType( String numberType )
- {
- this.numberType = numberType;
- }
-
- public String getTextType()
- {
- return textType;
- }
-
- public void setTextType( String textType )
- {
- this.textType = textType;
- }
-
@JsonProperty
@JsonView( { DetailedView.class, ExportView.class } )
@JacksonXmlProperty( namespace = DxfNamespaces.DXF_2_0 )
@@ -835,9 +747,6 @@
{
formName = dataElement.getFormName();
domainType = dataElement.getDomainType();
- type = dataElement.getType();
- numberType = dataElement.getNumberType();
- textType = dataElement.getTextType();
valueType = dataElement.getValueType();
aggregationOperator = dataElement.getAggregationOperator();
categoryCombo = dataElement.getCategoryCombo();
@@ -849,9 +758,6 @@
{
formName = dataElement.getFormName() == null ? formName : dataElement.getFormName();
domainType = dataElement.getDomainType() == null ? domainType : dataElement.getDomainType();
- type = dataElement.getType() == null ? type : dataElement.getType();
- numberType = dataElement.getNumberType() == null ? numberType : dataElement.getNumberType();
- textType = dataElement.getTextType() == null ? textType : dataElement.getTextType();
valueType = dataElement.getValueType() == null ? valueType : dataElement.getValueType();
aggregationOperator = dataElement.getAggregationOperator() == null ? aggregationOperator : dataElement.getAggregationOperator();
categoryCombo = dataElement.getCategoryCombo() == null ? categoryCombo : dataElement.getCategoryCombo();
=== modified file 'dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/table/JdbcEventAnalyticsTableManager.java'
--- dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/table/JdbcEventAnalyticsTableManager.java 2015-09-03 10:21:08 +0000
+++ dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/table/JdbcEventAnalyticsTableManager.java 2015-09-04 10:49:08 +0000
@@ -263,7 +263,7 @@
{
ValueType valueType = dataElement.getValueType();
String dataType = getColumnType( valueType );
- String dataClause = dataElement.isNumericType() ? numericClause : dataElement.isDateType() ? dateClause : "";
+ String dataClause = dataElement.isNumericType() ? numericClause : dataElement.getValueType().isDate() ? dateClause : "";
String select = getSelectClause( valueType );
String sql = "(select " + select + " from trackedentitydatavalue where programstageinstanceid=psi.programstageinstanceid " +
=== modified file 'dhis-2/dhis-services/dhis-service-analytics/src/test/java/org/hisp/dhis/analytics/DataQueryGroupsTest.java'
--- dhis-2/dhis-services/dhis-service-analytics/src/test/java/org/hisp/dhis/analytics/DataQueryGroupsTest.java 2015-07-02 23:34:24 +0000
+++ dhis-2/dhis-services/dhis-service-analytics/src/test/java/org/hisp/dhis/analytics/DataQueryGroupsTest.java 2015-09-04 10:49:08 +0000
@@ -28,23 +28,21 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-import static org.hisp.dhis.common.NameableObjectUtils.getList;
-import static org.hisp.dhis.dataelement.DataElement.AGGREGATION_OPERATOR_AVERAGE_SUM;
-import static org.hisp.dhis.dataelement.DataElement.AGGREGATION_OPERATOR_SUM;
-import static org.hisp.dhis.dataelement.DataElement.VALUE_TYPE_INT;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-
-import java.util.ArrayList;
-import java.util.List;
-
import org.hisp.dhis.DhisConvenienceTest;
+import org.hisp.dhis.common.ValueType;
import org.hisp.dhis.dataelement.DataElement;
import org.hisp.dhis.organisationunit.OrganisationUnit;
import org.junit.Before;
import org.junit.Test;
+import java.util.ArrayList;
+import java.util.List;
+
+import static org.hisp.dhis.common.NameableObjectUtils.getList;
+import static org.hisp.dhis.dataelement.DataElement.AGGREGATION_OPERATOR_AVERAGE_SUM;
+import static org.hisp.dhis.dataelement.DataElement.AGGREGATION_OPERATOR_SUM;
+import static org.junit.Assert.*;
+
/**
* @author Lars Helge Overland
*/
@@ -54,7 +52,7 @@
// -------------------------------------------------------------------------
// Fixture
// -------------------------------------------------------------------------
-
+
private DataElement deA;
private DataElement deB;
private DataElement deC;
@@ -62,7 +60,7 @@
private DataElement deE;
private DataElement deF;
private DataElement deG;
-
+
private OrganisationUnit ouA;
private OrganisationUnit ouB;
private OrganisationUnit ouC;
@@ -72,60 +70,60 @@
// -------------------------------------------------------------------------
// Tests
// -------------------------------------------------------------------------
-
+
@Before
public void before()
{
- deA = createDataElement( 'A', VALUE_TYPE_INT, AGGREGATION_OPERATOR_SUM );
- deB = createDataElement( 'B', VALUE_TYPE_INT, AGGREGATION_OPERATOR_SUM );
- deC = createDataElement( 'C', VALUE_TYPE_INT, AGGREGATION_OPERATOR_SUM );
- deD = createDataElement( 'D', VALUE_TYPE_INT, AGGREGATION_OPERATOR_SUM );
- deE = createDataElement( 'E', VALUE_TYPE_INT, AGGREGATION_OPERATOR_SUM );
- deF = createDataElement( 'F', VALUE_TYPE_INT, AGGREGATION_OPERATOR_AVERAGE_SUM );
- deG = createDataElement( 'G', VALUE_TYPE_INT, AGGREGATION_OPERATOR_AVERAGE_SUM );
-
+ deA = createDataElement( 'A', ValueType.INTEGER, AGGREGATION_OPERATOR_SUM );
+ deB = createDataElement( 'B', ValueType.INTEGER, AGGREGATION_OPERATOR_SUM );
+ deC = createDataElement( 'C', ValueType.INTEGER, AGGREGATION_OPERATOR_SUM );
+ deD = createDataElement( 'D', ValueType.INTEGER, AGGREGATION_OPERATOR_SUM );
+ deE = createDataElement( 'E', ValueType.INTEGER.INTEGER, AGGREGATION_OPERATOR_SUM );
+ deF = createDataElement( 'F', ValueType.INTEGER, AGGREGATION_OPERATOR_AVERAGE_SUM );
+ deG = createDataElement( 'G', ValueType.INTEGER, AGGREGATION_OPERATOR_AVERAGE_SUM );
+
ouA = createOrganisationUnit( 'A' );
ouB = createOrganisationUnit( 'B' );
ouC = createOrganisationUnit( 'C' );
ouD = createOrganisationUnit( 'D' );
ouE = createOrganisationUnit( 'E' );
}
-
+
@Test
public void planQueryA()
{
DataQueryParams paramsA = new DataQueryParams();
paramsA.setDataElements( getList( deA, deB ) );
paramsA.setOrganisationUnits( getList( ouA, ouB, ouC, ouD, ouE ) );
- paramsA.setPeriods( getList( createPeriod( "2000Q1" ), createPeriod( "2000Q2" ), createPeriod( "2000Q3" ), createPeriod( "2000Q4" ), createPeriod( "2001Q1" ), createPeriod( "2001Q2" ) ) );
+ paramsA.setPeriods( getList( createPeriod( "2000Q1" ), createPeriod( "2000Q2" ), createPeriod( "2000Q3" ), createPeriod( "2000Q4" ), createPeriod( "2001Q1" ), createPeriod( "2001Q2" ) ) );
paramsA.setAggregationType( AggregationType.SUM );
-
+
DataQueryParams paramsB = new DataQueryParams();
paramsB.setDataElements( getList( deC, deD ) );
paramsB.setOrganisationUnits( getList( ouA, ouB, ouC, ouD, ouE ) );
- paramsB.setPeriods( getList( createPeriod( "2000Q1" ), createPeriod( "2000Q2" ), createPeriod( "2000Q3" ), createPeriod( "2000Q4" ), createPeriod( "2001Q1" ), createPeriod( "2001Q2" ) ) );
+ paramsB.setPeriods( getList( createPeriod( "2000Q1" ), createPeriod( "2000Q2" ), createPeriod( "2000Q3" ), createPeriod( "2000Q4" ), createPeriod( "2001Q1" ), createPeriod( "2001Q2" ) ) );
paramsB.setAggregationType( AggregationType.SUM );
-
+
DataQueryParams paramsC = new DataQueryParams();
paramsC.setDataElements( getList( deE ) );
paramsC.setOrganisationUnits( getList( ouA, ouB, ouC, ouD, ouE ) );
- paramsC.setPeriods( getList( createPeriod( "2000Q1" ), createPeriod( "2000Q2" ), createPeriod( "2000Q3" ), createPeriod( "2000Q4" ), createPeriod( "2001Q1" ), createPeriod( "2001Q2" ) ) );
+ paramsC.setPeriods( getList( createPeriod( "2000Q1" ), createPeriod( "2000Q2" ), createPeriod( "2000Q3" ), createPeriod( "2000Q4" ), createPeriod( "2001Q1" ), createPeriod( "2001Q2" ) ) );
paramsC.setAggregationType( AggregationType.SUM );
-
+
DataQueryParams paramsD = new DataQueryParams();
paramsD.setDataElements( getList( deF, deG ) );
paramsD.setOrganisationUnits( getList( ouA, ouB, ouC, ouD, ouE ) );
- paramsD.setPeriods( getList( createPeriod( "2000Q1" ), createPeriod( "2000Q2" ), createPeriod( "2000Q3" ), createPeriod( "2000Q4" ), createPeriod( "2001Q1" ), createPeriod( "2001Q2" ) ) );
+ paramsD.setPeriods( getList( createPeriod( "2000Q1" ), createPeriod( "2000Q2" ), createPeriod( "2000Q3" ), createPeriod( "2000Q4" ), createPeriod( "2001Q1" ), createPeriod( "2001Q2" ) ) );
paramsD.setAggregationType( AggregationType.AVERAGE_SUM_INT );
-
+
List<DataQueryParams> queries = new ArrayList<>();
queries.add( paramsA );
queries.add( paramsB );
queries.add( paramsC );
- queries.add( paramsD );
-
+ queries.add( paramsD );
+
DataQueryGroups queryGroups = new DataQueryGroups( queries );
-
+
assertEquals( 2, queryGroups.getSequentialQueries().size() );
assertEquals( 4, queryGroups.getAllQueries().size() );
assertEquals( 3, queryGroups.getLargestGroupSize() );
=== modified file 'dhis-2/dhis-services/dhis-service-analytics/src/test/java/org/hisp/dhis/analytics/data/QueryPlannerTest.java'
--- dhis-2/dhis-services/dhis-service-analytics/src/test/java/org/hisp/dhis/analytics/data/QueryPlannerTest.java 2015-06-25 20:45:56 +0000
+++ dhis-2/dhis-services/dhis-service-analytics/src/test/java/org/hisp/dhis/analytics/data/QueryPlannerTest.java 2015-09-04 10:49:08 +0000
@@ -28,26 +28,6 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-import static org.hisp.dhis.analytics.AnalyticsTableManager.ANALYTICS_TABLE_NAME;
-import static org.hisp.dhis.common.DimensionalObject.DIMENSION_SEP;
-import static org.hisp.dhis.common.DimensionalObject.ORGUNIT_DIM_ID;
-import static org.hisp.dhis.common.DimensionalObject.PERIOD_DIM_ID;
-import static org.hisp.dhis.common.NameableObjectUtils.getList;
-import static org.hisp.dhis.dataelement.DataElement.AGGREGATION_OPERATOR_AVERAGE_SUM;
-import static org.hisp.dhis.dataelement.DataElement.AGGREGATION_OPERATOR_NONE;
-import static org.hisp.dhis.dataelement.DataElement.AGGREGATION_OPERATOR_SUM;
-import static org.hisp.dhis.dataelement.DataElement.VALUE_TYPE_INT;
-import static org.hisp.dhis.dataelement.DataElement.VALUE_TYPE_STRING;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
import org.hisp.dhis.DhisSpringTest;
import org.hisp.dhis.analytics.DataQueryGroups;
import org.hisp.dhis.analytics.DataQueryParams;
@@ -58,6 +38,7 @@
import org.hisp.dhis.common.ListMap;
import org.hisp.dhis.common.MapMap;
import org.hisp.dhis.common.NameableObject;
+import org.hisp.dhis.common.ValueType;
import org.hisp.dhis.dataelement.DataElement;
import org.hisp.dhis.dataelement.DataElementCategoryOptionCombo;
import org.hisp.dhis.dataelement.DataElementCategoryService;
@@ -79,6 +60,20 @@
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import static org.hisp.dhis.analytics.AnalyticsTableManager.ANALYTICS_TABLE_NAME;
+import static org.hisp.dhis.common.DimensionalObject.DIMENSION_SEP;
+import static org.hisp.dhis.common.DimensionalObject.ORGUNIT_DIM_ID;
+import static org.hisp.dhis.common.DimensionalObject.PERIOD_DIM_ID;
+import static org.hisp.dhis.common.NameableObjectUtils.getList;
+import static org.hisp.dhis.dataelement.DataElement.*;
+import static org.junit.Assert.*;
+
/**
* @author Lars Helge Overland
*/
@@ -87,29 +82,29 @@
{
@Autowired
private QueryPlanner queryPlanner;
-
+
@Autowired
private DataElementService dataElementService;
-
+
@Autowired
private DataSetService dataSetService;
-
+
@Autowired
private DataElementCategoryService categoryService;
-
+
@Autowired
private IndicatorService indicatorService;
-
+
@Autowired
private OrganisationUnitService organisationUnitService;
-
+
// -------------------------------------------------------------------------
// Fixture
// -------------------------------------------------------------------------
private IndicatorType itA;
private Indicator inA;
-
+
private DataElement deA;
private DataElement deB;
private DataElement deC;
@@ -118,14 +113,14 @@
private DataElement deF;
private DataElement deG;
private DataElement deH;
-
+
private DataSet dsA;
private DataSet dsB;
private DataSet dsC;
private DataSet dsD;
-
+
private DataElementCategoryOptionCombo coc;
-
+
private OrganisationUnit ouA;
private OrganisationUnit ouB;
private OrganisationUnit ouC;
@@ -133,29 +128,29 @@
private OrganisationUnit ouE;
//TODO test for indicators, periods in filter
-
+
@Override
public void setUpTest()
{
PeriodType pt = new MonthlyPeriodType();
-
+
itA = createIndicatorType( 'A' );
-
+
indicatorService.addIndicatorType( itA );
-
+
inA = createIndicator( 'A', itA );
-
+
indicatorService.addIndicator( inA );
-
- deA = createDataElement( 'A', VALUE_TYPE_INT, AGGREGATION_OPERATOR_SUM );
- deB = createDataElement( 'B', VALUE_TYPE_INT, AGGREGATION_OPERATOR_SUM );
- deC = createDataElement( 'C', VALUE_TYPE_INT, AGGREGATION_OPERATOR_AVERAGE_SUM );
- deD = createDataElement( 'D', VALUE_TYPE_INT, AGGREGATION_OPERATOR_AVERAGE_SUM );
- deE = createDataElement( 'E', VALUE_TYPE_STRING, AGGREGATION_OPERATOR_NONE );
- deF = createDataElement( 'F', VALUE_TYPE_STRING, AGGREGATION_OPERATOR_NONE );
- deG = createDataElement( 'G', VALUE_TYPE_INT, AGGREGATION_OPERATOR_SUM );
- deH = createDataElement( 'H', VALUE_TYPE_INT, AGGREGATION_OPERATOR_SUM );
-
+
+ deA = createDataElement( 'A', ValueType.INTEGER, AGGREGATION_OPERATOR_SUM );
+ deB = createDataElement( 'B', ValueType.INTEGER, AGGREGATION_OPERATOR_SUM );
+ deC = createDataElement( 'C', ValueType.INTEGER, AGGREGATION_OPERATOR_AVERAGE_SUM );
+ deD = createDataElement( 'D', ValueType.INTEGER, AGGREGATION_OPERATOR_AVERAGE_SUM );
+ deE = createDataElement( 'E', ValueType.TEXT, AGGREGATION_OPERATOR_NONE );
+ deF = createDataElement( 'F', ValueType.TEXT, AGGREGATION_OPERATOR_NONE );
+ deG = createDataElement( 'G', ValueType.INTEGER, AGGREGATION_OPERATOR_SUM );
+ deH = createDataElement( 'H', ValueType.INTEGER, AGGREGATION_OPERATOR_SUM );
+
dataElementService.addDataElement( deA );
dataElementService.addDataElement( deB );
dataElementService.addDataElement( deC );
@@ -164,25 +159,25 @@
dataElementService.addDataElement( deF );
dataElementService.addDataElement( deG );
dataElementService.addDataElement( deH );
-
+
dsA = createDataSet( 'A', pt );
dsB = createDataSet( 'B', pt );
dsC = createDataSet( 'C', pt );
dsD = createDataSet( 'D', pt );
-
+
dataSetService.addDataSet( dsA );
dataSetService.addDataSet( dsB );
dataSetService.addDataSet( dsC );
dataSetService.addDataSet( dsD );
-
+
coc = categoryService.getDefaultDataElementCategoryOptionCombo();
-
+
ouA = createOrganisationUnit( 'A' );
ouB = createOrganisationUnit( 'B' );
ouC = createOrganisationUnit( 'C' );
ouD = createOrganisationUnit( 'D' );
ouE = createOrganisationUnit( 'E' );
-
+
organisationUnitService.addOrganisationUnit( ouA );
organisationUnitService.addOrganisationUnit( ouB );
organisationUnitService.addOrganisationUnit( ouC );
@@ -202,25 +197,25 @@
List<NameableObject> ousB = getList( ouC, ouD );
List<NameableObject> pesA = getList( createPeriod( "2000Q1" ), createPeriod( "2000Q2" ) );
List<NameableObject> pesB = getList( createPeriod( "200001" ), createPeriod( "200002" ) );
-
+
DataQueryParams paramsA = new DataQueryParams();
paramsA.setDataElements( desA );
paramsA.setOrganisationUnits( ousA );
paramsA.setPeriods( pesA );
-
+
DataQueryParams paramsB = paramsA.instance();
paramsB.setOrganisationUnits( ousB );
paramsB.setPeriods( pesB );
-
+
assertEquals( desA, paramsA.getDataElements() );
assertEquals( ousA, paramsA.getOrganisationUnits() );
assertEquals( pesA, paramsA.getPeriods() );
-
+
assertEquals( desA, paramsB.getDataElements() );
assertEquals( ousB, paramsB.getOrganisationUnits() );
assertEquals( pesB, paramsB.getPeriods() );
}
-
+
@Test
public void testGetPermutationOperandValueMapCocEnabled()
{
@@ -233,31 +228,31 @@
aggregatedDataMap.put( deB.getUid() + DIMENSION_SEP + coc.getUid() + DIMENSION_SEP + ouA.getUid() + DIMENSION_SEP + "2000Q2", 6d );
aggregatedDataMap.put( deB.getUid() + DIMENSION_SEP + coc.getUid() + DIMENSION_SEP + ouB.getUid() + DIMENSION_SEP + "2000Q1", 7d );
aggregatedDataMap.put( deB.getUid() + DIMENSION_SEP + coc.getUid() + DIMENSION_SEP + ouB.getUid() + DIMENSION_SEP + "2000Q2", 8d );
-
+
MapMap<String, DataElementOperand, Double> permutationMap = new MapMap<>();
-
+
DataQueryParams.putPermutationOperandValueMap( permutationMap, aggregatedDataMap, true );
-
+
assertNotNull( permutationMap );
-
+
String ouAQ1Key = ouA.getUid() + DIMENSION_SEP + "2000Q1";
String ouAQ2Key = ouA.getUid() + DIMENSION_SEP + "2000Q2";
String ouBQ1Key = ouB.getUid() + DIMENSION_SEP + "2000Q1";
String ouBQ2Key = ouB.getUid() + DIMENSION_SEP + "2000Q2";
-
+
Map<DataElementOperand, Double> ouAQ1 = permutationMap.get( ouAQ1Key );
Map<DataElementOperand, Double> ouAQ2 = permutationMap.get( ouAQ2Key );
Map<DataElementOperand, Double> ouBQ1 = permutationMap.get( ouBQ1Key );
Map<DataElementOperand, Double> ouBQ2 = permutationMap.get( ouBQ2Key );
-
+
assertEquals( 2, ouAQ1.size() );
assertEquals( 2, ouAQ2.size() );
assertEquals( 2, ouBQ1.size() );
assertEquals( 2, ouBQ2.size() );
-
+
DataElementOperand deACoc = new DataElementOperand( deA.getUid(), coc.getUid() );
DataElementOperand deBCoc = new DataElementOperand( deB.getUid(), coc.getUid() );
-
+
Map<DataElementOperand, Double> ouAQ1Expected = new HashMap<>();
ouAQ1Expected.put( deACoc, 1d );
ouAQ1Expected.put( deBCoc, 5d );
@@ -273,7 +268,7 @@
Map<DataElementOperand, Double> ouBQ2Expected = new HashMap<>();
ouBQ2Expected.put( deACoc, 4d );
ouBQ2Expected.put( deBCoc, 8d );
-
+
assertEquals( ouAQ1Expected, ouAQ1 );
assertEquals( ouAQ2Expected, ouAQ2 );
assertEquals( ouBQ1Expected, ouBQ1 );
@@ -292,31 +287,31 @@
aggregatedDataMap.put( deB.getUid() + DIMENSION_SEP + ouA.getUid() + DIMENSION_SEP + "200102", 6d );
aggregatedDataMap.put( deB.getUid() + DIMENSION_SEP + ouB.getUid() + DIMENSION_SEP + "200101", 7d );
aggregatedDataMap.put( deB.getUid() + DIMENSION_SEP + ouB.getUid() + DIMENSION_SEP + "200102", 8d );
-
+
MapMap<String, DataElementOperand, Double> permutationMap = new MapMap<>();
-
+
DataQueryParams.putPermutationOperandValueMap( permutationMap, aggregatedDataMap, false );
-
+
assertNotNull( permutationMap );
-
+
String ouAM1Key = ouA.getUid() + DIMENSION_SEP + "200101";
String ouAM2Key = ouA.getUid() + DIMENSION_SEP + "200102";
String ouBM1Key = ouB.getUid() + DIMENSION_SEP + "200101";
String ouBM2Key = ouB.getUid() + DIMENSION_SEP + "200102";
-
+
Map<DataElementOperand, Double> ouAM1 = permutationMap.get( ouAM1Key );
Map<DataElementOperand, Double> ouAM2 = permutationMap.get( ouAM2Key );
Map<DataElementOperand, Double> ouBM1 = permutationMap.get( ouBM1Key );
Map<DataElementOperand, Double> ouBM2 = permutationMap.get( ouBM2Key );
-
+
assertEquals( 2, ouAM1.size() );
assertEquals( 2, ouAM2.size() );
assertEquals( 2, ouBM1.size() );
assertEquals( 2, ouBM2.size() );
-
+
DataElementOperand deACoc = new DataElementOperand( deA.getUid(), null );
DataElementOperand deBCoc = new DataElementOperand( deB.getUid(), null );
-
+
Map<DataElementOperand, Double> ouAM1Expected = new HashMap<>();
ouAM1Expected.put( deACoc, 1d );
ouAM1Expected.put( deBCoc, 5d );
@@ -332,7 +327,7 @@
Map<DataElementOperand, Double> ouBM2Expected = new HashMap<>();
ouBM2Expected.put( deACoc, 4d );
ouBM2Expected.put( deBCoc, 8d );
-
+
assertEquals( ouAM1Expected, ouAM1 );
assertEquals( ouAM2Expected, ouAM2 );
assertEquals( ouBM1Expected, ouBM1 );
@@ -347,38 +342,38 @@
aggregatedTotalsDataMap.put( deA.getUid() + DIMENSION_SEP + ouA.getUid() + DIMENSION_SEP + "2000Q2", 2d );
aggregatedTotalsDataMap.put( deA.getUid() + DIMENSION_SEP + ouB.getUid() + DIMENSION_SEP + "2000Q1", 3d );
aggregatedTotalsDataMap.put( deA.getUid() + DIMENSION_SEP + ouB.getUid() + DIMENSION_SEP + "2000Q2", 4d );
-
+
Map<String, Double> aggregatedCocDataMap = new HashMap<>();
aggregatedCocDataMap.put( deB.getUid() + DIMENSION_SEP + coc.getUid() + DIMENSION_SEP + ouA.getUid() + DIMENSION_SEP + "2000Q1", 5d );
aggregatedCocDataMap.put( deB.getUid() + DIMENSION_SEP + coc.getUid() + DIMENSION_SEP + ouA.getUid() + DIMENSION_SEP + "2000Q2", 6d );
aggregatedCocDataMap.put( deB.getUid() + DIMENSION_SEP + coc.getUid() + DIMENSION_SEP + ouB.getUid() + DIMENSION_SEP + "2000Q1", 7d );
aggregatedCocDataMap.put( deB.getUid() + DIMENSION_SEP + coc.getUid() + DIMENSION_SEP + ouB.getUid() + DIMENSION_SEP + "2000Q2", 8d );
-
+
MapMap<String, DataElementOperand, Double> permutationMap = new MapMap<>();
-
+
DataQueryParams.putPermutationOperandValueMap( permutationMap, aggregatedTotalsDataMap, false );
DataQueryParams.putPermutationOperandValueMap( permutationMap, aggregatedCocDataMap, true );
-
+
assertNotNull( permutationMap );
-
+
String ouAQ1Key = ouA.getUid() + DIMENSION_SEP + "2000Q1";
String ouAQ2Key = ouA.getUid() + DIMENSION_SEP + "2000Q2";
String ouBQ1Key = ouB.getUid() + DIMENSION_SEP + "2000Q1";
String ouBQ2Key = ouB.getUid() + DIMENSION_SEP + "2000Q2";
-
+
Map<DataElementOperand, Double> ouAQ1 = permutationMap.get( ouAQ1Key );
Map<DataElementOperand, Double> ouAQ2 = permutationMap.get( ouAQ2Key );
Map<DataElementOperand, Double> ouBQ1 = permutationMap.get( ouBQ1Key );
Map<DataElementOperand, Double> ouBQ2 = permutationMap.get( ouBQ2Key );
-
+
assertEquals( 2, ouAQ1.size() );
assertEquals( 2, ouAQ2.size() );
assertEquals( 2, ouBQ1.size() );
assertEquals( 2, ouBQ2.size() );
-
+
DataElementOperand deACoc = new DataElementOperand( deA.getUid(), null );
DataElementOperand deBCoc = new DataElementOperand( deB.getUid(), coc.getUid() );
-
+
Map<DataElementOperand, Double> ouAQ1Expected = new HashMap<>();
ouAQ1Expected.put( deACoc, 1d );
ouAQ1Expected.put( deBCoc, 5d );
@@ -394,7 +389,7 @@
Map<DataElementOperand, Double> ouBQ2Expected = new HashMap<>();
ouBQ2Expected.put( deACoc, 4d );
ouBQ2Expected.put( deBCoc, 8d );
-
+
assertEquals( ouAQ1Expected, ouAQ1 );
assertEquals( ouAQ2Expected, ouAQ2 );
assertEquals( ouBQ1Expected, ouBQ1 );
@@ -412,12 +407,12 @@
params.setDataElements( getList( deA, deB ) );
params.setOrganisationUnits( getList( ouA, ouB, ouC ) );
params.setPeriods( getList( createPeriod( "2000Q1" ), createPeriod( "2000Q2" ) ) );
-
+
List<List<DimensionItem>> permutations = params.getDimensionItemPermutations();
-
+
assertNotNull( permutations );
assertEquals( 6, permutations.size() );
-
+
for ( List<DimensionItem> permutation : permutations )
{
assertNotNull( permutation );
@@ -426,7 +421,7 @@
assertEquals( PERIOD_DIM_ID, permutation.get( 1 ).getDimension() );
}
}
-
+
@Test
public void testGetDataPeriodAggregationPeriodMap()
{
@@ -436,17 +431,17 @@
params.setPeriods( getList( createPeriod( "2000Q1" ), createPeriod( "2000Q2" ), createPeriod( "2000Q3" ), createPeriod( "2000Q4" ), createPeriod( "2001Q1" ), createPeriod( "2001Q2" ) ) );
params.setPeriodType( QuarterlyPeriodType.NAME );
params.setDataPeriodType( new YearlyPeriodType() );
-
+
ListMap<NameableObject, NameableObject> map = params.getDataPeriodAggregationPeriodMap();
-
+
assertEquals( 2, map.size() );
-
+
assertTrue( map.keySet().contains( createPeriod( "2000" ) ) );
assertTrue( map.keySet().contains( createPeriod( "2001" ) ) );
-
+
assertEquals( 4, map.get( createPeriod( "2000" ) ).size() );
assertEquals( 2, map.get( createPeriod( "2001" ) ).size() );
-
+
assertTrue( map.get( createPeriod( "2000" ) ).contains( createPeriod( "2000Q1" ) ) );
assertTrue( map.get( createPeriod( "2000" ) ).contains( createPeriod( "2000Q2" ) ) );
assertTrue( map.get( createPeriod( "2000" ) ).contains( createPeriod( "2000Q3" ) ) );
@@ -455,10 +450,10 @@
assertTrue( map.get( createPeriod( "2001" ) ).contains( createPeriod( "2001Q1" ) ) );
assertTrue( map.get( createPeriod( "2001" ) ).contains( createPeriod( "2001Q2" ) ) );
}
-
+
/**
* Query spans 2 partitions. Splits in 2 queries for each partition, then
- * splits in 4 queries on data elements to satisfy optimal for a total
+ * splits in 4 queries on data elements to satisfy optimal for a total
* of 8 queries, because query has 2 different aggregation types.
*/
@Test
@@ -467,14 +462,14 @@
DataQueryParams params = new DataQueryParams();
params.setDataElements( getList( deA, deB, deC, deD ) );
params.setOrganisationUnits( getList( ouA, ouB, ouC, ouD, ouE ) );
- params.setPeriods( getList( createPeriod( "200101" ), createPeriod( "200103" ), createPeriod( "200105" ), createPeriod( "200107" ), createPeriod( "2002Q3" ), createPeriod( "2002Q4" ) ) );
-
+ params.setPeriods( getList( createPeriod( "200101" ), createPeriod( "200103" ), createPeriod( "200105" ), createPeriod( "200107" ), createPeriod( "2002Q3" ), createPeriod( "2002Q4" ) ) );
+
DataQueryGroups queryGroups = queryPlanner.planQuery( params, 4, ANALYTICS_TABLE_NAME );
-
+
assertEquals( 8, queryGroups.getAllQueries().size() );
assertEquals( 2, queryGroups.getSequentialQueries().size() );
assertEquals( 4, queryGroups.getLargestGroupSize() );
-
+
for ( DataQueryParams query : queryGroups.getAllQueries() )
{
assertTrue( samePeriodType( query.getPeriods() ) );
@@ -482,10 +477,10 @@
assertDimensionNameNotNull( query );
}
}
-
+
/**
* Query spans 3 period types. Splits in 3 queries for each period type, then
- * splits in 2 queries on organisation units to satisfy optimal for a total
+ * splits in 2 queries on organisation units to satisfy optimal for a total
* of 6 queries.
*/
@Test
@@ -495,13 +490,13 @@
params.setDataElements( getList( deA ) );
params.setOrganisationUnits( getList( ouA, ouB, ouC, ouD, ouE ) );
params.setPeriods( getList( createPeriod( "2000Q1" ), createPeriod( "2000Q2" ), createPeriod( "2000" ), createPeriod( "200002" ), createPeriod( "200003" ), createPeriod( "200004" ) ) );
-
+
DataQueryGroups queryGroups = queryPlanner.planQuery( params, 6, ANALYTICS_TABLE_NAME );
-
+
assertEquals( 6, queryGroups.getAllQueries().size() );
assertEquals( 1, queryGroups.getSequentialQueries().size() );
assertEquals( 6, queryGroups.getLargestGroupSize() );
-
+
for ( DataQueryParams query : queryGroups.getAllQueries() )
{
assertTrue( samePeriodType( query.getPeriods() ) );
@@ -509,10 +504,10 @@
assertDimensionNameNotNull( query );
}
}
-
+
/**
* Query spans 3 organisation unit levels. Splits in 3 queries for each level,
- * then splits in 2 queries on organisation units to satisfy optimal for a total
+ * then splits in 2 queries on organisation units to satisfy optimal for a total
* of 5 queries, as there are only 5 organisation units in total.
*/
@Test
@@ -531,18 +526,18 @@
organisationUnitService.updateOrganisationUnit( ouC );
organisationUnitService.updateOrganisationUnit( ouD );
organisationUnitService.updateOrganisationUnit( ouE );
-
+
DataQueryParams params = new DataQueryParams();
params.setDataElements( getList( deA ) );
params.setOrganisationUnits( getList( ouA, ouB, ouC, ouD, ouE ) );
params.setPeriods( getList( createPeriod( "2000Q1" ), createPeriod( "2000Q2" ), createPeriod( "2000Q3" ) ) );
-
+
DataQueryGroups queryGroups = queryPlanner.planQuery( params, 6, ANALYTICS_TABLE_NAME );
-
+
assertEquals( 5, queryGroups.getAllQueries().size() );
assertEquals( 1, queryGroups.getSequentialQueries().size() );
assertEquals( 5, queryGroups.getLargestGroupSize() );
-
+
for ( DataQueryParams query : queryGroups.getAllQueries() )
{
assertTrue( samePeriodType( query.getPeriods() ) );
@@ -550,7 +545,7 @@
assertDimensionNameNotNull( query );
}
}
-
+
/**
* Query spans 1 partition. Splits on 2 aggregation types, then splits one
* query on 3 days in period to satisfy optimal for a total of 4 queries.
@@ -563,13 +558,13 @@
params.setOrganisationUnits( getList( ouA ) );
params.setPeriods( getList( createPeriod( "200001" ), createPeriod( "200002" ), createPeriod( "200003" ), createPeriod( "200004" ),
createPeriod( "200005" ), createPeriod( "200006" ), createPeriod( "200007" ), createPeriod( "200008" ), createPeriod( "200009" ) ) );
-
+
DataQueryGroups queryGroups = queryPlanner.planQuery( params, 4, ANALYTICS_TABLE_NAME );
-
+
assertEquals( 4, queryGroups.getAllQueries().size() );
assertEquals( 2, queryGroups.getSequentialQueries().size() );
assertEquals( 3, queryGroups.getLargestGroupSize() );
-
+
for ( DataQueryParams query : queryGroups.getAllQueries() )
{
assertTrue( samePeriodType( query.getPeriods() ) );
@@ -577,10 +572,10 @@
assertDimensionNameNotNull( query );
}
}
-
+
/**
* Query spans 1 partition. Splits on 2 aggregation types, then splits one
- * query on 3 days in period to satisfy optimal for a total of 4 queries. No
+ * query on 3 days in period to satisfy optimal for a total of 4 queries. No
* organisation units specified.
*/
@Test
@@ -588,7 +583,7 @@
{
DataQueryParams params = new DataQueryParams();
params.setDataElements( getList( deA, deB, deC ) );
- params.setPeriods( getList( createPeriod( "200001" ), createPeriod( "200002" ), createPeriod( "200003" ), createPeriod( "200004" ),
+ params.setPeriods( getList( createPeriod( "200001" ), createPeriod( "200002" ), createPeriod( "200003" ), createPeriod( "200004" ),
createPeriod( "200005" ), createPeriod( "200006" ), createPeriod( "200007" ), createPeriod( "200008" ), createPeriod( "200009" ) ) );
DataQueryGroups queryGroups = queryPlanner.planQuery( params, 4, ANALYTICS_TABLE_NAME );
@@ -606,7 +601,7 @@
}
/**
- * Splits on 3 queries on organisation units for an optimal of 3 queries. No
+ * Splits on 3 queries on organisation units for an optimal of 3 queries. No
* data elements specified.
*/
@Test
@@ -614,7 +609,7 @@
{
DataQueryParams params = new DataQueryParams();
params.setOrganisationUnits( getList( ouA, ouB, ouC, ouD, ouE ) );
- params.setPeriods( getList( createPeriod( "200001" ), createPeriod( "200002" ), createPeriod( "200003" ), createPeriod( "200004" ),
+ params.setPeriods( getList( createPeriod( "200001" ), createPeriod( "200002" ), createPeriod( "200003" ), createPeriod( "200004" ),
createPeriod( "200005" ), createPeriod( "200006" ), createPeriod( "200007" ), createPeriod( "200008" ), createPeriod( "200009" ) ) );
DataQueryGroups queryGroups = queryPlanner.planQuery( params, 4, ANALYTICS_TABLE_NAME );
@@ -630,7 +625,7 @@
assertDimensionNameNotNull( query );
}
}
-
+
/**
* Expected to fail because of no periods specified.
*/
@@ -646,7 +641,7 @@
/**
* Query filters span 2 partitions. Splits in 2 queries on data elements,
- * then 2 queries on organisation units to satisfy optimal for a total of 8
+ * then 2 queries on organisation units to satisfy optimal for a total of 8
* queries.
*/
@Test
@@ -656,9 +651,9 @@
params.setDataElements( getList( deA, deB, deC, deD ) );
params.setOrganisationUnits( getList( ouA, ouB, ouC, ouD, ouE ) );
params.setFilterPeriods( getList( createPeriod( "2000Q1" ), createPeriod( "2000Q2" ), createPeriod( "2000Q3" ), createPeriod( "2000Q4" ), createPeriod( "2001Q1" ), createPeriod( "2001Q2" ) ) );
-
+
DataQueryGroups queryGroups = queryPlanner.planQuery( params, 4, ANALYTICS_TABLE_NAME );
-
+
assertEquals( 8, queryGroups.getAllQueries().size() );
assertEquals( 2, queryGroups.getSequentialQueries().size() );
assertEquals( 4, queryGroups.getLargestGroupSize() );
@@ -674,7 +669,7 @@
/**
* Query spans 3 period types. Splits in 3 queries for each period type, then
* splits in 2 queries on data type, then splits in 2 queries on data elements
- * to satisfy optimal for a total of 12 queries, because query has 2 different
+ * to satisfy optimal for a total of 12 queries, because query has 2 different
* aggregation types.
*/
@Test
@@ -684,9 +679,9 @@
params.setDataElements( getList( deA, deB, deE, deF ) );
params.setOrganisationUnits( getList( ouA, ouB, ouC, ouD, ouE ) );
params.setPeriods( getList( createPeriod( "2000Q1" ), createPeriod( "2000Q2" ), createPeriod( "2000" ), createPeriod( "200002" ), createPeriod( "200003" ), createPeriod( "200004" ) ) );
-
+
DataQueryGroups queryGroups = queryPlanner.planQuery( params, 6, ANALYTICS_TABLE_NAME );
-
+
assertEquals( 12, queryGroups.getAllQueries().size() );
assertEquals( 2, queryGroups.getSequentialQueries().size() );
assertEquals( 6, queryGroups.getLargestGroupSize() );
@@ -702,19 +697,19 @@
/**
* No periods specified, illegal query.
*/
- @Test( expected=IllegalQueryException.class )
+ @Test( expected = IllegalQueryException.class )
public void planQueryJ()
{
DataQueryParams params = new DataQueryParams();
params.setDataElements( getList( deA, deB, deC, deD ) );
params.setOrganisationUnits( getList( ouA, ouB, ouC, ouD, ouE ) );
-
+
queryPlanner.planQuery( params, 4, ANALYTICS_TABLE_NAME );
}
/**
* Query spans 2 partitions. Splits in 2 queries for each partition, then
- * splits in 2 queries on data sets to satisfy optimal for a total
+ * splits in 2 queries on data sets to satisfy optimal for a total
* of 4 queries.
*/
@Test
@@ -723,12 +718,12 @@
DataQueryParams params = new DataQueryParams();
params.setDataSets( getList( dsA, dsB, dsC, dsD ) );
params.setOrganisationUnits( getList( ouA, ouB, ouC, ouD, ouE ) );
- params.setPeriods( getList( createPeriod( "2000Q1" ), createPeriod( "2000Q2" ), createPeriod( "2000Q3" ), createPeriod( "2000Q4" ), createPeriod( "2001Q1" ), createPeriod( "2001Q2" ) ) );
-
+ params.setPeriods( getList( createPeriod( "2000Q1" ), createPeriod( "2000Q2" ), createPeriod( "2000Q3" ), createPeriod( "2000Q4" ), createPeriod( "2001Q1" ), createPeriod( "2001Q2" ) ) );
+
List<DataQueryParams> queries = queryPlanner.planQuery( params, 4, ANALYTICS_TABLE_NAME ).getAllQueries();
-
+
assertEquals( 4, queries.size() );
-
+
for ( DataQueryParams query : queries )
{
assertTrue( samePeriodType( query.getPeriods() ) );
@@ -749,9 +744,9 @@
params.setDataElements( getList( deA, deB, deE, deF ) );
params.setOrganisationUnits( getList( ouA, ouB, ouC, ouD ) );
params.setFilterPeriods( getList( createPeriod( "2000Q1" ) ) );
-
+
DataQueryGroups queryGroups = queryPlanner.planQuery( params, 4, ANALYTICS_TABLE_NAME );
-
+
assertEquals( 8, queryGroups.getAllQueries().size() );
assertEquals( 2, queryGroups.getSequentialQueries().size() );
assertEquals( 4, queryGroups.getLargestGroupSize() );
@@ -764,7 +759,7 @@
}
/**
- * Query spans 1 partition. Splits on 2 queries for data types, then splits
+ * Query spans 1 partition. Splits on 2 queries for data types, then splits
* on 2 queries for data elements to satisfy optimal for a total of 4 queries.
*/
@Test
@@ -774,13 +769,13 @@
params.setDataElements( getList( deA, deB, deG, deH ) );
params.setOrganisationUnits( getList( ouA ) );
params.setPeriods( getList( createPeriod( "200101" ), createPeriod( "200103" ) ) );
-
+
DataQueryGroups queryGroups = queryPlanner.planQuery( params, 4, ANALYTICS_TABLE_NAME );
-
+
assertEquals( 4, queryGroups.getAllQueries().size() );
assertEquals( 1, queryGroups.getSequentialQueries().size() );
assertEquals( 4, queryGroups.getLargestGroupSize() );
-
+
for ( DataQueryParams query : queryGroups.getAllQueries() )
{
assertTrue( samePeriodType( query.getPeriods() ) );
@@ -788,7 +783,7 @@
assertDimensionNameNotNull( query );
}
}
-
+
// -------------------------------------------------------------------------
// Supportive methods
// -------------------------------------------------------------------------
@@ -796,48 +791,48 @@
private static boolean samePeriodType( List<NameableObject> isoPeriods )
{
Iterator<NameableObject> periods = new ArrayList<>( isoPeriods ).iterator();
-
+
PeriodType first = ((Period) periods.next()).getPeriodType();
-
+
while ( periods.hasNext() )
{
PeriodType next = ((Period) periods.next()).getPeriodType();
-
+
if ( !first.equals( next ) )
- {
+ {
return false;
}
}
-
+
return true;
}
-
+
private static boolean samePartition( List<NameableObject> isoPeriods )
{
Iterator<NameableObject> periods = new ArrayList<>( isoPeriods ).iterator();
-
+
int year = new DateTime( ((Period) periods.next()).getStartDate() ).getYear();
-
+
while ( periods.hasNext() )
{
int next = new DateTime( ((Period) periods.next()).getStartDate() ).getYear();
-
+
if ( year != next )
- {
+ {
return false;
}
}
-
+
return true;
}
-
+
private static void assertDimensionNameNotNull( DataQueryParams params )
{
for ( DimensionalObject dim : params.getDimensions() )
{
assertNotNull( dim.getDimensionName() );
}
-
+
for ( DimensionalObject filter : params.getFilters() )
{
assertNotNull( filter.getDimensionName() );
=== modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/program/DefaultProgramDataEntryService.java'
--- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/program/DefaultProgramDataEntryService.java 2015-09-01 06:14:53 +0000
+++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/program/DefaultProgramDataEntryService.java 2015-09-04 10:49:08 +0000
@@ -188,12 +188,6 @@
}
// -------------------------------------------------------------
- // Find type of data element
- // -------------------------------------------------------------
-
- String dataElementType = dataElement.getDetailedNumberType();
-
- // -------------------------------------------------------------
// Find existing value of data element in data set
// -------------------------------------------------------------
@@ -233,12 +227,12 @@
if ( inputHTML.contains( "title=\"\"" ) )
{
inputHTML = inputHTML.replace( "title=\"\"", "title=\"[ " + dataElement.getUid() + " - "
- + dataElement.getName() + " - " + dataElementType + " ]\" " );
+ + dataElement.getName() + " - " + dataElement.getValueType() + " ]\" " );
}
else
{
inputHTML += "title=\"[ " + dataElement.getUid() + " - " + dataElement.getName() + " - "
- + dataElementType + " ]\" ";
+ + dataElement.getValueType() + " ]\" ";
}
// -------------------------------------------------------------
@@ -306,7 +300,7 @@
inputHTML = inputHTML.replace( "$PROGRAMSTAGEID", String.valueOf( programStageUid ) );
inputHTML = inputHTML.replace( "$PROGRAMSTAGENAME", programStageName );
inputHTML = inputHTML.replace( "$DATAELEMENTNAME", dataElement.getFormNameFallback() );
- inputHTML = inputHTML.replace( "$DATAELEMENTTYPE", dataElementType );
+ inputHTML = inputHTML.replace( "$DATAELEMENTTYPE", dataElement.getValueType().toString() );
inputHTML = inputHTML.replace( "$DISABLED", disabled );
inputHTML = inputHTML.replace( "$COMPULSORY", compulsory );
inputHTML = inputHTML.replace( "$SAVEMODE", "false" );
@@ -405,12 +399,6 @@
}
// -------------------------------------------------------------
- // Find type of data element
- // -------------------------------------------------------------
-
- String dataElementType = dataElement.getDetailedNumberType();
-
- // -------------------------------------------------------------
// Find existing value of data element in data set
// -------------------------------------------------------------
@@ -426,12 +414,12 @@
if ( inputHTML.contains( "title=\"\"" ) )
{
inputHTML = inputHTML.replace( "title=\"\"", "title=\"[ " + dataElement.getUid() + " - "
- + dataElement.getName() + " - " + dataElementType + " ]\" " );
+ + dataElement.getName() + " - " + dataElement.getValueType() + " ]\" " );
}
else
{
inputHTML += "title=\"[ " + dataElement.getUid() + " - " + dataElement.getName() + " - "
- + dataElementType + " ]\" ";
+ + dataElement.getValueType() + " ]\" ";
}
// -------------------------------------------------------------
@@ -489,7 +477,7 @@
inputHTML = inputHTML.replace( "$PROGRAMSTAGEID", String.valueOf( programStageUid ) );
inputHTML = inputHTML.replace( "$PROGRAMSTAGENAME", programStageName );
inputHTML = inputHTML.replace( "$DATAELEMENTNAME", dataElement.getName() );
- inputHTML = inputHTML.replace( "$DATAELEMENTTYPE", dataElementType );
+ inputHTML = inputHTML.replace( "$DATAELEMENTTYPE", dataElement.getValueType().toString() );
inputHTML = inputHTML.replace( "$DISABLED", disabled );
inputHTML = inputHTML.replace( "$COMPULSORY", compulsory );
inputHTML = inputHTML.replace( "$SAVEMODE", "false" );
@@ -573,7 +561,7 @@
String metaData = "<input class='optionset' id=\'" + id + "\' name=\'" + id + "\' options=\'no\' type=\'radio\' optionset='"
+ dataElement.getOptionSet().getUid() + "'";
metaData += " data=\"{compulsory:$COMPULSORY, deName:\'$DATAELEMENTNAME\', deType:\'"
- + dataElement.getDetailedNumberType() + "\' }\" ";
+ + dataElement.getValueType() + "\' }\" ";
inputHTML = "<table style=\'width:100%\'>";
inputHTML += "<tr>";
@@ -633,7 +621,7 @@
+ "]\" ";
String displayTitle = dataElement.getUid() + " - " + dataElement.getName() + " - "
- + dataElement.getDetailedNumberType();
+ + dataElement.getValueType();
inputHTML = inputHTML.contains( EMPTY_TITLE_TAG ) ? inputHTML.replace( EMPTY_TITLE_TAG, "title=\"[ "
+ displayTitle + " ]\"" ) : inputHTML + " title=\"[ " + displayTitle + " ]\"";
}
@@ -740,7 +728,7 @@
+ "\" data-optionset=\"" + dataElement.getOptionSet().getUid() + "\" ";
}
- if ( DataElement.VALUE_TYPE_LONG_TEXT.equals( dataElement.getDetailedTextType() ) )
+ if ( ValueType.LONG_TEXT == dataElement.getValueType() )
{
inputHTML = inputHTML.replaceFirst( "input", "textarea" );
inputHTML += " >$VALUE</textarea>";
=== modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/program/DefaultProgramIndicatorService.java'
--- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/program/DefaultProgramIndicatorService.java 2015-09-04 09:29:23 +0000
+++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/program/DefaultProgramIndicatorService.java 2015-09-04 10:49:08 +0000
@@ -608,7 +608,7 @@
if ( programStage != null && dataElement != null )
{
- String sample = dataElement.isNumericType() ? String.valueOf( 1 ) : dataElement.isDateType() ? "'2000-01-01'" : "'A'";
+ String sample = dataElement.isNumericType() ? String.valueOf( 1 ) : dataElement.getValueType().isDate() ? "'2000-01-01'" : "'A'";
matcher.appendReplacement( expr, sample );
}
=== modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/startup/TableAlteror.java'
--- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/startup/TableAlteror.java 2015-09-03 09:03:51 +0000
+++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/startup/TableAlteror.java 2015-09-04 10:49:08 +0000
@@ -213,7 +213,7 @@
executeSql( "ALTER TABLE organisationunit DROP COLUMN hasPatients" );
- executeSql( "update dataelement set texttype='text' where valuetype='string' and texttype is null" );
+ // executeSql( "update dataelement set texttype='text' where valuetype='string' and texttype is null" );
// categories_categoryoptions
// set to 0 temporarily
@@ -285,9 +285,9 @@
executeSql( "ALTER TABLE section DROP CONSTRAINT section_name_key" );
executeSql( "UPDATE patientattribute set inheritable=false where inheritable is null" );
- executeSql( "UPDATE dataelement SET numbertype='number' where numbertype is null and valuetype='int'" );
- executeSql( "UPDATE dataelement SET valuetype='posInt' where valuetype='positiveNumber'" );
- executeSql( "UPDATE dataelement SET valuetype='negInt' where valuetype='negativeNumber'" );
+ // executeSql( "UPDATE dataelement SET numbertype='number' where numbertype is null and valuetype='int'" );
+ // executeSql( "UPDATE dataelement SET valuetype='posInt' where valuetype='positiveNumber'" );
+ // executeSql( "UPDATE dataelement SET valuetype='negInt' where valuetype='negativeNumber'" );
executeSql( "UPDATE dataelement SET aggregationtype='avg_sum_org_unit' where aggregationtype='average'" );
// revert prepare aggregate*Value tables for offline diffs
@@ -878,22 +878,28 @@
private void updateValueTypes()
{
- executeSql( "update dataelement set vtype='NUMBER' where valuetype='int' and numbertype='number' and vtype is null" );
- executeSql( "update dataelement set vtype='INTEGER' where valuetype='int' and numbertype='int' and vtype is null" );
- executeSql( "update dataelement set vtype='INTEGER_POSITIVE' where valuetype='int' and numbertype='posInt' and vtype is null" );
- executeSql( "update dataelement set vtype='INTEGER_NEGATIVE' where valuetype='int' and numbertype='negInt' and vtype is null" );
- executeSql( "update dataelement set vtype='INTEGER_ZERO_OR_POSITIVE' where valuetype='int' and numbertype='zeroPositiveInt' and vtype is null" );
- executeSql( "update dataelement set vtype='PERCENTAGE' where valuetype='int' and numbertype='percentage' and vtype is null" );
- executeSql( "update dataelement set vtype='UNIT_INTERVAL' where valuetype='int' and numbertype='unitInterval' and vtype is null" );
-
- executeSql( "update dataelement set vtype='TEXT' where valuetype='string' and texttype='text' and vtype is null" );
- executeSql( "update dataelement set vtype='LONG_TEXT' where valuetype='string' and texttype='longText' and vtype is null" );
-
- executeSql( "update dataelement set vtype='DATE' where valuetype='date' and vtype is null" );
- executeSql( "update dataelement set vtype='DATETIME' where valuetype='datetime' and vtype is null" );
- executeSql( "update dataelement set vtype='BOOLEAN' where valuetype='bool' and vtype is null" );
- executeSql( "update dataelement set vtype='TRUE_ONLY' where valuetype='trueOnly' and vtype is null" );
- executeSql( "update dataelement set vtype='USERNAME' where valuetype='username' and vtype is null" );
+ executeSql( "alter table dataelement alter column valuetype type varchar(50)" );
+
+ executeSql( "update dataelement set vtype='NUMBER' where valuetype='int' and numbertype='number'" );
+ executeSql( "update dataelement set vtype='INTEGER' where valuetype='int' and numbertype='int'" );
+ executeSql( "update dataelement set vtype='INTEGER_POSITIVE' where valuetype='int' and numbertype='posInt'" );
+ executeSql( "update dataelement set vtype='INTEGER_NEGATIVE' where valuetype='int' and numbertype='negInt'" );
+ executeSql( "update dataelement set vtype='INTEGER_ZERO_OR_POSITIVE' where valuetype='int' and numbertype='zeroPositiveInt'" );
+ executeSql( "update dataelement set vtype='PERCENTAGE' where valuetype='int' and numbertype='percentage'" );
+ executeSql( "update dataelement set vtype='UNIT_INTERVAL' where valuetype='int' and numbertype='unitInterval'" );
+
+ executeSql( "update dataelement set vtype='TEXT' where valuetype='string' and texttype='text'" );
+ executeSql( "update dataelement set vtype='LONG_TEXT' where valuetype='string' and texttype='longText'" );
+
+ executeSql( "update dataelement set vtype='DATE' where valuetype='date'" );
+ executeSql( "update dataelement set vtype='DATETIME' where valuetype='datetime'" );
+ executeSql( "update dataelement set vtype='BOOLEAN' where valuetype='bool'" );
+ executeSql( "update dataelement set vtype='TRUE_ONLY' where valuetype='trueOnly'" );
+ executeSql( "update dataelement set vtype='USERNAME' where valuetype='username'" );
+
+ executeSql( "alter table dataelement drop column valuetype" );
+ executeSql( "alter table dataelement drop column numbertype" );
+ executeSql( "alter table dataelement drop column texttype" );
executeSql( "update trackedentityattribute set valuetype='TEXT' where valuetype='string'" );
executeSql( "update trackedentityattribute set valuetype='PHONE_NUMBER' where valuetype='phoneNumber'" );
=== modified file 'dhis-2/dhis-services/dhis-service-core/src/main/resources/org/hisp/dhis/dataelement/hibernate/DataElement.hbm.xml'
--- dhis-2/dhis-services/dhis-service-core/src/main/resources/org/hisp/dhis/dataelement/hibernate/DataElement.hbm.xml 2015-09-04 09:29:23 +0000
+++ dhis-2/dhis-services/dhis-service-core/src/main/resources/org/hisp/dhis/dataelement/hibernate/DataElement.hbm.xml 2015-09-04 10:49:08 +0000
@@ -22,13 +22,7 @@
<property name="formName" length="230" />
- <property name="type" column="valuetype" length="16" not-null="false" />
-
- <property name="numberType" column="numbertype" length="16" not-null="false" />
-
- <property name="textType" column="textType" length="16" not-null="false" />
-
- <property name="valueType" column="vtype" length="36" access="property" not-null="false">
+ <property name="valueType" column="vtype" length="50" access="property">
<type name="org.hibernate.type.EnumType">
<param name="enumClass">org.hisp.dhis.common.ValueType</param>
<param name="useNamed">true</param>
=== modified file 'dhis-2/dhis-services/dhis-service-core/src/test/java/org/hisp/dhis/program/ProgramDataEntryServiceTest.java'
--- dhis-2/dhis-services/dhis-service-core/src/test/java/org/hisp/dhis/program/ProgramDataEntryServiceTest.java 2015-09-03 03:11:47 +0000
+++ dhis-2/dhis-services/dhis-service-core/src/test/java/org/hisp/dhis/program/ProgramDataEntryServiceTest.java 2015-09-04 10:49:08 +0000
@@ -28,11 +28,6 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-import static org.junit.Assert.assertEquals;
-
-import java.util.HashSet;
-import java.util.Set;
-
import org.hisp.dhis.DhisSpringTest;
import org.hisp.dhis.dataelement.DataElement;
import org.hisp.dhis.dataelement.DataElementService;
@@ -44,6 +39,11 @@
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
+import java.util.HashSet;
+import java.util.Set;
+
+import static org.junit.Assert.assertEquals;
+
/**
* @author Chau Thu Tran
*/
@@ -114,11 +114,11 @@
dataElementService.addDataElement( dataElementA );
dataElementService.addDataElement( dataElementB );
-
+
ProgramStageDataElement programStageDataElementA = new ProgramStageDataElement( stageA, dataElementA, false, 1 );
stageA.getProgramStageDataElements().add( programStageDataElementA );
programStageDataElementService.addProgramStageDataElement( programStageDataElementA );
-
+
ProgramStageDataElement programStageDataElementB = new ProgramStageDataElement( stageA, dataElementB, false, 2 );
stageA.getProgramStageDataElements().add( programStageDataElementB );
programStageDataElementService.addProgramStageDataElement( programStageDataElementB );
@@ -129,17 +129,17 @@
@Test
public void testPrepareDataEntryFormForAdd()
{
- String expected = "<input id=\"StageA-DeA-val\" style=\"width:4em;text-align:center\" value=\"\" title=\"[ DeA - DataElementA - int ]\" "
- + " name=\"entryfield\" tabIndex=\"1\" data=\"{compulsory:false, deName:\'DataElementA\', deType:\'int\'}\" options=\'false\' "
+ String expected = "<input id=\"StageA-DeA-val\" style=\"width:4em;text-align:center\" value=\"\" title=\"[ DeA - DataElementA - INTEGER ]\" "
+ + " name=\"entryfield\" tabIndex=\"1\" data=\"{compulsory:false, deName:\'DataElementA\', deType:\'INTEGER\'}\" options=\'false\' "
+ "maxlength=255 onchange=\"saveVal( \'DeA\', this.value )\" onkeypress=\"return keyPress(event, this)\" />";
String actual = programDataEntryService.prepareDataEntryFormForAdd( htmlCode, mockI18n, stageA );
- assertEquals( expected, actual );
+ assertEquals( expected, actual );
}
@Test
public void testPrepareDataEntryFormForEdit()
{
- String expected = "<input id=\"StageA-DeA-val\" style=\"width:4em;text-align:center\" value=\"[DataElementA]\" title=\"[ DeA - DataElementA - int ]\" />";
+ String expected = "<input id=\"StageA-DeA-val\" style=\"width:4em;text-align:center\" value=\"[DataElementA]\" title=\"[ DeA - DataElementA - INTEGER ]\" />";
String actual = programDataEntryService.prepareDataEntryFormForEdit( htmlCode );
assertEquals( expected, actual );
}
=== modified file 'dhis-2/dhis-services/dhis-service-dxf2/src/test/java/org/hisp/dhis/dxf2/events/NoRegistrationSingleEventServiceTest.java'
--- dhis-2/dhis-services/dhis-service-dxf2/src/test/java/org/hisp/dhis/dxf2/events/NoRegistrationSingleEventServiceTest.java 2015-09-03 03:11:47 +0000
+++ dhis-2/dhis-services/dhis-service-dxf2/src/test/java/org/hisp/dhis/dxf2/events/NoRegistrationSingleEventServiceTest.java 2015-09-04 10:49:08 +0000
@@ -30,6 +30,7 @@
import org.hisp.dhis.DhisSpringTest;
import org.hisp.dhis.common.IdentifiableObjectManager;
+import org.hisp.dhis.common.ValueType;
import org.hisp.dhis.dataelement.DataElement;
import org.hisp.dhis.dxf2.events.event.DataValue;
import org.hisp.dhis.dxf2.events.event.Event;
@@ -94,7 +95,7 @@
identifiableObjectManager.save( organisationUnitA );
dataElementA = createDataElement( 'A' );
- dataElementA.setType( DataElement.VALUE_TYPE_INT );
+ dataElementA.setValueType( ValueType.INTEGER );
identifiableObjectManager.save( dataElementA );
programStageA = createProgramStage( 'A', 0 );
=== modified file 'dhis-2/dhis-services/dhis-service-dxf2/src/test/java/org/hisp/dhis/dxf2/events/RegistrationMultiEventsServiceTest.java'
--- dhis-2/dhis-services/dhis-service-dxf2/src/test/java/org/hisp/dhis/dxf2/events/RegistrationMultiEventsServiceTest.java 2015-09-03 03:11:47 +0000
+++ dhis-2/dhis-services/dhis-service-dxf2/src/test/java/org/hisp/dhis/dxf2/events/RegistrationMultiEventsServiceTest.java 2015-09-04 10:49:08 +0000
@@ -39,6 +39,7 @@
import org.hisp.dhis.DhisSpringTest;
import org.hisp.dhis.common.IdentifiableObjectManager;
import org.hisp.dhis.common.OrganisationUnitSelectionMode;
+import org.hisp.dhis.common.ValueType;
import org.hisp.dhis.dataelement.DataElement;
import org.hisp.dhis.dxf2.events.enrollment.Enrollment;
import org.hisp.dhis.dxf2.events.enrollment.EnrollmentService;
@@ -149,8 +150,8 @@
dataElementA = createDataElement( 'A' );
dataElementB = createDataElement( 'B' );
- dataElementA.setType( DataElement.VALUE_TYPE_INT );
- dataElementB.setType( DataElement.VALUE_TYPE_INT );
+ dataElementA.setValueType( ValueType.INTEGER );
+ dataElementB.setValueType( ValueType.INTEGER );
identifiableObjectManager.save( dataElementA );
identifiableObjectManager.save( dataElementB );
=== modified file 'dhis-2/dhis-services/dhis-service-dxf2/src/test/java/org/hisp/dhis/dxf2/events/RegistrationSingleEventServiceTest.java'
--- dhis-2/dhis-services/dhis-service-dxf2/src/test/java/org/hisp/dhis/dxf2/events/RegistrationSingleEventServiceTest.java 2015-09-03 03:11:47 +0000
+++ dhis-2/dhis-services/dhis-service-dxf2/src/test/java/org/hisp/dhis/dxf2/events/RegistrationSingleEventServiceTest.java 2015-09-04 10:49:08 +0000
@@ -38,6 +38,7 @@
import org.hisp.dhis.DhisSpringTest;
import org.hisp.dhis.common.IdentifiableObjectManager;
import org.hisp.dhis.common.OrganisationUnitSelectionMode;
+import org.hisp.dhis.common.ValueType;
import org.hisp.dhis.dataelement.DataElement;
import org.hisp.dhis.dxf2.events.enrollment.Enrollment;
import org.hisp.dhis.dxf2.events.enrollment.EnrollmentService;
@@ -132,7 +133,7 @@
trackedEntityInstanceMaleA = trackedEntityInstanceService.getTrackedEntityInstance( maleA );
dataElementA = createDataElement( 'A' );
- dataElementA.setType( DataElement.VALUE_TYPE_INT );
+ dataElementA.setValueType( ValueType.INTEGER );
identifiableObjectManager.save( dataElementA );
programStageA = createProgramStage( 'A', 0 );
=== modified file 'dhis-2/dhis-services/dhis-service-eventreporting/src/test/java/org/hisp/dhis/caseaggregation/CaseAggregationConditionServiceTest.java'
--- dhis-2/dhis-services/dhis-service-eventreporting/src/test/java/org/hisp/dhis/caseaggregation/CaseAggregationConditionServiceTest.java 2015-09-03 03:11:47 +0000
+++ dhis-2/dhis-services/dhis-service-eventreporting/src/test/java/org/hisp/dhis/caseaggregation/CaseAggregationConditionServiceTest.java 2015-09-04 10:49:08 +0000
@@ -29,14 +29,29 @@
*/
import org.hisp.dhis.DhisSpringTest;
-import org.hisp.dhis.dataelement.*;
+import org.hisp.dhis.common.ValueType;
+import org.hisp.dhis.dataelement.DataElement;
+import org.hisp.dhis.dataelement.DataElementCategory;
+import org.hisp.dhis.dataelement.DataElementCategoryCombo;
+import org.hisp.dhis.dataelement.DataElementCategoryOption;
+import org.hisp.dhis.dataelement.DataElementCategoryOptionCombo;
+import org.hisp.dhis.dataelement.DataElementCategoryService;
+import org.hisp.dhis.dataelement.DataElementDomain;
+import org.hisp.dhis.dataelement.DataElementService;
import org.hisp.dhis.organisationunit.OrganisationUnit;
import org.hisp.dhis.organisationunit.OrganisationUnitService;
import org.hisp.dhis.period.DailyPeriodType;
import org.hisp.dhis.period.Period;
import org.hisp.dhis.period.PeriodService;
import org.hisp.dhis.period.PeriodType;
-import org.hisp.dhis.program.*;
+import org.hisp.dhis.program.Program;
+import org.hisp.dhis.program.ProgramInstance;
+import org.hisp.dhis.program.ProgramInstanceService;
+import org.hisp.dhis.program.ProgramService;
+import org.hisp.dhis.program.ProgramStage;
+import org.hisp.dhis.program.ProgramStageInstance;
+import org.hisp.dhis.program.ProgramStageInstanceService;
+import org.hisp.dhis.program.ProgramStageService;
import org.hisp.dhis.trackedentity.TrackedEntityAttribute;
import org.hisp.dhis.trackedentity.TrackedEntityAttributeService;
import org.hisp.dhis.trackedentity.TrackedEntityInstance;
@@ -56,7 +71,6 @@
/**
* @author Chau Thu Tran
- *
* @version $ CaseAggregationConditionServiceTest.java Nov 29, 2013 10:01:48 AM
* $
*/
@@ -173,11 +187,11 @@
categoryService.addDataElementCategoryOptionCombo( categoryOptionCombo );
dataElementA = createDataElement( 'A' );
- dataElementA.setType( DataElement.VALUE_TYPE_STRING );
+ dataElementA.setValueType( ValueType.TEXT );
dataElementA.setDomainType( DataElementDomain.TRACKER );
dataElementB = createDataElement( 'B' );
- dataElementB.setType( DataElement.VALUE_TYPE_STRING );
+ dataElementB.setValueType( ValueType.TEXT );
dataElementB.setDomainType( DataElementDomain.TRACKER );
dataElementC = createDataElement( 'C' );
=== modified file 'dhis-2/dhis-services/dhis-service-eventreporting/src/test/java/org/hisp/dhis/caseaggregation/CaseAggregationConditionStoreTest.java'
--- dhis-2/dhis-services/dhis-service-eventreporting/src/test/java/org/hisp/dhis/caseaggregation/CaseAggregationConditionStoreTest.java 2015-09-03 03:11:47 +0000
+++ dhis-2/dhis-services/dhis-service-eventreporting/src/test/java/org/hisp/dhis/caseaggregation/CaseAggregationConditionStoreTest.java 2015-09-04 10:49:08 +0000
@@ -36,6 +36,7 @@
import java.util.Set;
import org.hisp.dhis.DhisSpringTest;
+import org.hisp.dhis.common.ValueType;
import org.hisp.dhis.dataelement.DataElement;
import org.hisp.dhis.dataelement.DataElementCategory;
import org.hisp.dhis.dataelement.DataElementCategoryCombo;
@@ -187,11 +188,11 @@
categoryService.addDataElementCategoryOptionCombo( categoryOptionCombo );
dataElementA = createDataElement( 'A' );
- dataElementA.setType( DataElement.VALUE_TYPE_STRING );
+ dataElementA.setValueType( ValueType.TEXT );
dataElementA.setDomainType( DataElementDomain.TRACKER );
dataElementB = createDataElement( 'B' );
- dataElementB.setType( DataElement.VALUE_TYPE_STRING );
+ dataElementB.setValueType( ValueType.TEXT );
dataElementB.setDomainType( DataElementDomain.TRACKER );
dataElementC = createDataElement( 'C' );
=== modified file 'dhis-2/dhis-support/dhis-support-test/src/main/java/org/hisp/dhis/DhisConvenienceTest.java'
--- dhis-2/dhis-support/dhis-support-test/src/main/java/org/hisp/dhis/DhisConvenienceTest.java 2015-09-04 08:57:35 +0000
+++ dhis-2/dhis-support/dhis-support-test/src/main/java/org/hisp/dhis/DhisConvenienceTest.java 2015-09-04 10:49:08 +0000
@@ -352,7 +352,6 @@
dataElement.setShortName( "DataElementShort" + uniqueCharacter );
dataElement.setCode( "DataElementCode" + uniqueCharacter );
dataElement.setDescription( "DataElementDescription" + uniqueCharacter );
- dataElement.setType( DataElement.VALUE_TYPE_INT );
dataElement.setValueType( ValueType.INTEGER );
dataElement.setDomainType( DataElementDomain.AGGREGATE );
dataElement.setAggregationOperator( DataElement.AGGREGATION_OPERATOR_SUM );
@@ -373,7 +372,6 @@
dataElement.setShortName( "DataElementShort" + uniqueCharacter );
dataElement.setCode( "DataElementCode" + uniqueCharacter );
dataElement.setDescription( "DataElementDescription" + uniqueCharacter );
- dataElement.setType( DataElement.VALUE_TYPE_INT ); // remove
dataElement.setValueType( valueType );
dataElement.setDomainType( DataElementDomain.AGGREGATE );
dataElement.setAggregationOperator( DataElement.AGGREGATION_OPERATOR_SUM );
@@ -397,21 +395,6 @@
/**
* @param uniqueCharacter A unique character to identify the object.
- * @param type The value type.
- * @param aggregationOperator The aggregation operator.
- */
- public static DataElement createDataElement( char uniqueCharacter, String type, String aggregationOperator )
- {
- DataElement dataElement = createDataElement( uniqueCharacter );
- dataElement.setType( type );
- dataElement.setDomainType( DataElementDomain.AGGREGATE );
- dataElement.setAggregationOperator( aggregationOperator );
-
- return dataElement;
- }
-
- /**
- * @param uniqueCharacter A unique character to identify the object.
* @param valueType The value type.
* @param aggregationOperator The aggregation operator.
*/
@@ -427,15 +410,15 @@
/**
* @param uniqueCharacter A unique character to identify the object.
- * @param type The value type.
+ * @param valueType The value type.
* @param aggregationOperator The aggregation operator.
* @param categoryCombo The category combo.
*/
- public static DataElement createDataElement( char uniqueCharacter, String type, String aggregationOperator,
+ public static DataElement createDataElement( char uniqueCharacter, ValueType valueType, String aggregationOperator,
DataElementCategoryCombo categoryCombo )
{
DataElement dataElement = createDataElement( uniqueCharacter );
- dataElement.setType( type );
+ dataElement.setValueType( valueType );
dataElement.setDomainType( DataElementDomain.AGGREGATE );
dataElement.setAggregationOperator( aggregationOperator );
dataElement.setCategoryCombo( categoryCombo );
=== modified file 'dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/DataValueController.java'
--- dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/DataValueController.java 2015-09-03 12:15:43 +0000
+++ dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/DataValueController.java 2015-09-04 10:49:08 +0000
@@ -193,7 +193,7 @@
if ( valueValid != null )
{
- throw new WebMessageException( WebMessageUtils.conflict( "Invalid value: " + value + ", must match data element type: " + dataElement.getDetailedType() ) );
+ throw new WebMessageException( WebMessageUtils.conflict( "Invalid value: " + value + ", must match data element type: " + dataElement.getValueType() ) );
}
String commentValid = ValidationUtils.commentIsValid( comment );