Author: dlanglais Date: 2010-03-10 15:18:42 +0100 (Wed, 10 Mar 2010) New Revision: 206 Log: gestion d'?\195?\169tat pour le parser XML XPP3 Modified: trunk/msm-fromtoXPP3/src/main/java/org/nuiton/mapstoragemanager/plugins/exporter/ToXMLXPP3.java trunk/msm-fromtoXPP3/src/main/java/org/nuiton/mapstoragemanager/plugins/importer/FromXMLXPP3.java trunk/msm-fromtoXPP3/src/test/java/org/nuiton/mapstoragemanager/plugins/exporter/ToXMLXPP3Test.java trunk/msm-fromtoXPP3/src/test/resources/fiveColumns.xml Modified: trunk/msm-fromtoXPP3/src/main/java/org/nuiton/mapstoragemanager/plugins/exporter/ToXMLXPP3.java =================================================================== --- trunk/msm-fromtoXPP3/src/main/java/org/nuiton/mapstoragemanager/plugins/exporter/ToXMLXPP3.java 2010-03-10 13:28:21 UTC (rev 205) +++ trunk/msm-fromtoXPP3/src/main/java/org/nuiton/mapstoragemanager/plugins/exporter/ToXMLXPP3.java 2010-03-10 14:18:42 UTC (rev 206) @@ -5,16 +5,12 @@ package org.nuiton.mapstoragemanager.plugins.exporter; import java.io.File; -import java.io.FileOutputStream; import java.io.FileWriter; import java.io.IOException; import javax.swing.filechooser.FileFilter; import javax.swing.filechooser.FileNameExtensionFilter; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.jdom.Document; -import org.jdom.output.Format; -import org.jdom.output.XMLOutputter; import org.nuiton.mapstoragemanager.plugins.Exporter; import org.nuiton.mapstoragemanager.plugins.BigTable; @@ -34,10 +30,6 @@ */ private static final Log LOG = LogFactory.getLog(ToXMLXPP3.class); /** - * the jdom document. - */ - private static Document document; - /** * the fileFilter. */ private static FileFilter fileFilter; Modified: trunk/msm-fromtoXPP3/src/main/java/org/nuiton/mapstoragemanager/plugins/importer/FromXMLXPP3.java =================================================================== --- trunk/msm-fromtoXPP3/src/main/java/org/nuiton/mapstoragemanager/plugins/importer/FromXMLXPP3.java 2010-03-10 13:28:21 UTC (rev 205) +++ trunk/msm-fromtoXPP3/src/main/java/org/nuiton/mapstoragemanager/plugins/importer/FromXMLXPP3.java 2010-03-10 14:18:42 UTC (rev 206) @@ -30,7 +30,7 @@ /** * Parsing State. */ -// private ParsingState state; + private ParsingState state; /** * Current Table, needed when create the database to know in which table * we are to add a new column. @@ -90,7 +90,7 @@ do { if(eventType == XmlPullParser.START_DOCUMENT) { LOG.info("Start document"); -// state = ParsingState.START; + state = ParsingState.START; } else if(eventType == XmlPullParser.END_DOCUMENT) { LOG.info("End document"); } else if(eventType == XmlPullParser.START_TAG) { @@ -123,26 +123,42 @@ "\tAttributes : " + attributes.toString()); - if("describe".equals(elementName)) { /** Element Describe */ -// state = ParsingState.START_DESCRIBE_DATABASE; - } else if ("table".equals(elementName)) { /** Element Table */ -// state = ParsingState.START_DESCRIBE_TABLE; + if(isState(ParsingState.START) + && "describe".equals(elementName)) { /** Element Describe */ + + state = ParsingState.START_DESCRIBE_DATABASE; + + } else if (isState(ParsingState.START_DESCRIBE_DATABASE, + ParsingState.END_DESCRIBE_TABLE) + && "table".equals(elementName)) { /** Element Table */ + + state = ParsingState.START_DESCRIBE_TABLE; { final String tableName = attributes.get("tableName"); LOG.info("Create Table : " + tableName); bigTable.createTable(tableName); currentTable = tableName; } - } else if ("column".equals(elementName)) { /** Element Column */ -// state = ParsingState.START_DESCRIBE_COLUMN; + + } else if (isState(ParsingState.START_DESCRIBE_TABLE, + ParsingState.END_DESCRIBE_COLUMN) + && "column".equals(elementName)) { /** Element Column */ + + state = ParsingState.START_DESCRIBE_COLUMN; { final String columnName = attributes.get("columnName"); LOG.info("Create Column : " + currentTable + ":" + columnName); bigTable.createColumn(currentTable, columnName); } - } else if ("insert".equals(elementName)) { /** Element Insert */ -// state = ParsingState.START_INSERT_DATA; - } else if ("element".equals(elementName)) { /** Element Element */ + + } else if (isState(ParsingState.END_DESCRIBE_DATABASE) + && "insert".equals(elementName)) { /** Element Insert */ + + state = ParsingState.INSERT_DATA; + + } else if (isState(ParsingState.INSERT_DATA) + && "element".equals(elementName)) { /** Element Element */ + // state = ParsingState.INSERT_DATA; { // if(attributes.keySet().contains("version")) { @@ -165,6 +181,7 @@ attributes.get("value")); // } } + } } @@ -177,15 +194,15 @@ final String elementName = xpp.getName(); if("describe".equals(elementName)) { /** Element Describe */ -// state = ParsingState.END_DESCRIBE_DATABASE; + state = ParsingState.END_DESCRIBE_DATABASE; } else if ("table".equals(elementName)) { /** Element Table */ -// state = ParsingState.END_DESCRIBE_TABLE; + state = ParsingState.END_DESCRIBE_TABLE; } else if ("column".equals(elementName)) { /** Element Column */ -// state = ParsingState.END_DESCRIBE_COLUMN; + state = ParsingState.END_DESCRIBE_COLUMN; } else if ("insert".equals(elementName)) { /** Element Insert */ -// state = ParsingState.END_INSERT_DATA; + state = ParsingState.END_INSERT_DATA; } else if ("element".equals(elementName)) { /** Element Element */ -// state = ParsingState.INSERT_DATA; + state = ParsingState.INSERT_DATA; } } @@ -194,15 +211,15 @@ * @param states set of state * @return true if actual state is in <b>states</b>. */ -// private boolean isState(ParsingState ... states) { -// boolean isState = false; -// for (ParsingState state : states) { -// if (this.state.equals(state)) { -// isState = true; -// } -// } -// return isState; -// } + private boolean isState(ParsingState ... states) { + boolean isState = false; + for (ParsingState state : states) { + if (this.state.equals(state)) { + isState = true; + } + } + return isState; + } /** * {@inheritDoc} Modified: trunk/msm-fromtoXPP3/src/test/java/org/nuiton/mapstoragemanager/plugins/exporter/ToXMLXPP3Test.java =================================================================== --- trunk/msm-fromtoXPP3/src/test/java/org/nuiton/mapstoragemanager/plugins/exporter/ToXMLXPP3Test.java 2010-03-10 13:28:21 UTC (rev 205) +++ trunk/msm-fromtoXPP3/src/test/java/org/nuiton/mapstoragemanager/plugins/exporter/ToXMLXPP3Test.java 2010-03-10 14:18:42 UTC (rev 206) @@ -6,12 +6,16 @@ package org.nuiton.mapstoragemanager.plugins.exporter; import java.io.File; +import java.util.HashSet; +import java.util.Set; +import javax.swing.filechooser.FileNameExtensionFilter; import junit.framework.TestCase; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.mapstoragemanager.plugins.BigTable; import org.nuiton.mapstoragemanager.plugins.Exporter; import org.nuiton.mapstoragemanager.plugins.Importer; +import org.nuiton.mapstoragemanager.plugins.Plugin; import org.nuiton.mapstoragemanager.plugins.bighashmapv2.BigHashMapV2; import org.nuiton.mapstoragemanager.plugins.getFile; import org.nuiton.mapstoragemanager.plugins.importer.FromXMLXPP3; @@ -192,6 +196,50 @@ exportTest.delete(); } + /** + * Test of getPluginName(). + */ + public void testGetPluginName() { + Plugin fromXML = new FromXMLXPP3(); + String expectedPluginName = fromXML.getClass().getSimpleName(); + String actualPluginName = fromXML.getPluginName(); + LOG.info("pluginName : {expected,'" + expectedPluginName + + "'} - {actual,'" + actualPluginName + "'}"); + assertEquals(expectedPluginName, actualPluginName); + } + + /** + * Test of getFileFilter. + */ + public void testGetFileFilter(){ + + Importer fromXML = new FromXMLXPP3(); + + FileNameExtensionFilter fileFilterExpected + = new FileNameExtensionFilter("Fichiers XML", "xml"); + FileNameExtensionFilter fileFilterActual = + (FileNameExtensionFilter) fromXML.getFileFilter(); + + /** Same Description */ + assertEquals(fileFilterExpected.getDescription(), + fileFilterActual.getDescription()); + + /** get extension Set and assertEquals */ + Set<String> acceptedExtensionExpected = new HashSet<String>(); + Set<String> acceptedExtensionActual = new HashSet<String>(); + for (String extension : fileFilterExpected.getExtensions()) { + acceptedExtensionExpected.add(extension); + } + for (String extension : fileFilterActual.getExtensions()) { + acceptedExtensionActual.add(extension); + } + assertEquals(acceptedExtensionExpected, acceptedExtensionActual); + } + + /** + * Main to test... + * @param args args. + */ public static void main(String[] args) { Exporter exporter = new ToXMLXPP3(); Modified: trunk/msm-fromtoXPP3/src/test/resources/fiveColumns.xml =================================================================== --- trunk/msm-fromtoXPP3/src/test/resources/fiveColumns.xml 2010-03-10 13:28:21 UTC (rev 205) +++ trunk/msm-fromtoXPP3/src/test/resources/fiveColumns.xml 2010-03-10 14:18:42 UTC (rev 206) @@ -9,6 +9,7 @@ <column columnName="column3" /> <column columnName="column4" /> <column columnName="column5" /> - </table></describe> + </table> + </describe> </database>