Statistics
| Revision:

svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.compat.cdc / org.gvsig.fmap.dal / org.gvsig.fmap.dal.db / org.gvsig.fmap.dal.db.mdb / src / main / java / org / gvsig / fmap / dal / store / mdb / MDBStoreProviderFactory.java @ 44916

History | View | Annotate | Download (2.5 KB)

1
package org.gvsig.fmap.dal.store.mdb;
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 MDBStoreProviderFactory extends JDBCStoreProviderFactory {
21

    
22
  private static final String NAME = MDBLibrary.NAME;
23
  private static final Set<String> ALLOWED_FUNCTIONS = new HashSet<>(
24
           Arrays.asList(new String[] {
25
             "COUNT",
26
             "SUM",
27
             "MIN",
28
             "MAX"
29
           }
30
       )
31
    );
32
  private static final Set<String> DENIED_FUNCTIONS =  Collections.EMPTY_SET;
33
  
34
  public MDBStoreProviderFactory() {
35
    super(
36
            NAME,
37
            "MDBSpatial store"
38
    );
39
  }
40

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

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

    
60
  @Override
61
  public int hasVectorialSupport() {
62
    return YES;
63
  }
64

    
65
  @Override
66
  public int hasRasterSupport() {
67
    return NO;
68
  }
69

    
70
  @Override
71
  public int hasTabularSupport() {
72
    return YES;
73
  }
74

    
75
  @Override
76
  public int hasSQLSupport() {
77
    return YES;
78
  }
79

    
80
  @Override
81
  public Function<String,Integer> allowFunction() {
82
    return (Function<String,Integer>) (String name) -> {
83
      if (ALLOWED_FUNCTIONS.contains(name)) {
84
        return YES;
85
      }
86
      if (DENIED_FUNCTIONS.contains(name)) {
87
        return NO;
88
      }
89
      return UNKNOWN;
90
    };
91
  }
92

    
93
  @Override
94
  public int allowGroupBy() {
95
    return YES;
96
  }
97

    
98

    
99
}