package org.ironbrain.dao;
import org.hibernate.criterion.Restrictions;
import org.ironbrain.Result;
import org.ironbrain.core.DirectionToField;
import org.ironbrain.core.Field;
import org.ironbrain.core.Section;
import org.ironbrain.core.SectionToField;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
@SuppressWarnings("unchecked")
public class FieldDao extends BaseDao {
@Autowired
private SectionDao sectionDao;
public Result<Integer> addField(String name) {
Field field = new Field();
field.setLabel(name);
field.setOwner(data.getUserId());
int id = (int) getSess().save(field);
return Result.getOk(id);
}
public SectionToField addFieldToSection(Integer fieldId, Integer sectionId) {
SectionToField sectionToField = new SectionToField();
Section section = sectionDao.getSection(sectionId, data.getUser());
sectionToField.setSection(section);
Field field = getField(fieldId);
sectionToField.setField(field);
int id = (int) getSess().save(sectionToField);
sectionToField.setId(id);
return sectionToField;
}
public Result addFieldToDirection(Integer fieldId, Integer directionId) {
DirectionToField directionToField = new DirectionToField();
directionToField.setDirection_id(directionId);
Field field = getField(fieldId);
directionToField.setField(field);
int id = (int) getSess().save(directionToField);
return Result.getOk(id);
}
public Field getField(Integer id) {
return (Field) getSess().get(Field.class, id);
}
public List<Field> getFields() {
List<Field> fields;
fields = getSess().createCriteria(Field.class)
.add(Restrictions.eq("owner", data.getUserId()))
.list();
return fields;
}
}