1
package org.hisp.dhis.openhealth.action;
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.Collections;
32
import java.util.List;
34
import org.hisp.dhis.i18n.I18nFormat;
35
import org.hisp.dhis.indicator.Indicator;
36
import org.hisp.dhis.indicator.IndicatorService;
37
import org.hisp.dhis.indicator.comparator.IndicatorNameComparator;
38
import org.hisp.dhis.organisationunit.OrganisationUnitLevel;
39
import org.hisp.dhis.organisationunit.OrganisationUnitService;
40
import org.hisp.dhis.period.MonthlyPeriodType;
41
import org.hisp.dhis.period.Period;
42
import org.hisp.dhis.period.PeriodService;
43
import org.hisp.dhis.period.comparator.PeriodComparator;
45
import com.opensymphony.xwork.Action;
48
* @author Lars Helge Overland
51
public class GetOlapURLOptionsAction
54
// -------------------------------------------------------------------------
56
// -------------------------------------------------------------------------
58
private IndicatorService indicatorService;
60
public void setIndicatorService( IndicatorService indicatorService )
62
this.indicatorService = indicatorService;
65
private PeriodService periodService;
67
public void setPeriodService( PeriodService periodService )
69
this.periodService = periodService;
72
private OrganisationUnitService organisationUnitService;
74
public void setOrganisationUnitService( OrganisationUnitService organisationUnitService )
76
this.organisationUnitService = organisationUnitService;
79
private I18nFormat format;
81
public void setFormat( I18nFormat format )
86
// -------------------------------------------------------------------------
88
// -------------------------------------------------------------------------
90
private List<Indicator> availableIndicators;
92
public List<Indicator> getAvailableIndicators()
94
return availableIndicators;
97
private List<Period> availablePeriods;
99
public List<Period> getAvailablePeriods()
101
return availablePeriods;
104
private List<OrganisationUnitLevel> availableLevels;
106
public List<OrganisationUnitLevel> getAvailableLevels()
108
return availableLevels;
111
// -------------------------------------------------------------------------
112
// Action implementation
113
// -------------------------------------------------------------------------
115
public String execute()
117
availableIndicators = new ArrayList<Indicator>( indicatorService.getAllIndicators() );
118
availablePeriods = new ArrayList<Period>( periodService.getPeriodsByPeriodType( new MonthlyPeriodType() ) );
119
availableLevels = organisationUnitService.getOrganisationUnitLevels();
121
Collections.sort( availableIndicators, new IndicatorNameComparator() );
122
Collections.sort( availablePeriods, new PeriodComparator() );
124
for ( Period period : availablePeriods )
126
period.setName( format.formatPeriod( period ) );