dhis2-devs team mailing list archive
-
dhis2-devs team
-
Mailing list archive
-
Message #00315
[Branch ~dhis2-devs-core/dhis2/trunk] Rev 99: dhis-service-datamart: Datamart previously calculated the duration of a Period by taking the enda...
------------------------------------------------------------
revno: 99
committer: Lars Helge Oeverland larshelge@xxxxxxxxx
branch nick: trunk
timestamp: Fri 2009-03-20 16:18:04 +0100
message:
dhis-service-datamart: Datamart previously calculated the duration of a Period by taking the endate and "subtract" the start date. This led to slightly wrong values as DHIS2 periods are "inclusive", meaning that eg January goes from 1/1 - 31/1 (not 1/2). This means that the system believed it is 30 days in Januar, which lead to slightly wrong values when aggregating for shorter periods than the dataavalue period. Added one day to the period span calculation to get precise values.
modified:
dhis-2/dhis-services/dhis-service-datamart-default/src/main/java/org/hisp/dhis/datamart/aggregation/dataelement/AverageBoolAggregator.java
dhis-2/dhis-services/dhis-service-datamart-default/src/main/java/org/hisp/dhis/datamart/aggregation/dataelement/AverageIntAggregator.java
dhis-2/dhis-services/dhis-service-datamart-default/src/main/java/org/hisp/dhis/datamart/aggregation/dataelement/SumBoolAggregator.java
dhis-2/dhis-services/dhis-service-datamart-default/src/main/java/org/hisp/dhis/datamart/aggregation/dataelement/SumIntAggregator.java
dhis-2/dhis-services/dhis-service-datamart-default/src/test/java/org/hisp/dhis/datamart/DataMartServiceTest.java
dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/util/DateUtils.java
dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/util/MathUtils.java
dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/util/TextUtils.java
=== modified file 'dhis-2/dhis-services/dhis-service-datamart-default/src/main/java/org/hisp/dhis/datamart/aggregation/dataelement/AverageBoolAggregator.java'
--- dhis-2/dhis-services/dhis-service-datamart-default/src/main/java/org/hisp/dhis/datamart/aggregation/dataelement/AverageBoolAggregator.java 2009-03-20 12:54:19 +0000
+++ dhis-2/dhis-services/dhis-service-datamart-default/src/main/java/org/hisp/dhis/datamart/aggregation/dataelement/AverageBoolAggregator.java 2009-03-20 15:18:04 +0000
@@ -27,7 +27,7 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-import static org.hisp.dhis.system.util.MathUtils.getDays;
+import static org.hisp.dhis.system.util.DateUtils.getDaysInclusive;
import java.util.ArrayList;
import java.util.Collection;
@@ -116,7 +116,7 @@
currentStartDate = period.getStartDate();
currentEndDate = period.getEndDate();
- duration = getDays( currentEndDate ) - getDays( currentStartDate );
+ duration = getDaysInclusive( currentStartDate, currentEndDate );
if ( duration > 0 )
{
@@ -129,21 +129,21 @@
if ( currentStartDate.compareTo( startDate ) >= 0 && currentEndDate.compareTo( endDate ) <= 0 ) // Value is within period
{
- relevantDays = getDays( currentEndDate ) - getDays( currentStartDate );
+ relevantDays = getDaysInclusive( currentStartDate, currentEndDate );
}
else if ( currentStartDate.compareTo( startDate ) <= 0 && currentEndDate.compareTo( endDate ) >= 0 ) // Value spans whole period
{
- relevantDays = getDays( endDate ) - getDays( startDate );
+ relevantDays = getDaysInclusive( startDate, endDate );
}
else if ( currentStartDate.compareTo( startDate ) <= 0 && currentEndDate.compareTo( startDate ) >= 0 // Value spans period start
&& currentEndDate.compareTo( endDate ) <= 0 )
{
- relevantDays = getDays( currentEndDate ) - getDays( startDate );
+ relevantDays = getDaysInclusive( startDate, currentEndDate );
}
else if ( currentStartDate.compareTo( startDate ) >= 0 && currentStartDate.compareTo( endDate ) <= 0 // Value spans period end
&& currentEndDate.compareTo( endDate ) >= 0 )
{
- relevantDays = getDays( endDate ) - getDays( currentStartDate );
+ relevantDays = getDaysInclusive( currentStartDate, endDate );
}
if ( entry.getValue().toLowerCase().equals( TRUE ) )
=== modified file 'dhis-2/dhis-services/dhis-service-datamart-default/src/main/java/org/hisp/dhis/datamart/aggregation/dataelement/AverageIntAggregator.java'
--- dhis-2/dhis-services/dhis-service-datamart-default/src/main/java/org/hisp/dhis/datamart/aggregation/dataelement/AverageIntAggregator.java 2009-03-20 12:54:19 +0000
+++ dhis-2/dhis-services/dhis-service-datamart-default/src/main/java/org/hisp/dhis/datamart/aggregation/dataelement/AverageIntAggregator.java 2009-03-20 15:18:04 +0000
@@ -27,7 +27,7 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-import static org.hisp.dhis.system.util.MathUtils.getDays;
+import static org.hisp.dhis.system.util.DateUtils.getDaysInclusive;
import java.util.ArrayList;
import java.util.Collection;
@@ -146,21 +146,21 @@
if ( currentStartDate.compareTo( startDate ) >= 0 && currentEndDate.compareTo( endDate ) <= 0 ) // Value is within period
{
- relevantDays = getDays( currentEndDate ) - getDays( currentStartDate );
+ relevantDays = getDaysInclusive( currentStartDate, currentEndDate );
}
else if ( currentStartDate.compareTo( startDate ) <= 0 && currentEndDate.compareTo( endDate ) >= 0 ) // Value spans whole period
{
- relevantDays = getDays( endDate ) - getDays( startDate );
+ relevantDays = getDaysInclusive( startDate, endDate );
}
else if ( currentStartDate.compareTo( startDate ) <= 0 && currentEndDate.compareTo( startDate ) >= 0
&& currentEndDate.compareTo( endDate ) <= 0 ) // Value spans period start
{
- relevantDays = getDays( currentEndDate ) - getDays( startDate );
+ relevantDays = getDaysInclusive( startDate, currentEndDate );
}
else if ( currentStartDate.compareTo( startDate ) >= 0 && currentStartDate.compareTo( endDate ) <= 0
&& currentEndDate.compareTo( endDate ) >= 0 ) // Value spans period end
{
- relevantDays = getDays( endDate ) - getDays( currentStartDate );
+ relevantDays = getDaysInclusive( currentStartDate, endDate );
}
value = value * relevantDays;
=== modified file 'dhis-2/dhis-services/dhis-service-datamart-default/src/main/java/org/hisp/dhis/datamart/aggregation/dataelement/SumBoolAggregator.java'
--- dhis-2/dhis-services/dhis-service-datamart-default/src/main/java/org/hisp/dhis/datamart/aggregation/dataelement/SumBoolAggregator.java 2009-03-20 12:54:19 +0000
+++ dhis-2/dhis-services/dhis-service-datamart-default/src/main/java/org/hisp/dhis/datamart/aggregation/dataelement/SumBoolAggregator.java 2009-03-20 15:18:04 +0000
@@ -27,6 +27,9 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
+import static org.hisp.dhis.system.util.DateUtils.getDaysInclusive;
+import static org.hisp.dhis.system.util.MathUtils.getFloor;
+
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
@@ -40,9 +43,6 @@
import org.hisp.dhis.organisationunit.OrganisationUnitHierarchy;
import org.hisp.dhis.period.Period;
-import static org.hisp.dhis.system.util.MathUtils.getDays;
-import static org.hisp.dhis.system.util.MathUtils.getFloor;
-
/**
* @author Lars Helge Overland
* @version $Id: SumBoolAggregator.java 6049 2008-10-28 09:36:17Z larshelg $
@@ -113,7 +113,7 @@
currentStartDate = period.getStartDate();
currentEndDate = period.getEndDate();
- duration = getDays( currentEndDate ) - getDays( currentStartDate );
+ duration = getDaysInclusive( currentStartDate, currentEndDate );
if ( duration > 0 )
{
@@ -128,24 +128,24 @@
if ( currentStartDate.compareTo( startDate ) >= 0 && currentEndDate.compareTo( endDate ) <= 0 ) // Value is within period
{
- relevantDays = ( getDays( endDate ) - getDays( startDate ) );
+ relevantDays = getDaysInclusive( startDate, endDate );
factor = 1;
}
else if ( currentStartDate.compareTo( startDate ) <= 0 && currentEndDate.compareTo( endDate ) >= 0 ) // Value spans whole period
{
- relevantDays = ( getDays( endDate ) - getDays( startDate ) );
+ relevantDays = getDaysInclusive( startDate, endDate );
factor = relevantDays / duration;
}
else if ( currentStartDate.compareTo( startDate ) <= 0 && currentEndDate.compareTo( startDate ) >= 0
&& currentEndDate.compareTo( endDate ) <= 0 ) // Value spans period start
{
- relevantDays = ( getDays( currentEndDate ) - getDays( startDate ) );
+ relevantDays = getDaysInclusive( startDate, currentEndDate );
factor = relevantDays / duration;
}
else if ( currentStartDate.compareTo( startDate ) >= 0 && currentStartDate.compareTo( endDate ) <= 0
&& currentEndDate.compareTo( endDate ) >= 0 ) // Value spans period end
{
- relevantDays = ( getDays( endDate ) - getDays( currentStartDate ) );
+ relevantDays = getDaysInclusive( currentStartDate, endDate );
factor = relevantDays / duration;
}
=== modified file 'dhis-2/dhis-services/dhis-service-datamart-default/src/main/java/org/hisp/dhis/datamart/aggregation/dataelement/SumIntAggregator.java'
--- dhis-2/dhis-services/dhis-service-datamart-default/src/main/java/org/hisp/dhis/datamart/aggregation/dataelement/SumIntAggregator.java 2009-03-20 12:54:19 +0000
+++ dhis-2/dhis-services/dhis-service-datamart-default/src/main/java/org/hisp/dhis/datamart/aggregation/dataelement/SumIntAggregator.java 2009-03-20 15:18:04 +0000
@@ -27,7 +27,7 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-import static org.hisp.dhis.system.util.MathUtils.getDays;
+import static org.hisp.dhis.system.util.DateUtils.getDaysInclusive;
import java.util.ArrayList;
import java.util.Collection;
@@ -115,7 +115,7 @@
currentStartDate = period.getStartDate();
currentEndDate = period.getEndDate();
- double duration = getDays( currentEndDate ) - getDays( currentStartDate );
+ double duration = getDaysInclusive( currentStartDate, currentEndDate );
if ( duration > 0 )
{
@@ -142,24 +142,24 @@
if ( currentStartDate.compareTo( startDate ) >= 0 && currentEndDate.compareTo( endDate ) <= 0 ) // Value is within period
{
- relevantDays = getDays( endDate ) - getDays( startDate );
+ relevantDays = getDaysInclusive( startDate, endDate );
factor = 1;
}
else if ( currentStartDate.compareTo( startDate ) <= 0 && currentEndDate.compareTo( endDate ) >= 0 ) // Value spans whole period
{
- relevantDays = getDays( endDate ) - getDays( startDate );
+ relevantDays = getDaysInclusive( startDate, endDate );
factor = relevantDays / duration;
}
else if ( currentStartDate.compareTo( startDate ) <= 0 && currentEndDate.compareTo( startDate ) >= 0
&& currentEndDate.compareTo( endDate ) <= 0 ) // Value spans period start
{
- relevantDays = getDays( currentEndDate ) - getDays( startDate );
+ relevantDays = getDaysInclusive( startDate, currentEndDate );
factor = relevantDays / duration;
}
else if ( currentStartDate.compareTo( startDate ) >= 0 && currentStartDate.compareTo( endDate ) <= 0
&& currentEndDate.compareTo( endDate ) >= 0 ) // Value spans period end
{
- relevantDays = getDays( endDate ) - getDays( currentStartDate );
+ relevantDays = getDaysInclusive( currentStartDate, endDate );
factor = relevantDays / duration;
}
=== modified file 'dhis-2/dhis-services/dhis-service-datamart-default/src/test/java/org/hisp/dhis/datamart/DataMartServiceTest.java'
--- dhis-2/dhis-services/dhis-service-datamart-default/src/test/java/org/hisp/dhis/datamart/DataMartServiceTest.java 2009-03-03 16:46:36 +0000
+++ dhis-2/dhis-services/dhis-service-datamart-default/src/test/java/org/hisp/dhis/datamart/DataMartServiceTest.java 2009-03-20 15:18:04 +0000
@@ -278,14 +278,14 @@
assertEquals( dataMartStore.getAggregatedValue( dataElementA, periodA, unitG ), 20.0 );
assertEquals( dataMartStore.getAggregatedValue( dataElementA, periodA, unitH ), 60.0 );
- assertEquals( dataMartStore.getAggregatedValue( dataElementA, periodD, unitA ), 278.5 );
- assertEquals( dataMartStore.getAggregatedValue( dataElementA, periodD, unitB ), 193.3 );
- assertEquals( dataMartStore.getAggregatedValue( dataElementA, periodD, unitC ), 85.2 );
- assertEquals( dataMartStore.getAggregatedValue( dataElementA, periodD, unitD ), 29.9 );
- assertEquals( dataMartStore.getAggregatedValue( dataElementA, periodD, unitE ), 48.1 );
- assertEquals( dataMartStore.getAggregatedValue( dataElementA, periodD, unitF ), 115.3 );
- assertEquals( dataMartStore.getAggregatedValue( dataElementA, periodD, unitG ), 30.1 );
- assertEquals( dataMartStore.getAggregatedValue( dataElementA, periodD, unitH ), 48.7 );
+ assertEquals( dataMartStore.getAggregatedValue( dataElementA, periodD, unitA ), 278.9 );
+ assertEquals( dataMartStore.getAggregatedValue( dataElementA, periodD, unitB ), 193.8 );
+ assertEquals( dataMartStore.getAggregatedValue( dataElementA, periodD, unitC ), 85.1 );
+ assertEquals( dataMartStore.getAggregatedValue( dataElementA, periodD, unitD ), 30.1 );
+ assertEquals( dataMartStore.getAggregatedValue( dataElementA, periodD, unitE ), 48.3 );
+ assertEquals( dataMartStore.getAggregatedValue( dataElementA, periodD, unitF ), 115.4 );
+ assertEquals( dataMartStore.getAggregatedValue( dataElementA, periodD, unitG ), 30.2 );
+ assertEquals( dataMartStore.getAggregatedValue( dataElementA, periodD, unitH ), 48.6 );
}
public void testSumBoolDataElementDataMart()
@@ -333,12 +333,12 @@
assertEquals( dataMartStore.getAggregatedValue( dataElementB, periodA, unitH ), 100.0 );
assertEquals( dataMartStore.getAggregatedValue( dataElementB, periodD, unitA ), 66.7 );
- assertEquals( dataMartStore.getAggregatedValue( dataElementB, periodD, unitB ), 66.7 );
- assertEquals( dataMartStore.getAggregatedValue( dataElementB, periodD, unitC ), 66.3 );
- assertEquals( dataMartStore.getAggregatedValue( dataElementB, periodD, unitD ), 67.4 );
- assertEquals( dataMartStore.getAggregatedValue( dataElementB, periodD, unitE ), 32.6 );
- assertEquals( dataMartStore.getAggregatedValue( dataElementB, periodD, unitF ), 77.9 );
- assertEquals( dataMartStore.getAggregatedValue( dataElementB, periodD, unitG ), 33.7 );
+ assertEquals( dataMartStore.getAggregatedValue( dataElementB, periodD, unitB ), 66.8 );
+ assertEquals( dataMartStore.getAggregatedValue( dataElementB, periodD, unitC ), 65.9 );
+ assertEquals( dataMartStore.getAggregatedValue( dataElementB, periodD, unitD ), 67.0 );
+ assertEquals( dataMartStore.getAggregatedValue( dataElementB, periodD, unitE ), 33.0 );
+ assertEquals( dataMartStore.getAggregatedValue( dataElementB, periodD, unitF ), 78.0 );
+ assertEquals( dataMartStore.getAggregatedValue( dataElementB, periodD, unitG ), 34.1 );
assertEquals( dataMartStore.getAggregatedValue( dataElementB, periodD, unitH ), 100.0 );
}
@@ -431,10 +431,10 @@
assertEquals( dataMartStore.getAggregatedValue( indicatorA, periodA, unitF ), 104.7 );
assertEquals( dataMartStore.getAggregatedValue( indicatorA, periodA, unitG ), 10.0 );
assertEquals( dataMartStore.getAggregatedValue( indicatorA, periodA, unitH ), 22.1 );
-
- assertEquals( dataMartStore.getAggregatedValue( indicatorA, periodD, unitF ), 681.6 );
+
+ assertEquals( dataMartStore.getAggregatedValue( indicatorA, periodD, unitF ), 681.2 );
assertEquals( dataMartStore.getAggregatedValue( indicatorA, periodD, unitG ), 51.3 );
- assertEquals( dataMartStore.getAggregatedValue( indicatorA, periodD, unitH ), 480.6 );
+ assertEquals( dataMartStore.getAggregatedValue( indicatorA, periodD, unitH ), 482.6 );
}
public void testAnnualizedIndicatorDataMart()
=== modified file 'dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/util/DateUtils.java'
--- dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/util/DateUtils.java 2009-03-03 16:46:36 +0000
+++ dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/util/DateUtils.java 2009-03-20 15:18:04 +0000
@@ -43,6 +43,8 @@
{
public static final double DAYS_IN_YEAR = 365.0;
+ private static final long MS_PER_DAY = 86400000;
+
/**
* Formats a Date to the IXF date format which is YYYY-MM-DD'T'HH:MM:SS.
* @param date the Date to parse.
@@ -50,7 +52,7 @@
*/
public static String getLongDateString( Date date )
{
- SimpleDateFormat format = new SimpleDateFormat();
+ final SimpleDateFormat format = new SimpleDateFormat();
format.applyPattern( "yyyy-MM-dd'T'HH:mm:ss" );
return date != null ? format.format( date ) : null;
@@ -72,7 +74,7 @@
*/
public static String getMediumDateString( Date date )
{
- SimpleDateFormat format = new SimpleDateFormat();
+ final SimpleDateFormat format = new SimpleDateFormat();
format.applyPattern( "yyyy-MM-dd" );
return date != null ? format.format( date ) : null;
@@ -96,7 +98,7 @@
{
try
{
- SimpleDateFormat format = new SimpleDateFormat();
+ final SimpleDateFormat format = new SimpleDateFormat();
format.applyPattern( "yyyy-MM-dd" );
return dateString != null ? format.parse( dateString ) : null;
@@ -154,9 +156,9 @@
}
/**
- * Returns the number of days between the start and end-date. The value
- * is rounded off to the floor value and does not take daylight saving time
- * into account.
+ * Returns the number of days between the start date (inclusive) and end
+ * date (exclusive). The value is rounded off to the floor value and does
+ * not take daylight saving time into account.
*
* @param startDate the start-date.
* @param endDate the end-date.
@@ -164,10 +166,21 @@
*/
public static long getDays( Date startDate, Date endDate )
{
- long msPrDay = 86400000;
- long ms = endDate.getTime() - startDate.getTime();
-
- return ms / msPrDay;
+ return ( endDate.getTime() - startDate.getTime() ) / MS_PER_DAY;
+ }
+
+ /**
+ * Returns the number of days between the start date (inclusive) and end
+ * date (inclusive). The value is rounded off to the floor value and does
+ * not take daylight saving time into account.
+ *
+ * @param startDate the start-date.
+ * @param endDate the end-date.
+ * @return the number of days between the start and end-date.
+ */
+ public static long getDaysInclusive( Date startDate, Date endDate )
+ {
+ return ( getDays( startDate, endDate ) + 1 );
}
/**
@@ -179,7 +192,7 @@
*/
public static int daysBetween( Date startDate, Date endDate )
{
- Days days = Days.daysBetween( new DateTime( startDate ), new DateTime( endDate ) );
+ final Days days = Days.daysBetween( new DateTime( startDate ), new DateTime( endDate ) );
return days.getDays();
}
@@ -191,7 +204,7 @@
*/
public static int daysSince1900( Date date )
{
- Calendar calendar = Calendar.getInstance();
+ final Calendar calendar = Calendar.getInstance();
calendar.clear();
calendar.set( 1900, 0, 1 );
@@ -205,7 +218,7 @@
*/
public static Date getEpoch()
{
- Calendar calendar = Calendar.getInstance();
+ final Calendar calendar = Calendar.getInstance();
calendar.clear();
calendar.set( 1970, 0, 1 );
=== modified file 'dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/util/MathUtils.java'
--- dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/util/MathUtils.java 2009-03-03 16:46:36 +0000
+++ dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/util/MathUtils.java 2009-03-20 15:18:04 +0000
@@ -27,7 +27,6 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-import java.util.Date;
import java.util.Scanner;
import org.nfunk.jep.JEP;
@@ -40,8 +39,6 @@
{
public static final double INVALID = -1.0;
- private static final long MS_PER_DAY = 86400000;
-
/**
* Validates whether an expression is true or false.
*
@@ -52,9 +49,9 @@
*/
public static boolean expressionIsTrue( double leftSide, String operator, double rightSide )
{
- String expression = leftSide + operator + rightSide;
+ final String expression = leftSide + operator + rightSide;
- JEP parser = new JEP();
+ final JEP parser = new JEP();
parser.parseExpression( expression );
@@ -69,7 +66,7 @@
*/
public static double calculateExpression( String expression )
{
- JEP parser = new JEP();
+ final JEP parser = new JEP();
parser.parseExpression( expression );
@@ -86,7 +83,7 @@
*/
public static boolean expressionHasErrors( String expression )
{
- JEP parser = new JEP();
+ final JEP parser = new JEP();
parser.parseExpression( expression );
@@ -102,7 +99,7 @@
*/
public static String getExpressionErrorInfo( String expression )
{
- JEP parser = new JEP();
+ final JEP parser = new JEP();
parser.parseExpression( expression );
@@ -110,21 +107,6 @@
}
/**
- * Calculates the number of days since epoch (01.01.1970). The value is
- * rounded off to the floor value.
- *
- * @param date The date to be calculated
- * @return Number of days since epoch
- */
- public static long getDays( Date date )
- {
- long ms = date.getTime();
- long days = ms / MS_PER_DAY;
-
- return days;
- }
-
- /**
* Rounds off downwards to the next distinct value.
*
* @param value The value to round off
@@ -144,7 +126,7 @@
*/
public static double getRounded( double value, int decimals )
{
- double factor = Math.pow( 10, decimals );
+ final double factor = Math.pow( 10, decimals );
return Math.round( value * factor ) / factor;
}
=== modified file 'dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/util/TextUtils.java'
--- dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/util/TextUtils.java 2009-03-03 16:46:36 +0000
+++ dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/util/TextUtils.java 2009-03-20 15:18:04 +0000
@@ -48,7 +48,7 @@
*/
public static String subString( String string, int beginIndex, int length )
{
- int endIndex = beginIndex + length;
+ final int endIndex = beginIndex + length;
if ( beginIndex >= string.length() )
{
@@ -73,7 +73,7 @@
{
if ( elements != null && elements.size() > 0 )
{
- StringBuffer buffer = new StringBuffer();
+ final StringBuffer buffer = new StringBuffer();
for ( Integer element : elements )
{
--
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.