From fe4bda7d456c106e1061afaa29d452e5553e9d96 Mon Sep 17 00:00:00 2001 From: ?? ? <ulysseskao@ximple.com.tw> Date: Wed, 14 May 2008 19:40:53 +0800 Subject: [PATCH] update for EOFM-83 --- xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/EllipseElement.java | 43 +- xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/TextNodeElement.java | 4 xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/TcbElement.java | 4 xdgnjobs/ximple-spatialjob/src/main/resources/conf/DefaultConvertShpFilter.xml | 675 +++++++++++++++++++++++++++++++++++++ xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/ComplexChainElement.java | 6 xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/TextElement.java | 102 ++--- xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/GeneralDgnConvertJobContext.java | 3 xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/Element.java | 32 + xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/Utility.java | 75 +++ xdgnjobs/ximple-jobcarrier/src/main/resources/quartz_jobs.xml | 2 xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/ShapeElement.java | 7 xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/LineStringElement.java | 4 xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/ArcElement.java | 75 ++- xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/ComplexShapeElement.java | 4 xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/LineElement.java | 19 15 files changed, 898 insertions(+), 157 deletions(-) diff --git a/xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/ArcElement.java b/xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/ArcElement.java index 654688b..e54f755 100644 --- a/xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/ArcElement.java +++ b/xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/ArcElement.java @@ -1,6 +1,8 @@ package com.ximple.io.dgn7; -//~--- non-JDK imports -------------------------------------------------------- +import java.nio.ByteOrder; + +import org.apache.log4j.Logger; import com.vividsolutions.jts.geom.Coordinate; import com.vividsolutions.jts.geom.Geometry; @@ -15,17 +17,16 @@ */ public class ArcElement extends Element implements GeometryConverter { - public ArcElement(short[] raw) + private static final Logger logger = Logger.getLogger(ArcElement.class); + + public ArcElement(byte[] raw) { super(raw); } public double getStartAngle() { - int angle = (raw[18] << 16 & 0xffff0000); - - angle |= raw[19] & 0x0000ffff; - + int angle = (raw[18] & 0x0000ffff) << 16 | (raw[19] & 0x0000ffff); return Utility.converIntToRotation(angle); } @@ -39,9 +40,9 @@ public double getSweepAngle() { - int angle = (raw[20] << 16 & 0xffff0000); - - angle |= raw[21] & 0x0000ffff; + int angle = (raw[20] & 0x0000ffff) << 16 | (raw[21] & 0x0000ffff); + if (angle < 0) + angle = -1 * (angle & 0x7fffffff); return Utility.converIntToRotation(angle); } @@ -49,6 +50,11 @@ public void setSweepAngle(double value) { int angle = Utility.converRotatioToInt(value); + if (angle < 0) + { + angle &= 0x7fffffff; + angle |= 0x80000000; + } raw[20] = (short) (angle >> 16 & 0x0000ffff); raw[21] = (short) (angle & 0x0000ffff); @@ -56,16 +62,18 @@ public double getPrimary() { - short[] primary = new short[4]; - - System.arraycopy(raw, 22, primary, 0, 4); - + rawBuffer.position(22 * 2); + ByteOrder bo = rawBuffer.order(); + rawBuffer.order(ByteOrder.BIG_ENDIAN); + byte[] primary = new byte[8]; + rawBuffer.get(primary); + rawBuffer.order(bo); return Utility.convertDGNToIEEEDouble(primary) / 1000.0; } public void setPrimary(double value) { - double temp = value * 1000.0; + double temp = value * 1000.0; short[] primary = Utility.convertIEEEDoubleToDGN(temp); System.arraycopy(primary, 0, raw, 22, 4); @@ -73,16 +81,18 @@ public double getSecondary() { - short[] secondary = new short[4]; - - System.arraycopy(raw, 26, secondary, 0, 4); - + rawBuffer.position(26 * 2); + ByteOrder bo = rawBuffer.order(); + rawBuffer.order(ByteOrder.BIG_ENDIAN); + byte[] secondary = new byte[8]; + rawBuffer.get(secondary); + rawBuffer.order(bo); return Utility.convertDGNToIEEEDouble(secondary) / 1000.0; } public void setSecondary(double value) { - double temp = value * 1000.0; + double temp = value * 1000.0; short[] secondary = Utility.convertIEEEDoubleToDGN(temp); System.arraycopy(secondary, 0, raw, 26, 4); @@ -91,7 +101,6 @@ public double getRotationAngle() { int rotation = (raw[30] << 16 & 0xffff0000); - rotation |= raw[31] & 0x0000ffff; return Utility.converIntToRotation(rotation); @@ -107,24 +116,26 @@ public Coordinate getOrigin() { - short[] x = new short[4]; + rawBuffer.position(32 * 2); + ByteOrder bo = rawBuffer.order(); + rawBuffer.order(ByteOrder.BIG_ENDIAN); + byte[] rawValue = new byte[8]; - System.arraycopy(raw, 32, x, 0, 4); + rawBuffer.get(rawValue); // x + double dx = Utility.converUnitToCoord(Utility.convertDGNToIEEEDouble(rawValue)); - double dx = Utility.converUnitToCoord((int) Utility.convertDGNToIEEEDouble(x)); - short[] y = new short[4]; + rawBuffer.get(rawValue); // y + double dy = Utility.converUnitToCoord(Utility.convertDGNToIEEEDouble(rawValue)); - System.arraycopy(raw, 36, y, 0, 4); - - double dy = Utility.converUnitToCoord((int) Utility.convertDGNToIEEEDouble(y)); + rawBuffer.order(bo); return new Coordinate(dx, dy); } public void setOrigin(Coordinate value) { - double temp = Utility.converCoordToUnit(value.x); - short[] x = Utility.convertIEEEDoubleToDGN(temp); + double temp = Utility.converCoordToUnit(value.x); + short[] x = Utility.convertIEEEDoubleToDGN(temp); System.arraycopy(x, 0, raw, 32, 4); temp = Utility.converCoordToUnit(value.y); @@ -136,7 +147,9 @@ public Geometry toGeometry(GeometryFactory factory) { - double temp = Math.abs(getStartAngle() - getSweepAngle()); + double start = getStartAngle(); + double end = getSweepAngle(); + double temp = Math.abs(start - end); temp /= 4; int pts = (temp < 3) ? 3 : (int) temp; return factory.createLineString(convertToLineString(pts)); @@ -190,7 +203,7 @@ return instance; } - protected Element createElement(short[] raw) + protected Element createElement(byte[] raw) { return new ArcElement(raw); } diff --git a/xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/ComplexChainElement.java b/xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/ComplexChainElement.java index 24ab7b6..c229b96 100644 --- a/xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/ComplexChainElement.java +++ b/xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/ComplexChainElement.java @@ -23,7 +23,7 @@ { protected ArrayList list = new ArrayList(); - public ComplexChainElement(short[] raw) + public ComplexChainElement(byte[] raw) { super(raw); attrOffset = 4; @@ -195,9 +195,11 @@ { list.add(((LineElement) element).toGeometry(factory)); } + /* } else if (element instanceof ArcElement) { list.add(((ArcElement) element).toGeometry(factory)); + */ } } @@ -240,7 +242,7 @@ return instance; } - protected Element createElement(short[] raw) + protected Element createElement(byte[] raw) { return new ComplexChainElement(raw); } diff --git a/xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/ComplexShapeElement.java b/xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/ComplexShapeElement.java index a1b06d9..b4b808e 100644 --- a/xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/ComplexShapeElement.java +++ b/xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/ComplexShapeElement.java @@ -23,7 +23,7 @@ { ArrayList list = new ArrayList(); - public ComplexShapeElement(short[] raw) + public ComplexShapeElement(byte[] raw) { super(raw); } @@ -198,7 +198,7 @@ return instance; } - protected Element createElement(short[] raw) + protected Element createElement(byte[] raw) { return new ComplexShapeElement(raw); } diff --git a/xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/Element.java b/xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/Element.java index 62ff460..10e6852 100644 --- a/xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/Element.java +++ b/xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/Element.java @@ -33,12 +33,17 @@ public static final int PRIMARY_CLASS = 0; public static final int PRIMARY_RULE_CLASS = 0; - protected short[] raw; - protected byte attrOffset = 0; + protected short[] raw; + protected byte attrOffset = 0; + protected ByteBuffer rawBuffer; - public Element(short[] raw) + public Element(byte[] raw) { - this.raw = raw; + // this.raw = raw; + this.raw = new short[raw.length / 2]; + rawBuffer = ByteBuffer.wrap(raw); + rawBuffer.order(ByteOrder.LITTLE_ENDIAN); + rawBuffer.asShortBuffer().get(this.raw); } public int getLineStyle() @@ -217,6 +222,10 @@ } } + protected static int getOffsetPosition(int offset) + { + return offset * 2; + } public static class ElementHandler implements IElementHandler { @@ -234,23 +243,30 @@ public Object read(ByteBuffer buffer, short signature, int length) { - byte[] dst = new byte[length - 4]; + byte[] dst = new byte[length]; try { - buffer.get(dst, 0, dst.length); + buffer.get(dst, 4, dst.length - 4); } catch (BufferUnderflowException exception) { throw exception; } + ByteBuffer tmpBuffer = ByteBuffer.wrap(dst); tmpBuffer.order(ByteOrder.LITTLE_ENDIAN); + tmpBuffer.position(0); + tmpBuffer.putShort(signature); + tmpBuffer.putShort((short) ((length / 2) - 2)); + + /* ShortBuffer sbuffer = tmpBuffer.asShortBuffer(); short[] rawMem = new short[(length / 2)]; sbuffer.get(rawMem, 2, rawMem.length - 2); rawMem[0] = signature; rawMem[1] = (short) ((length / 2) - 2); - Element elm = createElement(rawMem); + */ + Element elm = createElement(dst); return elm; } @@ -264,7 +280,7 @@ return ((Element) element).raw.length; } - protected Element createElement(short[] raw) + protected Element createElement(byte[] raw) { return new Element(raw); } diff --git a/xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/EllipseElement.java b/xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/EllipseElement.java index ed020a2..57a4d89 100644 --- a/xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/EllipseElement.java +++ b/xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/EllipseElement.java @@ -1,12 +1,14 @@ package com.ximple.io.dgn7; +import java.nio.ByteOrder; + import com.vividsolutions.jts.geom.Coordinate; import com.vividsolutions.jts.geom.Geometry; import com.vividsolutions.jts.geom.GeometryFactory; public class EllipseElement extends Element implements GeometryConverter { - public EllipseElement(short[] raw) + public EllipseElement(byte[] raw) { super(raw); } @@ -31,10 +33,12 @@ public double getPrimary() { - short[] primary = new short[4]; - - System.arraycopy(raw, 18, primary, 0, 4); - + rawBuffer.position(18 * 2); + ByteOrder bo = rawBuffer.order(); + rawBuffer.order(ByteOrder.BIG_ENDIAN); + byte[] primary = new byte[8]; + rawBuffer.get(primary); + rawBuffer.order(bo); return Utility.convertDGNToIEEEDouble(primary) / 1000.0; } @@ -48,10 +52,12 @@ public double getSecondary() { - short[] secondary = new short[4]; - - System.arraycopy(raw, 22, secondary, 0, 4); - + rawBuffer.position(22 * 2); + ByteOrder bo = rawBuffer.order(); + rawBuffer.order(ByteOrder.BIG_ENDIAN); + byte[] secondary = new byte[8]; + rawBuffer.get(secondary); + rawBuffer.order(bo); return Utility.convertDGNToIEEEDouble(secondary) / 1000.0; } @@ -66,7 +72,6 @@ public double getRotationAngle() { int rotation = (raw[26] << 16 & 0xffff0000); - rotation |= raw[27] & 0x0000ffff; return Utility.converIntToRotation(rotation); @@ -82,16 +87,18 @@ public Coordinate getOrigin() { - short[] x = new short[4]; + rawBuffer.position(28 * 2); + ByteOrder bo = rawBuffer.order(); + rawBuffer.order(ByteOrder.BIG_ENDIAN); + byte[] rawValue = new byte[8]; - System.arraycopy(raw, 28, x, 0, 4); + rawBuffer.get(rawValue); // x + double dx = Utility.converUnitToCoord(Utility.convertDGNToIEEEDouble(rawValue)); - double dx = Utility.converUnitToCoord((int) Utility.convertDGNToIEEEDouble(x)); - short[] y = new short[4]; + rawBuffer.get(rawValue); // y + double dy = Utility.converUnitToCoord(Utility.convertDGNToIEEEDouble(rawValue)); - System.arraycopy(raw, 32, y, 0, 4); - - double dy = Utility.converUnitToCoord((int) Utility.convertDGNToIEEEDouble(y)); + rawBuffer.order(bo); return new Coordinate(dx, dy); } @@ -165,7 +172,7 @@ return instance; } - protected Element createElement(short[] raw) + protected Element createElement(byte[] raw) { return new EllipseElement(raw); } diff --git a/xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/LineElement.java b/xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/LineElement.java index 717ed73..9efdcfa 100644 --- a/xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/LineElement.java +++ b/xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/LineElement.java @@ -15,7 +15,7 @@ */ public class LineElement extends Element implements GeometryConverter { - public LineElement(short[] raw) + public LineElement(byte[] raw) { super(raw); } @@ -27,15 +27,11 @@ public Coordinate getEndPoint() { - int endX = (int) ((raw[22] << 16) & 0xffff0000); + int endX = ((raw[22] << 16) & 0xffff0000) | (raw[23] & 0x0000ffff); + int endY = ((raw[24] << 16) & 0xffff0000) | (raw[25] & 0x0000ffff); - endX = endX + (raw[23] & 0x0000ffff); - double x = Utility.converUnitToCoord(endX); - int endY = (int) ((raw[24] << 16) & 0xffff0000); - - endY = endY + (raw[25] & 0x0000ffff); - + double x = Utility.converUnitToCoord(endX); double y = Utility.converUnitToCoord(endY); return new Coordinate(x, y); @@ -53,12 +49,11 @@ public Coordinate getStartPoint() { - int startX = (int) ((raw[18] << 16) & 0xffff0000); - + int startX = ((raw[18] << 16) & 0xffff0000); startX = startX + (raw[19] & 0x0000ffff); double x = Utility.converUnitToCoord(startX); - int startY = (int) ((raw[20] << 16) & 0xffff0000); + int startY = ((raw[20] << 16) & 0xffff0000); startY = startY + (raw[21] & 0x0000ffff); @@ -121,7 +116,7 @@ return instance; } - protected Element createElement(short[] raw) + protected Element createElement(byte[] raw) { return new LineElement(raw); } diff --git a/xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/LineStringElement.java b/xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/LineStringElement.java index 5d0cb24..307f8c0 100644 --- a/xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/LineStringElement.java +++ b/xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/LineStringElement.java @@ -15,7 +15,7 @@ */ public class LineStringElement extends Element implements GeometryConverter { - public LineStringElement(short[] raw) + public LineStringElement(byte[] raw) { super(raw); } @@ -158,7 +158,7 @@ return instance; } - protected Element createElement(short[] raw) + protected Element createElement(byte[] raw) { return new LineStringElement(raw); } diff --git a/xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/ShapeElement.java b/xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/ShapeElement.java index 16b930c..6f7bda6 100644 --- a/xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/ShapeElement.java +++ b/xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/ShapeElement.java @@ -1,10 +1,7 @@ package com.ximple.io.dgn7; -//~--- non-JDK imports -------------------------------------------------------- - import org.apache.log4j.Logger; -import com.vividsolutions.jts.geom.Coordinate; import com.vividsolutions.jts.geom.Geometry; import com.vividsolutions.jts.geom.GeometryFactory; import com.vividsolutions.jts.geom.LinearRing; @@ -20,7 +17,7 @@ { static final Logger logger = Logger.getLogger(ShapeElement.class); - public ShapeElement(short[] raw) + public ShapeElement(byte[] raw) { super(raw); } @@ -57,7 +54,7 @@ return instance; } - protected Element createElement(short[] raw) + protected Element createElement(byte[] raw) { return new ShapeElement(raw); } diff --git a/xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/TcbElement.java b/xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/TcbElement.java index fe4de4a..fa05e9f 100644 --- a/xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/TcbElement.java +++ b/xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/TcbElement.java @@ -9,7 +9,7 @@ */ public class TcbElement extends Element { - public TcbElement(short[] raw) + public TcbElement(byte[] raw) { super(raw); } @@ -82,7 +82,7 @@ return instance; } - protected Element createElement(short[] raw) + protected Element createElement(byte[] raw) { return new TcbElement(raw); } 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 48bd4db..a013d5a 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 @@ -18,52 +18,52 @@ { public static final int ED_CENTERJUSTIFICATION = 0; -// Enter data field center justification + // Enter data field center justification public static final int ED_LEFTJUSTIFICATION = 0; -// Enter data field left justification + // Enter data field left justification public static final int ED_RIGHTJUSTIFICATION = 0; -// Enter data field right justification + // Enter data field right justification public static final int TXTJUST_CB = 0; -// Center/bottom text justification. + // Center/bottom text justification. public static final int TXTJUST_CC = 0; -// Center/center text justification. + // Center/center text justification. public static final int TXTJUST_CT = 0; -// Center/top text justification. + // Center/top text justification. public static final int TXTJUST_LB = 0; -// Left/bottom text justification. + // Left/bottom text justification. public static final int TXTJUST_LC = 0; -// Left/center text justification. + // Left/center text justification. public static final int TXTJUST_LT = 0; -// Left/top text justification. + // Left/top text justification. public static final int TXTJUST_RB = 0; -// Right/bottom text justification. + // Right/bottom text justification. public static final int TXTJUST_RC = 0; -// Right/center text justification. + // Right/center text justification. public static final int TXTJUST_RT = 0; - public TextElement(short[] raw) + public TextElement(byte[] raw) { super(raw); } public Coordinate getOrigin() { - int x = (int) (raw[25] << 16 & 0xffff0000); + int x = (raw[25] << 16 & 0xffff0000); x += raw[26] & 0x0000ffff; double dx = Utility.converUnitToCoord(x); - int y = (int) (raw[27] << 16 & 0xffff0000); + int y = (raw[27] << 16 & 0xffff0000); y += raw[28] & 0x0000ffff; @@ -75,10 +75,10 @@ public Coordinate getUserOrigin() { Coordinate origin = getOrigin(); - double x = origin.x; - double weight = getUserSetWeight(); - double height = getUserSetHeight(); - double angle = Utility.converRotationToRadian(getRotationAngle()); + double x = origin.x; + double weight = getUserSetWeight(); + double height = getUserSetHeight(); + double angle = Utility.converRotationToRadian(getRotationAngle()); x += weight * Math.cos(angle) - height * Math.sin(angle); @@ -91,29 +91,29 @@ private double getUserSetWeight() { - int just = getJustification(); - Envelope range = getRange(); - double weight = (range.getWidth()); + int just = getJustification(); + Envelope range = getRange(); + double weight = (range.getWidth()); switch (just) { - case 0 : - case 1 : - case 2 : + case 0: + case 1: + case 2: weight = 0; break; - case 6 : - case 7 : - case 8 : + case 6: + case 7: + case 8: weight = weight / 2; break; - case 12 : - case 13 : - case 14 : + case 12: + case 13: + case 14: break; } @@ -122,28 +122,28 @@ private double getUserSetHeight() { - int just = getJustification(); + int just = getJustification(); double height = getTextHeight(); switch (just) { - case 2 : - case 8 : - case 14 : // bottom + case 2: + case 8: + case 14: // bottom height = 0; break; - case 1 : - case 7 : - case 13 : // center + case 1: + case 7: + case 13: // center height = height / 2; break; - case 0 : - case 6 : - case 12 : // height + case 0: + case 6: + case 12: // height break; } @@ -182,7 +182,7 @@ public double getTextHeight() { - int height = (int) ((raw[21] << 16) & 0xffff0000); + int height = ((raw[21] << 16) & 0xffff0000); height += raw[22] & 0x0000ffff; @@ -191,7 +191,7 @@ public double getTextWidth() { - int length = (int) (raw[19] << 16 & 0xffff0000); + int length = (raw[19] << 16 & 0xffff0000); length += raw[20] & 0x0000ffff; @@ -200,12 +200,12 @@ public int getJustification() { - return (int) ((raw[18] >>> 8) & 0x00000000ff); + return ((raw[18] >>> 8) & 0x00000000ff); } public double getRotationAngle() { - int totation = (int) ((raw[23] << 16) & 0xffff0000); + int totation = ((raw[23] << 16) & 0xffff0000); totation += raw[24] & 0x0000ffff; @@ -216,13 +216,7 @@ { int isChinese = raw[30] & 0x0000ffff; - if (isChinese == 0xfdff) - { - return true; - } else - { - return false; - } + return (isChinese == 0xfdff); } public int getTextLength() @@ -240,8 +234,8 @@ public String getText() { StringBuffer val = new StringBuffer(); - char[] temp; - int num = getTextLength(); + char[] temp; + int num = getTextLength(); if (!isChinese()) { @@ -288,7 +282,7 @@ return instance; } - protected Element createElement(short[] raw) + protected Element createElement(byte[] raw) { return new TextElement(raw); } diff --git a/xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/TextNodeElement.java b/xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/TextNodeElement.java index 8cd87d7..eef53c2 100644 --- a/xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/TextNodeElement.java +++ b/xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/TextNodeElement.java @@ -23,7 +23,7 @@ { ArrayList list = new ArrayList(); - public TextNodeElement(short[] raw) + public TextNodeElement(byte[] raw) { super(raw); } @@ -283,7 +283,7 @@ return instance; } - protected Element createElement(short[] raw) + protected Element createElement(byte[] raw) { return new TextNodeElement(raw); } diff --git a/xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/Utility.java b/xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/Utility.java index 7540fed..25f8254 100644 --- a/xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/Utility.java +++ b/xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/Utility.java @@ -1,5 +1,10 @@ package com.ximple.io.dgn7; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; + +import org.apache.log4j.Logger; + import com.vividsolutions.jts.geom.Envelope; /** @@ -11,9 +16,10 @@ */ public final class Utility { + private static final Logger logger = Logger.getLogger(Utility.class); + public static double converIntToDouble(int src) { - return (double) ((long) ((src * 6) / 1000.0 + 0.5)) / 1000.0; } @@ -71,6 +77,16 @@ return newVal; } + public static double converUnitToCoord(double aValue) + { + double newVal; + + newVal = aValue / 1000.0; + newVal += 2147483.648; // 2147483.648 = 2 ^ 31 + + return newVal; + } + public static int converCoordToUnit(double aValue) { double newVal = aValue; @@ -103,22 +119,29 @@ converCoordToUnit(range.getMinY()), converCoordToUnit(range.getMaxY())); } - public static double convertDGNToIEEEDouble(short[] src) + public static long convertDGNToRAWIEEEDouble(byte[] org) { + ByteBuffer buf = ByteBuffer.allocate(8); + buf.order(ByteOrder.LITTLE_ENDIAN); + buf.mark(); + buf.put(org[2]); + buf.put(org[3]); + buf.put(org[0]); + buf.put(org[1]); + buf.put(org[6]); + buf.put(org[7]); + buf.put(org[4]); + buf.put(org[5]); + buf.position(0); + int[] tmp = new int[2]; - long des; - int sign; + + tmp[0] = buf.getInt(); + tmp[1] = buf.getInt(); + int exponent; - int rndbits; - if (src == null) - { - throw new RuntimeException("Source short array is null"); - } - - tmp[0] = ((src[0] << 16) & 0xffff0000) | (src[1] & 0x0000ffff); - tmp[1] = ((src[2] << 16) & 0xffff0000) | (src[3] & 0x0000ffff); - sign = (tmp[0] & 0x80000000); + int sign = (tmp[0] & 0x80000000); exponent = (tmp[0] >>> 23) & 0x000000ff; if (exponent != 0) @@ -126,7 +149,7 @@ exponent = exponent - 129 + 1023; } - rndbits = tmp[1] & 0x00000007; + int rndbits = tmp[1] & 0x00000007; tmp[1] = tmp[1] >>> 3; tmp[1] = (tmp[1] & 0x1fffffff) | (tmp[0] << 29); @@ -137,10 +160,28 @@ tmp[0] = (tmp[0] >>> 3) & 0x000fffff; tmp[0] = tmp[0] | (exponent << 20) | sign; - des = (((long) tmp[0] << 32)); - des = des | (long) tmp[1]; - return Double.longBitsToDouble(des); + buf.position(0); + buf.order(ByteOrder.BIG_ENDIAN); + buf.putInt(tmp[0]); + buf.putInt(tmp[1]); + buf.position(0); + byte[] tmpRaw = new byte[8]; + buf.get(tmpRaw); + buf.position(0); + buf.order(ByteOrder.LITTLE_ENDIAN); + for (int i = tmpRaw.length; i > 0 ; i--) + { + buf.put(tmpRaw[i-1]); + } + buf.position(0); + long result = buf.getLong(); + return result; + } + + public static double convertDGNToIEEEDouble(byte[] src) + { + return Double.longBitsToDouble(convertDGNToRAWIEEEDouble(src)); } public static short[] convertIEEEDoubleToDGN(double src) diff --git a/xdgnjobs/ximple-jobcarrier/src/main/resources/quartz_jobs.xml b/xdgnjobs/ximple-jobcarrier/src/main/resources/quartz_jobs.xml index 53991c5..4a2345d 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/jobs/GeneralDgnConvertJobContext.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/GeneralDgnConvertJobContext.java index 6062b40..eb4c087 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 @@ -336,6 +336,9 @@ } else if (element instanceof ArcElement) { ArcElement arcElement = (ArcElement) element; + logger.fatal("" + arcElement.getPrimary() + ":" + arcElement.getSecondary() + + "-" + arcElement.getStartAngle() + ":" + arcElement.getSweepAngle() + ":" + + arcElement.getRotationAngle() + ":" + arcElement.getOrigin()); convertDecorator.setConverter(arcElement); Geometry geom = convertDecorator.toGeometry(geometryFactory); if (geom != null) diff --git a/xdgnjobs/ximple-spatialjob/src/main/resources/conf/DefaultConvertShpFilter.xml b/xdgnjobs/ximple-spatialjob/src/main/resources/conf/DefaultConvertShpFilter.xml index a2e2bd1..e33a0f9 100644 --- a/xdgnjobs/ximple-spatialjob/src/main/resources/conf/DefaultConvertShpFilter.xml +++ b/xdgnjobs/ximple-spatialjob/src/main/resources/conf/DefaultConvertShpFilter.xml @@ -11,6 +11,33 @@ </elementCriterion> <LineCreateStrategy/> </TypeCompFilter> + <TypeCompFilter name="FSC-106.C-1"> + <tid>106</tid> + <cid>1</cid> + <description>�����u�u</description> + <elementCriterion> + <elementType>7</elementType> + </elementCriterion> + <LineCreateStrategy/> + </TypeCompFilter> + <TypeCompFilter name="FSC-106.C-2"> + <tid>106</tid> + <cid>2</cid> + <description>�����u�u���O</description> + <elementCriterion> + <elementType>7</elementType> + </elementCriterion> + <LineCreateStrategy/> + </TypeCompFilter> + <TypeCompFilter name="FSC-106.C-4"> + <tid>106</tid> + <cid>4</cid> + <description>�����u�X�u�N���u���O</description> + <elementCriterion> + <elementType>17</elementType> + </elementCriterion> + <LineCreateStrategy/> + </TypeCompFilter> <TypeCompFilter name="FSC-402.C-0"> <tid>402</tid> <cid>0</cid> @@ -26,6 +53,7 @@ <description>�ܹq�ҵ��O</description> <elementCriterion> <elementType>7</elementType> + <elementType>17</elementType> </elementCriterion> <TextCreateStrategy/> </TypeCompFilter> @@ -76,6 +104,123 @@ </elementCriterion> <TextCreateStrategy/> </TypeCompFilter> + <TypeCompFilter name="FSC-411.C-7"> + <tid>411</tid> + <cid>7</cid> + <description>�t�q��1/600�ޤW�U�Ÿ�</description> + <elementCriterion> + <elementType>17</elementType> + </elementCriterion> + <TextCreateStrategy/> + </TypeCompFilter> + <TypeCompFilter name="FSC-420.C-0"> + <tid>420</tid> + <cid>0</cid> + <description>��</description> + <elementCriterion> + <elementType>6</elementType> + </elementCriterion> + <TextCreateStrategy/> + </TypeCompFilter> + <TypeCompFilter name="FSC-420.C-1"> + <tid>420</tid> + <cid>1</cid> + <description>�����O</description> + <elementCriterion> + <elementType>17</elementType> + </elementCriterion> + <TextCreateStrategy/> + </TypeCompFilter> + <TypeCompFilter name="FSC-421.C-0"> + <tid>421</tid> + <cid>0</cid> + <description>�@�P�D</description> + <elementCriterion> + <elementType>6</elementType> + </elementCriterion> + <TextCreateStrategy/> + </TypeCompFilter> + <TypeCompFilter name="FSC-421.C-1"> + <tid>421</tid> + <cid>1</cid> + <description>�@�P�D���O</description> + <elementCriterion> + <elementType>17</elementType> + </elementCriterion> + <TextCreateStrategy/> + </TypeCompFilter> + <TypeCompFilter name="FSC-423.C-0"> + <tid>423</tid> + <cid>0</cid> + <description>���_��</description> + <elementCriterion> + <elementType>7</elementType> + </elementCriterion> + <TextCreateStrategy/> + </TypeCompFilter> + <TypeCompFilter name="FSC-423.C-1"> + <tid>423</tid> + <cid>1</cid> + <description>���_���u</description> + <elementCriterion> + <elementType>12</elementType> + </elementCriterion> + <TextCreateStrategy/> + </TypeCompFilter> + <TypeCompFilter name="FSC-424.C-0"> + <tid>424</tid> + <cid>0</cid> + <description>�S��u�k�X�вŸ�</description> + <elementCriterion> + <elementType>17</elementType> + </elementCriterion> + <TextCreateStrategy/> + </TypeCompFilter> + <TypeCompFilter name="FSC-501.C-0"> + <tid>501</tid> + <cid>0</cid> + <description>��ê���X</description> + <elementCriterion> + <elementType>6</elementType> + </elementCriterion> + <TextCreateStrategy/> + </TypeCompFilter> + <TypeCompFilter name="FSC-501.C-1"> + <tid>501</tid> + <cid>1</cid> + <description>��ê���X��r���O</description> + <elementCriterion> + <elementType>17</elementType> + </elementCriterion> + <TextCreateStrategy/> + </TypeCompFilter> + <TypeCompFilter name="FSC-502.C-0"> + <tid>502</tid> + <cid>0</cid> + <description>���D���X</description> + <elementCriterion> + <elementType>6</elementType> + </elementCriterion> + <TextCreateStrategy/> + </TypeCompFilter> + <TypeCompFilter name="FSC-502.C-1"> + <tid>502</tid> + <cid>1</cid> + <description>���D���X��r���O</description> + <elementCriterion> + <elementType>17</elementType> + </elementCriterion> + <TextCreateStrategy/> + </TypeCompFilter> + <TypeCompFilter name="FSC-503.C-0"> + <tid>503</tid> + <cid>0</cid> + <description>��r���O</description> + <elementCriterion> + <elementType>17</elementType> + </elementCriterion> + <TextCreateStrategy/> + </TypeCompFilter> <TypeCompFilter name="FSC-407.C-0"> <tid>407</tid> <cid>0</cid> @@ -110,6 +255,51 @@ <description>�q��-1/600���O</description> <elementCriterion> <elementType>7</elementType> + </elementCriterion> + <TextCreateStrategy/> + </TypeCompFilter> + <TypeCompFilter name="FSC-407.C-7"> + <tid>407</tid> + <cid>7</cid> + <description>1/600�q��ޤW�U�Ÿ�</description> + <elementCriterion> + <elementType>17</elementType> + </elementCriterion> + <TextCreateStrategy/> + </TypeCompFilter> + <TypeCompFilter name="FSC-407.C-8"> + <tid>407</tid> + <cid>8</cid> + <description>1/1200�q��ޤW�U�Ÿ�</description> + <elementCriterion> + <elementType>17</elementType> + </elementCriterion> + <TextCreateStrategy/> + </TypeCompFilter> + <TypeCompFilter name="FSC-407.C-9"> + <tid>407</tid> + <cid>9</cid> + <description>�q�������u</description> + <elementCriterion> + <elementType>17</elementType> + </elementCriterion> + <TextCreateStrategy/> + </TypeCompFilter> + <TypeCompFilter name="FSC-407.C-10"> + <tid>407</tid> + <cid>10</cid> + <description>�q��츹</description> + <elementCriterion> + <elementType>17</elementType> + </elementCriterion> + <TextCreateStrategy/> + </TypeCompFilter> + <TypeCompFilter name="FSC-407.C-11"> + <tid>407</tid> + <cid>11</cid> + <description>�q�������u���\</description> + <elementCriterion> + <elementType>17</elementType> </elementCriterion> <TextCreateStrategy/> </TypeCompFilter> @@ -327,6 +517,70 @@ </elementCriterion> <TextCreateStrategy/> </TypeCompFilter> + <TypeCompFilter name="FSC-115.C-2"> + <tid>115</tid> + <cid>2</cid> + <description>���O�t�ι�������</description> + <elementCriterion> + <elementType>17</elementType> + </elementCriterion> + <TextCreateStrategy/> + </TypeCompFilter> + <TypeCompFilter name="FSC-115.C-3"> + <tid>115</tid> + <cid>3</cid> + <description>���O�t�ι����������O</description> + <elementCriterion> + <elementType>17</elementType> + </elementCriterion> + <TextCreateStrategy/> + </TypeCompFilter> + <TypeCompFilter name="FSC-115.C-4"> + <tid>115</tid> + <cid>4</cid> + <description>�C���t�ι�������</description> + <elementCriterion> + <elementType>17</elementType> + </elementCriterion> + <TextCreateStrategy/> + </TypeCompFilter> + <TypeCompFilter name="FSC-115.C-5"> + <tid>115</tid> + <cid>5</cid> + <description>�C���t�ι����������O</description> + <elementCriterion> + <elementType>7</elementType> + </elementCriterion> + <TextCreateStrategy/> + </TypeCompFilter> + <TypeCompFilter name="FSC-115.C-6"> + <tid>115</tid> + <cid>6</cid> + <description>�C���t�ι�-�t�q�Ǯy�е��O</description> + <elementCriterion> + <elementType>17</elementType> + </elementCriterion> + <TextCreateStrategy/> + </TypeCompFilter> + <TypeCompFilter name="FSC-115.C-7"> + <tid>115</tid> + <cid>7</cid> + <description>�C���t�ι�-�t�q�Ǯy�е��O</description> + <elementCriterion> + <elementType>17</elementType> + </elementCriterion> + <TextCreateStrategy/> + </TypeCompFilter> + <TypeCompFilter name="FSC-115.C-8"> + <tid>115</tid> + <cid>8</cid> + <description>�[��������(�a�U�C����)���O</description> + <elementCriterion> + <elementType>7</elementType> + </elementCriterion> + <TextCreateStrategy/> + </TypeCompFilter> + <TypeCompFilter name="FSC-118.C-0"> <tid>118</tid> <cid>0</cid> @@ -357,12 +611,49 @@ <TypeCompFilter name="FSC-140.C-0"> <tid>140</tid> <cid>0</cid> - <description>�����u��</description> + <description>�����u��(�u���ϥ�)</description> <elementCriterion> <elementType>12</elementType> </elementCriterion> <LineCreateStrategy/> </TypeCompFilter> + <TypeCompFilter name="FSC-140.C-1"> + <tid>140</tid> + <cid>1</cid> + <description>�u(�u���ϥ�)</description> + <elementCriterion> + <elementType>12</elementType> + </elementCriterion> + <LineCreateStrategy/> + </TypeCompFilter> + <TypeCompFilter name="FSC-140.C-2"> + <tid>140</tid> + <cid>2</cid> + <description>�ɽu���O(�u���ϥ�)</description> + <elementCriterion> + <elementType>7</elementType> + </elementCriterion> + <LineCreateStrategy/> + </TypeCompFilter> + <TypeCompFilter name="FSC-140.C-3"> + <tid>140</tid> + <cid>3</cid> + <description>�X�u�N���u(�u���ϥ�)</description> + <elementCriterion> + <elementType>12</elementType> + </elementCriterion> + <LineCreateStrategy/> + </TypeCompFilter> + <TypeCompFilter name="FSC-140.C-4"> + <tid>140</tid> + <cid>4</cid> + <description>�X�u�N�����O(�u���ϥ�)</description> + <elementCriterion> + <elementType>17</elementType> + </elementCriterion> + <LineCreateStrategy/> + </TypeCompFilter> + <TypeCompFilter name="FSC-151.C-0"> <tid>150</tid> <cid>0</cid> @@ -388,6 +679,7 @@ <cid>0</cid> <description>����u</description> <elementCriterion> + <elementType>12</elementType> <elementType>17</elementType> </elementCriterion> <LineCreateStrategy/> @@ -425,6 +717,7 @@ <description>�����I���P���O</description> <elementCriterion> <elementType>7</elementType> + <elementType>17</elementType> </elementCriterion> <TextCreateStrategy/> </TypeCompFilter> @@ -658,6 +951,33 @@ </elementCriterion> <SymbolCreateStrategy/> </TypeCompFilter> + <TypeCompFilter name="FSC-216.C-1"> + <tid>216</tid> + <cid>1</cid> + <description>�C���ʵ������O</description> + <elementCriterion> + <elementType>17</elementType> + </elementCriterion> + <SymbolCreateStrategy/> + </TypeCompFilter> + <TypeCompFilter name="FSC-216.C-2"> + <tid>216</tid> + <cid>2</cid> + <description>�C���ʵ������P���O</description> + <elementCriterion> + <elementType>17</elementType> + </elementCriterion> + <SymbolCreateStrategy/> + </TypeCompFilter> + <TypeCompFilter name="FSC-217.C-0"> + <tid>217</tid> + <cid>0</cid> + <description>�C���a�U���</description> + <elementCriterion> + <elementType>17</elementType> + </elementCriterion> + <SymbolCreateStrategy/> + </TypeCompFilter> <!-- ���l --> <TypeCompFilter name="FSC-300.C-0"> <tid>300</tid> @@ -665,6 +985,7 @@ <description>�q�T���l�u</description> <elementCriterion> <elementType>4</elementType> + <elementType>12</elementType> </elementCriterion> <LineCreateStrategy/> </TypeCompFilter> @@ -710,6 +1031,25 @@ <description>���O����u</description> <elementCriterion> <elementType>4</elementType> + <elementType>12</elementType> + </elementCriterion> + <LineCreateStrategy/> + </TypeCompFilter> + <TypeCompFilter name="FSC-301.C-1"> + <tid>301</tid> + <cid>1</cid> + <description>���O����u�u�Ÿ�</description> + <elementCriterion> + <elementType>12</elementType> + </elementCriterion> + <LineCreateStrategy/> + </TypeCompFilter> + <TypeCompFilter name="FSC-301.C-3"> + <tid>301</tid> + <cid>3</cid> + <description>���O����u���O</description> + <elementCriterion> + <elementType>17</elementType> </elementCriterion> <LineCreateStrategy/> </TypeCompFilter> @@ -723,6 +1063,339 @@ </elementCriterion> <TextCreateStrategy/> </TypeCompFilter> + <TypeCompFilter name="FSC-113.C-0"> + <tid>113</tid> + <cid>0</cid> + <description>�����a�U���</description> + <elementCriterion> + <elementType>17</elementType> + </elementCriterion> + <LineCreateStrategy/> + </TypeCompFilter> + <TypeCompFilter name="FSC-403.C-0"> + <tid>403</tid> + <cid>0</cid> + <description>���C���H���</description> + <elementCriterion> + <elementType>17</elementType> + </elementCriterion> + <LineCreateStrategy/> + </TypeCompFilter> + <TypeCompFilter name="FSC-403.C-1"> + <tid>403</tid> + <cid>1</cid> + <description>���C���H��ծy�е��O</description> + <elementCriterion> + <elementType>17</elementType> + </elementCriterion> + <LineCreateStrategy/> + </TypeCompFilter> + <TypeCompFilter name="FSC-403.C-2"> + <tid>403</tid> + <cid>2</cid> + <description>���C���H��ն��Ÿ�</description> + <elementCriterion> + <elementType>17</elementType> + </elementCriterion> + <LineCreateStrategy/> + </TypeCompFilter> + <TypeCompFilter name="FSC-403.C-4"> + <tid>403</tid> + <cid>4</cid> + <description>���O�ն��</description> + <elementCriterion> + <elementType>17</elementType> + </elementCriterion> + <LineCreateStrategy/> + </TypeCompFilter> + <TypeCompFilter name="FSC-403.C-5"> + <tid>403</tid> + <cid>5</cid> + <description>���O�ծy�е��O</description> + <elementCriterion> + <elementType>17</elementType> + </elementCriterion> + <LineCreateStrategy/> + </TypeCompFilter> + <TypeCompFilter name="FSC-403.C-6"> + <tid>403</tid> + <cid>6</cid> + <description>���֤ն��Ÿ�</description> + <elementCriterion> + <elementType>17</elementType> + </elementCriterion> + <LineCreateStrategy/> + </TypeCompFilter> + <TypeCompFilter name="FSC-403.C-7"> + <tid>403</tid> + <cid>7</cid> + <description>���l�ծy�е��O(���l�ϥ�)</description> + <elementCriterion> + <elementType>17</elementType> + </elementCriterion> + <LineCreateStrategy/> + </TypeCompFilter> + <TypeCompFilter name="FSC-401.C-0"> + <tid>401</tid> + <cid>0</cid> + <description>��</description> + <elementCriterion> + <elementType>12</elementType> + </elementCriterion> + <LineCreateStrategy/> + </TypeCompFilter> + <TypeCompFilter name="FSC-401.C-1"> + <tid>401</tid> + <cid>1</cid> + <description>���u</description> + <elementCriterion> + <elementType>12</elementType> + </elementCriterion> + <LineCreateStrategy/> + </TypeCompFilter> + <TypeCompFilter name="FSC-401.C-2"> + <tid>401</tid> + <cid>2</cid> + <description>���U</description> + <elementCriterion> + <elementType>17</elementType> + </elementCriterion> + <LineCreateStrategy/> + </TypeCompFilter> + <TypeCompFilter name="FSC-401.C-3"> + <tid>401</tid> + <cid>3</cid> + <description>����r�������O</description> + <elementCriterion> + <elementType>7</elementType> + </elementCriterion> + <LineCreateStrategy/> + </TypeCompFilter> + <TypeCompFilter name="FSC-401.C-5"> + <tid>401</tid> + <cid>5</cid> + <description>���_���Ϭq�Ϲj</description> + <elementCriterion> + <elementType>17</elementType> + </elementCriterion> + <LineCreateStrategy/> + </TypeCompFilter> + <TypeCompFilter name="FSC-302.C-0"> + <tid>302</tid> + <cid>0</cid> + <description>���O�t���u</description> + <elementCriterion> + <elementType>17</elementType> + </elementCriterion> + <LineCreateStrategy/> + </TypeCompFilter> + <TypeCompFilter name="FSC-302.C-1"> + <tid>302</tid> + <cid>1</cid> + <description>���O�t���u���O</description> + <elementCriterion> + <elementType>17</elementType> + </elementCriterion> + <LineCreateStrategy/> + </TypeCompFilter> + <TypeCompFilter name="FSC-303.C-0"> + <tid>303</tid> + <cid>0</cid> + <description>���O�ާ@�u</description> + <elementCriterion> + <elementType>12</elementType> + </elementCriterion> + <LineCreateStrategy/> + </TypeCompFilter> + <TypeCompFilter name="FSC-303.C-1"> + <tid>303</tid> + <cid>1</cid> + <description>���O�ާ@�u�u</description> + <elementCriterion> + <elementType>12</elementType> + </elementCriterion> + <LineCreateStrategy/> + </TypeCompFilter> + <TypeCompFilter name="FSC-303.C-3"> + <tid>303</tid> + <cid>3</cid> + <description>���O�ާ@�u���O</description> + <elementCriterion> + <elementType>17</elementType> + </elementCriterion> + <LineCreateStrategy/> + </TypeCompFilter> + <TypeCompFilter name="FSC-305.C-0"> + <tid>305</tid> + <cid>0</cid> + <description>���O�I����</description> + <elementCriterion> + <elementType>17</elementType> + </elementCriterion> + <LineCreateStrategy/> + </TypeCompFilter> + <TypeCompFilter name="FSC-306.C-0"> + <tid>306</tid> + <cid>0</cid> + <description>���O�ɱ��}��</description> + <elementCriterion> + <elementType>17</elementType> + </elementCriterion> + <LineCreateStrategy/> + </TypeCompFilter> + <TypeCompFilter name="FSC-307.C-0"> + <tid>307</tid> + <cid>0</cid> + <description>���O���[�I</description> + <elementCriterion> + <elementType>17</elementType> + </elementCriterion> + <LineCreateStrategy/> + </TypeCompFilter> + <TypeCompFilter name="FSC-308.C-0"> + <tid>308</tid> + <cid>0</cid> + <description>���O��</description> + <elementCriterion> + <elementType>17</elementType> + </elementCriterion> + <LineCreateStrategy/> + </TypeCompFilter> + <TypeCompFilter name="FSC-311.C-0"> + <tid>311</tid> + <cid>0</cid> + <description>���O�x�b</description> + <elementCriterion> + <elementType>17</elementType> + </elementCriterion> + <LineCreateStrategy/> + </TypeCompFilter> + <TypeCompFilter name="FSC-311.C-1"> + <tid>311</tid> + <cid>1</cid> + <description>���O�x�b�ϸ�(�e�q.����)���O</description> + <elementCriterion> + <elementType>7</elementType> + </elementCriterion> + <LineCreateStrategy/> + </TypeCompFilter> + <TypeCompFilter name="FSC-314.C-0"> + <tid>314</tid> + <cid>0</cid> + <description>�[�Ÿ��O�t���u</description> + <elementCriterion> + <elementType>12</elementType> + </elementCriterion> + <LineCreateStrategy/> + </TypeCompFilter> + <TypeCompFilter name="FSC-314.C-1"> + <tid>314</tid> + <cid>1</cid> + <description>�[�Ÿ��O�t���u���O</description> + <elementCriterion> + <elementType>7</elementType> + </elementCriterion> + <LineCreateStrategy/> + </TypeCompFilter> + <TypeCompFilter name="FSC-315.C-0"> + <tid>315</tid> + <cid>0</cid> + <description>�[�Ÿ��O����u</description> + <elementCriterion> + <elementType>12</elementType> + </elementCriterion> + <LineCreateStrategy/> + </TypeCompFilter> + <TypeCompFilter name="FSC-315.C-1"> + <tid>315</tid> + <cid>1</cid> + <description>�[�Ÿ��O����u</description> + <elementCriterion> + <elementType>7</elementType> + </elementCriterion> + <LineCreateStrategy/> + </TypeCompFilter> + <TypeCompFilter name="FSC-316.C-0"> + <tid>316</tid> + <cid>0</cid> + <description>���O����</description> + <elementCriterion> + <elementType>17</elementType> + </elementCriterion> + <LineCreateStrategy/> + </TypeCompFilter> + <TypeCompFilter name="FSC-317.C-0"> + <tid>317</tid> + <cid>0</cid> + <description>���O����}��</description> + <elementCriterion> + <elementType>17</elementType> + </elementCriterion> + <LineCreateStrategy/> + </TypeCompFilter> + <TypeCompFilter name="FSC-317.C-1"> + <tid>317</tid> + <cid>1</cid> + <description>���O����}�����O</description> + <elementCriterion> + <elementType>17</elementType> + </elementCriterion> + <LineCreateStrategy/> + </TypeCompFilter> + <TypeCompFilter name="FSC-318.C-0"> + <tid>318</tid> + <cid>0</cid> + <description>���O�y��</description> + <elementCriterion> + <elementType>12</elementType> + </elementCriterion> + <LineCreateStrategy/> + </TypeCompFilter> + <TypeCompFilter name="FSC-319.C-0"> + <tid>319</tid> + <cid>0</cid> + <description>���֦��e</description> + <elementCriterion> + <elementType>17</elementType> + </elementCriterion> + <LineCreateStrategy/> + </TypeCompFilter> + <TypeCompFilter name="FSC-320.C-0"> + <tid>320</tid> + <cid>0</cid> + <description>���ֳq�T���Y</description> + <elementCriterion> + <elementType>17</elementType> + </elementCriterion> + <LineCreateStrategy/> + </TypeCompFilter> + <TypeCompFilter name="FSC-323.C-0"> + <tid>323</tid> + <cid>0</cid> + <description>���q�ഫ��</description> + <elementCriterion> + <elementType>17</elementType> + </elementCriterion> + <LineCreateStrategy/> + </TypeCompFilter> + <TypeCompFilter name="FSC-324.C-0"> + <tid>324</tid> + <cid>0</cid> + <description>�۰ʤƻ�����</description> + <elementCriterion> + <elementType>17</elementType> + </elementCriterion> + <LineCreateStrategy/> + </TypeCompFilter> + <TypeCompFilter name="FSC-324.C-1"> + <tid>324</tid> + <cid>1</cid> + <description>�۰ʤƻ��������O</description> + <elementCriterion> + <elementType>17</elementType> + </elementCriterion> + <LineCreateStrategy/> + </TypeCompFilter> <!-- Dummy <TypeCompLevelFilter name="DemoFeature3"> <tid>999</tid> -- Gitblit v0.0.0-SNAPSHOT