Statistics
| Revision:

svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.plugin / org.gvsig.h2spatial / org.gvsig.h2spatial.h2gis132 / org.gvsig.h2spatial.h2gis132.provider / src / main / java / org / gvsig / fmap / dal / store / h2 / H2SpatialStoreProviderFactory.java @ 47606

History | View | Annotate | Download (2.63 KB)

1
package org.gvsig.fmap.dal.store.h2;
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.JDBCStoreProviderFactoryBase;
19

    
20
public class H2SpatialStoreProviderFactory extends JDBCStoreProviderFactoryBase {
21

    
22
  private static final String NAME = H2SpatialLibrary.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
             "AVG"
30
           }
31
       )
32
    );
33
  private static final Set<String> DENIED_FUNCTIONS =  Collections.EMPTY_SET;
34
  
35
  public H2SpatialStoreProviderFactory() {
36
    super(
37
            NAME,
38
            "H2Spatial store"
39
    );
40
  }
41

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

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

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

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

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

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

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

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

    
99
  @Override
100
  public int allowEditableFeatureType() {
101
    return YES;
102
  }
103

    
104

    
105

    
106
}