package usda.weru.mcrew;

import org.codehaus.jettison.json.JSONArray;
import org.codehaus.jettison.json.JSONException;
import org.codehaus.jettison.json.JSONObject;

/**
 * Abbreviation for WEPPJSONConstants
 * @author jonathanhornbaker
 */
public class WJSConstants
{
    public static final String HEAD = "lmod_file";
    
    public static final String FILE_NAME = "name";
    public static final String KEY_NUMBER = "key";
    public static final String FILE_TYPE = "type";
    public static final String FILE_VERSION = "version";
    public static final String FILE_META = "metadata";
    public static final String DATA_HEAD = "params";
    
    public static final String DATA_INDV = "param";
    public static final String DATA_NAME = "name";
    public static final String DATA_TYPE = "type";
    public static final String DATA_UNITS = "units";
    public static final String DATA_DATA = "data";
    public static final String DATA_FILE_TYPE = "file_type";
    public static final String DATA_DIM = "dim";
    
    public static final String DATA_TYPE_FLOAT = "Flt";
    public static final String DATA_TYPE_OBJECT = "ObR";
    public static final String DATA_TYPE_INT = "Int";
    public static final String DATA_TYPE_DATE = "Dte";
    
    public static final String FILE_TYPE_CROP = "VEGETATION";
    public static final String FILE_TYPE_DECOMP = "RESIDUE";
    public static final String FILE_TYPE_OP = "OPERATION";
    
    public static final String CROP_COL_KEY = "VEG_PTR";
    public static final String RESIDUE_AMOUNT = "RES_ADDED";
    public static final String OP_COL_KEY = "OP_PTR";
    public static final String DATE_COL_KEY = "OP_DATE";
    public static final String RES_COL_KEY = "EXT_RES_PTR";
    public static final String ROT_YEAR_COL_KEY = "DURATION_IN_MAN";
    
    public static JSONObject getColumn(JSONArray dataColumns, String columnName)
    {
        try
        {
            switch(columnName)
            {
                case CROP_COL_KEY:
                    if(dataColumns.getJSONObject(6).getString(WJSConstants.DATA_NAME).equals(columnName))
                    {
                        return dataColumns.getJSONObject(6);
                    }
                    break;
                case RESIDUE_AMOUNT:
                    if(dataColumns.getJSONObject(5).getString(WJSConstants.DATA_NAME).equals(columnName))
                    {
                        return dataColumns.getJSONObject(5);
                    }
                    break;
                case OP_COL_KEY:
                    if(dataColumns.getJSONObject(4).getString(WJSConstants.DATA_NAME).equals(columnName))
                    {
                        return dataColumns.getJSONObject(4);
                    }
                    break;
                case DATE_COL_KEY:
                    if(dataColumns.getJSONObject(3).getString(WJSConstants.DATA_NAME).equals(columnName))
                    {
                        return dataColumns.getJSONObject(3);
                    }
                    break;
                case RES_COL_KEY:
                    if(dataColumns.getJSONObject(1).getString(WJSConstants.DATA_NAME).equals(columnName))
                    {
                        return dataColumns.getJSONObject(1);
                    }
                    break;
                case ROT_YEAR_COL_KEY:
                    if(dataColumns.getJSONObject(0).getString(WJSConstants.DATA_NAME).equals(columnName))
                    {
                        return dataColumns.getJSONObject(0);
                    }
                    break;
            }
            //Best guess didn't work.  Search for it.
            for(int index = 0; index < dataColumns.length(); index ++)
            {
                if(dataColumns.getJSONObject(index).getString(WJSConstants.DATA_NAME).equals(columnName))
                {
                    return dataColumns.getJSONObject(index);
                }
            }
        }
        catch(JSONException jse){}
        return null;
    }
    
}
