From 6eb2ea4bb982133d17e403582d7bcaced31af5f9 Mon Sep 17 00:00:00 2001 From: ?? ? <ulysseskao@ximple.com.tw> Date: Fri, 23 May 2008 19:57:23 +0800 Subject: [PATCH] update for EOFM-103 --- xdgnjobs/ximple-jobcarrier/src/main/resources/quartz_jobs.xml | 2 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/IndexDgnConvertJobContext.java | 4 + xdgnjobs/ximple-jobcarrier/src/main/resources/log4j.properties | 3 + xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleConvertJobContext.java | 4 + xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/TextElement.java | 47 ++++++++++++++++++++++- xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/TypeIdDispatchableFilter.java | 8 +++ xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/GeneralDgnConvertJobContext.java | 8 +++- xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/TypeCompLevelIdDispatchableFilter.java | 8 +++ xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/TypeCompIdDispatchableFilter.java | 8 +++ 9 files changed, 82 insertions(+), 10 deletions(-) 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 12093e3..454897c 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,6 +1,12 @@ package com.ximple.io.dgn7; import java.awt.geom.AffineTransform; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; +import java.nio.CharBuffer; +import java.nio.charset.CharacterCodingException; +import java.nio.charset.Charset; +import java.nio.charset.CharsetDecoder; import org.apache.log4j.Logger; @@ -178,9 +184,46 @@ val.append(temp[i]); } + } else + { + byte[] strRaw = new byte[num * 2]; + for (int i = 0; i < num; i++) + { + short charValue = raw[i + 31]; + byte hi = (byte) (charValue >>> 8); + byte lo = (byte) charValue; + strRaw[i * 2] = hi; + strRaw[i * 2 + 1] = lo; + } + + try + { + Charset charsetBig5 = Charset.forName("Big5"); + CharsetDecoder decoder = charsetBig5.newDecoder(); + CharBuffer cb = decoder.decode(ByteBuffer.wrap(strRaw)); + val.append(cb); + } catch (CharacterCodingException e) + { + logger.warn(e.getMessage(), e); + return val.toString(); + } finally + { + // rawBuffer.position(pos); + // rawBuffer.order(order); + } } return val.toString(); + } + + protected byte[] convertDBCSToUnicode(byte[] buffer) + { + byte[] charBuffer = new byte[4]; + charBuffer[0] = (byte) ((byte) ((buffer[1] & 0xc0) >>> 6) | 0xc0); + charBuffer[1] = (byte) (buffer[1] & 0x3f | 0x80); + charBuffer[2] = (byte) ((byte) ((buffer[0] & 0xc0) >>> 6) | 0xc0); + charBuffer[3] = (byte) (buffer[0] & 0x3f | 0x80); + return charBuffer; } public Geometry toGeometry(GeometryFactory factory) @@ -262,8 +305,8 @@ double[] srcPt = new double[2]; double[] dstPt = new double[2]; - srcPt[0] = p.x + width ; - srcPt[1] = p.y + height ; + srcPt[0] = p.x + width; + srcPt[1] = p.y + height; at.transform(srcPt, 0, dstPt, 0, 1); diff --git a/xdgnjobs/ximple-jobcarrier/src/main/resources/log4j.properties b/xdgnjobs/ximple-jobcarrier/src/main/resources/log4j.properties index ab3fe3f..2691982 100644 --- a/xdgnjobs/ximple-jobcarrier/src/main/resources/log4j.properties +++ b/xdgnjobs/ximple-jobcarrier/src/main/resources/log4j.properties @@ -9,16 +9,19 @@ # Pattern output the caller's filename and line # log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n +#log4j.appender.stdout.encoding=UTF-8 log4j.appender.logfile=org.apache.log4j.FileAppender log4j.appender.logfile.file=xjobcarrier.log log4j.appender.logfile.layout=org.apache.log4j.PatternLayout log4j.appender.logfile.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n +#log4j.appender.logfile.encoding=UTF-8 log4j.appender.remoteout=com.holub.log4j.RemoteAppender log4j.appender.remoteout.Port=8011 log4j.appender.remoteout.layout=org.apache.log4j.PatternLayout log4j.appender.remoteout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n +#log4j.appender.remoteout.encoding=UTF-8 # Print messages of level INFO or above for examples log4j.logger.org.cavaness.quartzbook=INFO diff --git a/xdgnjobs/ximple-jobcarrier/src/main/resources/quartz_jobs.xml b/xdgnjobs/ximple-jobcarrier/src/main/resources/quartz_jobs.xml index bf4fe10..0997e76 100644 --- a/xdgnjobs/ximple-jobcarrier/src/main/resources/quartz_jobs.xml +++ b/xdgnjobs/ximple-jobcarrier/src/main/resources/quartz_jobs.xml @@ -46,7 +46,7 @@ </entry> <entry> <key>CONVERTDB</key> - <value>true</value> + <value>false</value> </entry> <entry> <key>CONVERTFILE</key> diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/TypeCompIdDispatchableFilter.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/TypeCompIdDispatchableFilter.java index 2ce53bf..ce5453a 100644 --- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/TypeCompIdDispatchableFilter.java +++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/TypeCompIdDispatchableFilter.java @@ -72,7 +72,13 @@ { try { - FeatureType ftype = createStrategy.createFeatureElement(getName()); + StringBuilder sb= new StringBuilder(); + sb.append(getName()); + sb.append("_"); + sb.append(element.getLevelIndex()); + sb.append("_"); + sb.append(element.getWeight()); + FeatureType ftype = createStrategy.createFeatureElement(sb.toString()); return createStrategy.createFeature(ftype, element); } catch (SchemaException e) { diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/TypeCompLevelIdDispatchableFilter.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/TypeCompLevelIdDispatchableFilter.java index ecc6534..bc9899c 100644 --- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/TypeCompLevelIdDispatchableFilter.java +++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/TypeCompLevelIdDispatchableFilter.java @@ -82,7 +82,13 @@ { try { - FeatureType ftype = createStrategy.createFeatureElement(getName()); + StringBuilder sb= new StringBuilder(); + sb.append(getName()); + sb.append("_"); + sb.append(element.getLevelIndex()); + sb.append("_"); + sb.append(element.getWeight()); + FeatureType ftype = createStrategy.createFeatureElement(sb.toString()); return createStrategy.createFeature(ftype, element); } catch (SchemaException e) { diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/TypeIdDispatchableFilter.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/TypeIdDispatchableFilter.java index 591f465..c99f90e 100644 --- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/TypeIdDispatchableFilter.java +++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/TypeIdDispatchableFilter.java @@ -56,7 +56,13 @@ { try { - FeatureType ftype = createStrategy.createFeatureElement(getName()); + StringBuilder sb= new StringBuilder(); + sb.append(getName()); + sb.append("_"); + sb.append(element.getLevelIndex()); + sb.append("_"); + sb.append(element.getWeight()); + FeatureType ftype = createStrategy.createFeatureElement(sb.toString()); return createStrategy.createFeature(ftype, element); } catch (SchemaException e) { diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/GeneralDgnConvertJobContext.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/GeneralDgnConvertJobContext.java index 6ecda50..2f1eeb6 100644 --- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/GeneralDgnConvertJobContext.java +++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/GeneralDgnConvertJobContext.java @@ -10,6 +10,7 @@ import java.util.TreeMap; import java.math.BigDecimal; import java.math.RoundingMode; +import java.nio.charset.Charset; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -158,7 +159,9 @@ writer = featuresWriterContext.get(featureType.getTypeName()); } else { - ShapefileDataStore shapefileDataStore = new ShapefileDataStore(sfile.toURI().toURL()); + // ShapefileDataStore shapefileDataStore = new ShapefileDataStore(sfile.toURI().toURL()); + ShapefileDataStore shapefileDataStore = new ShapefileDataStore(sfile.toURI().toURL(), + true, Charset.forName("UTF-8")); shapefileDataStore.createSchema(featureType); writer = shapefileDataStore.getFeatureWriter(featureType.getTypeName(), Transaction.AUTO_COMMIT); featuresWriterContext.put(featureType.getTypeName(), writer); @@ -280,6 +283,7 @@ Geometry geom = convertDecorator.toGeometry(geometryFactory); double angle = textElement.getRotationAngle(); + String content = textElement.getText(); angle = BigDecimal.valueOf(angle).setScale(3, RoundingMode.HALF_UP).doubleValue(); if (geom != null) { @@ -291,7 +295,7 @@ textElement.getTextHeight(), textElement.getTextWidth(), angle, - textElement.getText() + content }); } else { diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/IndexDgnConvertJobContext.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/IndexDgnConvertJobContext.java index 5710bc2..8bba137 100644 --- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/IndexDgnConvertJobContext.java +++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/IndexDgnConvertJobContext.java @@ -9,6 +9,7 @@ import java.util.List; import java.math.BigDecimal; import java.math.RoundingMode; +import java.nio.charset.Charset; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -151,7 +152,8 @@ } else { - ShapefileDataStore shapefileDataStore = new ShapefileDataStore(sfile.toURI().toURL()); + ShapefileDataStore shapefileDataStore = new ShapefileDataStore(sfile.toURI().toURL(), + true, Charset.forName("UTF-8")); shapefileDataStore.createSchema(featureType); writer = shapefileDataStore.getFeatureWriter(featureType.getTypeName(), Transaction.AUTO_COMMIT); featuresWriterContext.put(featureType.getTypeName() , writer); diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleConvertJobContext.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleConvertJobContext.java index 0e19bf1..586cf92 100644 --- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleConvertJobContext.java +++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleConvertJobContext.java @@ -11,6 +11,7 @@ import java.util.HashMap; import java.util.Iterator; import java.util.Properties; +import java.nio.charset.Charset; import org.apache.commons.digester.Digester; import org.apache.commons.digester.xmlrules.DigesterLoader; @@ -202,7 +203,8 @@ writer = featuresWriterContext.get(featureType.getTypeName()); } else { - ShapefileDataStore shapefileDataStore = new ShapefileDataStore(sfile.toURI().toURL()); + ShapefileDataStore shapefileDataStore = new ShapefileDataStore(sfile.toURI().toURL(), + true, Charset.forName("UTF-8")); shapefileDataStore.createSchema(featureType); writer = shapefileDataStore.getFeatureWriter(featureType.getTypeName(), Transaction.AUTO_COMMIT); featuresWriterContext.put(featureType.getTypeName(), writer); -- Gitblit v0.0.0-SNAPSHOT