/**
* Copyright 2011 Intuit Inc. All Rights Reserved
*/
package com.intuit.tank.dao;
/*
* #%L
* Data Access
* %%
* Copyright (C) 2011 - 2015 Intuit Inc.
* %%
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
* #L%
*/
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import com.intuit.tank.project.PeriodicData;
/**
* ProductDao
*
* @author dangleton
*
*/
public class PeriodicDataDao extends BaseDao<PeriodicData> {
private static final Logger LOG = LogManager.getLogger(PeriodicDataDao.class);
/**
* @param entityClass
*/
public PeriodicDataDao() {
super();
setReloadEntities(false);
}
/**
*
* @param name
* @return
*/
public List<PeriodicData> findByJobId(int jobId) {
String prefix = "x";
NamedParameter parameter = new NamedParameter(PeriodicData.PROPERTY_JOB_ID, "j", jobId);
StringBuilder sb = new StringBuilder();
sb.append(buildQlSelect(prefix)).append(startWhere())
.append(buildWhereClause(Operation.EQUALS, prefix, parameter));
sb.append(buildSortOrderClause(SortDirection.ASC, prefix, PeriodicData.PROPERTY_TIMESTAMP));
return super.listWithJQL(sb.toString(), parameter);
}
/**
*
* @param name
* @return
*/
public List<PeriodicData> findByJobId(int jobId, Date minDate, Date maxDate) {
String prefix = "x";
NamedParameter parameter = new NamedParameter(PeriodicData.PROPERTY_JOB_ID, "j", jobId);
StringBuilder sb = new StringBuilder();
List<NamedParameter> paramList = new ArrayList<NamedParameter>();
paramList.add(parameter);
sb.append(buildQlSelect(prefix)).append(startWhere())
.append(buildWhereClause(Operation.EQUALS, prefix, parameter));
if (minDate != null) {
NamedParameter minParam = new NamedParameter(PeriodicData.PROPERTY_TIMESTAMP, "minTime", minDate);
LOG.info(minDate);
sb.append(getAnd()).append(buildWhereClause(Operation.GREATER_THAN_OR_EQUALS, prefix, minParam));
paramList.add(minParam);
}
if (maxDate != null) {
LOG.info(maxDate);
NamedParameter maxParam = new NamedParameter(PeriodicData.PROPERTY_TIMESTAMP, "maxTime", maxDate);
sb.append(getAnd()).append(buildWhereClause(Operation.LESS_THAN, prefix, maxParam));
paramList.add(maxParam);
}
sb.append(buildSortOrderClause(SortDirection.ASC, prefix, PeriodicData.PROPERTY_TIMESTAMP));
LOG.info(sb.toString());
return super.listWithJQL(sb.toString(), paramList.toArray(new NamedParameter[paramList.size()]));
}
}