package com.nvarghese.beowulf.common.webtest.dao;
import java.util.List;
import org.bson.types.ObjectId;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.google.code.morphia.Datastore;
import com.google.code.morphia.Key;
import com.google.code.morphia.query.Query;
import com.google.code.morphia.query.QueryResults;
import com.nvarghese.beowulf.common.dao.AbstractMongoDAO;
import com.nvarghese.beowulf.common.webtest.WebTestType;
import com.nvarghese.beowulf.common.webtest.model.TestModuleMetaDataDocument;
public class TestModuleMetaDataDAO extends AbstractMongoDAO<TestModuleMetaDataDocument, ObjectId> {
static Logger logger = LoggerFactory.getLogger(TestModuleMetaDataDAO.class);
public TestModuleMetaDataDAO(Datastore ds) {
super(TestModuleMetaDataDocument.class, ds);
}
/**
*
* @param objectId
* @return
*/
public TestModuleMetaDataDocument getTestModuleMetaDataDocument(ObjectId objectId) {
return get(objectId);
}
/**
*
* @param objectId
* @return
*/
public TestModuleMetaDataDocument getTestModuleMetaDataDocument(String objectId) {
ObjectId id = new ObjectId(objectId);
return get(id);
}
/**
*
* @param testModuleMetaDataDocument
*/
public void updateTestModuleMetaDataDocument(TestModuleMetaDataDocument testModuleMetaDataDocument) {
logger.debug("Updating testModuleMetaDataDocument with id: {}", testModuleMetaDataDocument.getId());
save(testModuleMetaDataDocument);
}
/**
*
* Create a new TestModuleMetaDataDocument
*
* @param webScanDocument
*/
public ObjectId createTestModuleMetaDataDocument(TestModuleMetaDataDocument testModuleMetaDataDocument) {
logger.debug("Creating new testModuleMetaDataDocument.");
Key<TestModuleMetaDataDocument> key = save(testModuleMetaDataDocument);
return (ObjectId) key.getId();
}
public TestModuleMetaDataDocument findByModuleNumber(long monduleNumber) {
Query<TestModuleMetaDataDocument> q = ds.createQuery(TestModuleMetaDataDocument.class).field("moduleNumber").equal(monduleNumber);
TestModuleMetaDataDocument document = findOne(q);
return document;
}
public List<TestModuleMetaDataDocument> findByTestType(WebTestType testType) {
Query<TestModuleMetaDataDocument> q = ds.createQuery(TestModuleMetaDataDocument.class).field("testType").equal(testType);
QueryResults<TestModuleMetaDataDocument> results = find(q);
// List<TestModuleMetaDataDocument> docs = find(q);
List<TestModuleMetaDataDocument> docs = results.asList();
return docs;
}
}