Statistics
| Revision:

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

History | View | Annotate | Download (2.64 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.JDBCStoreParameters;
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.JDBCStoreProviderFactory;
19

    
20
public class PostgreSQLStoreProviderFactory extends JDBCStoreProviderFactory {
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(
47
                (JDBCStoreParameters) parameters,
48
                providerServices
49
        );
50
        return provider;
51
    }
52

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

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

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

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

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

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

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