AirDataInterface.java [src/AirData] Revision: default  Date:
package AirData;

import java.util.ArrayList;

/**
* Last Updated: 20-April-2017
* @author Tyler Wible
* @since 20-April-2017
*/
public interface AirDataInterface {

    /**
     * Extract annual air deposition data from the current database
     * @param stationID  the station ID for which water quality data is desired
     * @param beginDate  the begin date of desired data (yyyy-MM-dd)
     * @param endDate  the end date of desired data (yyyy-MM-dd)
     * @param wqTest  the chemical deposition data desired (Ca, Mg, K, Na, NH4, NO3, Cl, SO4, Field_pH, Field_Conductivity, Lab_pH, Lab_Conductivity)
     * @return ArrayList of strings of the raw data
     * @throws AirData.AirDataException
     */
    public ArrayList<String> extractAnnualDepositionData_raw(String stationID, String beginDate, String endDate, String wqTest) throws AirDataException;
    
    /**
     * Extract annual air deposition data from the current database
     * @param stationID  the station ID for which water quality data is desired
     * @param beginDate  the begin date of desired data (yyyy-MM-dd)
     * @param endDate  the end date of desired data (yyyy-MM-dd)
     * @param wqTest  the chemical deposition data desired (Ca, Mg, K, Na, NH4, NO3, Cl, SO4, Field_pH, Field_Conductivity, Lab_pH, Lab_Conductivity)
     * @return String[][] array of paired dates and deposition
     * Dates (yyyy-MM-dd format) are in the first column [i][0] and water quality data are in the second [i][1]
     * @throws AirData.AirDataException
     */
    public String[][] extractAnnualDepositionData_formatted(String stationID, String beginDate, String endDate, String wqTest) throws AirDataException;
    
    /**
     * Extract monthly air deposition data from the current database
     * @param stationID  the station ID for which water quality data is desired
     * @param beginDate  the begin date of desired data (yyyy-MM-dd)
     * @param endDate  the end date of desired data (yyyy-MM-dd)
     * @param wqTest  the chemical deposition data desired (Ca, Mg, K, Na, NH4, NO3, Cl, SO4, Field_pH, Field_Conductivity, Lab_pH, Lab_Conductivity)
     * @return ArrayList of strings of the raw data
     * @throws AirData.AirDataException
     */
    public ArrayList<String> extractMonthlyDepositionData_raw(String stationID, String beginDate, String endDate, String wqTest) throws AirDataException;
    
    /**
     * Extract monthly air deposition data from the current database
     * @param stationID  the station ID for which water quality data is desired
     * @param beginDate  the begin date of desired data (yyyy-MM-dd)
     * @param endDate  the end date of desired data (yyyy-MM-dd)
     * @param wqTest  the chemical deposition data desired (Ca, Mg, K, Na, NH4, NO3, Cl, SO4, Field_pH, Field_Conductivity, Lab_pH, Lab_Conductivity)
     * @return String[][] array of paired dates and deposition
     * Dates (yyyy-MM-dd format) are in the first column [i][0] and water quality data are in the second [i][1]
     * @throws AirData.AirDataException
     */
    public String[][] extractMonthlyDepositionData_formatted(String stationID, String beginDate, String endDate, String wqTest) throws AirDataException;
    
    /**
     * Extract weekly air deposition data from the current database
     * @param stationID  the station ID for which water quality data is desired
     * @param beginDate  the begin date of desired data (yyyy-MM-dd)
     * @param endDate  the end date of desired data (yyyy-MM-dd)
     * @param wqTest  the chemical deposition data desired (Ca, Mg, K, Na, NH4, NO3, Cl, SO4, Field_pH, Field_Conductivity, Lab_pH, Lab_Conductivity)
     * @return ArrayList of strings of the raw data
     * @throws AirData.AirDataException
     */
    public ArrayList<String> extractWeeklyDepositionData_raw(String stationID, String beginDate, String endDate, String wqTest) throws AirDataException;
    
    /**
     * Extract weekly air deposition data from the current database
     * @param stationID  the station ID for which water quality data is desired
     * @param beginDate  the begin date of desired data (yyyy-MM-dd)
     * @param endDate  the end date of desired data (yyyy-MM-dd)
     * @param wqTest  the chemical deposition data desired (Ca, Mg, K, Na, NH4, NO3, Cl, SO4, Field_pH, Field_Conductivity, Lab_pH, Lab_Conductivity)
     * @return String[][] array of paired dates and deposition
     * Dates (yyyy-MM-dd format) are in the first column [i][0] and water quality data are in the second [i][1]
     * @throws AirData.AirDataException
     */
    public String[][] extractWeeklyDepositionData_formatted(String stationID, String beginDate, String endDate, String wqTest) throws AirDataException;
}