/*
* Copyright (C) 2010-2012 Stichting Akvo (Akvo Foundation)
*
* This file is part of Akvo FLOW.
*
* Akvo FLOW is free software: you can redistribute it and modify it under the terms of
* the GNU Affero General Public License (AGPL) as published by the Free Software Foundation,
* either version 3 of the License or any later version.
*
* Akvo FLOW is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU Affero General Public License included below for more details.
*
* The full license text can also be seen at <http://www.gnu.org/licenses/agpl.html>.
*/
package org.waterforpeople.mapping.analytics;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import com.gallatinsystems.framework.analytics.summarization.DataSummarizationHandler;
/**
* Task servlet to handle bulk updates of survey data.
*
* @author Christopher Fagiani
*/
public class SurveyDataUpdateHandler extends DataSummarizationHandler {
private static final long serialVersionUID = 3873215496111195139L;
/**
* installs the list of summarizers that will run for various data types
*/
@Override
protected void initializeSummarization() {
queueName = "dataUpdate";
summarizerPath = "/app_worker/dataupdate";
summarizers = new HashMap<String, List<String>>();
List<String> nameUpdateSummarizers = new ArrayList<String>();
nameUpdateSummarizers
.add("org.waterforpeople.mapping.analytics.NameQuestionDataCleanser");
summarizers.put("NameQuestionFix", nameUpdateSummarizers);
List<String> questionUpdateSummarizers = new ArrayList<String>();
questionUpdateSummarizers
.add("org.waterforpeople.mapping.analytics.SurveyQuestionSummaryUpdater");
summarizers.put("QuestionDataChange", questionUpdateSummarizers);
List<String> accessPointUpdaters = new ArrayList<String>();
accessPointUpdaters
.add("org.waterforpeople.mapping.analytics.AccessPointUpdater");
summarizers.put("AccessPointChange", accessPointUpdaters);
List<String> accessPointSummaryUpdaters = new ArrayList<String>();
accessPointSummaryUpdaters
.add("org.waterforpeople.mapping.analytics.AccessPointStatusUpdater");
accessPointSummaryUpdaters
.add("org.waterforpeople.mapping.analytics.CommunityLocationSummarizer");
summarizers.put("AccessPointSummaryChange", accessPointSummaryUpdaters);
List<String> deviceQueueUpdaters = new ArrayList<String>();
deviceQueueUpdaters.add("com.gallatinsystems.device.DeviceSurveyJobQueueUpdater");
summarizers.put("DeviceSurveyJobQueueChange", deviceQueueUpdaters);
}
}