Sunday, September 29, 2013

SpringBaseBuilder -> Container Magic.. ;-) -> NASA's new commercial supply ship reaches space station - Firing Graphs.


/**
 * A builder bean for testing puposes.
 * Usefull to "mimic" bulder patterns
 * buildBean -> Create Bean created a detached bean
 * createBeanInstance -> Created an attached instance.
 * @author josecanovamauger.
 *
 */

package org.nanotek.tests.hibernate;


/**
 * A builder bean for testing puposes.
 * Usefull to "mimic" bulder patterns
 * buildBean -> Create Bean created a detached bean
 * createBeanInstance -> Created an attached instance.
 * @author josecanovamauger.
 *
 */



import org.nanotek.util.Base;
import org.nanotek.util.BeanReflectorBuilder;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;

public abstract class SpringBaseBuilder implements BeanReflectorBuilder<String ,Base<?>>,  ApplicationContextAware{

        protected ApplicationContext ctx;

        public SpringBaseBuilder() {
        }

        @Override
        public void setApplicationContext(ApplicationContext arg0)
                        throws BeansException {
                this.ctx = arg0;
        }

}

package org.nanotek.tests.hibernate;

import org.nanotek.cms.domain.lucene.config.IndexConfig;
import org.nanotek.dao.DAO;
import org.nanotek.util.Base;
import org.nanotek.util.PersistenceBaseBeanBuilder;

@SuppressWarnings("hiding")
public class IndexConfigSpringBuilder <String , C extends IndexConfig> extends SpringBaseBuilder implements PersistenceBaseBeanBuilder<String,C> {

        @Override
        public Base<?> createBeanInstance(java.lang.String ref, Base<?> clazz) {
                return ctx.getBean(ref,clazz.getClass());
        }

        @Override
        public C persistBean(String r, C k) {
                @SuppressWarnings("unchecked")
                DAO<IndexConfig> dao = (DAO<IndexConfig>) ctx.getBean((java.lang.String) r);
                dao.persist(k);
                return k;
        }

        @Override
        public void deleteBean(String r, C k) {
                DAO<IndexConfig> dao = (DAO<IndexConfig>) ctx.getBean((java.lang.String) r);
                dao.delete(k);
        }

}



Keith Moon ~ Amazing Journey