Introduce JcrResource adapter
[lgpl/argeo-commons.git] / server / runtime / org.argeo.server.jxl / src / main / java / org / argeo / server / jxl / dao / JxlDaoSupport.java
index 79fa2a606efb0d699b9cc0f4a5d46dd11ad43218..e8bb7107f1df353b2133bf5c8d3b5fe1822dad09 100644 (file)
@@ -20,13 +20,12 @@ import jxl.WorkbookSettings;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.argeo.server.ArgeoServerException;
+import org.argeo.ArgeoException;
 import org.argeo.server.dao.AbstractTabularDaoSupport;
 import org.argeo.server.dao.LightDaoSupport;
 import org.springframework.beans.BeanWrapper;
 import org.springframework.beans.factory.InitializingBean;
 import org.springframework.context.ApplicationContextAware;
-import org.springframework.core.io.Resource;
 import org.springframework.util.StringUtils;
 
 public class JxlDaoSupport extends AbstractTabularDaoSupport implements
@@ -47,7 +46,7 @@ public class JxlDaoSupport extends AbstractTabularDaoSupport implements
                                loadSheet(sheet, references);
                        }
                } catch (Exception e) {
-                       throw new ArgeoServerException("Cannot load workbook", e);
+                       throw new ArgeoException("Cannot load workbook", e);
                }
        }
 
@@ -79,7 +78,7 @@ public class JxlDaoSupport extends AbstractTabularDaoSupport implements
                                if (keyProperty == null)
                                        keyProperty = fieldName;
                                if (!espSt.hasMoreTokens())
-                                       throw new ArgeoServerException("Badly formatted sheetname "
+                                       throw new ArgeoException("Badly formatted sheetname "
                                                        + sheetName);
                                String fieldValue = espSt.nextToken();
                                bw.setPropertyValue(fieldName, fieldValue);
@@ -215,6 +214,8 @@ public class JxlDaoSupport extends AbstractTabularDaoSupport implements
                                        for (int col = 1; col < currentRow.length; col++) {
                                                subKeys.add(getCellValue(currentRow[col]));
                                        }
+                                       if (log.isTraceEnabled())
+                                               log.trace("   subKeys=" + subKeys);
                                        row++;
                                        String firstColContents = firstColumn[row].getContents();
                                        mapRows: for (; row < firstColumn.length; row++) {
@@ -223,9 +224,9 @@ public class JxlDaoSupport extends AbstractTabularDaoSupport implements
                                                Object key = firstColContents;
                                                Map<Object, Object> subMap = new HashMap<Object, Object>();
 
-                                               for (int col = 0; col < currentRow.length
-                                                               && col < subKeys.size(); col++) {
-                                                       Object subKey = subKeys.get(col);
+                                               for (int col = 1; col < currentRow.length
+                                                               && col < subKeys.size() + 1; col++) {
+                                                       Object subKey = subKeys.get(col - 1);
                                                        Cell cell = currentRow[col];
                                                        if (log.isTraceEnabled())
                                                                log.trace("   row=" + row
@@ -244,6 +245,7 @@ public class JxlDaoSupport extends AbstractTabularDaoSupport implements
                                                if (bw.isWritableProperty(firstColContents)
                                                                || firstColContents.trim().equals("")
                                                                || row == firstColumn.length - 1) {
+                                                       log.trace(map);
                                                        bw.setPropertyValue(propertyName, map);
                                                        if (log.isTraceEnabled())
                                                                log.trace(" set map " + propertyName
@@ -269,7 +271,7 @@ public class JxlDaoSupport extends AbstractTabularDaoSupport implements
                        String formula = ((FormulaCell) cell).getFormula();
                        int index = formula.indexOf('!');
                        if (index < 0)
-                               throw new ArgeoServerException("Cannot interpret formula "
+                               throw new ArgeoException("Cannot interpret formula "
                                                + formula);
                        ;
                        String targetSheet = formula.substring(0, index);
@@ -329,17 +331,6 @@ public class JxlDaoSupport extends AbstractTabularDaoSupport implements
                return false;
        }
 
-       /**
-        * @deprecated use
-        *             {@link #overrideCell(Cell, BeanWrapper, String, String, Integer, List)}
-        *             instead. This method is not called anymore.
-        */
-       protected Boolean overrideCell(Cell cell, BeanWrapper bw,
-                       String propertyName, String keyProperty, Integer row,
-                       List<Reference> references, Map<String, List<Object>> tempRefs) {
-               throw new UnsupportedOperationException();
-       }
-
        public void setEncoding(String encoding) {
                this.encoding = encoding;
        }
@@ -348,11 +339,4 @@ public class JxlDaoSupport extends AbstractTabularDaoSupport implements
                this.locale = locale;
        }
 
-       /** @deprecated use {@link #setResources(List)} instead. */
-       public void setWorkbooks(List<Resource> workbooks) {
-               setResources(workbooks);
-               log.warn("###\n" + "### Use of the 'workbooks' property is deprecated!"
-                               + " It will be removed in one of the next releases."
-                               + " Use the 'resources' property instead." + "\n###");
-       }
 }