Statistics
| Revision:

svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.library / org.gvsig.exportto / org.gvsig.exportto.lib / org.gvsig.exportto.lib.impl / src / main / java / org / gvsig / export / impl / service / DefaultExportServiceManager.java @ 44860

History | View | Annotate | Download (3.66 KB)

1
/*
2
 * To change this license header, choose License Headers in Project Properties.
3
 * To change this template file, choose Tools | Templates
4
 * and open the template in the editor.
5
 */
6
package org.gvsig.export.impl.service;
7

    
8
import java.util.ArrayList;
9
import java.util.Collections;
10
import java.util.HashMap;
11
import java.util.List;
12
import java.util.Map;
13
import org.cresques.cts.ICoordTrans;
14
import org.gvsig.export.ExportAttributes;
15
import org.gvsig.export.ExportParameters;
16
import org.gvsig.export.ExportParametersGeometry;
17
import org.gvsig.export.Filter;
18
import org.gvsig.export.impl.ExportGeometryUtils;
19
import org.gvsig.export.spi.ExportGeometryHelper;
20
import org.gvsig.export.spi.ExportService;
21
import org.gvsig.export.spi.ExportServiceFactory;
22
import org.gvsig.export.spi.ExportServiceManager;
23
import org.gvsig.fmap.dal.feature.FeatureType;
24
import org.gvsig.fmap.geom.Geometry;
25
import org.slf4j.Logger;
26
import org.slf4j.LoggerFactory;
27

    
28
/**
29
 *
30
 * @author jjdelcerro
31
 */
32
public class DefaultExportServiceManager implements ExportServiceManager {
33

    
34
    private static final Logger LOG = LoggerFactory.getLogger(DefaultExportServiceManager.class);
35

    
36
    private final Map<String, ExportServiceFactory> factories;
37
    
38
    public DefaultExportServiceManager() {
39
        super();
40
        this.factories = new HashMap<>();
41
    }
42

    
43
    @Override
44
    public ExportServiceFactory getServiceFactory(String name) {
45
        ExportServiceFactory factory = this.factories.get(name);
46
        if (factory == null) {
47
            throw new IllegalArgumentException("Don't exists export factory '" + name + "'.");
48
        }
49
        return factory;
50
    }
51

    
52
    @Override
53
    public ExportService createService(ExportParameters parameters) {
54
        return this.getServiceFactory(parameters.getServiceName()).createService(parameters);
55
    }
56

    
57
    @Override
58
    public ExportParameters createServiceParameters(String name) {
59
        return this.getServiceFactory(name).createParameters();
60
    }
61

    
62
    @Override
63
    public void register(ExportServiceFactory factory) {
64
        this.factories.put(factory.getName(), factory);
65
    }
66

    
67
    @Override
68
    public List<ExportServiceFactory> getAllServiceFactories() {
69
        List<ExportServiceFactory> result = new ArrayList<>();
70
        result.addAll(this.factories.values());
71
        return Collections.unmodifiableList(result);
72
    }
73

    
74
    @Override
75
    public List<ExportServiceFactory> getServiceFactories(Filter<ExportServiceFactory> filter) {
76
        List<ExportServiceFactory> result = new ArrayList<>();
77
        if (filter == null) {
78
            result.addAll(this.factories.values());
79
        } else {
80
            for (ExportServiceFactory factory : this.factories.values()) {
81
                if (factory.isEnabled() && filter.apply(factory)) {
82
                    result.add(factory);
83
                }
84
            }
85
        }
86
        return Collections.unmodifiableList(result);
87
    }
88

    
89
    @Override
90
    public FixGeometryStatus fixGeometry(
91
            ExportParametersGeometry parmeters,
92
            ICoordTrans coord_trans,
93
            Geometry geometry
94
    ) {
95
        return ExportGeometryUtils.fixGeometry(parmeters, coord_trans, geometry);
96
    }
97

    
98
    @Override
99
    public ExportGeometryHelper createGeometryHelper(ExportParametersGeometry parameters, FeatureType theTargetFeatureType, FeatureType theSourceFeatureType) {
100
        DefaultExportGeometryHelper helper = new DefaultExportGeometryHelper(
101
                parameters,
102
                theTargetFeatureType,
103
                theSourceFeatureType
104
        );
105
        return helper;
106

    
107
    }
108

    
109
    @Override
110
    public ExportAttributes createExportAttributes() {
111
        DefaultExportAttributes exp = new DefaultExportAttributes();
112
        return exp;
113
    }
114
}