Statistics
| Revision:

root / trunk / org.gvsig.postgresql / org.gvsig.postgresql.provider / src / main / java / org / gvsig / postgresql / dal / PostgreSQLStoreProviderFactory.java @ 1401

History | View | Annotate | Download (2.74 KB)

1
package org.gvsig.postgresql.dal;
2

    
3
import java.util.Arrays;
4
import java.util.Collections;
5
import java.util.HashSet;
6
import java.util.Set;
7
import java.util.function.Function;
8
import org.gvsig.fmap.dal.DataParameters;
9
import static org.gvsig.fmap.dal.DataStoreProviderFactory.NO;
10
import static org.gvsig.fmap.dal.DataStoreProviderFactory.UNKNOWN;
11
import static org.gvsig.fmap.dal.DataStoreProviderFactory.YES;
12
import org.gvsig.fmap.dal.exception.InitializeException;
13
import org.gvsig.fmap.dal.spi.DataStoreProviderServices;
14
import org.gvsig.fmap.dal.store.jdbc.JDBCConnectionParameters;
15
import org.gvsig.fmap.dal.store.jdbc.JDBCStoreParametersBase;
16
import org.gvsig.fmap.dal.store.jdbc2.JDBCHelper;
17
import org.gvsig.fmap.dal.store.jdbc2.JDBCStoreProvider;
18
import org.gvsig.fmap.dal.store.jdbc2.impl.JDBCStoreProviderFactoryBase;
19

    
20
public class PostgreSQLStoreProviderFactory extends JDBCStoreProviderFactoryBase {
21

    
22
    private static final Set<String> ALLOWED_FUNCTIONS = new HashSet<>(
23
            Arrays.asList(new String[]{
24
        "COUNT",
25
        "SUM",
26
        "MIN",
27
        "MAX"
28
    }
29
            )
30
    );
31
    private static final Set<String> DENIED_FUNCTIONS = Collections.EMPTY_SET;
32

    
33
    public PostgreSQLStoreProviderFactory() {
34
        super(
35
                PostgreSQLLibrary.NAME,
36
                "PostgreSQL store"
37
        );
38
    }
39

    
40
    @Override
41
    public JDBCStoreProvider createProvider(
42
            DataParameters parameters,
43
            DataStoreProviderServices providerServices
44
    ) throws InitializeException {
45
        JDBCHelper helper = new PostgreSQLHelper((JDBCConnectionParameters) parameters);
46
        JDBCStoreProvider provider = helper.createProvider((JDBCStoreParametersBase) parameters,
47
                providerServices
48
        );
49
        return provider;
50
    }
51

    
52
    @Override
53
    public JDBCStoreParametersBase createParameters() {
54
        JDBCStoreParametersBase params = new PostgreSQLStoreParameters();
55
        return params;
56
    }
57

    
58
    @Override
59
    public Function<String, Integer> allowFunction() {
60
        return (Function<String, Integer>) (String name) -> {
61
            if (ALLOWED_FUNCTIONS.contains(name)) {
62
                return YES;
63
            }
64
            if (DENIED_FUNCTIONS.contains(name)) {
65
                return NO;
66
            }
67
            return UNKNOWN;
68
        };
69
    }
70

    
71
    @Override
72
    public int allowGroupBy() {
73
        return YES;
74
    }
75

    
76
    @Override
77
    public int hasVectorialSupport() {
78
        return YES;
79
    }
80

    
81
    @Override
82
    public int hasRasterSupport() {
83
        return NO;
84
    }
85

    
86
    @Override
87
    public int hasTabularSupport() {
88
        return YES;
89
    }
90

    
91
    @Override
92
    public int hasSQLSupport() {
93
        return YES;
94
    }
95

    
96
    @Override
97
    public int allowEditableFeatureType() {
98
      return YES;
99
    }
100

    
101
    
102
}