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/test/java/com/ximple/io/dgn7/Dgn7fileWriterTest.java |   47 ++++++++++++++++-------------------------------
 1 files changed, 16 insertions(+), 31 deletions(-)

diff --git a/xdgnjobs/ximple-dgnio/src/test/java/com/ximple/io/dgn7/Dgn7fileWriterTest.java b/xdgnjobs/ximple-dgnio/src/test/java/com/ximple/io/dgn7/Dgn7fileWriterTest.java
index 0e8c65d..2d87990 100644
--- a/xdgnjobs/ximple-dgnio/src/test/java/com/ximple/io/dgn7/Dgn7fileWriterTest.java
+++ b/xdgnjobs/ximple-dgnio/src/test/java/com/ximple/io/dgn7/Dgn7fileWriterTest.java
@@ -3,6 +3,7 @@
 import org.apache.commons.io.FileUtils;
 import org.apache.log4j.Logger;
 import org.geotools.TestData;
+import org.testng.Assert;
 import org.testng.annotations.BeforeTest;
 import org.testng.annotations.Test;
 
@@ -58,52 +59,31 @@
             if (record.element() != null) {
                 Element element = (Element) record.element();
                 ElementType type = element.getElementType();
-
+                boolean completed = false;
                 if ((!type.isComplexElement()) && (!element.isComponentElement())) {
                     if (lastComplex != null) {
                         // @todo add process in here
+                        processCompleteElement(lastComplex, writer);
                         lastComplex = null;
                     }
 
                     // @todo add process in here
+                    processCompleteElement(element, writer);
                 } else if (element.isComponentElement()) {
                     if (lastComplex != null) {
                         ((ComplexElement) lastComplex).add(element);
+                    } else {
+                        logger.warn("wong." + element.toString());
+                        Assert.fail("Component Element cannot found parent.");
                     }
                 } else if (type.isComplexElement()) {
-                    if (lastComplex == null) {
-                        lastComplex = element;
-                    } else {
+                    if (lastComplex != null) {
                         // @todo add process in here
-                        lastComplex = element;
+                        processCompleteElement(lastComplex, writer);
                     }
+                    lastComplex = element;
                 }
-
-                if (element.getElementType().isComplexElement()) {
-                    if (element instanceof ComplexChainElement) {
-                        ComplexChainElement complexChain = (ComplexChainElement) element;
-                        int size = complexChain.size();
-                        for (Object aComplexChain : complexChain) {
-                            Element subElement = (Element) aComplexChain;
-                            subElement.getType();
-                        }
-                    }
-
-                    if (element instanceof ComplexShapeElement) {
-                        ComplexShapeElement complexShape = (ComplexShapeElement) element;
-                    }
-
-                    if (element instanceof TextNodeElement) {
-                        TextNodeElement textNode = (TextNodeElement) element;
-                        int size = textNode.size();
-                        for (int i = 0; i < size; i++) {
-                            Element subElement = textNode.get(i);
-                            subElement.getElementType();
-                        }
-                    }
-                }
-
-                writer.writeElement(element);
+                // writer.writeElement(element);
             }
             count++;
         }
@@ -112,4 +92,9 @@
 
         // FileUtils.copyFile(target, new File("G://target.dgn"));
     }
+
+    private boolean processCompleteElement(Element element, Dgn7fileWriter writer) throws IOException {
+        writer.writeElement(element);
+        return true;
+    }
 }

--
Gitblit v0.0.0-SNAPSHOT