]> git.argeo.org Git - lgpl/argeo-commons.git/blobdiff - server/runtime/org.argeo.server.jcr/src/main/java/org/argeo/jcr/tabular/JcrTabularWriter.java
Update license headers
[lgpl/argeo-commons.git] / server / runtime / org.argeo.server.jcr / src / main / java / org / argeo / jcr / tabular / JcrTabularWriter.java
index cd6feb565545b0e643ed3a41f8e9b1ca9a76e15a..22356b1a855240181ce71e6764ff8c3901255f2d 100644 (file)
@@ -1,3 +1,18 @@
+/*
+ * Copyright (C) 2007-2012 Mathieu Baudier
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *         http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 package org.argeo.jcr.tabular;
 
 import java.io.ByteArrayInputStream;
@@ -24,16 +39,25 @@ public class JcrTabularWriter implements TabularWriter {
        private Node contentNode;
        private ByteArrayOutputStream out;
        private CsvWriter csvWriter;
+       private final List<TabularColumn> columns;
 
        /** Creates a table node */
        public JcrTabularWriter(Node tableNode, List<TabularColumn> columns,
                        String contentNodeType) {
                try {
+                       this.columns = columns;
                        for (TabularColumn column : columns) {
-                               Node columnNode = tableNode.addNode(column.getName(),
+                               String normalized = JcrUtils.replaceInvalidChars(column
+                                               .getName());
+                               Node columnNode = tableNode.addNode(normalized,
                                                ArgeoTypes.ARGEO_COLUMN);
-                               columnNode.setProperty(Property.JCR_REQUIRED_TYPE,
-                                               PropertyType.nameFromValue(column.getType()));
+                               columnNode.setProperty(Property.JCR_TITLE, column.getName());
+                               if (column.getType() != null)
+                                       columnNode.setProperty(Property.JCR_REQUIRED_TYPE,
+                                                       PropertyType.nameFromValue(column.getType()));
+                               else
+                                       columnNode.setProperty(Property.JCR_REQUIRED_TYPE,
+                                                       PropertyType.TYPENAME_STRING);
                        }
                        contentNode = tableNode.addNode(Property.JCR_CONTENT,
                                        contentNodeType);
@@ -48,7 +72,7 @@ public class JcrTabularWriter implements TabularWriter {
                }
        }
 
-       public void appendRow(List<?> row) {
+       public void appendRow(Object[] row) {
                csvWriter.writeLine(row);
        }