package com.ximple.eofms.jobs.context.postgis; import java.io.IOException; import java.sql.Connection; import org.geotools.data.DataStore; import org.geotools.data.Transaction; import org.geotools.data.SchemaNotFoundException; import org.geotools.data.postgis.PostgisDataStore; import org.geotools.feature.FeatureType; import com.ximple.eofms.jobs.context.AbstractOracleJobContext; public abstract class AbstractOracleToPostGISJobContext extends AbstractOracleJobContext { protected PostgisDataStore targetDataStore; public AbstractOracleToPostGISJobContext(String dataPath, DataStore targetDataStore) { if ((targetDataStore != null) && (targetDataStore instanceof PostgisDataStore)) { this.targetDataStore = (PostgisDataStore) targetDataStore; } else { getLogger().info("targetDataStore has wrong."); } setDataPath(dataPath); } public PostgisDataStore getTargetDataStore() { return targetDataStore; } public void setTargetDataStore(PostgisDataStore targetDataStore) { this.targetDataStore = targetDataStore; } public Connection getConnection() { if (targetDataStore != null) { try { return targetDataStore.getConnection(Transaction.AUTO_COMMIT); } catch (IOException e) { getLogger().warn(e.getMessage(), e); } } return null; } protected boolean isExistFeature(FeatureType featureType) { try { FeatureType existFeatureType = targetDataStore.getSchema(featureType.getTypeName()); return existFeatureType != null && existFeatureType.equals(featureType); } catch (SchemaNotFoundException e) { return false; } catch (IOException e) { getLogger().info(e.getMessage(), e); return false; } } }