package com.ximple.io.dgn7; import java.io.IOException; import java.sql.SQLException; import java.util.List; import org.testng.annotations.BeforeTest; import org.testng.annotations.Test; import com.vividsolutions.jts.geom.Coordinate; import com.ximple.util.PrintfFormat; import oracle.jdbc.OracleConnection; /** * Dgn7OracleReaderTest * User: Ulysses * Date: 2007/10/24 * Time: 上午 10:49:54 */ public class Dgn7OracleReaderTest { @BeforeTest public void setUp() { } @Test public void testOracleReader() throws SQLException, IOException { OracleConnection connection = OracleTarget.getInstance().getOracleConnection(); // String fetchSrcStmtFmt = "SELECT IGDSELM FROM \"%s\".\"%s\" ORDER BY ROWID"; String fetchSrcStmtFmt = "SELECT IGDSELM FROM \"%s\".\"%s\" WHERE TAG_SFSC=106 ORDER BY ROWID"; PrintfFormat spf = new PrintfFormat(fetchSrcStmtFmt); String srcschema = "SPATIALDB"; String srctable = "IGSET_1"; String fetchSrcStmt = spf.sprintf(new Object[]{srcschema, srctable}); Dgn7OracleReader reader = new Dgn7OracleReader(fetchSrcStmt, "IGDSELM", connection); int count = 0; while (reader.hasNext()) { Element element = reader.next(); if (element instanceof ComplexChainElement) { ComplexChainElement complexChain = (ComplexChainElement) element; FrammeAttributeData frammeLinkage = null; List attrs = complexChain.getUserAttributeData(); for (int k = 0; k < attrs.size(); k++) { UserAttributeData userAttr = attrs.get(k); if (userAttr instanceof FrammeAttributeData) { frammeLinkage = (FrammeAttributeData) userAttr; break; } } System.out.print("complexChain:"); if (frammeLinkage != null) System.out.print(":FSC-" + frammeLinkage.getFsc() + ":UFID-" + frammeLinkage.getUfid() + ":COMP-" + frammeLinkage.getComponentID()); else System.out.print("Linkage is null"); for (int i = 0; i < complexChain.size(); i++) { Element elm = (Element) complexChain.get(i); if (elm instanceof LineStringElement) { LineStringElement lineStringElement = (LineStringElement) elm; int size = lineStringElement.getVerticeSize(); System.out.print("size=" + size + ":"); Coordinate[] coords = lineStringElement.getVertices(); for (int j = 0; j < coords.length; j++) System.out.print("[" + j + "]" + coords[j].toString()); } } System.out.println(); } else if (element instanceof TextNodeElement) { TextNodeElement textNode = (TextNodeElement) element; FrammeAttributeData frammeLinkage = null; List attrs = textNode.getUserAttributeData(); for (int k = 0; k < attrs.size(); k++) { UserAttributeData userAttr = attrs.get(k); if (userAttr instanceof FrammeAttributeData) { frammeLinkage = (FrammeAttributeData) userAttr; break; } } Coordinate coord = textNode.getOrigin(); System.out.print("TextNode:origin=" + coord.toString()); if (frammeLinkage != null) System.out.print(":FSC-" + frammeLinkage.getFsc() + ":UFID-" + frammeLinkage.getUfid() + ":COMP-" + frammeLinkage.getComponentID()); else System.out.print("Linkage is null"); for (int i = 0; i < textNode.size(); i++) { Element elm = (Element) textNode.get(i); if (elm instanceof TextElement) { TextElement textElm = (TextElement) elm; System.out.print("---"); String text = textElm.getText(); System.out.print("'" + text + "'"); } } System.out.println(); } } } }