source: ether_megapoli/trunk/persistence/implementation/com/ether/dao/ValueDAOImpl.java @ 185

Last change on this file since 185 was 185, checked in by vmipsl, 13 years ago

Servlet _ TimeSerie? :

  • 1 paramètre ok
  • même paramètre sur différentes plateformes ok
File size: 6.1 KB
Line 
1package com.ether.dao;
2
3import com.ether.Data;
4import com.ether.PersistenceException;
5import com.medias.database.objects.Valeur;
6import org.hibernate.criterion.DetachedCriteria;
7import org.hibernate.criterion.Order;
8import org.hibernate.criterion.Projections;
9import org.hibernate.criterion.Restrictions;
10import org.jetbrains.annotations.NotNull;
11import org.jetbrains.annotations.Nullable;
12
13import java.util.Date;
14import java.util.List;
15
16/**
17 * @author vmipsl
18 * @date 07 apr 2011
19 */
20public class ValueDAOImpl
21        extends DomainAccessObjectImpl<Valeur, Integer>
22        implements ValueDAO
23{
24    protected ValueDAOImpl()
25    {
26        super( Valeur.class );
27    }
28
29    @NotNull
30    public <T1, T2, T3> Data<T1[], T2[], T3[]> getListsByPlateformByParameterByPeriodForTimeSerie( @NotNull final Integer plateformId, @NotNull final Integer parameterId, @Nullable final Date dateBegin, @Nullable final Date dateEnd )
31            throws PersistenceException
32    {
33        final DetachedCriteria criteria = DetachedCriteria.forClass( Valeur.class, "value" )
34                .add( Restrictions.eq( "value.parametre.id", parameterId ) )
35                .createCriteria( "mesure", "measure" )
36                .add( Restrictions.eq( "measure.plateforme.id", plateformId ) );
37
38        if( null != dateBegin )
39            criteria.add( Restrictions.ge( "measure.mesureDate", dateBegin ) );
40        if( null != dateEnd )
41            criteria.add( Restrictions.le( "measure.mesureDate", dateEnd ) );
42
43        criteria.setProjection( Projections.distinct( Projections.projectionList()
44                .add( Projections.property( "value.valeurVal" ) )
45                .add( Projections.property( "measure.mesureDate" ) ) ) );
46        criteria.addOrder( Order.asc( "measure.mesureDate" ) );
47
48        final List<Object[]> objects = selectAllByCriteria( Object[].class, criteria );
49        // TODO : remove maxResults to 10
50//        final List<Object[]> objects = selectPage( null, 10, criteria );
51
52        final double[] values = new double[objects.size()];
53        final Date[] dates = new Date[objects.size()];
54
55        int i = 0;
56        for( final Object[] value : objects )
57        {
58            values[i] = (Double) value[0];
59            dates[i] = (Date) value[1];
60            i++;
61        }
62
63        return new Data( values, dates );
64    }
65
66    @NotNull
67    public <T1, T2, T3> Data<T1[], T2[], T3[]> getListsByPlateformByParameterByPeriodFor2D( @NotNull final Integer plateformId, @NotNull final Integer parameterId, @Nullable final Date dateBegin, @Nullable final Date dateEnd )
68            throws PersistenceException
69    {
70        final DetachedCriteria criteria = DetachedCriteria.forClass( Valeur.class, "value" )
71                .add( Restrictions.eq( "value.parametre.id", parameterId ) )
72                .createCriteria( "mesure", "measure" )
73                .add( Restrictions.eq( "measure.plateforme.id", plateformId ) );
74
75        if( null != dateBegin )
76            criteria.add( Restrictions.ge( "measure.mesureDate", dateBegin ) );
77        if( null != dateEnd )
78            criteria.add( Restrictions.le( "measure.mesureDate", dateEnd ) );
79
80        criteria.createCriteria( "localisation", "localisation" );
81
82        criteria.setProjection( Projections.distinct( Projections.projectionList()
83                .add( Projections.property( "value.valeurVal" ) )
84                .add( Projections.property( "localisation.localisationLat" ) )
85                .add( Projections.property( "localisation.localisationLon" ) ) ) );
86
87        criteria.addOrder( Order.asc( "localisation.localisationLon" ) );
88
89//        final List<Object[]> objects = selectAllByCriteria( Object[].class, criteria );
90        // TODO : remove maxResults to 10
91        final List<Object[]> objects = selectPage( null, 10, criteria );
92
93        final double[] latitudeValues = new double[objects.size()];
94        final double[] longitudeValues = new double[objects.size()];
95        final double[] parameterValues = new double[objects.size()];
96
97        int i = 0;
98        for( final Object[] value : objects )
99        {
100            parameterValues[i] = (Double) value[0];
101            latitudeValues[i] = Double.valueOf( (Integer) value[1] );
102            longitudeValues[i] = Double.valueOf( (Integer) value[2] );
103            i++;
104        }
105
106        return new Data( parameterValues, latitudeValues, longitudeValues );
107    }
108
109    @NotNull
110    public Integer getNumberValuesByPlateformByParameterByPeriod( @NotNull final Integer plateformId, @NotNull final Integer parameterId, @Nullable final Date beginDate, @Nullable final Date endDate )
111            throws PersistenceException
112    {
113        final DetachedCriteria criteria = DetachedCriteria.forClass( Valeur.class, "value" )
114                .add( Restrictions.eq( "value.parametre.id", parameterId ) )
115                .createCriteria( "mesure", "measure" )
116                .add( Restrictions.eq( "measure.plateforme.id", plateformId ) );
117
118        if( null != beginDate )
119            criteria.add( Restrictions.ge( "measure.mesureDate", beginDate ) );
120        if( null != endDate )
121            criteria.add( Restrictions.le( "measure.mesureDate", endDate ) );
122
123        criteria.setProjection( Projections.property( "value.valeurVal" ) );
124
125        return count( criteria );
126    }
127
128//    @NotNull
129//    public Integer getNumberValuesByPlateformByParameterByPeriod( @NotNull final List<Pair> pairs, @Nullable final Date beginDate, @Nullable final Date endDate )
130//            throws PersistenceException
131//    {
132//        final DetachedCriteria criteria = DetachedCriteria.forClass( Valeur.class, "value" )
133//                .add( Restrictions.eq( "value.parametre.id", parameterId ) )
134//                .createCriteria( "mesure", "measure" )
135//                .add( Restrictions.eq( "measure.plateforme.id", plateformId ) );
136//
137//        if( null != beginDate )
138//            criteria.add( Restrictions.ge( "measure.mesureDate", beginDate ) );
139//        if( null != endDate )
140//            criteria.add( Restrictions.le( "measure.mesureDate", endDate ) );
141//
142//        criteria.setProjection( Projections.property( "value.valeurVal" ) );
143//
144//        return count( criteria );
145//    }
146
147}
Note: See TracBrowser for help on using the repository browser.