01: /**
02: * @see com.coldcore.coloradoftp.filter.DataFilterFactory
03: */package com.coldcore.coloradoftp.filter.impl;
04:
05: import com.coldcore.coloradoftp.factory.ObjectFactory;
06: import com.coldcore.coloradoftp.filter.DataFilter;
07: import com.coldcore.coloradoftp.filter.DataFilterFactory;
08:
09: import java.util.HashMap;
10: import java.util.HashSet;
11: import java.util.Map;
12: import java.util.Set;
13:
14: public class GenericDataFilterFactory implements DataFilterFactory {
15:
16: private Map<String, String> map;
17:
18: public GenericDataFilterFactory(Map<String, String> filtersRef) {
19: map = new HashMap<String, String>(filtersRef);
20: }
21:
22: public Set<String> listNames() {
23: return new HashSet<String>(map.keySet());
24: }
25:
26: public DataFilter create(String name) {
27: if (!map.containsKey(name))
28: throw new IllegalArgumentException("Filter " + name
29: + " cannot be loaded");
30:
31: String ref = map.get(name);
32: if (ref == null || ref.length() == 0)
33: return null; //No filter required
34:
35: DataFilter filter = (DataFilter) ObjectFactory.getObject(ref);
36: filter.setName(name);
37: return filter;
38: }
39: }
|