/*
* 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 com.gallatinsystems.framework.analytics.summarization;
/**
* Classes that implement this interface will perform some sort of data summarization and (most
* likely) persist the result.
*
* @author Christopher Fagiani
*/
public interface DataSummarizer {
public static final int BATCH_SIZE = 10;
/**
* perform and store the summarization.
*
* @param key
* @param type
* @param value - payload
* @param offset - integer offset used for batching processing. This offset is used for batching
* at the input object level.
* @param cursor - used for batching based on results from the data store
* @return - true if summarization completed, false if not
*/
public boolean performSummarization(String key, String type, String value,
Integer offset, String cursor);
/**
* returns the current cursor string, if any
*
* @return
*/
public String getCursor();
}