1 package org.codehaus.plexus.component.configurator.converters.basic;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 import java.io.File;
28
29 import org.codehaus.plexus.component.configurator.ComponentConfigurationException;
30 import org.codehaus.plexus.component.configurator.ConfigurationListener;
31 import org.codehaus.plexus.component.configurator.converters.lookup.ConverterLookup;
32 import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluator;
33 import org.codehaus.plexus.configuration.PlexusConfiguration;
34
35
36
37
38 public class FileConverter extends AbstractBasicConverter {
39 public boolean canConvert(Class type) {
40 return type.equals(File.class);
41 }
42
43 public Object fromString(String str) {
44 str = str.replace('\\', File.separatorChar).replace('/', File.separatorChar);
45 return new File(str);
46 }
47
48 public Object fromConfiguration(
49 ConverterLookup converterLookup,
50 PlexusConfiguration configuration,
51 Class type,
52 Class baseType,
53 ClassLoader classLoader,
54 ExpressionEvaluator expressionEvaluator,
55 ConfigurationListener listener)
56 throws ComponentConfigurationException {
57 File f = (File) super.fromConfiguration(
58 converterLookup, configuration, type, baseType, classLoader, expressionEvaluator, listener);
59
60 if (f != null) {
61
62 return expressionEvaluator.alignToBaseDirectory(f);
63 } else {
64 return null;
65 }
66 }
67 }