/* CSVColumnMap.java - created: Mar 29 2008
*
* This file is part of the project "Crop Planning Software". For more
* information:
* website: https://github.com/claytonrcarter/cropplanning
* email: cropplanning@gmail.com
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package CPS.CSV;
import CPS.Module.CPSDataModelConstants;
import CPS.Module.CPSModule;
import java.util.ArrayList;
public class CSVColumnMap {
private ArrayList<ColumnStruct> plantingColumnMap;
private ArrayList<ColumnStruct> cropColumnMap;
public CSVColumnMap() {
buildPlantingColumnMap();
buildCropColumnMap();
}
protected String getCropColumnNameForProperty( int prop ) {
return getColNameForProperty( prop, cropColumnMap );
}
protected String getPlantingColumnNameForProperty( int prop ) {
return getColNameForProperty( prop, plantingColumnMap );
}
private String getColNameForProperty( int prop, ArrayList<ColumnStruct> m ) {
for ( ColumnStruct cs : m ) {
if ( cs.propertyNum == prop )
return cs.columnName;
}
CPSModule.debug( "CSVColumnMap", "Error:NoSuchProperty (" + prop + ")" );
return "Error:NoSuchProperty (" + prop + ")";
}
protected int getCropPropertyNumFromName( String colName ) {
return getPropertyNumForColumn( colName, cropColumnMap );
}
protected int getPlantingPropertyNumFromName( String colName ) {
return getPropertyNumForColumn( colName, plantingColumnMap );
}
private int getPropertyNumForColumn( String colName, ArrayList<ColumnStruct> m ) {
for ( ColumnStruct cs : m ) {
if ( colName.equalsIgnoreCase( cs.columnName ))
{
return cs.propertyNum;
}
}
return 0;
}
private void buildCropColumnMap() {
ArrayList<ColumnStruct> l = new ArrayList<ColumnStruct>();
// l.add( new ColumnStruct( colName, propNum));
l.add( new ColumnStruct( "id", CPSDataModelConstants.PROP_CROP_ID));
l.add( new ColumnStruct( "crop_name", CPSDataModelConstants.PROP_CROP_NAME));
l.add( new ColumnStruct( "var_name", CPSDataModelConstants.PROP_VAR_NAME));
l.add( new ColumnStruct( "bot_name", CPSDataModelConstants.PROP_BOT_NAME));
l.add( new ColumnStruct( "description", CPSDataModelConstants.PROP_CROP_DESC));
l.add( new ColumnStruct( "keywords", CPSDataModelConstants.PROP_KEYWORDS));
l.add( new ColumnStruct( "other_req", CPSDataModelConstants.PROP_OTHER_REQ));
l.add( new ColumnStruct( "notes", CPSDataModelConstants.PROP_NOTES));
l.add( new ColumnStruct( "maturity", CPSDataModelConstants.PROP_MATURITY));
l.add( new ColumnStruct( "time_to_tp", CPSDataModelConstants.PROP_TIME_TO_TP));
l.add( new ColumnStruct( "frost_hardy", CPSDataModelConstants.PROP_FROST_HARDY));
l.add( new ColumnStruct( "direct_seed", CPSDataModelConstants.PROP_DIRECT_SEED));
l.add( new ColumnStruct( "rows_p_bed", CPSDataModelConstants.PROP_ROWS_P_BED));
l.add( new ColumnStruct( "space_inrow", CPSDataModelConstants.PROP_SPACE_INROW));
l.add( new ColumnStruct( "space_betrow", CPSDataModelConstants.PROP_SPACE_BETROW));
l.add( new ColumnStruct( "similar_to", CPSDataModelConstants.PROP_SIMILAR));
l.add( new ColumnStruct( "flat_size", CPSDataModelConstants.PROP_FLAT_SIZE));
l.add( new ColumnStruct( "planter", CPSDataModelConstants.PROP_PLANTER));
// l.add( new ColumnStruct( "planter_setting",CPSDataModelConstants.PROP_PLANTER_SETTING));
l.add( new ColumnStruct( "yield_p_foot", CPSDataModelConstants.PROP_YIELD_P_FOOT));
l.add( new ColumnStruct( "yield_num_weeks",CPSDataModelConstants.PROP_YIELD_NUM_WEEKS));
l.add( new ColumnStruct( "yield_p_week", CPSDataModelConstants.PROP_YIELD_P_WEEK));
l.add( new ColumnStruct( "crop_unit", CPSDataModelConstants.PROP_CROP_UNIT));
l.add( new ColumnStruct( "crop_unit_value",CPSDataModelConstants.PROP_CROP_UNIT_VALUE));
l.add( new ColumnStruct( "mat_adjust", CPSDataModelConstants.PROP_MAT_ADJUST));
l.add( new ColumnStruct( "fam_name", CPSDataModelConstants.PROP_FAM_NAME));
l.add( new ColumnStruct( "groups", CPSDataModelConstants.PROP_GROUPS));
cropColumnMap = l;
}
private void buildPlantingColumnMap() {
ArrayList<ColumnStruct> l = new ArrayList<ColumnStruct>();
// l.add( new ColumnStruct( colName, propNum,
l.add( new ColumnStruct( "id", CPSDataModelConstants.PROP_PLANTING_ID));
l.add( new ColumnStruct( "crop_name", CPSDataModelConstants.PROP_CROP_NAME));
l.add( new ColumnStruct( "var_name", CPSDataModelConstants.PROP_VAR_NAME));
l.add( new ColumnStruct( "groups", CPSDataModelConstants.PROP_GROUPS));
l.add( new ColumnStruct( "location", CPSDataModelConstants.PROP_LOCATION));
l.add( new ColumnStruct( "keywords", CPSDataModelConstants.PROP_KEYWORDS));
l.add( new ColumnStruct( "other_req", CPSDataModelConstants.PROP_OTHER_REQ));
l.add( new ColumnStruct( "notes", CPSDataModelConstants.PROP_NOTES));
l.add( new ColumnStruct( "maturity", CPSDataModelConstants.PROP_MATURITY));
l.add( new ColumnStruct( "mat_adjust", CPSDataModelConstants.PROP_MAT_ADJUST));
l.add( new ColumnStruct( "planting_adjust", CPSDataModelConstants.PROP_PLANTING_ADJUST));
l.add( new ColumnStruct( "direct_seed", CPSDataModelConstants.PROP_DIRECT_SEED));
l.add( new ColumnStruct( "frost_hardy", CPSDataModelConstants.PROP_FROST_HARDY));
l.add( new ColumnStruct( "time_to_tp", CPSDataModelConstants.PROP_TIME_TO_TP));
// l.add( new ColumnStruct( "misc_adjust", CPSDataModelConstants.PROP_MISC_ADJUST));
l.add( new ColumnStruct( "status", CPSDataModelConstants.PROP_STATUS));
l.add( new ColumnStruct( "date_plant", CPSDataModelConstants.PROP_DATE_PLANT));
l.add( new ColumnStruct( "done_plant", CPSDataModelConstants.PROP_DONE_PLANTING));
l.add( new ColumnStruct( "date_tp", CPSDataModelConstants.PROP_DATE_TP));
l.add( new ColumnStruct( "done_tp", CPSDataModelConstants.PROP_DONE_TP));
l.add( new ColumnStruct( "date_harvest", CPSDataModelConstants.PROP_DATE_HARVEST));
l.add( new ColumnStruct( "done_harvest", CPSDataModelConstants.PROP_DONE_HARVEST));
l.add( new ColumnStruct( "beds_to_plant", CPSDataModelConstants.PROP_BEDS_PLANT));
l.add( new ColumnStruct( "rows_p_bed", CPSDataModelConstants.PROP_ROWS_P_BED));
l.add( new ColumnStruct( "plants_needed", CPSDataModelConstants.PROP_PLANTS_NEEDED));
l.add( new ColumnStruct( "plants_to_start", CPSDataModelConstants.PROP_PLANTS_START));
l.add( new ColumnStruct( "rowft_to_plant", CPSDataModelConstants.PROP_ROWFT_PLANT));
l.add( new ColumnStruct( "inrow_space", CPSDataModelConstants.PROP_SPACE_BETROW));
l.add( new ColumnStruct( "row_space", CPSDataModelConstants.PROP_SPACE_INROW));
l.add( new ColumnStruct( "flat_size", CPSDataModelConstants.PROP_FLAT_SIZE));
l.add( new ColumnStruct( "flats_needed", CPSDataModelConstants.PROP_FLATS_NEEDED));
l.add( new ColumnStruct( "planter", CPSDataModelConstants.PROP_PLANTER));
// l.add( new ColumnStruct( "planter_setting", CPSDataModelConstants.PROP_PLANTER_SETTING));
l.add( new ColumnStruct( "yield_p_foot", CPSDataModelConstants.PROP_YIELD_P_FOOT));
l.add( new ColumnStruct( "total_yield", CPSDataModelConstants.PROP_TOTAL_YIELD));
l.add( new ColumnStruct( "yield_num_weeks", CPSDataModelConstants.PROP_YIELD_NUM_WEEKS));
l.add( new ColumnStruct( "yield_p_week", CPSDataModelConstants.PROP_YIELD_P_WEEK));
l.add( new ColumnStruct( "crop_unit", CPSDataModelConstants.PROP_CROP_UNIT));
l.add( new ColumnStruct( "crop_unit_value", CPSDataModelConstants.PROP_CROP_UNIT_VALUE));
l.add( new ColumnStruct( "custom1", CPSDataModelConstants.PROP_CUSTOM1));
l.add( new ColumnStruct( "custom2", CPSDataModelConstants.PROP_CUSTOM2));
l.add( new ColumnStruct( "custom3", CPSDataModelConstants.PROP_CUSTOM3));
l.add( new ColumnStruct( "custom4", CPSDataModelConstants.PROP_CUSTOM4));
l.add( new ColumnStruct( "custom5", CPSDataModelConstants.PROP_CUSTOM5));
plantingColumnMap = l;
}
public class ColumnStruct {
public String columnName;
public int propertyNum;
public ColumnStruct( String colName,int propNum ) {
this.columnName = colName;
this.propertyNum = propNum;
}
}
}