]> git.argeo.org Git - lgpl/argeo-commons.git/blobdiff - server/runtime/org.argeo.server.core/src/main/java/org/argeo/server/dao/AbstractMemoryDaoSupport.java
Update license headers
[lgpl/argeo-commons.git] / server / runtime / org.argeo.server.core / src / main / java / org / argeo / server / dao / AbstractMemoryDaoSupport.java
index 39655d4fe04812fc9a2027cab7c4fd1723b27294..900b0d5b76f5af5f26089cc2d4764601c0cdae86 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.server.dao;
 
 import java.beans.PropertyEditor;
@@ -12,12 +27,11 @@ 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;
 import org.springframework.beans.factory.InitializingBean;
-import org.springframework.beans.factory.generic.GenericBeanFactoryAccessor;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.ApplicationContextAware;
 import org.springframework.core.io.Resource;
@@ -37,7 +51,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 +64,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 +128,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);
        }
 
@@ -141,8 +159,7 @@ public abstract class AbstractMemoryDaoSupport implements LightDaoSupport,
                        res.addAll((Collection<T>) model.get(classToUse).values());
 
                if (applicationContext != null)
-                       res.addAll(new GenericBeanFactoryAccessor(applicationContext)
-                                       .getBeansOfType(clss).values());
+                       res.addAll(applicationContext.getBeansOfType(clss).values());
 
                return res;
        }
@@ -196,12 +213,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) {