X-Git-Url: http://secure.phpeclipse.com diff --git a/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/model/BookmarkCollection.java b/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/model/BookmarkCollection.java index 184f790..882f111 100644 --- a/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/model/BookmarkCollection.java +++ b/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/model/BookmarkCollection.java @@ -75,29 +75,18 @@ public class BookmarkCollection { bookmark.setUsername(props.getProperty(i + ".username")); //$NON-NLS-1$ bookmark.setPassword(props.getProperty(i + ".password")); //$NON-NLS-1$ bookmark.setConnect(props.getProperty(i + ".connect")); //$NON-NLS-1$ - bookmark.setDriver(props.getProperty(i + ".driver")); //$NON-NLS-1$ String schema = props.getProperty(i + ".schema"); //$NON-NLS-1$ if (schema != null) { bookmark.addSchema(schema); } - String type = props.getProperty(i + ".type"); //$NON-NLS-1$ - if (type != null) { - bookmark.setType(type); - } else { - bookmark.setType(""); //$NON-NLS-1$ - } - String driverFile = props.getProperty(i + ".driverLocation"); //$NON-NLS-1$ - if (driverFile != null) { - bookmark.setDriverFile(driverFile); - } else { - bookmark.setDriverFile(""); //$NON-NLS-1$ - } - System.out.println(bookmark.toString()); if (!bookmark.isEmpty()) { newBookmarks.add(bookmark); } i++; - this.drivers.add(new JDBCDriver(bookmark.getDriver(), driverFile)); + String driver = props.getProperty(i + ".driver"); //$NON-NLS-1$ + String driverFile = props.getProperty(i + ".driverLocation"); //$NON-NLS-1$ + String type = props.getProperty(i + ".type"); //$NON-NLS-1$ + this.drivers.add(new JDBCDriver(driver, driverFile, type)); } if (overwrite) { this.bookmarks = newBookmarks; @@ -164,11 +153,16 @@ public class BookmarkCollection { NodeList nodes = root.getElementsByTagName("jdbcDriver"); //$NON-NLS-1$ for (int i = 0; i < nodes.getLength(); i++) { Element driver = (Element) nodes.item(i); - addDriver(new JDBCDriver( - driver.getAttribute("className"), - driver.getAttribute("jarFileName"), - driver.getAttribute("name"), - driver.getAttribute("version"))); + + if (!"".equals(driver.getAttribute("type"))) { + addDriver(new JDBCDriver( + driver.getAttribute("className"), + driver.getAttribute("jarFileName"), + driver.getAttribute("type"), + driver.getAttribute("name"), + driver.getAttribute("version"))); + } + } } @@ -206,18 +200,21 @@ public class BookmarkCollection { bookmark.setAutoCommit(Boolean.TRUE.toString().equalsIgnoreCase( MetaDataXMLInterface.getElementText(column,"autoCommit", "True"))); //$NON-NLS-1$ bookmark.setAutoCommitPreference(MetaDataXMLInterface.getElementText(column,"autoCommitPreference", IQuantumConstants.autoCommitTrue)); //$NON-NLS-1$ - bookmark.addSchema(MetaDataXMLInterface.getElementText(column,"schema")); //$NON-NLS-1$ - bookmark.setType(MetaDataXMLInterface.getElementText(column,"type")); //$NON-NLS-1$ - NodeList children = column.getElementsByTagName(Messages.getString("ExportXMLAction.OtherSchemas")); + + backwardCompatibility(bookmark, column); String driverClassName = MetaDataXMLInterface.getElementText(column,"driver"); //$NON-NLS-1$ String driverFile = MetaDataXMLInterface.getElementText(column,"driverLocation"); //$NON-NLS-1$ + String type = MetaDataXMLInterface.getElementText(column,"type"); //$NON-NLS-1$ - bookmark.setJDBCDriver(new JDBCDriver(driverClassName, driverFile)); + bookmark.setJDBCDriver(new JDBCDriver(driverClassName, driverFile, type)); + NodeList children = column.getElementsByTagName("Other_Schemas"); if (children.getLength() > 0) { importSchemas((Element) children.item(0), bookmark); } + + System.out.println(bookmark.toString()); if (!bookmark.isEmpty()) { newBookmarks.addElement(bookmark); @@ -228,17 +225,51 @@ public class BookmarkCollection { return newBookmarks; } + /** + * Earlier versions of the xml file expected one schema element under the + * bookmark element. This method sees if it exists. + * + * @param bookmark + * @param element + */ + private void backwardCompatibility(Bookmark bookmark, Element element) { + NodeList children = element.getChildNodes(); + for (int i = 0, length = children.getLength(); i < length; i++) { + Node node = children.item(i); + if (node.getNodeType() == Node.ELEMENT_NODE && + "schema".equals(((Element) node).getTagName())) { + String schema = MetaDataXMLInterface.extractText(element,""); + if (schema != null && schema.trim().length() > 0) { + bookmark.addSchema(schema); + } + } + } + } + private void importSchemas(Element otherSchemas, Bookmark bookmark) { - Vector vector = MetaDataXMLInterface.getVectorText(otherSchemas, Messages.getString("ExportXMLAction.SchemaName")); List list = new ArrayList(); - for (Iterator i = vector.iterator(); i.hasNext();) { - String schemaName = (String) i.next(); - list.add(new Schema(schemaName)); + NodeList children = otherSchemas.getChildNodes(); + for (int i = 0, length = children.getLength(); i < length; i++) { + Node node = children.item(i); + if (node.getNodeType() == Node.ELEMENT_NODE + && "schema".equalsIgnoreCase(((Element) node).getTagName())) { + list.add(new Schema( + MetaDataXMLInterface.extractText((Element) node, ""))); + } + } + + String schemaRule = otherSchemas.getAttribute("schemaRule"); + if ("useAll".equals(schemaRule)) { + bookmark.setSchemaRule(Bookmark.SCHEMA_RULE_USE_ALL); + } else if ("useDefault".equals(schemaRule)) { + bookmark.setSchemaRule(Bookmark.SCHEMA_RULE_USE_DEFAULT); + } else { + bookmark.setSchemaRule(Bookmark.SCHEMA_RULE_USE_SELECTED); } - bookmark.setSchemas((Schema[]) list.toArray(new Schema[list.size()])); + bookmark.setSchemaSelections((Schema[]) list.toArray(new Schema[list.size()])); } - private void importQuickList(Bookmark bookmark, Element bookmarkElement) { + private void importQuickList(Bookmark bookmark, Element bookmarkElement) { NodeList quickList = bookmarkElement.getElementsByTagName("quickList"); for (int j = 0, length = (quickList == null) ? 0 : quickList.getLength(); @@ -365,8 +396,8 @@ public class BookmarkCollection { * @param driver * @param driverFile */ - public JDBCDriver findDriver(String driverClassName, String driverFile) { - JDBCDriver temp = new JDBCDriver(driverClassName, driverFile); + public JDBCDriver findDriver(String driverClassName, String driverFile, String type) { + JDBCDriver temp = new JDBCDriver(driverClassName, driverFile, type); return findDriver(temp); }