org.ala.layers.dao
Class DistributionDAOImpl

java.lang.Object
  extended by org.ala.layers.dao.DistributionDAOImpl
All Implemented Interfaces:
DistributionDAO

@Service(value="distributionDao")
public class DistributionDAOImpl
extends java.lang.Object
implements DistributionDAO

Author:
ajay

Constructor Summary
DistributionDAOImpl()
           
 
Method Summary
 java.lang.Double convertMetresToDecimalDegrees(java.lang.Float metres)
          WARNING: This conversion isnt accurate..
 Distribution findDistributionByLSIDOrName(java.lang.String lsidOrName)
          Find a distribution by name or LSID
 java.util.List<Distribution> getDistributionByLSID(java.lang.String[] lsids)
          Find a distributions by LSIDs
 Distribution getDistributionBySpcode(long spcode, java.lang.String type)
          Find a distributions by SPCode
 int getNumberOfVertices(java.lang.String lsid)
          Returns the number of vertices that make up the distribution for the supplied lsid
 java.util.Map<java.lang.String,java.lang.Double> identifyOutlierPointsForDistribution(java.lang.String lsid, java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.Double>> points)
          Identify points which fall outside an expert distribution
 java.util.List<Distribution> queryDistributions(java.lang.String wkt, double min_depth, double max_depth, java.lang.Boolean pelagic, java.lang.Boolean coastal, java.lang.Boolean estuarine, java.lang.Boolean desmersal, java.lang.String groupName, java.lang.Integer geomIdx, java.lang.String lsids, java.lang.String[] families, java.lang.String[] familyLsids, java.lang.String[] genera, java.lang.String[] generaLsids, java.lang.String type, java.lang.String[] dataResources)
           
 java.util.List<Distribution> queryDistributions(java.lang.String wkt, double min_depth, double max_depth, java.lang.Integer geomIdx, java.lang.String lsids, java.lang.String type, java.lang.String[] dataResources)
           
 java.util.List<Distribution> queryDistributionsByRadius(float longitude, float latitude, float radiusInMetres, double min_depth, double max_depth, java.lang.Boolean pelagic, java.lang.Boolean coastal, java.lang.Boolean estuarine, java.lang.Boolean desmersal, java.lang.String groupName, java.lang.Integer geomIdx, java.lang.String lsids, java.lang.String[] families, java.lang.String[] familyLsids, java.lang.String[] genera, java.lang.String[] generaLsids, java.lang.String type, java.lang.String[] dataResources)
          Query by radius
 java.util.List<Distribution> queryDistributionsByRadius(float longitude, float latitude, float radiusInMetres, double min_depth, double max_depth, java.lang.Integer geomIdx, java.lang.String lsids, java.lang.String[] families, java.lang.String[] familyLsids, java.lang.String[] genera, java.lang.String[] generaLsids, java.lang.String type, java.lang.String[] dataResources)
           
 java.util.List<Facet> queryDistributionsByRadiusFamilyCounts(float longitude, float latitude, float radiusInMetres, double min_depth, double max_depth, java.lang.Boolean pelagic, java.lang.Boolean coastal, java.lang.Boolean estuarine, java.lang.Boolean desmersal, java.lang.String groupName, java.lang.Integer geomIdx, java.lang.String lsids, java.lang.String[] families, java.lang.String[] familyLsids, java.lang.String[] genera, java.lang.String[] generaLsids, java.lang.String type, java.lang.String[] dataResources)
          Query by radius
 java.util.List<Facet> queryDistributionsFamilyCounts(java.lang.String wkt, double min_depth, double max_depth, java.lang.Boolean pelagic, java.lang.Boolean coastal, java.lang.Boolean estuarine, java.lang.Boolean desmersal, java.lang.String groupName, java.lang.Integer geomIdx, java.lang.String lsids, java.lang.String[] families, java.lang.String[] familyLsids, java.lang.String[] genera, java.lang.String[] generaLsids, java.lang.String type, java.lang.String[] dataResources)
           
 void setDataSource(javax.sql.DataSource dataSource)
           
 void setViewName(java.lang.String viewName)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DistributionDAOImpl

public DistributionDAOImpl()
Method Detail

findDistributionByLSIDOrName

public Distribution findDistributionByLSIDOrName(java.lang.String lsidOrName)
Description copied from interface: DistributionDAO
Find a distribution by name or LSID

Specified by:
findDistributionByLSIDOrName in interface DistributionDAO
Returns:

queryDistributions

public java.util.List<Distribution> queryDistributions(java.lang.String wkt,
                                                       double min_depth,
                                                       double max_depth,
                                                       java.lang.Integer geomIdx,
                                                       java.lang.String lsids,
                                                       java.lang.String type,
                                                       java.lang.String[] dataResources)
Specified by:
queryDistributions in interface DistributionDAO

queryDistributions

public java.util.List<Distribution> queryDistributions(java.lang.String wkt,
                                                       double min_depth,
                                                       double max_depth,
                                                       java.lang.Boolean pelagic,
                                                       java.lang.Boolean coastal,
                                                       java.lang.Boolean estuarine,
                                                       java.lang.Boolean desmersal,
                                                       java.lang.String groupName,
                                                       java.lang.Integer geomIdx,
                                                       java.lang.String lsids,
                                                       java.lang.String[] families,
                                                       java.lang.String[] familyLsids,
                                                       java.lang.String[] genera,
                                                       java.lang.String[] generaLsids,
                                                       java.lang.String type,
                                                       java.lang.String[] dataResources)
Specified by:
queryDistributions in interface DistributionDAO

queryDistributionsFamilyCounts

public java.util.List<Facet> queryDistributionsFamilyCounts(java.lang.String wkt,
                                                            double min_depth,
                                                            double max_depth,
                                                            java.lang.Boolean pelagic,
                                                            java.lang.Boolean coastal,
                                                            java.lang.Boolean estuarine,
                                                            java.lang.Boolean desmersal,
                                                            java.lang.String groupName,
                                                            java.lang.Integer geomIdx,
                                                            java.lang.String lsids,
                                                            java.lang.String[] families,
                                                            java.lang.String[] familyLsids,
                                                            java.lang.String[] genera,
                                                            java.lang.String[] generaLsids,
                                                            java.lang.String type,
                                                            java.lang.String[] dataResources)
Specified by:
queryDistributionsFamilyCounts in interface DistributionDAO

getDistributionBySpcode

public Distribution getDistributionBySpcode(long spcode,
                                            java.lang.String type)
Description copied from interface: DistributionDAO
Find a distributions by SPCode

Specified by:
getDistributionBySpcode in interface DistributionDAO
Returns:

queryDistributionsByRadius

public java.util.List<Distribution> queryDistributionsByRadius(float longitude,
                                                               float latitude,
                                                               float radiusInMetres,
                                                               double min_depth,
                                                               double max_depth,
                                                               java.lang.Integer geomIdx,
                                                               java.lang.String lsids,
                                                               java.lang.String[] families,
                                                               java.lang.String[] familyLsids,
                                                               java.lang.String[] genera,
                                                               java.lang.String[] generaLsids,
                                                               java.lang.String type,
                                                               java.lang.String[] dataResources)

queryDistributionsByRadius

public java.util.List<Distribution> queryDistributionsByRadius(float longitude,
                                                               float latitude,
                                                               float radiusInMetres,
                                                               double min_depth,
                                                               double max_depth,
                                                               java.lang.Boolean pelagic,
                                                               java.lang.Boolean coastal,
                                                               java.lang.Boolean estuarine,
                                                               java.lang.Boolean desmersal,
                                                               java.lang.String groupName,
                                                               java.lang.Integer geomIdx,
                                                               java.lang.String lsids,
                                                               java.lang.String[] families,
                                                               java.lang.String[] familyLsids,
                                                               java.lang.String[] genera,
                                                               java.lang.String[] generaLsids,
                                                               java.lang.String type,
                                                               java.lang.String[] dataResources)
Query by radius

Specified by:
queryDistributionsByRadius in interface DistributionDAO
Returns:
set of species with distributions intersecting the radius

queryDistributionsByRadiusFamilyCounts

public java.util.List<Facet> queryDistributionsByRadiusFamilyCounts(float longitude,
                                                                    float latitude,
                                                                    float radiusInMetres,
                                                                    double min_depth,
                                                                    double max_depth,
                                                                    java.lang.Boolean pelagic,
                                                                    java.lang.Boolean coastal,
                                                                    java.lang.Boolean estuarine,
                                                                    java.lang.Boolean desmersal,
                                                                    java.lang.String groupName,
                                                                    java.lang.Integer geomIdx,
                                                                    java.lang.String lsids,
                                                                    java.lang.String[] families,
                                                                    java.lang.String[] familyLsids,
                                                                    java.lang.String[] genera,
                                                                    java.lang.String[] generaLsids,
                                                                    java.lang.String type,
                                                                    java.lang.String[] dataResources)
Query by radius

Specified by:
queryDistributionsByRadiusFamilyCounts in interface DistributionDAO
Returns:
set of species with distributions intersecting the radius

getDistributionByLSID

public java.util.List<Distribution> getDistributionByLSID(java.lang.String[] lsids)
Description copied from interface: DistributionDAO
Find a distributions by LSIDs

Specified by:
getDistributionByLSID in interface DistributionDAO
Returns:

convertMetresToDecimalDegrees

public java.lang.Double convertMetresToDecimalDegrees(java.lang.Float metres)
WARNING: This conversion isnt accurate..

Returns:

getNumberOfVertices

public int getNumberOfVertices(java.lang.String lsid)
Description copied from interface: DistributionDAO
Returns the number of vertices that make up the distribution for the supplied lsid

Specified by:
getNumberOfVertices in interface DistributionDAO
Returns:

identifyOutlierPointsForDistribution

@Transactional(readOnly=false,
               propagation=REQUIRES_NEW)
public java.util.Map<java.lang.String,java.lang.Double> identifyOutlierPointsForDistribution(java.lang.String lsid,
                                                                                                           java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.Double>> points)
Description copied from interface: DistributionDAO
Identify points which fall outside an expert distribution

Specified by:
identifyOutlierPointsForDistribution in interface DistributionDAO
Parameters:
lsid - the lsid associated with the species whose expert distribution we are interested in.
points - Map containing point information. Keys are point ids (typically the uuids of the associated occurence records), values are maps containing the point's decimal latitude (with key "decimalLatitude") and decimal longitude (with key "decimalLongitude").
Returns:
A map containing the distance outside the expert distribution for each point which falls outside the area defined by the distribution. Keys are point ids, values are the distances

setDataSource

public void setDataSource(javax.sql.DataSource dataSource)

setViewName

public void setViewName(java.lang.String viewName)


Copyright © 2014. All Rights Reserved.