Skip to content

Builder

Stefania Bezerra da Silva edited this page May 13, 2017 · 1 revision
Data Versão Descrição Autor
11/05/2017 1.0 Criação do documento Stefania Bezerra
11/05/2017 1.0 Inserção do código Stefania Bezerra
public class Exam extends Event{
    private Float grade;
    private String contentExam;

    public Exam(Integer eventId, Date dateEvent, Date startTime,
                Date endTime, String localEvent, Integer disciplineClassId,
                Float grade, String contentExam){
        super(eventId, dateEvent, startTime, endTime, localEvent, disciplineClassId);

        setGrade(grade);
        setContentExam(contentExam);
    }

    public float getGrade() {
        return this.grade;
    }

    public void setGrade(float grade) {
        this.grade = grade;
    }

    public void setContentExam(String contentExam){
        this.contentExam = contentExam;
    }

    public String getContentExam (){
        return this.contentExam;
    }

    public static class Builder{

        private Integer eventId;
        private Date dateEvent;
        private Date startTime;
        private Date endTime;
        private String localEvent;
        private Integer disciplineClassId;
        private Float grade;
        private String contentExam;

        public Builder setEventId(int eventId){
            this.eventId = eventId;
            return this;
        }
        public Builder setDateEvent(Date dateEvent){
            this.dateEvent = dateEvent;
            return this;
        }

        public Builder setStartTime(Date startTime){
            this.startTime = startTime;
            return this;
        }

        public Builder setEndTime(Date endTime){
            this.endTime = endTime;
            return this;
        }

        public Builder setLocalEvent(String localEvent){
            this.localEvent = localEvent;
            return this;
        }

        public Builder setDisciplineClassId(int disciplineClassId){
            this.disciplineClassId = disciplineClassId;
            return this;
        }

        public Builder setGrade(Float grade){
            this.grade = grade;
            return this;
        }

        public Builder setContentExam(String contentExam){
            this.contentExam = contentExam;
            return this;
        }

        public Exam createExam(){
            return new Exam(eventId, dateEvent, startTime, endTime, localEvent,
                        disciplineClassId, grade, contentExam);
        }
    }

O padrão chamando a DAO

public class ExamDAO extends GenericDBDAO{
    private static final String WHERE_ID_EQUALS = DataBaseHelper.EXAM_ID_COLUMN + " =?";

    private DisciplineDAO disciplineDAO;
    private DisciplineClassDAO disciplineClassDAO;

    public ExamDAO (Context context) {
        super(context);

        disciplineDAO = new DisciplineDAO(context);
        disciplineClassDAO = new DisciplineClassDAO(context);
    }

    public ArrayList<Exam> getAllExams (Integer disciplineClassId) {
        ArrayList<Exam> exams = new ArrayList<>();

        String sql = "SELECT * FROM " + DataBaseHelper.EXAM_TABLE +
                " WHERE " + DataBaseHelper.EXAM_DISCIPLINECLASSID_COLUMN + " = ?";

        Cursor cursor = database.rawQuery(sql, new String[] {disciplineClassId+""});

        while(cursor.moveToNext()){
            Exam.Builder builder = new Exam.Builder();
            Exam exam = builder.setEventId(cursor.getInt(0))
                    .setDateEvent(new Date(cursor.getLong(2)))
                    .setStartTime(new Date(cursor.getLong(3)))
                    .setEndTime(new Date(cursor.getLong(4)))
                    .setLocalEvent(cursor.getString(5))
                    .setDisciplineClassId(cursor.getInt(1))
                    .setGrade(cursor.getFloat(6))
                    .setContentExam(cursor.getString(7))
                    .createExam();
            exams.add(exam);
        }

        cursor.close();
        return exams;
    }

    public Exam getExam (Integer examId){
        Exam exam = null;

        String sql = "SELECT * FROM " + DataBaseHelper.EXAM_TABLE +
                " WHERE " + DataBaseHelper.EXAM_ID_COLUMN + " = ?";

        Cursor cursor = database.rawQuery(sql, new String[] { examId + "" });
        if(cursor.moveToNext()) {
          Exam.Builder builder = new Exam.Builder();
          exam = builder.setEventId(cursor.getInt(0))
                  .setDateEvent(new Date(cursor.getLong(2)))
                  .setStartTime(new Date(cursor.getLong(3)))
                  .setEndTime(new Date(cursor.getLong(4)))
                  .setLocalEvent(cursor.getString(5))
                  .setDisciplineClassId(cursor.getInt(1))
                  .setGrade(cursor.getFloat(6))
                  .setContentExam(cursor.getString(7))
                  .createExam();
        }
        cursor.close();
        return exam;
    }

    public long saveExam (Exam exam){
        ContentValues values = new ContentValues();

        values.put(DataBaseHelper.EXAM_DISCIPLINECLASSID_COLUMN, exam.getDisciplineClassId());
        values.put(DataBaseHelper.EXAM_DATEEVENT_COLUMN, exam.getDateEvent().toString());
        values.put(DataBaseHelper.EXAM_STARTTIME_COLUMN, exam.getDateEvent().toString());
        values.put(DataBaseHelper.EXAM_ENDTIME_COLUMN, exam.getEndTime().toString());
        values.put(DataBaseHelper.EXAM_LOCALEVENT_COLUMN, exam.getLocalEvent());
        values.put(DataBaseHelper.EXAM_GRADE_COLUMN, exam.getGrade());
        values.put(DataBaseHelper.EXAM_CONTENT_COLUMN, exam.getContentExam());

        return database.insert(DataBaseHelper.EXAM_TABLE, null, values);
    }

    public long updateExam (Exam exam){
        ContentValues values = new ContentValues();

        values.put(DataBaseHelper.EXAM_ID_COLUMN, exam.getDisciplineClassId());
        values.put(DataBaseHelper.EXAM_DISCIPLINECLASSID_COLUMN, exam.getDisciplineClassId());
        values.put(DataBaseHelper.EXAM_DATEEVENT_COLUMN, exam.getDateEvent().toString());
        values.put(DataBaseHelper.EXAM_STARTTIME_COLUMN, exam.getDateEvent().toString());
        values.put(DataBaseHelper.EXAM_ENDTIME_COLUMN, exam.getEndTime().toString());
        values.put(DataBaseHelper.EXAM_LOCALEVENT_COLUMN, exam.getLocalEvent());
        values.put(DataBaseHelper.EXAM_GRADE_COLUMN, exam.getGrade());
        values.put(DataBaseHelper.EXAM_CONTENT_COLUMN, exam.getContentExam());

        long result = database.update(DataBaseHelper.EXAM_TABLE, values,
                WHERE_ID_EQUALS,
                new String[] { String.valueOf(exam.getEventId())});
        Log.d("Update Result:", "=" + result);
        return result;
    }

    public int deleteExam (Exam exam) {
        return database.delete(DataBaseHelper.EXAM_TABLE, WHERE_ID_EQUALS,
                new String[] { exam.getEventId() + "" });
    }
}

Clone this wiki locally