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 TypeCompLevelIdHandlerStrategy extends AbstractFLinkageHandlerStrategy { private String name; private int tid; private int cid; private int lid; private CreateFeatureTypeStrategy createStrategy; public TypeCompLevelIdHandlerStrategy(String fname, CreateFeatureTypeStrategy createStrategy, int tid, int compid, int level) { this.name = fname; this.tid = tid; this.cid = compid; this.lid = level; this.createStrategy = createStrategy; } public boolean isDispatchable(Element element) { FrammeAttributeData featureLinkage = getFeatureLinkage(element); return featureLinkage != null && tid == featureLinkage.getFsc() && (cid == featureLinkage.getComponentID()) && (lid == element.getLevelIndex()); } 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; } }