]> git.argeo.org Git - lgpl/argeo-commons.git/blobdiff - server/runtime/org.argeo.server.core/src/main/java/org/argeo/server/dao/AbstractMemoryDaoSupport.java
Add license headers
[lgpl/argeo-commons.git] / server / runtime / org.argeo.server.core / src / main / java / org / argeo / server / dao / AbstractMemoryDaoSupport.java
index 39655d4fe04812fc9a2027cab7c4fd1723b27294..a334a4710643495a6b80bd4ce284bc036151b4bf 100644 (file)
@@ -1,3 +1,19 @@
+/*
+ * Copyright (C) 2010 Mathieu Baudier <mbaudier@argeo.org>
+ *
+ * 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.server.dao;
 
 import java.beans.PropertyEditor;
@@ -12,7 +28,7 @@ import java.util.TreeMap;
 import org.apache.commons.io.IOUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.argeo.server.ArgeoServerException;
+import org.argeo.ArgeoException;
 import org.springframework.beans.BeanWrapper;
 import org.springframework.beans.BeanWrapperImpl;
 import org.springframework.beans.BeansException;
@@ -37,7 +53,7 @@ public abstract class AbstractMemoryDaoSupport implements LightDaoSupport,
 
        private List<String> scannedPackages = new ArrayList<String>();
 
-       private List<Resource> workbooks = new ArrayList<Resource>();
+       private List<Resource> resources = new ArrayList<Resource>();
 
        private Map<Class<?>, PropertyEditor> customEditors = new HashMap<Class<?>, PropertyEditor>();;
 
@@ -50,19 +66,21 @@ public abstract class AbstractMemoryDaoSupport implements LightDaoSupport,
        }
 
        public void init() {
-               // used to resolve inner references
-               // Map<String, List<Object>> tempRefs = new HashMap<String,
-               // List<Object>>();
+               for (PropertyEditor propertyEditor : customEditors.values())
+                       if (propertyEditor instanceof LightDaoAware) {
+                               ((LightDaoAware) propertyEditor).setLightDaoSupport(this);
+                       }
 
+               // Load data
                List<Reference> references = new ArrayList<Reference>();
 
-               for (Resource res : workbooks) {
+               for (Resource res : resources) {
                        InputStream in = null;
                        try {
                                in = res.getInputStream();
                                load(in, references);
                        } catch (Exception e) {
-                               throw new ArgeoServerException("Cannot load stream", e);
+                               throw new ArgeoException("Cannot load stream", e);
                        } finally {
                                IOUtils.closeQuietly(in);
                        }
@@ -112,6 +130,8 @@ public abstract class AbstractMemoryDaoSupport implements LightDaoSupport,
 
        @SuppressWarnings("unchecked")
        public <T> T getByKey(Class<T> clss, Object key) {
+               if (key == null)
+                       throw new ArgeoException("Key is null for " + clss);
                return (T) model.get(findClass(clss)).get(key);
        }
 
@@ -196,12 +216,12 @@ public abstract class AbstractMemoryDaoSupport implements LightDaoSupport,
                return scannedPackages;
        }
 
-       public void setWorkbooks(List<Resource> workbooks) {
-               this.workbooks = workbooks;
+       public void setResources(List<Resource> workbooks) {
+               this.resources = workbooks;
        }
 
-       public List<Resource> getWorkbooks() {
-               return workbooks;
+       public List<Resource> getResources() {
+               return resources;
        }
 
        public void setClassLoader(ClassLoader classLoader) {