Project

General

Profile

Download (1010 Bytes) Statistics
| Branch: | Tag: | Revision:
1
// $Id$
2
/**
3
 *
4
 */
5
package eu.etaxonomy.cdm.remote.json.processor.bean;
6

    
7
import net.sf.json.CycleSetAcess;
8
import net.sf.json.JSONObject;
9
import net.sf.json.JsonConfig;
10
import net.sf.json.processors.JsonBeanProcessor;
11

    
12
import org.apache.log4j.Logger;
13

    
14
import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
15

    
16
/**
17
 * @author a.kohlbecker
18
 */
19
public class HibernateProxyBeanProcessor extends CycleSetAcess implements JsonBeanProcessor {
20

    
21
	public static final Logger logger = Logger.getLogger(HibernateProxyBeanProcessor.class);
22

    
23
	/* (non-Javadoc)
24
	 * @see net.sf.json.processors.JsonBeanProcessor#processBean(java.lang.Object, net.sf.json.JsonConfig)
25
	 */
26
	@Override
27
    public JSONObject processBean(Object bean, JsonConfig jsonConfig) {
28
		Object target = HibernateProxyHelper.deproxy(bean, Object.class);
29
		if(logger.isDebugEnabled()){
30
			logger.debug("deproxying object " + target);
31
		}
32
		removeFromCycleSet(target);
33
		return JSONObject.fromObject(target, jsonConfig);
34
	}
35
}
(7-7/25)