All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.clickntap.tool.bean.RemoteBeanManager Maven / Gradle / Ivy

There is a newer version: 1.30
Show newest version
package com.clickntap.tool.bean;

import com.caucho.hessian.client.HessianProxyFactory;
import com.caucho.hessian.io.SerializerFactory;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.support.TransactionCallback;
import org.springframework.validation.Validator;
import org.springframework.web.multipart.MultipartFile;

import java.io.InputStream;
import java.io.OutputStream;
import java.util.List;

public class RemoteBeanManager implements BeanManager {

    private String serviceUrl;
    private BeanManager remoteBeanManager;
    private SerializerFactory serializerFactory;

    public SerializerFactory getSerializerFactory() {
        return serializerFactory;
    }

    public void setSerializerFactory(SerializerFactory serializerFactory) {
        this.serializerFactory = serializerFactory;
    }

    public void setServiceUrl(String serviceUrl) {
        this.serviceUrl = serviceUrl;
    }

    public void init() throws Exception {
        HessianProxyFactory factory = new HessianProxyFactory();
        if (serializerFactory != null)
            factory.setSerializerFactory(serializerFactory);
        remoteBeanManager = (BeanManager) factory.create(BeanManager.class, serviceUrl);
    }

    public Bean read(Number id, Class beanClass) throws Exception {
        Bean bean = remoteBeanManager.read(id, beanClass);
        if (bean != null)
            bean.setBeanManager(this);
        return bean;
    }

    public Bean readByFilter(Bean filter, String filterName, Class beanClass) throws Exception {
        Bean bean = remoteBeanManager.readByFilter(filter, filterName, beanClass);
        if (bean != null)
            bean.setBeanManager(this);
        return bean;
    }

    public int update(Bean bean) throws Exception {
        return remoteBeanManager.update(bean);
    }

    public int execute(Bean bean, String what) throws Exception {
        return remoteBeanManager.execute(bean, what);
    }

    public Number create(Bean bean) throws Exception {
        return remoteBeanManager.create(bean);
    }

    public int delete(Bean bean) throws Exception {
        return remoteBeanManager.delete(bean);
    }

    public void copyFrom(Bean bean, MultipartFile in) throws Exception {
        remoteBeanManager.copyFrom(bean, in);
    }

    public List readList(Bean bean, String fieldName) throws Exception {
        return remoteBeanManager.readList(bean, fieldName);
    }

    public List readListByClass(Class beanClass, String fieldName) throws Exception {
        return remoteBeanManager.readListByClass(beanClass, fieldName);
    }

    public List readListByFilter(Class beanClass, Bean bean, String fieldName) throws Exception {
        return remoteBeanManager.readListByFilter(beanClass, bean, fieldName);
    }

    public List exportList(Class beanClass, Bean bean, String fieldName) throws Exception {
        List items = remoteBeanManager.exportList(beanClass, bean, fieldName);
        for (Bean item : items)
            item.setBeanManager(this);
        return items;
    }

    public void copyTo(Bean bean, OutputStream out) throws Exception {
        remoteBeanManager.copyTo(bean, out);
    }

    public InputStream stream(Bean bean) throws Exception {
        return remoteBeanManager.stream(bean);
    }

    public Validator getValidator(Bean target, String validationGroup) throws Exception {
        return remoteBeanManager.getValidator(target, validationGroup);
    }

    public void batchUpdate(String[] sql) throws Exception {
        remoteBeanManager.batchUpdate(sql);
    }

    public Object executeTransaction(TransactionCallback transactionCallback) {
        return remoteBeanManager.executeTransaction(transactionCallback);
    }

    public PlatformTransactionManager getTransactionManager() {
        return remoteBeanManager.getTransactionManager();
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy