From 1c3b0bcfb1df3558d72f2dc4d190a4952d3d3119 Mon Sep 17 00:00:00 2001 From: ?? ? <ulysseskao@ximple.com.tw> Date: Fri, 27 Aug 2010 13:22:03 +0800 Subject: [PATCH] fix index and landbase --- xdgnjobs/ximple-jobcarrier/src/main/resources/quartz_jobs.xml | 6 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/edbgeo/IndexDgnConvertEdbGeoJobContext.java | 69 +++++++--------- xdgnjobs/pom.xml | 6 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/edbgeo/GeneralDgnConvertEdbGeoJobContext.java | 3 xdgnjobs/ximple-jobcarrier/src/main/resources/quartz.properties | 3 xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/TextElement.java | 24 ++--- xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/GeneralDgnConvertPostGISJobContext.java | 29 ++++--- xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/IndexDgnConvertPostGISJobContext.java | 76 +++++++++---------- xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/AbstractDgnToPostGISJobContext.java | 8 + 9 files changed, 107 insertions(+), 117 deletions(-) diff --git a/xdgnjobs/pom.xml b/xdgnjobs/pom.xml index ed9b584..7cfa6af 100644 --- a/xdgnjobs/pom.xml +++ b/xdgnjobs/pom.xml @@ -19,7 +19,7 @@ <src.output>${basedir}/target</src.output> <java5>1.5</java5> <xdgnio.version>1.2.0</xdgnio.version> - <gt2.version>2.6.4</gt2.version> + <gt2.version>2.6.5</gt2.version> <failIfNoTests>false</failIfNoTests> <stress.skip.pattern></stress.skip.pattern> <online.skip.pattern></online.skip.pattern> @@ -305,7 +305,7 @@ <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> - <version>1.2.134</version> + <version>1.2.141</version> </dependency> <!-- EnterpriseDB --> @@ -319,7 +319,7 @@ <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> - <version>1.8.0</version> + <version>1.8.3</version> </dependency> <dependency> <groupId>org.awl</groupId> diff --git a/xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/TextElement.java b/xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/TextElement.java index a86b701..5a42da0 100644 --- a/xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/TextElement.java +++ b/xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/TextElement.java @@ -1,20 +1,18 @@ package com.ximple.io.dgn7; +import com.vividsolutions.jts.geom.Coordinate; +import com.vividsolutions.jts.geom.CoordinateList; +import com.vividsolutions.jts.geom.Geometry; +import com.vividsolutions.jts.geom.GeometryFactory; +import com.ximple.util.DgnUtility; +import org.apache.log4j.Logger; + import java.awt.geom.AffineTransform; import java.nio.ByteBuffer; import java.nio.CharBuffer; import java.nio.charset.CharacterCodingException; import java.nio.charset.Charset; import java.nio.charset.CharsetDecoder; - -import org.apache.log4j.Logger; - -import com.vividsolutions.jts.geom.Coordinate; -import com.vividsolutions.jts.geom.CoordinateList; -import com.vividsolutions.jts.geom.Geometry; -import com.vividsolutions.jts.geom.GeometryFactory; - -import com.ximple.util.DgnUtility; /** * TextElement @@ -155,9 +153,8 @@ return ""; } - if(30+num/2 > raw.length) - { - logger.warn("getTextLength() too long." ); + if (30 + num / 2 > raw.length) { + logger.warn("getTextLength() too long."); return ""; } @@ -175,8 +172,7 @@ } } else { byte[] strRaw = new byte[num * 2]; - for (int i = 0; i < num; i++) - { + for (int i = 0; i < num; i++) { short charValue = raw[i + 31]; byte hi = (byte) (charValue >>> 8); byte lo = (byte) charValue; diff --git a/xdgnjobs/ximple-jobcarrier/src/main/resources/quartz.properties b/xdgnjobs/ximple-jobcarrier/src/main/resources/quartz.properties index f91a64f..ca08623 100644 --- a/xdgnjobs/ximple-jobcarrier/src/main/resources/quartz.properties +++ b/xdgnjobs/ximple-jobcarrier/src/main/resources/quartz.properties @@ -25,7 +25,8 @@ #org.quartz.plugin.jobInitializer.class = org.quartz.plugins.xml.JobInitializationPlugin org.quartz.plugin.jobInitializer.class = org.quartz.plugins.xml.XMLSchedulingDataProcessorPlugin -org.quartz.plugin.jobInitializer.fileNames = quartz_jobs_edb.xml +#org.quartz.plugin.jobInitializer.fileNames = quartz_jobs_edb.xml +org.quartz.plugin.jobInitializer.fileNames = quartz_jobs.xml #org.quartz.plugin.jobInitializer.overWriteExistingJobs = true org.quartz.plugin.jobInitializer.failOnFileNotFound = true diff --git a/xdgnjobs/ximple-jobcarrier/src/main/resources/quartz_jobs.xml b/xdgnjobs/ximple-jobcarrier/src/main/resources/quartz_jobs.xml index dc6fa7c..33dc2bb 100644 --- a/xdgnjobs/ximple-jobcarrier/src/main/resources/quartz_jobs.xml +++ b/xdgnjobs/ximple-jobcarrier/src/main/resources/quartz_jobs.xml @@ -32,7 +32,7 @@ <job-data-map> <entry> <key>JOBDATA_DIR</key> - <value>C:\Usr\Projects\XDCAD\nstpcjobs</value> + <value>C:\Usr\Projects\XDCAD\nstpcjobs\jobdata</value> </entry> <entry> <key>PGHOST</key> @@ -88,7 +88,7 @@ </entry> <entry> <key>CONVERTFILE</key> - <value>false</value> + <value>true</value> </entry> <entry> <key>CONVERTELEMIN</key> @@ -116,7 +116,7 @@ </entry> <entry> <key>COPYCONNECTIVITYMODE</key> - <value>false</value> + <value>true</value> </entry> <entry> <key>PROFILEMODE</key> diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/edbgeo/GeneralDgnConvertEdbGeoJobContext.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/edbgeo/GeneralDgnConvertEdbGeoJobContext.java index 3fa04e7..71c63e0 100644 --- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/edbgeo/GeneralDgnConvertEdbGeoJobContext.java +++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/edbgeo/GeneralDgnConvertEdbGeoJobContext.java @@ -57,7 +57,6 @@ private TreeMap<String, SimpleFeatureType> featureTypes = new TreeMap<String, SimpleFeatureType>(); - private GeometryConverterDecorator convertDecorator = null; private String featureBaseName = null; private boolean dropTableMode = true; @@ -272,6 +271,8 @@ public SimpleFeature createFeature(SimpleFeatureType featureType, Element element) throws IllegalAttributeException { DefaultColorTable colorTable = (DefaultColorTable) DefaultColorTable.getInstance(); + GeometryConverterDecorator convertDecorator = FeatureTypeBuilderUtil.lookupDefaultGeometryConverter(); + if (element instanceof TextElement) { TextElement textElement = (TextElement) element; convertDecorator.setConverter(textElement); diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/edbgeo/IndexDgnConvertEdbGeoJobContext.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/edbgeo/IndexDgnConvertEdbGeoJobContext.java index 441b340..8b5b1da 100644 --- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/edbgeo/IndexDgnConvertEdbGeoJobContext.java +++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/edbgeo/IndexDgnConvertEdbGeoJobContext.java @@ -55,11 +55,7 @@ private HashMap<SimpleFeatureType, ArrayList<SimpleFeature>> txFeaturesContext = new HashMap<SimpleFeatureType, ArrayList<SimpleFeature>>(); - private SimpleFeatureTypeBuilder typeBuilderPnt = null; - private SimpleFeatureTypeBuilder typeBuilderRect = null; - private SimpleFeatureTypeBuilder typeBuilderSmallRect = null; - - private SimpleFeatureType featureType = null; + private SimpleFeatureType featureType1 = null; private SimpleFeatureType featureType2 = null; private SimpleFeatureType featureType3 = null; @@ -303,17 +299,18 @@ */ } - public SimpleFeatureType createFeatureElement(String featureName) throws SchemaException { - if (typeBuilderRect == null) { + public void createFeatureElement(String featureName) throws SchemaException { + if (featureType1 == null) { Connection conn = null; - typeBuilderRect = FeatureTypeBuilderUtil.createNormalIndexFeatureTypeBuilder(featureName); - if (isExistFeature(typeBuilderRect.buildFeatureType())) { + SimpleFeatureTypeBuilder typeBuilder1 = FeatureTypeBuilderUtil.createNormalIndexFeatureTypeBuilder(featureName); + featureType1 = typeBuilder1.buildFeatureType(); + if (isExistFeature(featureType1)) { try { conn = getConnection(); if (dropTableMode) { try { dropGeometryColumn(conn, featureName, - ((FeatureTypeImpl)typeBuilderRect.buildFeatureType()).getGeometryDescriptor().getLocalName()); + (featureType1).getGeometryDescriptor().getLocalName()); } catch (PSQLException e) { logger.debug(e.getMessage(), e); } @@ -322,8 +319,7 @@ } catch (PSQLException e) { logger.debug(e.getMessage(), e); } - ArrayList<String> schemaTexts = createNewSchemaTexts(conn, - typeBuilderRect.buildFeatureType()); + ArrayList<String> schemaTexts = createNewSchemaTexts(conn, featureType1); for (String stmtText : schemaTexts) { Statement stmt = conn.createStatement(); stmt.execute(stmtText); @@ -343,8 +339,7 @@ } else { try { conn = getConnection(); - ArrayList<String> schemaTexts = createNewSchemaTexts(conn, - typeBuilderRect.buildFeatureType()); + ArrayList<String> schemaTexts = createNewSchemaTexts(conn, featureType1); for (String stmtText : schemaTexts) { Statement stmt = conn.createStatement(); stmt.execute(stmtText); @@ -360,23 +355,22 @@ } } } - return typeBuilderRect.buildFeatureType(); } - public SimpleFeatureType createFeatureElement2(String featureName) throws SchemaException { - if (typeBuilderPnt == null) { + public void createFeatureElement2(String featureName) throws SchemaException { + if (featureType2 == null) { Connection conn = null; - typeBuilderPnt = FeatureTypeBuilderUtil.createNormalIndexTextFeatureTypeBuilder(featureName); - if (isExistFeature(typeBuilderPnt.buildFeatureType())) { + SimpleFeatureTypeBuilder typeBuilder = FeatureTypeBuilderUtil.createNormalIndexTextFeatureTypeBuilder(featureName); + featureType2 = typeBuilder.buildFeatureType(); + if (isExistFeature(featureType2)) { try { conn = getConnection(); if (dropTableMode) { dropGeometryColumn(conn, featureName, - ((FeatureTypeImpl)typeBuilderPnt.buildFeatureType()).getGeometryDescriptor().getLocalName()); + (featureType2).getGeometryDescriptor().getLocalName()); dropTable(conn, featureName); - ArrayList<String> schemaTexts = createNewSchemaTexts(conn, - typeBuilderPnt.buildFeatureType()); + ArrayList<String> schemaTexts = createNewSchemaTexts(conn, featureType2); for (String stmtText : schemaTexts) { Statement stmt = conn.createStatement(); stmt.execute(stmtText); @@ -396,8 +390,7 @@ } else { try { conn = getConnection(); - ArrayList<String> schemaTexts = createNewSchemaTexts(conn, - typeBuilderPnt.buildFeatureType()); + ArrayList<String> schemaTexts = createNewSchemaTexts(conn, featureType2); for (String stmtText : schemaTexts) { Statement stmt = conn.createStatement(); stmt.execute(stmtText); @@ -413,20 +406,20 @@ } } } - return typeBuilderPnt.buildFeatureType(); } - public SimpleFeatureType createFeatureElement3(String featureName) throws SchemaException { - if (typeBuilderSmallRect == null) { + public void createFeatureElement3(String featureName) throws SchemaException { + if (featureType3 == null) { Connection conn = null; - typeBuilderSmallRect = FeatureTypeBuilderUtil.createNormalIndexFeatureTypeBuilder(featureName); - if (isExistFeature(typeBuilderSmallRect.buildFeatureType())) { + SimpleFeatureTypeBuilder typeBuilder = FeatureTypeBuilderUtil.createNormalIndexFeatureTypeBuilder(featureName); + featureType3 = typeBuilder.buildFeatureType(); + if (isExistFeature(featureType3)) { try { conn = getConnection(); if (dropTableMode) { try { dropGeometryColumn(conn, featureName, - ((FeatureTypeImpl)typeBuilderSmallRect.buildFeatureType()).getGeometryDescriptor().getLocalName()); + (featureType3).getGeometryDescriptor().getLocalName()); } catch (PSQLException e) { logger.debug(e.getMessage(), e); } @@ -435,7 +428,7 @@ } catch (PSQLException e) { logger.debug(e.getMessage(), e); } - ArrayList<String> schemaTexts = createNewSchemaTexts(conn, typeBuilderSmallRect.buildFeatureType()); + ArrayList<String> schemaTexts = createNewSchemaTexts(conn, featureType3); for (String stmtText : schemaTexts) { Statement stmt = conn.createStatement(); stmt.execute(stmtText); @@ -455,8 +448,7 @@ } else { try { conn = getConnection(); - ArrayList<String> schemaTexts = createNewSchemaTexts(conn, - typeBuilderSmallRect.buildFeatureType()); + ArrayList<String> schemaTexts = createNewSchemaTexts(conn, featureType3); for (String stmtText : schemaTexts) { Statement stmt = conn.createStatement(); stmt.execute(stmtText); @@ -472,7 +464,6 @@ } } } - return typeBuilderSmallRect.buildFeatureType(); } public SimpleFeature createFeature(SimpleFeatureType featureType, Element element) throws IllegalAttributeException { @@ -771,15 +762,15 @@ } private SimpleFeature createFeature(Element element) throws SchemaException, IllegalAttributeException { - if (featureType == null) { + if (featureType1 == null) { String dgnname = getFilename().toLowerCase(); int i = dgnname.lastIndexOf("."); if (i != -1) { dgnname = dgnname.substring(0, i); } - featureType = createFeatureElement(dgnname.toLowerCase()); + createFeatureElement(dgnname.toLowerCase()); } - return createFeature(featureType, element); + return createFeature(featureType1, element); } private SimpleFeature createFeature2(Element element) throws SchemaException, IllegalAttributeException { @@ -790,7 +781,7 @@ dgnname = dgnname.substring(0, i); } dgnname = dgnname + "_p"; - featureType2 = createFeatureElement2(dgnname.toLowerCase()); + createFeatureElement2(dgnname.toLowerCase()); } return createFeature2(featureType2, element); } @@ -803,7 +794,7 @@ dgnname = dgnname.substring(0, i); } dgnname = dgnname + "_s"; - featureType3 = createFeatureElement3(dgnname.toLowerCase()); + createFeatureElement3(dgnname.toLowerCase()); } return createFeature3(featureType3, element); } diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/AbstractDgnToPostGISJobContext.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/AbstractDgnToPostGISJobContext.java index 17aa358..2827b59 100644 --- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/AbstractDgnToPostGISJobContext.java +++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/AbstractDgnToPostGISJobContext.java @@ -399,9 +399,9 @@ for (AttributeDescriptor descriptor : descriptors) { String typeName; - typeName = CLASS_MAPPINGS.get(((AttributeType) descriptor.getType()).getBinding()); + typeName = CLASS_MAPPINGS.get(descriptor.getType().getBinding()); if (typeName == null) { - typeName = GEOM_CLASS_MAPPINGS.get(((AttributeType) descriptor.getType()).getBinding()); + typeName = GEOM_CLASS_MAPPINGS.get(descriptor.getType().getBinding()); if (typeName != null) continue; } @@ -630,9 +630,11 @@ for (int i = 0; i < descriptors.size(); i++) { if (descriptors.get(i) instanceof GeometryDescriptor) { + Geometry geom = (Geometry) attributes.get(i); + geom.setSRID(FeatureTypeBuilderUtil.getDefaultFeatureSRID()); pstmt.setBytes(i + 1, binaryWriter.writeBinary((Geometry) attributes.get(i))); } else { - Class<?> bindingType = ((AttributeType) descriptors.get(i).getType()).getBinding(); + Class<?> bindingType = descriptors.get(i).getType().getBinding(); if (bindingType.equals(Short.class)) { pstmt.setShort(i + 1, (Short) attributes.get(i)); } else if (bindingType.equals(Integer.class)) { diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/GeneralDgnConvertPostGISJobContext.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/GeneralDgnConvertPostGISJobContext.java index 0ad49bb..a2f3aae 100644 --- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/GeneralDgnConvertPostGISJobContext.java +++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/GeneralDgnConvertPostGISJobContext.java @@ -60,7 +60,6 @@ private TreeMap<String, SimpleFeatureType> featureTypes = new TreeMap<String, SimpleFeatureType>(); - private GeometryConverterDecorator convertDecorator = null; private String featureBaseName = null; private boolean dropTableMode = true; @@ -218,7 +217,7 @@ SimpleFeatureTypeBuilder typeBuilder = FeatureTypeBuilderUtil.createNormalPointFeatureTypeBuilder(featureName); SimpleFeatureType featureType = typeBuilder.buildFeatureType(); featureTypes.put(featureName, featureType); - clearFeatureData(typeBuilder); + clearFeatureData(featureName); } return featureTypes.get(featureName); } @@ -228,7 +227,7 @@ SimpleFeatureTypeBuilder typeBuilder = FeatureTypeBuilderUtil.createNormalPolygonFeatureTypeBuilder(featureName); SimpleFeatureType featureType = typeBuilder.buildFeatureType(); featureTypes.put(featureName, featureType); - clearFeatureData(typeBuilder); + clearFeatureData(featureName); } return featureTypes.get(featureName); } @@ -238,7 +237,7 @@ SimpleFeatureTypeBuilder typeBuilder = FeatureTypeBuilderUtil.createNormalLineFeatureTypeBuilder(featureName); SimpleFeatureType featureType = typeBuilder.buildFeatureType(); featureTypes.put(featureName, featureType); - clearFeatureData(typeBuilder); + clearFeatureData(featureName); } return featureTypes.get(featureName); } @@ -248,7 +247,7 @@ SimpleFeatureTypeBuilder typeBuilder = FeatureTypeBuilderUtil.createNormalMultiLineFeatureTypeBuilder(featureName); SimpleFeatureType featureType = typeBuilder.buildFeatureType(); featureTypes.put(featureName, featureType); - clearFeatureData(typeBuilder); + clearFeatureData(featureName); } return featureTypes.get(featureName); } @@ -258,7 +257,7 @@ SimpleFeatureTypeBuilder typeBuilder = FeatureTypeBuilderUtil.createNormalArcFeatureTypeBuilder(featureName); SimpleFeatureType featureType = typeBuilder.buildFeatureType(); featureTypes.put(featureName, featureType); - clearFeatureData(typeBuilder); + clearFeatureData(featureName); } return featureTypes.get(featureName); } @@ -268,13 +267,15 @@ SimpleFeatureTypeBuilder typeBuilder = FeatureTypeBuilderUtil.createNormalEllipseFeatureTypeBuilder(featureName); SimpleFeatureType featureType = typeBuilder.buildFeatureType(); featureTypes.put(featureName, featureType); - clearFeatureData(typeBuilder); + clearFeatureData(featureName); } return featureTypes.get(featureName); } public SimpleFeature createFeature(SimpleFeatureType featureType, Element element) throws IllegalAttributeException { DefaultColorTable colorTable = (DefaultColorTable) DefaultColorTable.getInstance(); + GeometryConverterDecorator convertDecorator = FeatureTypeBuilderUtil.lookupDefaultGeometryConverter(); + if (element instanceof TextElement) { TextElement textElement = (TextElement) element; convertDecorator.setConverter(textElement); @@ -521,20 +522,22 @@ this.dropTableMode = dropTableMode; } - protected void clearFeatureData(SimpleFeatureTypeBuilder typeBuilder) throws SchemaException { + protected void clearFeatureData(String featureTypeName) throws SchemaException { if (isProfileMode()) markUpdateTime(); - String featureName = typeBuilder.getName(); Connection conn = null; - if (isExistFeature(typeBuilder.buildFeatureType())) { + + SimpleFeatureType featureType = featureTypes.get(featureTypeName); + String featureName = featureType.getName().getLocalPart(); + if (isExistFeature(featureType)) { try { conn = getConnection(); if (dropTableMode) { dropGeometryColumn(conn, featureName, - ((FeatureTypeImpl)typeBuilder.buildFeatureType()).getGeometryDescriptor().getLocalName()); + (featureType).getGeometryDescriptor().getLocalName()); dropTable(conn, featureName); - ArrayList<String> schemaTexts = createNewSchemaTexts(conn, typeBuilder.buildFeatureType()); + ArrayList<String> schemaTexts = createNewSchemaTexts(conn, featureType); for (String stmtText : schemaTexts) { Statement stmt = conn.createStatement(); stmt.execute(stmtText); @@ -556,7 +559,7 @@ } else { try { conn = getConnection(); - ArrayList<String> schemaTexts = createNewSchemaTexts(conn, typeBuilder.buildFeatureType()); + ArrayList<String> schemaTexts = createNewSchemaTexts(conn, featureType); for (String stmtText : schemaTexts) { Statement stmt = conn.createStatement(); stmt.execute(stmtText); diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/IndexDgnConvertPostGISJobContext.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/IndexDgnConvertPostGISJobContext.java index 774ba91..bb27d52 100644 --- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/IndexDgnConvertPostGISJobContext.java +++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/IndexDgnConvertPostGISJobContext.java @@ -37,8 +37,6 @@ import com.vividsolutions.jts.geom.Polygon; import com.ximple.eofms.util.DefaultColorTable; -import com.ximple.eofms.util.EPSG3825GeometryConverterDecorator; -import com.ximple.eofms.util.EPSG3826GeometryConverterDecorator; import com.ximple.eofms.util.FeatureTypeBuilderUtil; import com.ximple.eofms.util.GeometryConverterDecorator; import com.ximple.eofms.util.TPCLIDConverter; @@ -57,11 +55,9 @@ private HashMap<SimpleFeatureType, ArrayList<SimpleFeature>> txFeaturesContext = new HashMap<SimpleFeatureType, ArrayList<SimpleFeature>>(); - private SimpleFeatureTypeBuilder typeBuilderPnt = null; - private SimpleFeatureTypeBuilder typeBuilderRect = null; - private SimpleFeatureTypeBuilder typeBuilderSmallRect = null; + private HashMap<String, SimpleFeatureType> typesMapping = new HashMap<String, SimpleFeatureType>(); - private SimpleFeatureType featureType = null; + private SimpleFeatureType featureType1 = null; private SimpleFeatureType featureType2 = null; private SimpleFeatureType featureType3 = null; @@ -288,6 +284,10 @@ } catch (SQLException e) { JDBCUtils.close(conn, Transaction.AUTO_COMMIT, e); logger.error(e.getMessage(), e); + Exception nextE = e.getNextException(); + if (nextE != null) { + logger.error(nextE.getMessage(), nextE); + } } finally { if (isProfileMode()) this.accumulateUpdateTime(); } @@ -305,17 +305,19 @@ */ } - public SimpleFeatureType createFeatureElement(String featureName) throws SchemaException { - if (typeBuilderRect == null) { + public void createFeatureElement(String featureName) throws SchemaException { + if (featureType1 == null) { Connection conn = null; - typeBuilderRect = FeatureTypeBuilderUtil.createNormalIndexFeatureTypeBuilder(featureName); - if (isExistFeature(typeBuilderRect.buildFeatureType())) { + SimpleFeatureTypeBuilder typeBuilder1 = FeatureTypeBuilderUtil.createNormalIndexFeatureTypeBuilder(featureName); + featureType1 = typeBuilder1.buildFeatureType(); + + if (isExistFeature(featureType1)) { try { conn = getConnection(); if (dropTableMode) { try { dropGeometryColumn(conn, featureName, - ((FeatureTypeImpl)typeBuilderRect.buildFeatureType()).getGeometryDescriptor().getLocalName()); + (featureType1).getGeometryDescriptor().getLocalName()); } catch (PSQLException e) { logger.debug(e.getMessage(), e); } @@ -324,8 +326,7 @@ } catch (PSQLException e) { logger.debug(e.getMessage(), e); } - ArrayList<String> schemaTexts = createNewSchemaTexts(conn, - typeBuilderRect.buildFeatureType()); + ArrayList<String> schemaTexts = createNewSchemaTexts(conn, featureType1); for (String stmtText : schemaTexts) { Statement stmt = conn.createStatement(); stmt.execute(stmtText); @@ -345,8 +346,7 @@ } else { try { conn = getConnection(); - ArrayList<String> schemaTexts = createNewSchemaTexts(conn, - typeBuilderRect.buildFeatureType()); + ArrayList<String> schemaTexts = createNewSchemaTexts(conn, featureType1); for (String stmtText : schemaTexts) { Statement stmt = conn.createStatement(); stmt.execute(stmtText); @@ -362,23 +362,22 @@ } } } - return typeBuilderRect.buildFeatureType(); } - public SimpleFeatureType createFeatureElement2(String featureName) throws SchemaException { - if (typeBuilderPnt == null) { + public void createFeatureElement2(String featureName) throws SchemaException { + if (featureType2 == null) { Connection conn = null; - typeBuilderPnt = FeatureTypeBuilderUtil.createNormalIndexTextFeatureTypeBuilder(featureName); - if (isExistFeature(typeBuilderPnt.buildFeatureType())) { + SimpleFeatureTypeBuilder typeBuilder = FeatureTypeBuilderUtil.createNormalIndexTextFeatureTypeBuilder(featureName); + featureType2 = typeBuilder.buildFeatureType(); + if (isExistFeature(featureType2)) { try { conn = getConnection(); if (dropTableMode) { dropGeometryColumn(conn, featureName, - ((FeatureTypeImpl)typeBuilderPnt.buildFeatureType()).getGeometryDescriptor().getLocalName()); + (featureType2).getGeometryDescriptor().getLocalName()); dropTable(conn, featureName); - ArrayList<String> schemaTexts = createNewSchemaTexts(conn, - typeBuilderPnt.buildFeatureType()); + ArrayList<String> schemaTexts = createNewSchemaTexts(conn, featureType2); for (String stmtText : schemaTexts) { Statement stmt = conn.createStatement(); stmt.execute(stmtText); @@ -398,8 +397,7 @@ } else { try { conn = getConnection(); - ArrayList<String> schemaTexts = createNewSchemaTexts(conn, - typeBuilderPnt.buildFeatureType()); + ArrayList<String> schemaTexts = createNewSchemaTexts(conn, featureType2); for (String stmtText : schemaTexts) { Statement stmt = conn.createStatement(); stmt.execute(stmtText); @@ -415,20 +413,20 @@ } } } - return typeBuilderPnt.buildFeatureType(); } - public SimpleFeatureType createFeatureElement3(String featureName) throws SchemaException { - if (typeBuilderSmallRect == null) { + public void createFeatureElement3(String featureName) throws SchemaException { + if (featureType3 == null) { Connection conn = null; - typeBuilderSmallRect = FeatureTypeBuilderUtil.createNormalIndexFeatureTypeBuilder(featureName); - if (isExistFeature(typeBuilderSmallRect.buildFeatureType())) { + SimpleFeatureTypeBuilder typeBuilder = FeatureTypeBuilderUtil.createNormalIndexFeatureTypeBuilder(featureName); + featureType3 = typeBuilder.buildFeatureType(); + if (isExistFeature(featureType3)) { try { conn = getConnection(); if (dropTableMode) { try { dropGeometryColumn(conn, featureName, - ((FeatureTypeImpl)typeBuilderSmallRect.buildFeatureType()).getGeometryDescriptor().getLocalName()); + (featureType3).getGeometryDescriptor().getLocalName()); } catch (PSQLException e) { logger.debug(e.getMessage(), e); } @@ -437,7 +435,7 @@ } catch (PSQLException e) { logger.debug(e.getMessage(), e); } - ArrayList<String> schemaTexts = createNewSchemaTexts(conn, typeBuilderSmallRect.buildFeatureType()); + ArrayList<String> schemaTexts = createNewSchemaTexts(conn, featureType3); for (String stmtText : schemaTexts) { Statement stmt = conn.createStatement(); stmt.execute(stmtText); @@ -457,8 +455,7 @@ } else { try { conn = getConnection(); - ArrayList<String> schemaTexts = createNewSchemaTexts(conn, - typeBuilderSmallRect.buildFeatureType()); + ArrayList<String> schemaTexts = createNewSchemaTexts(conn, featureType3); for (String stmtText : schemaTexts) { Statement stmt = conn.createStatement(); stmt.execute(stmtText); @@ -474,7 +471,6 @@ } } } - return typeBuilderSmallRect.buildFeatureType(); } public SimpleFeature createFeature(SimpleFeatureType featureType, Element element) throws IllegalAttributeException { @@ -773,15 +769,15 @@ } private SimpleFeature createFeature(Element element) throws SchemaException, IllegalAttributeException { - if (featureType == null) { + if (featureType1 == null) { String dgnname = getFilename().toLowerCase(); int i = dgnname.lastIndexOf("."); if (i != -1) { dgnname = dgnname.substring(0, i); } - featureType = createFeatureElement(dgnname.toLowerCase()); + createFeatureElement(dgnname.toLowerCase()); } - return createFeature(featureType, element); + return createFeature(featureType1, element); } private SimpleFeature createFeature2(Element element) throws SchemaException, IllegalAttributeException { @@ -792,7 +788,7 @@ dgnname = dgnname.substring(0, i); } dgnname = dgnname + "_p"; - featureType2 = createFeatureElement2(dgnname.toLowerCase()); + createFeatureElement2(dgnname.toLowerCase()); } return createFeature2(featureType2, element); } @@ -805,7 +801,7 @@ dgnname = dgnname.substring(0, i); } dgnname = dgnname + "_s"; - featureType3 = createFeatureElement3(dgnname.toLowerCase()); + createFeatureElement3(dgnname.toLowerCase()); } return createFeature3(featureType3, element); } -- Gitblit v0.0.0-SNAPSHOT