From 78792a3cca250c5d4f91f782c1697d4d9d180936 Mon Sep 17 00:00:00 2001 From: ?? ? <ulysseskao@ximple.com.tw> Date: Fri, 13 Jun 2008 19:18:46 +0800 Subject: [PATCH] update for EOFM-117 --- xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateShapeStrategy.java | 49 +++++---- xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/FeatureDgnConvertPostGISJobContext.java | 4 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateSymbolStrategy.java | 5 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/OracleConvertPostGISJobContext.java | 12 ++ xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateLineStringStrategy.java | 13 ++ xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleConvertDgn2PostGISJob.java | 18 ++- xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/IndexDgnConvertPostGISJobContext.java | 20 +-- xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/DummyFeatureConvertPostGISJobContext.java | 18 --- xdgnjobs/ximple-spatialjob/src/main/resources/com/ximple/eofms/filter/ElementDispatcherRules.xml | 15 +++ xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateEllipseShapeStrategy.java | 5 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateComplexChainStrategy.java | 32 +++--- xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateArcLineStringStrategy.java | 5 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/GeneralDgnConvertPostGISJobContext.java | 16 -- xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateTextStrategy.java | 11 + xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateLineTextStrategy.java | 25 ++++ 15 files changed, 146 insertions(+), 102 deletions(-) diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateArcLineStringStrategy.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateArcLineStringStrategy.java index 5d0f184..54bc021 100644 --- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateArcLineStringStrategy.java +++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateArcLineStringStrategy.java @@ -14,6 +14,7 @@ import org.geotools.feature.SchemaException; import com.vividsolutions.jts.geom.GeometryFactory; +import com.vividsolutions.jts.geom.Geometry; import com.ximple.eofms.util.DefaultColorTable; import com.ximple.eofms.util.FeatureTypeBuilderUtil; @@ -73,8 +74,10 @@ { ArcElement lineStringElement = (ArcElement) element; convertDecorator.setConverter(lineStringElement); + Geometry gobj = convertDecorator.toGeometry(geometryFactory); + if (gobj != null) feature = featureType.create(new Object[]{ - convertDecorator.toGeometry(geometryFactory), + gobj, fLinkage.getFsc(), (long) fLinkage.getUfid(), (short) fLinkage.getComponentID(), diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateComplexChainStrategy.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateComplexChainStrategy.java index 87ecfec..a372f9b 100644 --- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateComplexChainStrategy.java +++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateComplexChainStrategy.java @@ -1,33 +1,31 @@ package com.ximple.eofms.filter; -import java.util.TreeMap; import java.util.List; +import java.util.TreeMap; import javax.swing.event.EventListenerList; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.geotools.feature.FeatureTypeBuilder; -import org.geotools.feature.FeatureType; -import org.geotools.feature.SchemaException; import org.geotools.feature.Feature; +import org.geotools.feature.FeatureType; +import org.geotools.feature.FeatureTypeBuilder; import org.geotools.feature.IllegalAttributeException; +import org.geotools.feature.SchemaException; -import com.vividsolutions.jts.geom.GeometryFactory; import com.vividsolutions.jts.geom.Geometry; -import com.vividsolutions.jts.geom.MultiLineString; -import com.vividsolutions.jts.geom.CoordinateList; +import com.vividsolutions.jts.geom.GeometryFactory; import com.vividsolutions.jts.geom.LineString; -import com.ximple.eofms.util.TWD97GeometryConverterDecorator; -import com.ximple.eofms.util.FeatureTypeBuilderUtil; import com.ximple.eofms.util.DefaultColorTable; -import com.ximple.io.dgn7.FrammeAttributeData; -import com.ximple.io.dgn7.Element; -import com.ximple.io.dgn7.UserAttributeData; -import com.ximple.io.dgn7.LineStringElement; -import com.ximple.io.dgn7.ComplexChainElement; -import com.ximple.io.dgn7.LineElement; +import com.ximple.eofms.util.FeatureTypeBuilderUtil; +import com.ximple.eofms.util.TWD97GeometryConverterDecorator; import com.ximple.io.dgn7.ArcElement; +import com.ximple.io.dgn7.ComplexChainElement; +import com.ximple.io.dgn7.Element; +import com.ximple.io.dgn7.FrammeAttributeData; +import com.ximple.io.dgn7.LineElement; +import com.ximple.io.dgn7.LineStringElement; +import com.ximple.io.dgn7.UserAttributeData; public class CreateComplexChainStrategy implements CreateFeatureTypeStrategy { @@ -85,6 +83,7 @@ { gobj = geometryFactory.createMultiLineString(new LineString[] {(LineString) gobj}); } + if (gobj != null) feature = featureType.create(new Object[]{ gobj, fLinkage.getFsc(), @@ -105,6 +104,7 @@ { gobj = geometryFactory.createMultiLineString(new LineString[] {(LineString) gobj}); } + if (gobj != null) feature = featureType.create(new Object[]{ gobj, fLinkage.getFsc(), @@ -125,6 +125,7 @@ { gobj = geometryFactory.createMultiLineString(new LineString[] {(LineString) gobj}); } + if (gobj != null) feature = featureType.create(new Object[]{ gobj, fLinkage.getFsc(), @@ -146,6 +147,7 @@ { gobj = geometryFactory.createMultiLineString(new LineString[] {(LineString) gobj}); } + if (gobj != null) feature = featureType.create(new Object[]{ gobj, fLinkage.getFsc(), diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateEllipseShapeStrategy.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateEllipseShapeStrategy.java index 058674f..9d0c215 100644 --- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateEllipseShapeStrategy.java +++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateEllipseShapeStrategy.java @@ -14,6 +14,7 @@ import org.geotools.feature.SchemaException; import com.vividsolutions.jts.geom.GeometryFactory; +import com.vividsolutions.jts.geom.Geometry; import com.ximple.eofms.util.DefaultColorTable; import com.ximple.eofms.util.FeatureTypeBuilderUtil; @@ -73,8 +74,10 @@ { EllipseElement shapeElement = (EllipseElement) element; convertDecorator.setConverter(shapeElement); + Geometry gobj = convertDecorator.toGeometry(geometryFactory); + if (gobj != null) feature = featureType.create(new Object[]{ - convertDecorator.toGeometry(geometryFactory), + gobj, fLinkage.getFsc(), (long) fLinkage.getUfid(), (short) fLinkage.getComponentID(), diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateLineStringStrategy.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateLineStringStrategy.java index de94757..41ab334 100644 --- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateLineStringStrategy.java +++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateLineStringStrategy.java @@ -81,6 +81,8 @@ { LineStringElement lineStringElement = (LineStringElement) element; convertDecorator.setConverter(lineStringElement); + Geometry gobj = convertDecorator.toGeometry(geometryFactory); + if (gobj != null) feature = featureType.create(new Object[]{ convertDecorator.toGeometry(geometryFactory), fLinkage.getFsc(), @@ -97,7 +99,7 @@ ComplexChainElement complexChain = (ComplexChainElement) element; convertDecorator.setConverter(complexChain); Geometry gobj = convertDecorator.toGeometry(geometryFactory); - if (gobj instanceof MultiLineString) + if ((gobj != null) && (gobj instanceof MultiLineString)) { MultiLineString mline = (MultiLineString) gobj; CoordinateList coordinateList = new CoordinateList(); @@ -111,6 +113,7 @@ gobj = geometryFactory.createLineString(coordinateList.toCoordinateArray()); } + if (gobj != null) feature = featureType.create(new Object[]{ gobj, fLinkage.getFsc(), @@ -126,8 +129,10 @@ { LineElement lineElement = (LineElement) element; convertDecorator.setConverter(lineElement); + Geometry gobj = convertDecorator.toGeometry(geometryFactory); + if (gobj != null) feature = featureType.create(new Object[]{ - convertDecorator.toGeometry(geometryFactory), + gobj, fLinkage.getFsc(), (long) fLinkage.getUfid(), (short) fLinkage.getComponentID(), @@ -142,8 +147,10 @@ { ArcElement lineStringElement = (ArcElement) element; convertDecorator.setConverter(lineStringElement); + Geometry gobj = convertDecorator.toGeometry(geometryFactory); + if (gobj != null) feature = featureType.create(new Object[]{ - convertDecorator.toGeometry(geometryFactory), + gobj, fLinkage.getFsc(), (long) fLinkage.getUfid(), (short) fLinkage.getComponentID(), diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateLineTextStrategy.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateLineTextStrategy.java index d4fae84..e6a2761 100644 --- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateLineTextStrategy.java +++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateLineTextStrategy.java @@ -16,6 +16,9 @@ import com.vividsolutions.jts.geom.Coordinate; import com.vividsolutions.jts.geom.GeometryFactory; import com.vividsolutions.jts.geom.LineString; +import com.vividsolutions.jts.geom.Geometry; +import com.vividsolutions.jts.geom.MultiLineString; +import com.vividsolutions.jts.geom.CoordinateList; import com.ximple.eofms.util.DefaultColorTable; import com.ximple.eofms.util.FeatureTypeBuilderUtil; @@ -80,8 +83,10 @@ { LineStringElement lineStringElement = (LineStringElement) element; convertDecorator.setConverter(lineStringElement); + Geometry gobj = convertDecorator.toGeometry(geometryFactory); + if (gobj != null) feature = featureType.create(new Object[]{ - convertDecorator.toGeometry(geometryFactory), + gobj, fLinkage.getFsc(), (long) fLinkage.getUfid(), (short) fLinkage.getComponentID(), @@ -123,8 +128,24 @@ { ComplexChainElement complexChain = (ComplexChainElement) element; convertDecorator.setConverter(complexChain); + Geometry gobj = convertDecorator.toGeometry(geometryFactory); + if ((gobj != null) && (gobj instanceof MultiLineString)) + { + MultiLineString mline = (MultiLineString) gobj; + CoordinateList coordinateList = new CoordinateList(); + if (mline.getNumGeometries() == 1) + { + for (int i = 0; i < mline.getNumGeometries(); i++) + { + coordinateList.add(mline.getGeometryN(i).getCoordinates(), true); + } + } + + gobj = geometryFactory.createLineString(coordinateList.toCoordinateArray()); + } + if (gobj != null) feature = featureType.create(new Object[]{ - convertDecorator.toGeometry(geometryFactory), + gobj, fLinkage.getFsc(), (long) fLinkage.getUfid(), (short) fLinkage.getComponentID(), diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateShapeStrategy.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateShapeStrategy.java index b51b9af..d42c1c8 100644 --- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateShapeStrategy.java +++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateShapeStrategy.java @@ -14,6 +14,7 @@ import org.geotools.feature.SchemaException; import com.vividsolutions.jts.geom.GeometryFactory; +import com.vividsolutions.jts.geom.Geometry; import com.ximple.eofms.util.DefaultColorTable; import com.ximple.eofms.util.FeatureTypeBuilderUtil; @@ -75,32 +76,36 @@ { ShapeElement shapeElement = (ShapeElement) element; convertDecorator.setConverter(shapeElement); - feature = featureType.create(new Object[]{ - convertDecorator.toGeometry(geometryFactory), - fLinkage.getFsc(), - (long) fLinkage.getUfid(), - (short) fLinkage.getComponentID(), - (short) 0, - (short) shapeElement.getLevelIndex(), - colorTable.getColorCode(shapeElement.getColorIndex()), - (short) shapeElement.getWeight(), - (short) shapeElement.getLineStyle() - }); + Geometry gobj = convertDecorator.toGeometry(geometryFactory); + if (gobj != null) + feature = featureType.create(new Object[]{ + gobj, + fLinkage.getFsc(), + (long) fLinkage.getUfid(), + (short) fLinkage.getComponentID(), + (short) 0, + (short) shapeElement.getLevelIndex(), + colorTable.getColorCode(shapeElement.getColorIndex()), + (short) shapeElement.getWeight(), + (short) shapeElement.getLineStyle() + }); } else if (element instanceof ComplexShapeElement) { ComplexShapeElement complexShape = (ComplexShapeElement) element; convertDecorator.setConverter(complexShape); - feature = featureType.create(new Object[]{ - convertDecorator.toGeometry(geometryFactory), - fLinkage.getFsc(), - (long) fLinkage.getUfid(), - (short) fLinkage.getComponentID(), - (short) 0, - (short) complexShape.getLevelIndex(), - colorTable.getColorCode(complexShape.getColorIndex()), - (short) complexShape.getWeight(), - (short) complexShape.getLineStyle() - }); + Geometry gobj = convertDecorator.toGeometry(geometryFactory); + if (gobj != null) + feature = featureType.create(new Object[]{ + gobj, + fLinkage.getFsc(), + (long) fLinkage.getUfid(), + (short) fLinkage.getComponentID(), + (short) 0, + (short) complexShape.getLevelIndex(), + colorTable.getColorCode(complexShape.getColorIndex()), + (short) complexShape.getWeight(), + (short) complexShape.getLineStyle() + }); } return feature; } diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateSymbolStrategy.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateSymbolStrategy.java index 78604d0..2b3fd93 100644 --- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateSymbolStrategy.java +++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateSymbolStrategy.java @@ -16,6 +16,7 @@ import org.geotools.feature.SchemaException; import com.vividsolutions.jts.geom.GeometryFactory; +import com.vividsolutions.jts.geom.Geometry; import com.ximple.eofms.util.DefaultColorTable; import com.ximple.eofms.util.FeatureTypeBuilderUtil; @@ -91,8 +92,10 @@ sb.append(txtElement.getFontIndex()); convertDecorator.setConverter(txtElement); + Geometry gobj = convertDecorator.toGeometry(geometryFactory); + if (gobj != null) feature = featureType.create(new Object[]{ - convertDecorator.toGeometry(geometryFactory), + gobj, fLinkage.getFsc(), (long) fLinkage.getUfid(), (short) fLinkage.getComponentID(), diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateTextStrategy.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateTextStrategy.java index 238eeda..cca31c2 100644 --- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateTextStrategy.java +++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateTextStrategy.java @@ -15,6 +15,7 @@ import org.geotools.feature.SchemaException; import com.vividsolutions.jts.geom.GeometryFactory; +import com.vividsolutions.jts.geom.Geometry; import com.ximple.eofms.util.DefaultColorTable; import com.ximple.eofms.util.FeatureTypeBuilderUtil; @@ -77,11 +78,13 @@ TextElement txtElement = (TextElement) element; double angle = txtElement.getRotationAngle(); angle = BigDecimal.valueOf(angle).setScale(3, RoundingMode.HALF_UP).doubleValue(); - convertDecorator.setConverter(txtElement); String content = txtElement.getText(); content = content.replace('\u0000', ' '); + convertDecorator.setConverter(txtElement); + Geometry gobj = convertDecorator.toGeometry(geometryFactory); + if (gobj != null) feature = featureType.create(new Object[]{ - convertDecorator.toGeometry(geometryFactory), + gobj, fLinkage.getFsc(), (long) fLinkage.getUfid(), (short) fLinkage.getComponentID(), @@ -112,8 +115,10 @@ double angle = nodeElement.getRotationAngle(); angle = BigDecimal.valueOf(angle).setScale(3, RoundingMode.HALF_UP).doubleValue(); convertDecorator.setConverter(nodeElement); + Geometry gobj = convertDecorator.toGeometry(geometryFactory); + if (gobj != null) feature = featureType.create(new Object[]{ - convertDecorator.toGeometry(geometryFactory), + gobj, fLinkage.getFsc(), (long) fLinkage.getUfid(), (short) fLinkage.getComponentID(), diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleConvertDgn2PostGISJob.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleConvertDgn2PostGISJob.java index 49ae703..0128a4a 100644 --- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleConvertDgn2PostGISJob.java +++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleConvertDgn2PostGISJob.java @@ -287,6 +287,7 @@ Statement stmt = connection.createStatement(); stmt.execute(AbstractOracleJobContext.TRUNCATE_CONNECTIVITY_WEBCHECK); stmt.execute(AbstractOracleJobContext.COPY_CONNECTIVITY_TO_WEBCHECK); + stmt.close(); } private void exetcuteConvert(OracleConvertPostGISJobContext jobContext, @@ -411,9 +412,9 @@ Statement stmt = connection.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY); stmt.setFetchSize(FETCHSIZE); - ResultSet rs = stmt.executeQuery(fetchStmt); - + try + { while (rs.next()) { int size = rs.getMetaData().getColumnCount(); @@ -433,10 +434,11 @@ else pair.second = name; } - + } finally + { rs.close(); stmt.close(); - + } return orderedMap; } @@ -450,7 +452,6 @@ Statement stmtSrc = connection.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY); stmtSrc.setFetchSize(FETCHSIZE); - ResultSet rsSrc = stmtSrc.executeQuery(fetchSrcStmt); while (rsSrc.next()) @@ -492,9 +493,10 @@ Statement stmtDest = connection.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY); stmtDest.setFetchSize(FETCHSIZE); - ResultSet rsDest = stmtDest.executeQuery(fetchDestStmt); + try + { while (rsDest.next()) { ARRAY rawsValue = ((OracleResultSet) rsDest).getARRAY(1); @@ -524,9 +526,11 @@ logger.warn("Dgn7Exception:" + e.getMessage(), e); } } - + } finally + { rsDest.close(); stmtDest.close(); + } } // Binary to Element diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/DummyFeatureConvertPostGISJobContext.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/DummyFeatureConvertPostGISJobContext.java index fc9d981..7c48de5 100644 --- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/DummyFeatureConvertPostGISJobContext.java +++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/DummyFeatureConvertPostGISJobContext.java @@ -45,7 +45,6 @@ static final Log logger = LogFactory.getLog(DummyFeatureConvertPostGISJobContext.class); static final LoggerFacade sLogger = new CommonsLoggingLogger(logger); static final GeometryFactory geometryFactory = new GeometryFactory(); - static final String SHPOUTPATH = "shpout"; private String dataOut = null; @@ -238,23 +237,6 @@ { logger.error(e.getMessage(), e); } - } - - public String getDataOutPath() - { - if (dataOut == null) - { - File outPath = new File(getDataPath(), SHPOUTPATH); - if (!outPath.exists()) - { - outPath.mkdir(); - } else if (!outPath.isDirectory()) - { - outPath.mkdir(); - } - dataOut = outPath.toString(); - } - return dataOut; } public void closeFeatureWriter() throws IOException diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/FeatureDgnConvertPostGISJobContext.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/FeatureDgnConvertPostGISJobContext.java index e7c4d07..2ac1836 100644 --- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/FeatureDgnConvertPostGISJobContext.java +++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/FeatureDgnConvertPostGISJobContext.java @@ -42,8 +42,6 @@ static final LoggerFacade sLogger = new CommonsLoggingLogger(logger); static final GeometryFactory geometryFactory = new GeometryFactory(); - private String dataOut = null; - private HashMap<String, ArrayList<Feature>> featuresContext = new HashMap<String, ArrayList<Feature>>(); private HashMap<String, FeatureWriter> featuresWriterContext = new HashMap<String, FeatureWriter>(); @@ -136,7 +134,7 @@ { txFeaturesContext.put(feature.getFeatureType(), new ArrayList()); } - ArrayList arrayList = (ArrayList) txFeaturesContext.get(feature.getFeatureType()); + ArrayList<Feature> arrayList = (ArrayList<Feature>) txFeaturesContext.get(feature.getFeatureType()); arrayList.add(feature); } 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 9ae4316..9e0e019 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 @@ -145,7 +145,6 @@ private void updateDataStore() { Iterator<FeatureType> it = txFeaturesContext.keySet().iterator(); - String currentStmt = null; try { while (it.hasNext()) @@ -171,24 +170,13 @@ pstmt.execute(); } catch (PSQLException e) { - if (currentStmt != null) + if (bindingStmt != null) { - logger.error("Execute:" + currentStmt); + logger.error("Execute:" + bindingStmt); } logger.error(e.getServerErrorMessage()); logger.error(e.getMessage(), e); } - - /* - if ((i % BATCHSIZE) != 0) - { - stmt.addBatch(feature); - } else { - stmt.addBatch(feature); - stmt.executeBatch(); - } - i++; - */ } pstmt.close(); 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 8ac2226..523d151 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 @@ -124,19 +124,15 @@ { updateDataStore(); } - - txFeaturesContext.clear(); } public void rollbackTransaction() { - txFeaturesContext.clear(); } private void updateDataStore() { Iterator<FeatureType> it = txFeaturesContext.keySet().iterator(); - String currentStmt = null; try { while (it.hasNext()) @@ -162,9 +158,9 @@ pstmt.execute(); } catch (PSQLException e) { - if (currentStmt != null) + if (bindingStmt != null) { - logger.error("Execute:" + currentStmt); + logger.error("Execute:" + bindingStmt); } logger.error(e.getServerErrorMessage()); logger.error(e.getMessage(), e); @@ -191,10 +187,6 @@ accumulate = 0; } catch (PSQLException e) { - if (currentStmt != null) - { - logger.error("Execute:" + currentStmt); - } logger.error(e.getServerErrorMessage()); logger.error(e.getMessage(), e); } catch (SQLException e) @@ -205,6 +197,7 @@ public void closeFeatureWriter() throws IOException { + txFeaturesContext.clear(); /* for (FeatureWriter featureWriter : this.featuresWriterContext.values()) { @@ -384,12 +377,15 @@ DefaultColorTable colorTable = (DefaultColorTable) DefaultColorTable.getInstance(); if (element instanceof TextElement) { + Feature feature = null; TextElement txtElement = (TextElement) element; double angle = txtElement.getRotationAngle(); angle = BigDecimal.valueOf(angle).setScale(3, RoundingMode.HALF_UP).doubleValue(); convertDecorator.setConverter(txtElement); - Feature feature = featureType.create(new Object[]{ - convertDecorator.toGeometry(geometryFactory), + Geometry gobj = convertDecorator.toGeometry(geometryFactory); + if (gobj != null) + feature = featureType.create(new Object[]{ + gobj, colorTable.getColorCode(txtElement.getColorIndex()), txtElement.getWeight(), txtElement.getLineStyle(), diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/OracleConvertPostGISJobContext.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/OracleConvertPostGISJobContext.java index c9a676e..a56d065 100644 --- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/OracleConvertPostGISJobContext.java +++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/OracleConvertPostGISJobContext.java @@ -240,6 +240,18 @@ } logger.error(e.getServerErrorMessage()); logger.error(e.getMessage(), e); + } catch (ClassCastException e) + { + if (bindingStmt != null) + { + logger.error("Execute:" + bindingStmt); + } + for (int i = 0; i < feature.getNumberOfAttributes(); i++) + { + logger.info("attr[" + i + "]-" + ((feature.getAttribute(i) == null) ? " NULL" : + feature.getAttribute(i).toString())); + } + logger.error(e.getMessage(), e); } } diff --git a/xdgnjobs/ximple-spatialjob/src/main/resources/com/ximple/eofms/filter/ElementDispatcherRules.xml b/xdgnjobs/ximple-spatialjob/src/main/resources/com/ximple/eofms/filter/ElementDispatcherRules.xml index 37c3706..9686501 100644 --- a/xdgnjobs/ximple-spatialjob/src/main/resources/com/ximple/eofms/filter/ElementDispatcherRules.xml +++ b/xdgnjobs/ximple-spatialjob/src/main/resources/com/ximple/eofms/filter/ElementDispatcherRules.xml @@ -47,6 +47,11 @@ <set-next-rule methodname="setCreateStrategy" paramtype="com.ximple.eofms.filter.CreateFeatureTypeStrategy"/> <set-properties-rule/> </pattern> + <pattern value="ComplexChainCreateStrategy"> + <object-create-rule classname="com.ximple.eofms.filter.CreateComplexChainStrategy"/> + <set-next-rule methodname="setCreateStrategy" paramtype="com.ximple.eofms.filter.CreateFeatureTypeStrategy"/> + <set-properties-rule/> + </pattern> </pattern> <pattern value="TypeCompFilter"> <object-create-rule classname="com.ximple.eofms.filter.TypeCompIdDispatchableFilter"/> @@ -95,6 +100,11 @@ </pattern> <pattern value="EllipseShapeCreateStrategy"> <object-create-rule classname="com.ximple.eofms.filter.CreateEllipseShapeStrategy"/> + <set-next-rule methodname="setCreateStrategy" paramtype="com.ximple.eofms.filter.CreateFeatureTypeStrategy"/> + <set-properties-rule/> + </pattern> + <pattern value="ComplexChainCreateStrategy"> + <object-create-rule classname="com.ximple.eofms.filter.CreateComplexChainStrategy"/> <set-next-rule methodname="setCreateStrategy" paramtype="com.ximple.eofms.filter.CreateFeatureTypeStrategy"/> <set-properties-rule/> </pattern> @@ -156,6 +166,11 @@ <set-next-rule methodname="setCreateStrategy" paramtype="com.ximple.eofms.filter.CreateFeatureTypeStrategy"/> <set-properties-rule/> </pattern> + <pattern value="ComplexChainCreateStrategy"> + <object-create-rule classname="com.ximple.eofms.filter.CreateComplexChainStrategy"/> + <set-next-rule methodname="setCreateStrategy" paramtype="com.ximple.eofms.filter.CreateFeatureTypeStrategy"/> + <set-properties-rule/> + </pattern> </pattern> </pattern> </digester-rules> \ No newline at end of file -- Gitblit v0.0.0-SNAPSHOT