All Downloads are FREE. Search and download functionalities are using the official Maven repository.
Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
org.sonar.api.database.daos.AsyncMeasuresDao Maven / Gradle / Ivy
/*
* Sonar, open source software quality management tool.
* Copyright (C) 2009 SonarSource SA
* mailto:contact AT sonarsource DOT com
*
* Sonar is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 3 of the License, or (at your option) any later version.
*
* Sonar is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with Sonar; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02
*/
package org.sonar.api.database.daos;
import org.sonar.api.database.DatabaseSession;
import org.sonar.api.database.model.AsyncMeasureSnapshot;
import org.sonar.api.database.model.MeasureModel;
import org.sonar.api.database.model.ResourceModel;
import org.sonar.api.database.model.Snapshot;
import java.util.Date;
import java.util.List;
import javax.persistence.NoResultException;
import javax.persistence.Query;
public class AsyncMeasuresDao extends BaseDao {
public AsyncMeasuresDao(DatabaseSession session) {
super(session);
}
public MeasureModel getAsyncMeasure(Long asyncMeasureId) {
return getSession().getEntityManager().find(MeasureModel.class, asyncMeasureId);
}
public void deleteAsyncMeasure(MeasureModel asyncMeasure) {
deleteAsyncMeasureSnapshots(asyncMeasure.getId());
getSession().remove(asyncMeasure);
}
public Snapshot getPreviousSnapshot(Snapshot s) {
try {
return (Snapshot) getSession().createQuery(
"SELECT s FROM Snapshot s " +
"WHERE s.createdAt<:date " +
"AND s.scope=:scope " +
"AND s.resourceId=:resourceId " +
"ORDER BY s.createdAt DESC")
.setParameter("date", s.getCreatedAt())
.setParameter("scope", s.getScope())
.setParameter("resourceId", s.getResourceId())
.setMaxResults(1)
.getSingleResult();
} catch (NoResultException ex) {
return null;
}
}
public List getNextSnapshotsUntilDate(MeasureModel measure, Date date) {
Query query = getSession().createQuery(
"SELECT s FROM Snapshot s " +
"WHERE s.resourceId=:projectId " +
"AND s.createdAt>=:beginDate " +
(date != null ? "AND s.createdAt<:endDate " : "") +
"AND s.scope=:scope " +
"ORDER BY s.createdAt ASC ")
.setParameter("projectId", measure.getProjectId())
.setParameter("beginDate", measure.getMeasureDate())
.setParameter("scope", ResourceModel.SCOPE_PROJECT);
if (date != null) {
query.setParameter("endDate", date);
}
return query.getResultList();
}
public AsyncMeasureSnapshot createAsyncMeasureSnapshot(Long asyncMeasureId, Integer snapshotId, Date AsyncMeasureDate, Date snapshotDate, Integer metricId, Integer projectId) {
AsyncMeasureSnapshot asyncMeasureSnapshot = new AsyncMeasureSnapshot(asyncMeasureId, snapshotId, AsyncMeasureDate, snapshotDate, metricId, projectId);
getSession().save(asyncMeasureSnapshot);
return asyncMeasureSnapshot;
}
public void updateAsyncMeasureSnapshot(AsyncMeasureSnapshot asyncMeasureSnapshot, Snapshot snapshot) {
if (snapshot != null) {
asyncMeasureSnapshot.setSnapshotId(snapshot.getId());
asyncMeasureSnapshot.setSnapshotDate(snapshot.getCreatedAt());
} else {
asyncMeasureSnapshot.setSnapshotId(null);
asyncMeasureSnapshot.setSnapshotDate(null);
}
getSession().merge(asyncMeasureSnapshot);
}
public void removeSnapshotFromAsyncMeasureSnapshot(AsyncMeasureSnapshot asyncMeasureSnapshot) {
asyncMeasureSnapshot.setSnapshotId(null);
asyncMeasureSnapshot.setSnapshotDate(null);
getSession().merge(asyncMeasureSnapshot);
}
public AsyncMeasureSnapshot getNextAsyncMeasureSnapshot(Integer projetcId, Integer metricId, Date date) {
try {
return (AsyncMeasureSnapshot) getSession().createQuery(
"SELECT ams FROM AsyncMeasureSnapshot ams " +
"WHERE ams.projectId=:projectId " +
"AND ams.metricId=:metricId " +
"AND ams.measureDate>:date " +
"ORDER BY ams.measureDate ASC")
.setParameter("projectId", projetcId)
.setParameter("metricId", metricId)
.setParameter("date", date)
.setMaxResults(1)
.getSingleResult();
} catch (NoResultException ex) {
return null;
}
}
public List getNextAsyncMeasureSnapshotsUntilDate(MeasureModel asyncMeasure, Date endDate) {
Query query = getSession().createQuery(
"SELECT ams FROM AsyncMeasureSnapshot ams " +
"WHERE ams.projectId=:projectId " +
"AND ams.metricId=:metricId " +
(endDate != null ? "AND ams.measureDate<:endDate " : "") +
"AND ams.snapshotDate>=:measureDate " +
"ORDER BY ams.snapshotDate ASC ")
.setParameter("projectId", asyncMeasure.getProjectId())
.setParameter("metricId", asyncMeasure.getMetric().getId())
.setParameter("measureDate", asyncMeasure.getMeasureDate());
if (endDate != null) {
query.setParameter("endDate", endDate);
}
return query.getResultList();
}
public List getPreviousAsyncMeasureSnapshots(Integer projectId, Date beginDate, Date endDate) {
Query query = getSession().createQuery(
"SELECT ams FROM AsyncMeasureSnapshot ams " +
"WHERE ams.projectId=:projectId " +
"AND ams.measureDate<=:endDate " +
(beginDate != null ? "AND ams.measureDate>:beginDate " : "") +
"AND ams.snapshotId IS NULL " +
"ORDER BY ams.measureDate ASC")
.setParameter("projectId", projectId)
.setParameter("endDate", endDate);
if (beginDate != null) {
query.setParameter("beginDate", beginDate);
}
return query.getResultList();
}
public List getAsyncMeasureSnapshotsFromSnapshotId(Integer snapshotId, List metricIdsToExclude) {
Query query = getSession().createQuery(
"SELECT ams FROM AsyncMeasureSnapshot ams " +
"WHERE ams.snapshotId=:snapshotId " +
(!metricIdsToExclude.isEmpty() ? "AND ams.metricId NOT IN (:metricIdsToExclude) " : "") +
"ORDER BY ams.measureDate ASC")
.setParameter("snapshotId", snapshotId);
if (!metricIdsToExclude.isEmpty()) {
query.setParameter("metricIdsToExclude", metricIdsToExclude);
}
return query.getResultList();
}
public AsyncMeasureSnapshot getLastAsyncMeasureSnapshot(Integer projetcId, Integer metricId, Date date) {
try {
return (AsyncMeasureSnapshot) getSession().createQuery(
"SELECT ams FROM AsyncMeasureSnapshot ams " +
"WHERE ams.projectId=:projectId " +
"AND ams.metricId=:metricId " +
"AND ams.measureDate<:date " +
"ORDER BY ams.measureDate DESC")
.setParameter("projectId", projetcId)
.setParameter("metricId", metricId)
.setParameter("date", date)
.setMaxResults(1)
.getSingleResult();
} catch (NoResultException ex) {
return null;
}
}
public void deleteAsyncMeasureSnapshots(Long asyncMeasureId) {
getSession().createQuery(
"DELETE FROM AsyncMeasureSnapshot ams WHERE ams.measureId=:measureId")
.setParameter("measureId", asyncMeasureId)
.executeUpdate();
}
}