001    /*
002     * Copyright (C) 2008-2010 by Holger Arndt
003     *
004     * This file is part of the Universal Java Matrix Package (UJMP).
005     * See the NOTICE file distributed with this work for additional
006     * information regarding copyright ownership and licensing.
007     *
008     * UJMP is free software; you can redistribute it and/or modify
009     * it under the terms of the GNU Lesser General Public License as
010     * published by the Free Software Foundation; either version 2
011     * of the License, or (at your option) any later version.
012     *
013     * UJMP is distributed in the hope that it will be useful,
014     * but WITHOUT ANY WARRANTY; without even the implied warranty of
015     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
016     * GNU Lesser General Public License for more details.
017     *
018     * You should have received a copy of the GNU Lesser General Public
019     * License along with UJMP; if not, write to the
020     * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
021     * Boston, MA  02110-1301  USA
022     */
023    
024    package org.ujmp.core.io;
025    
026    
027    public class ExportMatrixXML {
028    
029    //      private static boolean createXMLHeader = true;
030    //
031    //      private static boolean createInfo = true;
032    //
033    //      public static void toFile(File file, Matrix matrix, Object... parameters) throws IOException,
034    //                      MatrixException, XMLStreamException {
035    //              IntelligentFileWriter writer = new IntelligentFileWriter(file);
036    //              toWriter(writer, matrix, parameters);
037    //              writer.close();
038    //      }
039    //
040    //      public static void toStream(OutputStream outputStream, Matrix matrix, Object... parameters)
041    //                      throws IOException, MatrixException, XMLStreamException {
042    //              OutputStreamWriter writer = new OutputStreamWriter(outputStream);
043    //              toWriter(writer, matrix, parameters);
044    //              writer.close();
045    //      }
046    //
047    //      public static void toWriter(Writer writer, Matrix matrix, Object... parameters)
048    //                      throws IOException, MatrixException, XMLStreamException {
049    //              if (parameters != null && parameters.length > 0) {
050    //                      if (parameters[0] instanceof Boolean) {
051    //                              createXMLHeader = (Boolean) createXMLHeader;
052    //                      }
053    //              }
054    //
055    //              XMLOutputFactory outputFactory = XMLOutputFactory.newInstance();
056    //              XMLEventWriter eventWriter = outputFactory.createXMLEventWriter(writer);
057    //              XMLEventFactory eventFactory = XMLEventFactory.newInstance();
058    //              XMLEvent newline = eventFactory.createDTD(System.getProperty("line.separator"));
059    //
060    //              if (createXMLHeader == true) {
061    //                      StartDocument startDocument = eventFactory.createStartDocument();
062    //                      eventWriter.add(startDocument);
063    //                      eventWriter.add(newline);
064    //              }
065    //
066    //              StartElement matrixStart = eventFactory.createStartElement("", "", "matrix");
067    //              eventWriter.add(matrixStart);
068    //
069    //              String size = Coordinates.toString(matrix.getSize());
070    //              eventWriter.add(eventFactory.createAttribute("size", size));
071    //
072    //              String st = matrix.getStorageType().name();
073    //              eventWriter.add(eventFactory.createAttribute("storageType", st));
074    //
075    //              String vt = matrix.getValueType().name();
076    //              eventWriter.add(eventFactory.createAttribute("valueType", vt));
077    //
078    //              eventWriter.add(newline);
079    //
080    //              if (createInfo == true) {
081    //                      eventWriter.add(eventFactory.createStartElement("", "", "info"));
082    //                      eventWriter.add(newline);
083    //                      eventWriter.add(eventFactory.createStartElement("", "", "creator"));
084    //                      eventWriter.add(eventFactory.createCharacters("UJMP"));
085    //                      eventWriter.add(eventFactory.createEndElement("", "", "creator"));
086    //                      eventWriter.add(newline);
087    //                      eventWriter.add(eventFactory.createStartElement("", "", "version"));
088    //                      eventWriter.add(eventFactory.createCharacters(UJMP.UJMPVERSION));
089    //                      eventWriter.add(eventFactory.createEndElement("", "", "version"));
090    //                      eventWriter.add(newline);
091    //                      eventWriter.add(eventFactory.createStartElement("", "", "os"));
092    //                      eventWriter.add(eventFactory.createCharacters(System.getProperty("os.name")));
093    //                      eventWriter.add(eventFactory.createEndElement("", "", "os"));
094    //                      eventWriter.add(newline);
095    //                      eventWriter.add(eventFactory.createStartElement("", "", "java"));
096    //                      eventWriter.add(eventFactory.createCharacters(System.getProperty("java.version")));
097    //                      eventWriter.add(eventFactory.createEndElement("", "", "java"));
098    //                      eventWriter.add(newline);
099    //                      eventWriter.add(eventFactory.createStartElement("", "", "date"));
100    //                      eventWriter.add(eventFactory.createCharacters(new Date().toString()));
101    //                      eventWriter.add(eventFactory.createEndElement("", "", "date"));
102    //                      eventWriter.add(newline);
103    //                      eventWriter.add(eventFactory.createEndElement("", "", "info"));
104    //                      eventWriter.add(newline);
105    //              }
106    //
107    //              Annotation annotation = matrix.getAnnotation();
108    //              if (annotation != null) {
109    //                      eventWriter.add(eventFactory.createStartElement("", "", "annotation"));
110    //                      eventWriter.add(newline);
111    //
112    //                      Object label = annotation.getMatrixAnnotation();
113    //                      if (label != null) {
114    //                              eventWriter.add(eventFactory.createStartElement("", "", "label"));
115    //                              eventWriter.add(eventFactory.createCharacters("" + label));
116    //                              eventWriter.add(eventFactory.createEndElement("", "", "label"));
117    //                              eventWriter.add(newline);
118    //                      }
119    //
120    //                      eventWriter.add(eventFactory.createEndElement("", "", "annotation"));
121    //                      eventWriter.add(newline);
122    //              }
123    //              
124    //              eventWriter.add(eventFactory.createStartElement("", "", "data"));
125    //              eventWriter.add(newline);
126    //
127    //              for (long[] c : matrix.availableCoordinates()) {
128    //                      eventWriter.add(eventFactory.createStartElement("", "", "cell"));
129    //                      String pos = Coordinates.toString(c);
130    //                      eventWriter.add(eventFactory.createAttribute("pos", pos));
131    //
132    //                      eventWriter.add(eventFactory.createCharacters("" + matrix.getAsObject(c)));
133    //
134    //                      eventWriter.add(eventFactory.createEndElement("", "", "cell"));
135    //                      eventWriter.add(newline);
136    //              }
137    //              
138    //              eventWriter.add(eventFactory.createEndElement("", "", "data"));
139    //              eventWriter.add(newline);
140    //
141    //              eventWriter.add(eventFactory.createEndElement("", "", "matrix"));
142    //              eventWriter.add(newline);
143    //              eventWriter.add(eventFactory.createEndDocument());
144    //              eventWriter.close();
145    //      }
146    
147    }