1
2
3
4
5
6
7
8
9
10
11
12
13
14 package org.exolab.castor.xml.util.resolvers;
15
16 import java.util.HashMap;
17 import java.util.Map;
18
19 import org.apache.commons.logging.Log;
20 import org.apache.commons.logging.LogFactory;
21 import org.exolab.castor.mapping.MappingLoader;
22 import org.exolab.castor.xml.ResolverException;
23 import org.exolab.castor.xml.XMLClassDescriptor;
24 import org.exolab.castor.xml.util.ResolverStrategy;
25
26
27
28
29
30
31
32
33
34 public class ByMappingLoader extends AbstractResolverClassCommand {
35 private static final Log LOG = LogFactory.getLog(ByMappingLoader.class);
36
37
38
39
40 public ByMappingLoader() {
41 super();
42 }
43
44
45
46
47
48
49 protected Map internalResolve(final String className, final ClassLoader classLoader,
50 final Map properties) throws ResolverException {
51
52 MappingLoader mappingLoader =
53 (MappingLoader) properties.get(ResolverStrategy.PROPERTY_MAPPING_LOADER);
54 HashMap results = new HashMap();
55 if (mappingLoader == null) {
56 LOG.debug("No mapping loader specified");
57 return results;
58 }
59
60 XMLClassDescriptor descriptor = (XMLClassDescriptor) mappingLoader.getDescriptor(className);
61 if (descriptor != null) {
62 if (LOG.isDebugEnabled()) {
63 LOG.debug("Found descriptor: " + descriptor);
64 }
65 results.put(className, descriptor);
66 }
67 return results;
68 }
69 }