/*
This file is part of OpenMyEWB.
OpenMyEWB is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
OpenMyEWB 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 General Public License for more details.
You should have received a copy of the GNU General Public License
along with OpenMyEWB. If not, see <http://www.gnu.org/licenses/>.
OpenMyEWB is Copyright 2005-2009 Nicolas Kruchten (nicolas@kruchten.com), Francis Kung, Engineers Without Borders Canada, Michael Trauttmansdorff, Jon Fishbein, David Kadish
*/
package ca.myewb.model;
import org.hibernate.criterion.Restrictions;
import ca.myewb.frame.HibernateUtil;
import ca.myewb.logic.ApplicationQuestionLogic;
public class ApplicationQuestionModel extends ApplicationQuestionLogic
{
ApplicationQuestionModel(String q, ApplicationSessionModel session, int order)
{
super(q, session, order);
}
ApplicationQuestionModel()
{
super();
}
static ApplicationQuestionModel newApplicationQuestion(String q, ApplicationSessionModel session)
{
int newOrder = session.getQuestions().size() + 1;
ApplicationQuestionModel question = new ApplicationQuestionModel(q, session, newOrder);
HibernateUtil.currentSession().save(question);
return question;
}
public void save(String q)
{
setQuestion(q);
}
public void delete()
{
getSession().getQuestions().remove(this);
setSession(null);
}
public void upOrder()
{
if(getQuestionOrder() > 1)
{
ApplicationQuestionModel swap = (ApplicationQuestionModel)HibernateUtil.currentSession().createCriteria(ApplicationQuestionModel.class).add(Restrictions.eq("session", getSession())).add(Restrictions.eq("questionOrder", getQuestionOrder() - 1)).uniqueResult();
swap.setQuestionOrder(swap.getQuestionOrder() + 1);
setQuestionOrder(getQuestionOrder() - 1);
}
}
public void downOrder()
{
if(getQuestionOrder() < getSession().getQuestions().size())
{
ApplicationQuestionModel swap = (ApplicationQuestionModel)HibernateUtil.currentSession().createCriteria(ApplicationQuestionModel.class).add(Restrictions.eq("session", getSession())).add(Restrictions.eq("questionOrder", getQuestionOrder() + 1)).uniqueResult();
swap.setQuestionOrder(swap.getQuestionOrder() - 1);
setQuestionOrder(getQuestionOrder() + 1);
}
}
}