1
package org.hisp.dhis.dataset.action.dataentryform;
4
* Copyright (c) 2004-2007, University of Oslo
7
* Redistribution and use in source and binary forms, with or without
8
* modification, are permitted provided that the following conditions are met:
9
* * Redistributions of source code must retain the above copyright notice, this
10
* list of conditions and the following disclaimer.
11
* * Redistributions in binary form must reproduce the above copyright notice,
12
* this list of conditions and the following disclaimer in the documentation
13
* and/or other materials provided with the distribution.
14
* * Neither the name of the HISP project nor the names of its contributors may
15
* be used to endorse or promote products derived from this software without
16
* specific prior written permission.
18
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
19
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
20
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
21
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
22
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
23
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
24
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
25
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
27
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30
import java.util.ArrayList;
31
import java.util.Iterator;
32
import java.util.List;
34
import org.hisp.dhis.dataelement.DataElement;
35
import org.hisp.dhis.dataelement.DataElementCategoryCombo;
36
import org.hisp.dhis.dataelement.DataElementCategoryOptionCombo;
37
import org.hisp.dhis.dataelement.DataElementCategoryOptionComboService;
38
import org.hisp.dhis.dataelement.DataElementService;
40
import com.opensymphony.xwork.Action;
43
* @author Bharath Kumar
46
public class GetOptionCombosAction
49
// -------------------------------------------------------------------------
51
// -------------------------------------------------------------------------
53
private DataElementService dataElementService;
55
public void setDataElementService( DataElementService dataElementService )
57
this.dataElementService = dataElementService;
60
private DataElementCategoryOptionComboService dataElementCategoryOptionComboService;
62
public void setDataElementCategoryOptionComboService( DataElementCategoryOptionComboService dataElementCategoryOptionComboService )
64
this.dataElementCategoryOptionComboService = dataElementCategoryOptionComboService;
67
// -------------------------------------------------------------------------
69
// -------------------------------------------------------------------------
71
private int dataElementId;
73
public void setDataElementId( int dataElementId )
75
this.dataElementId = dataElementId;
78
private List<String> optionComboIds;
80
public List<String> getOptionComboIds()
82
return optionComboIds;
85
private List<String> optionComboNames;
87
public List<String> getOptionComboNames()
89
return optionComboNames;
92
// -------------------------------------------------------------------------
94
// -------------------------------------------------------------------------
96
public String execute()
99
optionComboIds = new ArrayList<String>();
100
optionComboNames = new ArrayList<String>();
102
DataElement dataElement = dataElementService.getDataElement( dataElementId );
104
DataElementCategoryCombo dataElementCategoryCombo = dataElement.getCategoryCombo();
106
List<DataElementCategoryOptionCombo> optionCombos = new ArrayList<DataElementCategoryOptionCombo>(
107
dataElementCategoryCombo.getOptionCombos() );
109
Iterator<DataElementCategoryOptionCombo> optionComboIterator = optionCombos.iterator();
111
while ( optionComboIterator.hasNext() )
113
DataElementCategoryOptionCombo optionCombo = optionComboIterator.next();
115
String optionComboName = dataElementCategoryOptionComboService.getOptionNames( optionCombo );
117
String optionComboId = String.valueOf( optionCombo.getId() );
119
if ( optionComboId != null )
121
if ( optionComboName == null || optionComboName.trim().length() == 0 )
123
optionComboName = DataElementCategoryCombo.DEFAULT_CATEGORY_COMBO_NAME;
127
optionComboNames.add( optionComboName );
129
optionComboIds.add( String.valueOf( optionCombo.getId() ) );