From 6523c1f6534042d89ff8a07d4e7c06050276521e Mon Sep 17 00:00:00 2001 From: ?? ? <ulysseskao@ximple.com.tw> Date: Thu, 22 Apr 2010 16:31:12 +0800 Subject: [PATCH] dgn7 write function for complex chain --- xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/Dgn7fileWriter.java | 15 ++++++++++++++- 1 files changed, 14 insertions(+), 1 deletions(-) diff --git a/xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/Dgn7fileWriter.java b/xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/Dgn7fileWriter.java index fded903..6e475cd 100644 --- a/xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/Dgn7fileWriter.java +++ b/xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/Dgn7fileWriter.java @@ -304,8 +304,19 @@ } public void writeElement(Element element) throws IOException { - // element.raw if (element == null) return; + if (element.getElementType().isComplexElement()) { + writeTo(element); + ComplexElement complexElement = (ComplexElement) element; + for (Element component : complexElement) { + writeTo(component); + } + } else { + writeTo(element); + } + } + + private void writeTo(Element element) throws IOException { ByteBuffer writeBuffer = ByteBuffer.allocateDirect(element.raw.length * 2); writeBuffer.order(ByteOrder.LITTLE_ENDIAN); for (short word : element.raw) { @@ -316,6 +327,8 @@ channel.write(writeBuffer); } + + public void toEnd() throws IOException, Dgn7fileException { while (hasNext()) { nextElement(); -- Gitblit v0.0.0-SNAPSHOT