package org.voidsink.kussslib.impl; import java.text.ParseException; import java.util.Date; import org.jsoup.nodes.Element; import org.jsoup.select.Elements; import org.voidsink.kussslib.Curricula; public class CurriculaImpl implements Curricula { private boolean isStandard; private int cid; private String title; private boolean steopDone; private boolean active; private String uni; private Date dtStart; private Date dtEnd; public CurriculaImpl(Element row) throws ParseException { Elements columns = row.getElementsByTag("td"); if (columns.size() >= 8) { isStandard = (columns.get(0).getElementsByAttributeValue("checked", "checked").size() > 0); cid = Integer.parseInt(columns.get(1).text()); title = columns.get(2).text(); steopDone = parseSteopDone(columns.get(3).text()); active = parseActive(columns.get(4).text()); uni = columns.get(5).text(); dtStart = Parser.parseDate(columns.get(6).text(), Parser.FAILED_PARSING_START_DATE); dtEnd = Parser.parseDate(columns.get(7).text(), Parser.FAILED_PARSING_END_DATE); } } public CurriculaImpl(Date dtStart, Date dtEnd) { this.dtStart = dtStart; this.dtEnd = dtEnd; } CurriculaImpl(int cid, String title, String uni, Date dtStart, Date dtEnd, boolean isStandard, boolean steopDone, boolean active) { this(dtStart, dtEnd); this.cid = cid; this.uni = uni; this.isStandard = isStandard; this.steopDone = steopDone; this.active = active; } private boolean parseActive(String text) { return text.equalsIgnoreCase("aktiv"); } private boolean parseSteopDone(String text) { return text.equalsIgnoreCase("abgeschlossen") || text.equalsIgnoreCase("completed"); } boolean isInitialized() { return !TextUtils.isEmpty(cid) && !TextUtils.isEmpty(uni) && (dtStart != null); } public boolean isStandard() { return isStandard; } public int getCid() { return cid; } public String getTitle() { return title; } public boolean isSteopDone() { return steopDone; } public boolean isActive() { return active; } public String getUniversity() { return uni; } public Date getDtStart() { return dtStart; } public Date getDtEnd() { return dtEnd; } }