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