List of usage examples for org.jdom2.output Format getPrettyFormat
public static Format getPrettyFormat()
From source file:sxql.java
License:Open Source License
/** * Execute a SQL query and return the result as XML * (as a String. But this can be changed to return a DOM/SAX/JDOM tree, * to be used, for example, as input to an XSLT processor) *///w ww. j a va 2s.c om public static String query(Connection con, String query, String root, String row, String ns, int maxRows, Vector<String> attributes, Vector<String> elements) throws Exception { // Execute SQL Query Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery(query); // Create a ResultSetBuilder ResultSetBuilder builder = new ResultSetBuilder(rs); // Configure some parameters... if (root != null) { builder.setRootName(root); } if (row != null) { builder.setRowName(row); } if (ns != null) { String namespace = null; String url = null; int sep = ns.indexOf("/"); if (sep > 0) { namespace = ns.substring(0, sep); url = ns.substring(sep + 1); builder.setNamespace(Namespace.getNamespace(namespace, url)); } } if (maxRows > 0) { builder.setMaxRows(maxRows); } for (int i = 0; i < attributes.size(); i++) { String colName = attributes.get(i); String attrName = null; if (colName.indexOf("/") >= 0) { String col = colName; int sep = col.indexOf("/"); colName = col.substring(0, sep); attrName = col.substring(sep + 1); } try { // If it looks like an integer, is the column number int colNum = Integer.parseInt(colName); if (attrName == null) { builder.setAsAttribute(colNum); // attrName = column Name } else { builder.setAsAttribute(colNum, attrName); } } catch (NumberFormatException e) { // Otherwise it's the column name if (attrName == null) { builder.setAsAttribute(colName); // attrName = column Name } else { builder.setAsAttribute(colName, attrName); } } } // Rename element for (int i = 0; i < elements.size(); i++) { String colName = elements.get(i); String elemName = null; if (colName.indexOf("/") >= 0) { String col = colName; int sep = col.indexOf("/"); colName = col.substring(0, sep); elemName = col.substring(sep + 1); } try { // If it looks like an integer, is the column number int colNum = Integer.parseInt(colName); if (elemName != null) { // It must have an element name builder.setAsElement(colNum, elemName); } } catch (NumberFormatException e) { // Otherwise it's the column name if (elemName != null) { // It must have an element name builder.setAsElement(colName, elemName); } } } // Build a JDOM tree Document doc = builder.build(); // Convert the result to XML (as String) XMLOutputter outputter = new XMLOutputter(Format.getPrettyFormat()); ByteArrayOutputStream output = new ByteArrayOutputStream(); outputter.output(doc, output); return output.toString(); }
From source file:AL_gui.java
License:Apache License
private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton4ActionPerformed // TODO add your handling code here: try {//w ww .j a v a2 s . c o m String nnetName = JOptionPane.showInputDialog(jButton3, "Enter a filename, excluding extention.", "ANNeML Wizard", JOptionPane.QUESTION_MESSAGE); if (nnetName == " ") { JOptionPane.showMessageDialog(null, "An input value must be entered."); } Element nnet = new Element("NNETWORK"); nnet.setAttribute(new Attribute("noNamespaceSchemaLocation", "ANNeML.xsd", Namespace.getNamespace("xsi", "http://www.w3.org/2001/XMLSchema-instance"))); nnet.setAttribute(new Attribute("NNET_NAME", nnetName)); Document doc = new Document(nnet); String subnnets = JOptionPane.showInputDialog(jButton3, "How many SUBNET(s)?", "ANNeML Wizard", JOptionPane.QUESTION_MESSAGE); if (subnnets == " ") { JOptionPane.showMessageDialog(null, "An input value must be entered."); } int numSubs = java.lang.Integer.parseInt(subnnets); int i = 0; do { Element subnet = new Element("SUBNET"); String learningRate = JOptionPane.showInputDialog(jButton3, "SUBNET learning rate(eta)?", "ANNeML Wizard", JOptionPane.QUESTION_MESSAGE); if (learningRate == " ") { JOptionPane.showMessageDialog(null, "An input value must be entered."); } subnet.setAttribute(new Attribute("NNET_V2", learningRate)); subnet.setAttribute(new Attribute("SNET_NAME", nnetName + "-subnet" + String.valueOf(i + 1))); subnet.setAttribute(new Attribute("ADJUST_LOCK", "0")); String input_layers = JOptionPane.showInputDialog(jButton3, "How many <<INPUT>> LAYERS(s) in this subnet?", "ANNeML Wizard", JOptionPane.QUESTION_MESSAGE); if (input_layers == " ") { JOptionPane.showMessageDialog(null, "An input value must be entered."); } int numInLayers = java.lang.Integer.parseInt(input_layers); int x = 0; do { Element inLayer = new Element("LAYER"); inLayer.setAttribute(new Attribute("LAYER_NAME", "INPUT")); String transferFunc = JOptionPane.showInputDialog(jButton3, "Which transfer function for this LAYER? 1(hyberbolic tangent) or 2(logarithmic sigmoid)", "ANNeML Wizard", JOptionPane.QUESTION_MESSAGE); if (transferFunc == " ") { JOptionPane.showMessageDialog(null, "An input value must be entered."); } inLayer.setAttribute(new Attribute("TRANSFER_FUNCTION", transferFunc)); String inNodes = JOptionPane.showInputDialog(jButton3, "How many NEURODE(s) in this <<INPUT>> LAYER?", "ANNeML Wizard", JOptionPane.QUESTION_MESSAGE); if (inNodes == " ") { JOptionPane.showMessageDialog(null, "An input value must be entered."); } int numInNodes = java.lang.Integer.parseInt(inNodes); int y = 0; do { Element node = new Element("NEURODE"); node.setAttribute( new Attribute("N_ID", "IN" + String.valueOf(x + 1) + String.valueOf(y + 1))); node.setAttribute(new Attribute("ACTIVE", "-1")); node.setAttribute(new Attribute("ACTIVITY", "0.0")); node.setAttribute(new Attribute("BIAS", "0.0")); node.setAttribute(new Attribute("CNAME", "Input node#" + String.valueOf(y + 1))); node.setAttribute(new Attribute("NNET_V4", "0.0")); Element inSynapse = new Element("SYNAPSE"); inSynapse.setAttribute(new Attribute("WEIGHT", "1.00")); inSynapse.setAttribute(new Attribute("ORG_NEURODE", "INPUT")); node.addContent(inSynapse); inLayer.addContent(node); y++; } while (y < numInNodes); subnet.addContent(inLayer); x++; } while (x < numInLayers); String hidden_layers = JOptionPane.showInputDialog(jButton3, "How many <<HIDDEN>> LAYERS(s) in this subnet?", "ANNeML Wizard", JOptionPane.QUESTION_MESSAGE); if (hidden_layers == " ") { JOptionPane.showMessageDialog(null, "An input value must be entered."); } int numHLayers = java.lang.Integer.parseInt(hidden_layers); int z = 0; do { Element hLayer = new Element("LAYER"); hLayer.setAttribute(new Attribute("LAYER_NAME", "HIDDEN")); String transferFunc = JOptionPane.showInputDialog(jButton3, "Which transfer function for this LAYER? 1(hyberbolic tangent) or 2(logarithmic sigmoid)", "ANNeML Wizard", JOptionPane.QUESTION_MESSAGE); if (transferFunc == " ") { JOptionPane.showMessageDialog(null, "An input value must be entered."); } hLayer.setAttribute(new Attribute("TRANSFER_FUNCTION", transferFunc)); String hNodes = JOptionPane.showInputDialog(jButton3, "How many NEURODE(s) in this <<HIDDEN>> LAYER?", "ANNeML Wizard", JOptionPane.QUESTION_MESSAGE); if (hNodes == " ") { JOptionPane.showMessageDialog(null, "An input value must be entered."); } int numhNodes = java.lang.Integer.parseInt(hNodes); int a = 0; do { Random rnd = new Random(); Element node = new Element("NEURODE"); node.setAttribute( new Attribute("N_ID", "N" + String.valueOf(z + 1) + String.valueOf(a + 1))); node.setAttribute(new Attribute("ACTIVE", "-1")); node.setAttribute(new Attribute("ACTIVITY", "0.0")); node.setAttribute(new Attribute("BIAS", getRandomValue(rnd, low, high, decpl))); node.setAttribute(new Attribute("CNAME", "Hidden node#" + String.valueOf(a + 1))); node.setAttribute(new Attribute("NNET_V4", "0.0")); hLayer.addContent(node); a++; } while (a < numhNodes); subnet.addContent(hLayer); z++; } while (z < numHLayers); String output_layers = JOptionPane.showInputDialog(jButton3, "How many <<OUTPUT>> LAYERS(s) in this subnet?", "ANNeML Wizard", JOptionPane.QUESTION_MESSAGE); if (hidden_layers == " ") { JOptionPane.showMessageDialog(null, "An input value must be entered."); } int numOLayers = java.lang.Integer.parseInt(output_layers); int b = 0; do { Element oLayer = new Element("LAYER"); oLayer.setAttribute(new Attribute("LAYER_NAME", "OUTPUT")); String transferFunc = JOptionPane.showInputDialog(jButton3, "Which transfer function for this LAYER? 1(hyberbolic tangent) or 2(logarithmic sigmoid)", "ANNeML Wizard", JOptionPane.QUESTION_MESSAGE); if (transferFunc == " ") { JOptionPane.showMessageDialog(null, "An input value must be entered."); } oLayer.setAttribute(new Attribute("TRANSFER_FUNCTION", transferFunc)); String oNodes = JOptionPane.showInputDialog(jButton3, "How many NEURODE(s) in this <<OUTPUT>> LAYER?", "ANNeML Wizard", JOptionPane.QUESTION_MESSAGE); if (oNodes == " ") { JOptionPane.showMessageDialog(null, "An input value must be entered."); } int numoNodes = java.lang.Integer.parseInt(oNodes); int d = 0; do { Random rnd = new Random(); Element node = new Element("NEURODE"); node.setAttribute( new Attribute("N_ID", "ON" + String.valueOf(b + 1) + String.valueOf(d + 1))); node.setAttribute(new Attribute("ACTIVE", "-1")); node.setAttribute(new Attribute("ACTIVITY", "0.0")); node.setAttribute(new Attribute("BIAS", getRandomValue(rnd, low, high, decpl))); node.setAttribute(new Attribute("CNAME", "Output node#" + String.valueOf(d + 1))); node.setAttribute(new Attribute("NNET_V4", "0.0")); oLayer.addContent(node); d++; } while (d < numoNodes); subnet.addContent(oLayer); b++; } while (b < numOLayers); doc.getRootElement().addContent(subnet); i++; } while (i < numSubs); //generate fully interconnected SYNAPSE(s) for all NEURODE(s) within each SUBNET java.util.List subnets = XPath.newInstance("//SUBNET").selectNodes(doc); Iterator itSubslist = subnets.iterator(); do { Element currentSnet = (Element) itSubslist.next(); String snetName = currentSnet.getAttributeValue("SNET_NAME"); //System.out.println(snetName); java.util.List Hnodes = XPath .newInstance("//SUBNET[@SNET_NAME='" + snetName + "']/LAYER[@LAYER_NAME='HIDDEN']/NEURODE") .selectNodes(doc); Iterator itHNodelist = Hnodes.iterator(); do { Element node = (Element) itHNodelist.next(); //System.out.println(node.getAttributeValue("N_ID")); java.util.List Inodes = XPath .newInstance( "//SUBNET[@SNET_NAME='" + snetName + "']/LAYER[@LAYER_NAME='INPUT']/NEURODE") .selectNodes(doc); Iterator itNodelist = Inodes.iterator(); do { Element currentNode = (Element) itNodelist.next(); //System.out.println(currentNode.getAttributeValue("N_ID")); Element hSynapse = new Element("SYNAPSE"); Random rnd = new Random(); hSynapse.setAttribute(new Attribute("WEIGHT", getRandomValue(rnd, low, high, decpl))); hSynapse.setAttribute(new Attribute("ORG_NEURODE", currentNode.getAttributeValue("N_ID"))); node.addContent(hSynapse); } while (itNodelist.hasNext()); } while (itHNodelist.hasNext()); java.util.List Onodes = XPath .newInstance("//SUBNET[@SNET_NAME='" + snetName + "']/LAYER[@LAYER_NAME='OUTPUT']/NEURODE") .selectNodes(doc); Iterator itONodelist = Onodes.iterator(); do { Element node = (Element) itONodelist.next(); //System.out.println(node.getAttributeValue("N_ID")); java.util.List hnodes = XPath .newInstance( "//SUBNET[@SNET_NAME='" + snetName + "']/LAYER[@LAYER_NAME='HIDDEN']/NEURODE") .selectNodes(doc); Iterator itNodelist = hnodes.iterator(); do { Element currentNode = (Element) itNodelist.next(); //System.out.println(currentNode.getAttributeValue("N_ID")); Element hSynapse = new Element("SYNAPSE"); Random rnd = new Random(); hSynapse.setAttribute(new Attribute("WEIGHT", getRandomValue(rnd, low, high, decpl))); hSynapse.setAttribute(new Attribute("ORG_NEURODE", currentNode.getAttributeValue("N_ID"))); node.addContent(hSynapse); } while (itNodelist.hasNext()); } while (itONodelist.hasNext()); } while (itSubslist.hasNext()); // new XMLOutputter().output(doc, System.out); XMLOutputter xmlOutput = new XMLOutputter(); // display nice nice xmlOutput.setFormat(Format.getPrettyFormat()); xmlOutput.output(doc, System.out); xmlOutput.output(doc, new FileWriter(nnetName + ".xml")); System.out.println("File Saved!"); } catch (Exception e) { System.out.println(e.getMessage()); } }
From source file:adlic.ADLic.java
private void jButton5ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton5ActionPerformed try {/*w w w . j av a2s . c o m*/ int n = JOptionPane.showConfirmDialog(null, " ? " + licenses.getAttribute(numlic, "id") + " ?", " !", JOptionPane.YES_NO_OPTION); if (n == JOptionPane.YES_OPTION) { licenses.getListLicense().remove(numlic); try { XMLOutputter outputter = new XMLOutputter(); outputter.setFormat(Format.getPrettyFormat()); try { OutputStreamWriter out = new java.io.OutputStreamWriter( new java.io.FileOutputStream(licenses.getFile()), "UTF-8"); out.write(outputter.outputString(licenses.getDocument())); out.close(); } catch (IOException ex) { JOptionPane.showMessageDialog(rootPane, ex); } } catch (Exception ex) { JOptionPane.showMessageDialog(rootPane, ex); } if (numlic > 0) { numlic -= 1; } this.getFormText(numlic); this.getTableKey(numlic); this.getTableSum(numlic); } else { System.out.println(" ."); } } catch (NullPointerException ex) { JOptionPane.showMessageDialog(rootPane, ex); } this.getFormText(numlic); this.getTableKey(numlic); this.getTableSum(numlic); }
From source file:adlic.licenses.java
/** * @see write xml file "licenses.xml"//from w w w. j a va 2s. com */ public void writeLicenses(Document savingDocument, String filePath) { try { XMLOutputter outputter = new XMLOutputter(); outputter.setFormat(Format.getPrettyFormat()); try { OutputStreamWriter out = new java.io.OutputStreamWriter(new java.io.FileOutputStream(filePath), "UTF-8"); out.write(outputter.outputString(savingDocument)); out.close(); } catch (IOException ex) { JOptionPane.showMessageDialog(null, ex); } //outputter.output(savingDocument, new OutputStreamWriter(new FileOutputStream(filePath), "UTF-8")); } catch (Exception ex) { System.out.println(ex.getMessage()); } }
From source file:adlic.NewJDialog.java
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed // TODO add your handling code here: try {//from w w w. j ava 2 s. co m licenses.getElementLicense(numlicsave).setAttribute("id", this.jTextField1.getText()); licenses.getElementLicense(numlicsave).setAttribute("key", this.jTextField5.getText()); licenses.getElementLicense(numlicsave).setAttribute("sum", this.jTextField6.getText()); licenses.getElementLicense(numlicsave).getChild("product").setText(this.jTextField2.getText()); licenses.getElementLicense(numlicsave).getChild("type").setText(this.jTextField3.getText()); licenses.getElementLicense(numlicsave).getChild("numberlic").setText(this.jTextField4.getText()); try { if (jModelKey.getRowCount() > (new Integer(this.jTextField5.getText()))) { JOptionPane.showMessageDialog(rootPane, "? ? ."); } else { licenses.getElementKey(numlicsave).removeContent(); for (int i = 0; i < this.jModelKey.getRowCount(); i++) { if ((this.jModelKey.getValueAt(i, 0) == null) && (this.jModelKey.getValueAt(i, 1) == null) && (this.jModelKey.getValueAt(i, 2) == null)) { JOptionPane.showMessageDialog(rootPane, "? ? . ? ?."); } else { if (this.jModelKey.getValueAt(i, 0) == null) { this.jModelKey.setValueAt(" ", i, 0); JOptionPane.showMessageDialog(rootPane, "? <?> . ."); } if (this.jModelKey.getValueAt(i, 1) == null) { this.jModelKey.setValueAt(" ", i, 1); JOptionPane.showMessageDialog(rootPane, "? <> . ."); } if (this.jModelKey.getValueAt(i, 2) == null) { this.jModelKey.setValueAt(" ", i, 2); JOptionPane.showMessageDialog(rootPane, "? <> . ."); } licenses.getElementKey(numlicsave).addContent(new Element("product-key") .addContent(this.jModelKey.getValueAt(i, 2).toString())); licenses.getElementProductKey(numlicsave, i).setAttribute("name", this.jModelKey.getValueAt(i, 0).toString()); licenses.getElementProductKey(numlicsave, i).setAttribute("type", this.jModelKey.getValueAt(i, 1).toString()); } } } } catch (NullPointerException ex) { JOptionPane.showMessageDialog(rootPane, ex); } try { if (jModelSum.getRowCount() > (new Integer(this.jTextField6.getText()))) { JOptionPane.showMessageDialog(rootPane, "? ? ."); } else { licenses.getElementSum(numlicsave).removeContent(); for (int i = 0; i < this.jModelSum.getRowCount(); i++) { if ((this.jModelSum.getValueAt(i, 0) == null) && (this.jModelSum.getValueAt(i, 1) == null)) { JOptionPane.showMessageDialog(rootPane, "? ? . ? ?."); } else { if (this.jModelSum.getValueAt(i, 0) == null) { this.jModelSum.setValueAt(" ", i, 0); JOptionPane.showMessageDialog(rootPane, "? <? ??> . ."); } if (this.jModelSum.getValueAt(i, 1) == null) { this.jModelSum.setValueAt(" ", i, 1); JOptionPane.showMessageDialog(rootPane, "? < > . ."); } licenses.getElementSum(numlicsave).addContent(new Element("invent-number") .addContent(this.jModelSum.getValueAt(i, 1).toString())); licenses.getElementInventSum(numlicsave, i).setAttribute("type", this.jModelSum.getValueAt(i, 0).toString()); } } } } catch (NullPointerException ex) { JOptionPane.showMessageDialog(rootPane, ex); } try { XMLOutputter outputter = new XMLOutputter(); outputter.setFormat(Format.getPrettyFormat()); try { OutputStreamWriter out = new java.io.OutputStreamWriter( new java.io.FileOutputStream(licenses.getFile()), "UTF-8"); out.write(outputter.outputString(licenses.getDocument())); out.close(); } catch (IOException ex) { JOptionPane.showMessageDialog(rootPane, ex); } } catch (Exception ex) { JOptionPane.showMessageDialog(rootPane, ex); } this.jLabel5.setText("? ?."); } catch (Exception ex) { JOptionPane.showMessageDialog(rootPane, ex); } }
From source file:adlic.NewJDialogInvent.java
private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton3ActionPerformed try {//from w w w. ja v a 2 s . c o m this.jLabel1.setText("..."); licenses.getElementInvent().removeContent(); try { for (int i = 0; i < jModelInvent.getRowCount(); i++) { if (this.jModelInvent.getValueAt(i, 0) == null) { jLabel1.setText( "! ? ? ?? ????."); } else { licenses.getElementInvent().addContent( new Element("type").addContent(jModelInvent.getValueAt(i, 0).toString())); } } } catch (NullPointerException ex) { JOptionPane.showMessageDialog(rootPane, ex); } try { XMLOutputter outputter = new XMLOutputter(); outputter.setFormat(Format.getPrettyFormat()); try { OutputStreamWriter out = new java.io.OutputStreamWriter( new java.io.FileOutputStream(licenses.getFile()), "UTF-8"); out.write(outputter.outputString(licenses.getDocument())); out.close(); } catch (IOException ex) { JOptionPane.showMessageDialog(rootPane, ex); } } catch (Exception ex) { JOptionPane.showMessageDialog(rootPane, ex); } } catch (Exception ex) { JOptionPane.showMessageDialog(rootPane, ex); } }
From source file:adlic.NewJDialogKeyType.java
private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton3ActionPerformed try {/*from w ww . j a v a 2s . c o m*/ this.jLabel1.setText("..."); licenses.getElementKeyType().removeContent(); try { for (int i = 0; i < this.jModelType.getRowCount(); i++) { if (this.jTable1.getValueAt(i, 0) == null) { this.jLabel1.setText( "! ? ? ?? ????"); } else { licenses.getElementKeyType().addContent( new Element("type").addContent(this.jModelType.getValueAt(i, 0).toString())); } } } catch (NullPointerException ex) { JOptionPane.showMessageDialog(rootPane, ex); } try { XMLOutputter outputter = new XMLOutputter(); outputter.setFormat(Format.getPrettyFormat()); try { OutputStreamWriter out = new java.io.OutputStreamWriter( new java.io.FileOutputStream(licenses.getFile()), "UTF-8"); out.write(outputter.outputString(licenses.getDocument())); out.close(); } catch (IOException ex) { JOptionPane.showMessageDialog(rootPane, ex); } } catch (Exception ex) { JOptionPane.showMessageDialog(rootPane, ex); } } catch (Exception ex) { JOptionPane.showMessageDialog(rootPane, ex); } }
From source file:adlic.NewJDialogProduct.java
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed try {//from w w w . j a va2s. co m this.jLabel1.setText("..."); licenses.getElementProduct().removeContent(); try { for (int i = 0; i < this.jModelProduct.getRowCount(); i++) { if (this.jTable1.getValueAt(i, 0) == null) { this.jLabel1.setText( "! ? ? ?? ????"); } else { licenses.getElementProduct().addContent( new Element("name").addContent(this.jModelProduct.getValueAt(i, 0).toString())); } } } catch (NullPointerException ex) { JOptionPane.showMessageDialog(rootPane, ex); } try { XMLOutputter outputter = new XMLOutputter(); outputter.setFormat(Format.getPrettyFormat()); try { OutputStreamWriter out = new java.io.OutputStreamWriter( new java.io.FileOutputStream(licenses.getFile()), "UTF-8"); out.write(outputter.outputString(licenses.getDocument())); out.close(); } catch (IOException ex) { JOptionPane.showMessageDialog(rootPane, ex); } } catch (Exception ex) { JOptionPane.showMessageDialog(rootPane, ex); } } catch (Exception ex) { JOptionPane.showMessageDialog(rootPane, ex); } }
From source file:app.simulation.Exporter.java
License:MIT License
public void exportXML() throws Exception { Element root = new Element("simulation"); Document document = new Document(root); if (configuration != null) { Element tagConfiguration = new Element("configuration"); Element delay = new Element("delay"); delay.setText(String.format("%s", configuration.getDelay())); Element iterations = new Element("iterations"); iterations.setText(String.format("%s", configuration.getIterations())); Element agents = new Element("agents"); agents.setText(String.format("%s", configuration.getAgents())); Element latticeSize = new Element("latticeSize"); latticeSize.setText(String.format("%s", configuration.getLatticeSize())); Element description = new Element("description"); description.setText(String.format("%s", configuration.getDescription())); tagConfiguration.addContent(delay); tagConfiguration.addContent(iterations); tagConfiguration.addContent(agents); tagConfiguration.addContent(latticeSize); tagConfiguration.addContent(description); root.addContent(tagConfiguration); }//from www . jav a 2s . c o m if (initialCell != null) { Element tagInitialCell = new Element("initialCell"); Element x = new Element("x"); x.setText(String.format("%s", initialCell.getX())); Element y = new Element("y"); y.setText(String.format("%s", initialCell.getY())); Element z = new Element("z"); z.setText(String.format("%s", initialCell.getZ())); Element state = new Element("state"); state.setText(String.format("%s", initialCell.getState())); Element color = new Element("color"); Element r = new Element("r"); r.setText(String.format("%s", initialCell.getColor().getRed())); Element g = new Element("g"); g.setText(String.format("%s", initialCell.getColor().getGreen())); Element b = new Element("b"); b.setText(String.format("%s", initialCell.getColor().getBlue())); color.addContent(r); color.addContent(g); color.addContent(b); tagInitialCell.addContent(x); tagInitialCell.addContent(y); tagInitialCell.addContent(z); tagInitialCell.addContent(state); tagInitialCell.addContent(color); root.addContent(tagInitialCell); } if (rules != null) { Element tagRules = new Element("rules"); for (Rule rule : rules) { Element tagRule = new Element("rule"); Element neighbourhood = new Element("neighbourhood"); neighbourhood.setText(rule.getNeighbourhood()); Element state = new Element("state"); state.setText(String.format("%s", rule.getState())); Element color = new Element("color"); Element r = new Element("r"); r.setText(String.format("%s", rule.getColor().getRed())); Element g = new Element("g"); g.setText(String.format("%s", rule.getColor().getGreen())); Element b = new Element("b"); b.setText(String.format("%s", rule.getColor().getBlue())); color.addContent(r); color.addContent(g); color.addContent(b); tagRule.addContent(neighbourhood); tagRule.addContent(state); tagRule.addContent(color); tagRules.addContent(tagRule); } root.addContent(tagRules); } XMLOutputter outputter = new XMLOutputter(Format.getPrettyFormat()); outputter.output(document, new FileWriter(path)); }
From source file:at.newmedialab.lmf.search.services.cores.SolrCoreServiceImpl.java
License:Apache License
/** * Create/update the schema.xml file for the given core according to the core definition. * * @param engine the engine configuration */// w ww.ja v a 2 s . c om private void createSchemaXml(SolrCoreConfiguration engine) throws MarmottaException { log.info("generating schema.xml for search program {}", engine.getName()); SAXBuilder parser = new SAXBuilder(XMLReaders.NONVALIDATING); File schemaTemplate = new File(getCoreDirectory(engine.getName()), "conf" + File.separator + "schema-template.xml"); File schemaFile = new File(getCoreDirectory(engine.getName()), "conf" + File.separator + "schema.xml"); try { Document doc = parser.build(schemaTemplate); Element schemaNode = doc.getRootElement(); Element fieldsNode = schemaNode.getChild("fields"); if (!schemaNode.getName().equals("schema") || fieldsNode == null) throw new MarmottaException(schemaTemplate + " is an invalid SOLR schema file"); schemaNode.setAttribute("name", engine.getName()); Program<Value> program = engine.getProgram(); for (FieldMapping<?, Value> fieldMapping : program.getFields()) { String fieldName = fieldMapping.getFieldName(); String solrType = null; try { solrType = solrProgramService.getSolrFieldType(fieldMapping.getFieldType().toString()); } catch (MarmottaException e) { solrType = null; } if (solrType == null) { log.error("field {} has an invalid field type; ignoring field definition", fieldName); continue; } Element fieldElement = new Element("field"); fieldElement.setAttribute("name", fieldName); fieldElement.setAttribute("type", solrType); // Set the default properties fieldElement.setAttribute("stored", "true"); fieldElement.setAttribute("indexed", "true"); fieldElement.setAttribute("multiValued", "true"); // FIXME: Hardcoded Stuff! if (solrType.equals("location")) { fieldElement.setAttribute("indexed", "true"); fieldElement.setAttribute("multiValued", "false"); } // Handle extra field configuration final Map<String, String> fieldConfig = fieldMapping.getFieldConfig(); if (fieldConfig != null) { for (Map.Entry<String, String> attr : fieldConfig.entrySet()) { if (SOLR_FIELD_OPTIONS.contains(attr.getKey())) { fieldElement.setAttribute(attr.getKey(), attr.getValue()); } } } fieldsNode.addContent(fieldElement); if (fieldConfig != null && fieldConfig.keySet().contains(SOLR_COPY_FIELD_OPTION)) { String[] copyFields = fieldConfig.get(SOLR_COPY_FIELD_OPTION).split("\\s*,\\s*"); for (String copyField : copyFields) { if (copyField.trim().length() > 0) { // ignore 'empty' fields Element copyElement = new Element("copyField"); copyElement.setAttribute("source", fieldName); copyElement.setAttribute("dest", copyField.trim()); schemaNode.addContent(copyElement); } } } else { Element copyElement = new Element("copyField"); copyElement.setAttribute("source", fieldName); copyElement.setAttribute("dest", "lmf.text_all"); schemaNode.addContent(copyElement); } //for suggestions, copy all fields to lmf.spellcheck (used for spellcheck and querying); //only facet is a supported type at the moment if (fieldConfig != null && fieldConfig.keySet().contains(SOLR_SUGGESTION_FIELD_OPTION)) { String suggestionType = fieldConfig.get(SOLR_SUGGESTION_FIELD_OPTION); if (suggestionType.equals("facet")) { Element copyElement = new Element("copyField"); copyElement.setAttribute("source", fieldName); copyElement.setAttribute("dest", "lmf.spellcheck"); schemaNode.addContent(copyElement); } else { log.error("suggestionType " + suggestionType + " not supported"); } } } if (!schemaFile.exists() || schemaFile.canWrite()) { FileOutputStream out = new FileOutputStream(schemaFile); XMLOutputter xo = new XMLOutputter(Format.getPrettyFormat().setIndent(" ")); xo.output(doc, out); out.close(); } else { log.error("schema file {} is not writable", schemaFile); } } catch (JDOMException e) { throw new MarmottaException("parse error while parsing SOLR schema template file " + schemaTemplate, e); } catch (IOException e) { throw new MarmottaException("I/O error while parsing SOLR schema template file " + schemaTemplate, e); } }