=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/dataentryform/DataEntryFormService.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/dataentryform/DataEntryFormService.java 2011-05-08 10:24:38 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/dataentryform/DataEntryFormService.java 2011-05-10 09:48:46 +0000 @@ -30,6 +30,7 @@ import java.util.Collection; import java.util.List; import java.util.Map; +import java.util.regex.Pattern; import org.hisp.dhis.dataset.DataSet; import org.hisp.dhis.datavalue.DataValue; @@ -43,6 +44,11 @@ { String ID = DataEntryFormService.class.getName(); + final Pattern INPUT_PATTERN = Pattern.compile( "()", Pattern.DOTALL ); + final Pattern IDENTIFIER_PATTERN = Pattern.compile( "value\\[(.*)\\].value:value\\[(.*)\\].value" ); + final Pattern VALUE_TAG_PATTERN = Pattern.compile( "value=\"(.*?)\"", Pattern.DOTALL ); + final Pattern TITLE_TAG_PATTERN = Pattern.compile( "title=\"(.*?)\"", Pattern.DOTALL ); + // ------------------------------------------------------------------------- // DataEntryForm // ------------------------------------------------------------------------- === modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/dataentryform/DefaultDataEntryFormService.java' --- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/dataentryform/DefaultDataEntryFormService.java 2011-05-08 14:16:09 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/dataentryform/DefaultDataEntryFormService.java 2011-05-10 09:48:46 +0000 @@ -37,7 +37,6 @@ import java.util.List; import java.util.Map; import java.util.regex.Matcher; -import java.util.regex.Pattern; import org.hisp.dhis.dataelement.DataElement; import org.hisp.dhis.dataelement.DataElementCategoryOptionCombo; @@ -58,12 +57,7 @@ @Transactional public class DefaultDataEntryFormService implements DataEntryFormService -{ - private static final Pattern INPUT_PATTERN = Pattern.compile( "()", Pattern.DOTALL ); - private static final Pattern IDENTIFIER_PATTERN = Pattern.compile( "value\\[(.*)\\].value:value\\[(.*)\\].value" ); - private static final Pattern VALUE_TAG_PATTERN = Pattern.compile( "value=\"(.*?)\"", Pattern.DOTALL ); - private static final Pattern TITLE_TAG_PATTERN = Pattern.compile( "title=\"(.*?)\"", Pattern.DOTALL ); - +{ private static final String EMPTY_VALUE_TAG = "value=\"\""; private static final String EMPTY_TITLE_TAG = "title=\"\""; private static final String TAG_CLOSE = "/>"; === modified file 'dhis-2/dhis-services/dhis-service-reporting/src/main/java/org/hisp/dhis/datasetreport/impl/DefaultDataSetReportService.java' --- dhis-2/dhis-services/dhis-service-reporting/src/main/java/org/hisp/dhis/datasetreport/impl/DefaultDataSetReportService.java 2011-04-12 12:15:54 +0000 +++ dhis-2/dhis-services/dhis-service-reporting/src/main/java/org/hisp/dhis/datasetreport/impl/DefaultDataSetReportService.java 2011-05-10 09:48:46 +0000 @@ -27,6 +27,8 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +import static org.hisp.dhis.dataentryform.DataEntryFormService.IDENTIFIER_PATTERN; +import static org.hisp.dhis.dataentryform.DataEntryFormService.INPUT_PATTERN; import static org.hisp.dhis.options.SystemSettingManager.AGGREGATION_STRATEGY_REAL_TIME; import static org.hisp.dhis.options.SystemSettingManager.DEFAULT_AGGREGATION_STRATEGY; import static org.hisp.dhis.options.SystemSettingManager.KEY_AGGREGATION_STRATEGY; @@ -40,7 +42,6 @@ import java.util.Set; import java.util.TreeMap; import java.util.regex.Matcher; -import java.util.regex.Pattern; import org.hisp.dhis.aggregation.AggregatedDataValueService; import org.hisp.dhis.aggregation.AggregationService; @@ -76,8 +77,6 @@ public class DefaultDataSetReportService implements DataSetReportService { - private static final Pattern DATAENTRYFORM_PATTERN = Pattern.compile( "(", Pattern.DOTALL ); - private static final Pattern OPERAND_PATTERN = Pattern.compile( "value\\[(.*)\\].value:value\\[(.*)\\].value" ); private static final String NULL_REPLACEMENT = ""; private static final String SEPARATOR = ":"; private static final String DEFAULT_HEADER = "Value"; @@ -172,7 +171,7 @@ { StringBuffer buffer = new StringBuffer(); - Matcher matDataElement = DATAENTRYFORM_PATTERN.matcher( dataEntryFormCode ); + Matcher matDataElement = INPUT_PATTERN.matcher( dataEntryFormCode ); // --------------------------------------------------------------------- // Iterate through all matching data element fields. @@ -186,23 +185,15 @@ String dataElementCode = matDataElement.group( 1 ); - // ----------------------------------------------------------------- - // Pattern to extract data element ID from data element field - // ----------------------------------------------------------------- - - Matcher matDataElementId = OPERAND_PATTERN.matcher( dataElementCode ); + Matcher matDataElementId = IDENTIFIER_PATTERN.matcher( dataElementCode ); if ( matDataElementId.find() && matDataElementId.groupCount() > 0 ) - { - // ------------------------------------------------------------- - // Get data element ID of data element. - // ------------------------------------------------------------- - + { int dataElementId = Integer.parseInt( matDataElementId.group( 1 ) ); int optionComboId = Integer.parseInt( matDataElementId.group( 2 ) ); // -------------------------------------------------------------- - // Find existing value of data element in data set. + // Find existing value of data element in data set and replace // -------------------------------------------------------------- String dataElementValue = dataValues.get( dataElementId + SEPARATOR + optionComboId );