/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package usda.weru.gis.data;



import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.text.ParseException;
import org.geotools.data.FeatureSource;
import org.opengis.feature.Feature;
import org.opengis.feature.Property;

/**
 *
 * @author Joseph A. Levin <joelevin@weru.ksu.edu>
 */
public class CropManagementZoneLookup extends AbstractLookup<CropManagementZone>{
    private static final String COLUMN_CMZ = "CMZ";
    private final NumberFormat c_format = new DecimalFormat("0.###");



    @Override
    protected Class<CropManagementZone> getSupportedClass() {
        return CropManagementZone.class;
    }

    @Override
    protected boolean supports(FeatureSource source) {
       return hasColumn(source, COLUMN_CMZ, String.class);
    }

    

    @Override
    protected CropManagementZone create(FeatureSource source, Feature feature) {
        try{            
            String cmzString = getValue(feature, COLUMN_CMZ, String.class);
            
            cmzString = cmzString != null ? cmzString.toUpperCase().replace("CMZ", "").trim() : null;
            if(cmzString != null && cmzString.length() > 0){
                float cmzFloat = c_format.parse(cmzString).floatValue();
                CropManagementZone cmz = new CropManagementZone(cmzFloat);
                return cmz;
            }
        }
        catch(ParseException pe){
            pe.printStackTrace();
            return null;
        }
        catch(ClassCastException cce){
            cce.printStackTrace();
            return null;
        }

        return null;
    }








}
