package com.ximple.eofms.jobs; import org.geotools.feature.Feature; import org.geotools.feature.FeatureType; import org.geotools.feature.IllegalAttributeException; import org.geotools.feature.SchemaException; import com.ximple.io.dgn7.Element; import com.ximple.io.dgn7.FrammeAttributeData; public class TypeIdHandlerStrategy extends AbstractFLinkageHandlerStrategy { private String name; private int tid; private CreateFeatureTypeStrategy createStrategy; public TypeIdHandlerStrategy(String fname, CreateFeatureTypeStrategy createStrategy, int tid) { this.name = fname; this.tid = tid; this.createStrategy = createStrategy; } public boolean isDispatchable(Element element) { FrammeAttributeData featureLinkage = getFeatureLinkage(element); return featureLinkage != null && tid == featureLinkage.getFsc(); } public Feature execute(Element element) { try { FeatureType ftype = createStrategy.createFeatureElement(name); return createStrategy.createFeature(ftype, element); } catch (SchemaException e) { logger.error(e.getMessage(), e); } catch (IllegalAttributeException e) { logger.error(e.getMessage(), e); } return null; } }