1 package net.sourceforge.pmd.lang.rule.properties;
2
3 import java.io.File;
4 import java.util.Map;
5
6 import net.sourceforge.pmd.PropertyDescriptorFactory;
7 import net.sourceforge.pmd.lang.rule.properties.factories.BasicPropertyDescriptorFactory;
8 import net.sourceforge.pmd.util.StringUtil;
9
10
11
12
13 public class FileProperty extends AbstractProperty<File> {
14
15 public static final PropertyDescriptorFactory FACTORY = new BasicPropertyDescriptorFactory<FileProperty>(File.class) {
16
17 public FileProperty createWith(Map<String, String> valuesById) {
18 return new FileProperty(
19 nameIn(valuesById),
20 descriptionIn(valuesById),
21 null,
22 0f);
23 }
24 };
25
26 public FileProperty(String theName, String theDescription, File theDefault, float theUIOrder) {
27 super(theName, theDescription, theDefault, theUIOrder);
28 }
29
30 public Class<File> type() {
31 return File.class;
32 }
33
34 public File valueFrom(String propertyString) throws IllegalArgumentException {
35
36 return StringUtil.isEmpty(propertyString) ? null : new File(propertyString);
37 }
38
39 @Override
40 protected String defaultAsString() {
41
42 return null;
43 }
44
45 }