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.Map;
17
18 import org.apache.commons.logging.Log;
19 import org.apache.commons.logging.LogFactory;
20 import org.exolab.castor.xml.ResolverException;
21 import org.exolab.castor.xml.util.ResolverClassCommand;
22 import org.exolab.castor.xml.util.ResolverStrategy;
23
24
25
26
27
28
29
30
31
32 public abstract class AbstractResolverClassCommand implements ResolverClassCommand {
33 private static final Log LOG = LogFactory.getLog(AbstractResolverClassCommand.class);
34
35
36
37
38 public final Map resolve(final String className, final Map properties) throws ResolverException {
39 if ((className == null) || ("".equals(className))) {
40 String message = "No class to resolve specified";
41 LOG.warn(message);
42 throw new IllegalArgumentException(message);
43 }
44
45 if (LOG.isDebugEnabled()) {
46 LOG.debug("Now in method: " + this.getClass().getName() + " resolving: " + className);
47 }
48
49 ClassLoader classLoader = (ClassLoader) properties.get(ResolverStrategy.PROPERTY_CLASS_LOADER);
50 return this.internalResolve(className, classLoader, properties);
51 }
52
53
54
55
56
57
58
59
60
61
62
63 protected abstract Map internalResolve(String className, ClassLoader classLoader, Map props)
64 throws ResolverException;
65 }