Project

General

Profile

Download (2.57 KB) Statistics
| Branch: | Tag: | Revision:
1
// $Id$
2
/**
3
 * Copyright (C) 2009 EDIT European Distributed Institute of Taxonomy
4
 * http://www.e-taxonomy.eu
5
 * 
6
 * The contents of this file are subject to the Mozilla Public License Version
7
 * 1.1 See LICENSE.TXT at the top of this package for the full license terms.
8
 */
9

    
10
package eu.etaxonomy.cdm.remote.json.processor;
11

    
12
import java.util.Set;
13

    
14
import org.apache.log4j.Logger;
15
import org.hibernate.proxy.HibernateProxy;
16

    
17
import net.sf.json.processors.JsonBeanProcessorMatcher;
18
import eu.etaxonomy.cdm.model.common.CdmBase;
19
import eu.etaxonomy.cdm.model.common.OrderedTermBase;
20
import eu.etaxonomy.cdm.model.common.TermBase;
21
import eu.etaxonomy.cdm.model.description.FeatureNode;
22
import eu.etaxonomy.cdm.model.description.TextData;
23
import eu.etaxonomy.cdm.model.media.Media;
24
import eu.etaxonomy.cdm.model.name.NameRelationship;
25
import eu.etaxonomy.cdm.model.name.TaxonNameBase;
26
import eu.etaxonomy.cdm.model.reference.ReferenceBase;
27
import eu.etaxonomy.cdm.model.taxon.Taxon;
28
import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;
29

    
30
/**
31
 * can handle HibernateProxys
32
 * 
33
 * @author a.kohlbecker
34
 *
35
 */
36
public class CdmProxyBeanProcessorMatcher extends JsonBeanProcessorMatcher {
37

    
38
	public static final Logger logger = Logger.getLogger(CdmProxyBeanProcessorMatcher.class);
39
	
40
	/* (non-Javadoc)
41
	 * @see net.sf.json.processors.JsonBeanProcessorMatcher#getMatch(java.lang.Class, java.util.Set)
42
	 */
43
	@SuppressWarnings("unchecked")
44
	@Override
45
	public Object getMatch(Class target, Set set) {
46
		
47
		
48
		if (HibernateProxy.class.isAssignableFrom(target)) {
49
			if(logger.isDebugEnabled()){
50
				logger.debug("Found HibernateProxy object of class " + target.getClass() + " returning " + HibernateProxy.class);
51
			}
52
			return HibernateProxy.class;
53
        }
54
		if (Taxon.class.isAssignableFrom(target)) {
55
			return DEFAULT.getMatch(Taxon.class, set);
56
		}
57
		if (TaxonNameBase.class.isAssignableFrom(target)) {
58
			return DEFAULT.getMatch(TaxonNameBase.class, set);
59
		}
60
		if (TermBase.class.isAssignableFrom(target)) {
61
			return DEFAULT.getMatch(TermBase.class, set);
62
		}
63
		if (NameRelationship.class.isAssignableFrom(target)) {
64
			return DEFAULT.getMatch(NameRelationship.class, set);
65
		}
66
		if (TaxonRelationship.class.isAssignableFrom(target)) {
67
			return DEFAULT.getMatch(TaxonRelationship.class, set);
68
		}
69
		if (Media.class.isAssignableFrom(target)) {
70
			return DEFAULT.getMatch(Media.class, set);
71
		}
72
		if (ReferenceBase.class.isAssignableFrom(target)) {
73
			return DEFAULT.getMatch(ReferenceBase.class, set);
74
		}
75

    
76
		return DEFAULT.getMatch(target, set);
77
	}
78
	
79
	
80
}
(5-5/24)