Example usage for org.jsoup.nodes Element equals

List of usage examples for org.jsoup.nodes Element equals

Introduction

In this page you can find the example usage for org.jsoup.nodes Element equals.

Prototype

@Override
public boolean equals(Object o) 

Source Link

Document

Check if this node is the same instance of another (object identity test).

Usage

From source file:me.vertretungsplan.parser.DaVinciParser.java

static void parseDaVinciTable(Element table, SubstitutionSchedule v, String klasse, SubstitutionScheduleDay day,
        ColorProvider colorProvider) {/*from   w  ww . j a va2  s  .co m*/
    List<String> headers = new ArrayList<>();
    for (Element header : table.select("thead tr th, tr td[bgcolor=#9999FF]")) {
        headers.add(header.text());
    }

    // These three variables can
    Set<String> classes = new HashSet<>();
    String lesson = null;
    LocalDate currentDate = null;

    Pattern previousCurrentPattern = Pattern.compile("\\+([^\\s]+) \\(([^)]+)\\)");
    Pattern previousPattern = Pattern.compile("\\(([^)]+)\\)");

    for (Element row : table.select("tr:not(thead tr, tr:has(td[bgcolor=#9999FF]))")) {
        Substitution subst = new Substitution();
        LocalDate substDate = null;
        Elements columns = row.select("td");
        for (int i = 0; i < headers.size(); i++) {
            String value = columns.get(i).text().replace("\u00a0", "");
            String header = headers.get(i);

            if (value.isEmpty()) {
                if (header.equals("Klasse"))
                    subst.setClasses(classes);
                if (header.equals("Pos") || header.equals("Stunde") || header.equals("Std.")) {
                    subst.setLesson(lesson);
                }
                if (header.equals("Art") || header.equals("Merkmal"))
                    subst.setType("Vertretung");
                if (header.equals("Datum"))
                    substDate = currentDate;
                continue;
            }

            Matcher previousCurrentMatcher = previousCurrentPattern.matcher(value);
            Matcher previousMatcher = previousPattern.matcher(value);

            switch (header) {
            case "Klasse":
                String classesStr = value;
                if (previousMatcher.find()) {
                    classesStr = previousMatcher.group(1);
                }
                classes = new HashSet<>(Arrays.asList(classesStr.split(", ")));
                subst.setClasses(classes);
                break;
            case "Pos":
            case "Stunde":
            case "Std.":
                lesson = value;
                subst.setLesson(lesson);
                break;
            case "VLehrer Krzel":
            case "VLehrer":
            case "Vertreter":
            case "Vertretungslehrkraft":
                if (!value.startsWith("*")) {
                    subst.setTeacher(value);
                } else {
                    subst.setType(value.substring(1));
                }
                break;
            case "Lehrer":
            case "Lehrer Krzel":
            case "Lehrer Name":
            case "Lehrkraft":
                if (previousCurrentMatcher.find()) {
                    subst.setTeacher(previousCurrentMatcher.group(1));
                    subst.setPreviousTeacher(previousCurrentMatcher.group(2));
                } else if (previousMatcher.find()) {
                    subst.setPreviousTeacher(previousMatcher.group(1));
                } else {
                    subst.setPreviousTeacher(value);
                }
                break;
            case "VFach":
            case "V Fach":
                subst.setSubject(value);
                break;
            case "Fach":
            case "Original Fach":
                if (previousCurrentMatcher.find()) {
                    subst.setSubject(previousCurrentMatcher.group(1));
                    subst.setPreviousSubject(previousCurrentMatcher.group(2));
                } else {
                    subst.setPreviousSubject(value);
                }
                break;
            case "VRaum":
            case "V Raum":
                subst.setRoom(value);
                break;
            case "Raum":
            case "Original Raum":
                if (previousCurrentMatcher.find()) {
                    subst.setRoom(previousCurrentMatcher.group(1));
                    subst.setPreviousRoom(previousCurrentMatcher.group(2));
                } else {
                    subst.setPreviousRoom(value);
                }
                break;
            case "Art":
            case "Merkmal":
                subst.setType(value);
                break;
            case "Info":
            case "Mitteilung":
                subst.setDesc(value);
                break;
            case "Datum":
                substDate = ParserUtils.parseDate(value);
                currentDate = substDate;
                break;
            }
        }
        if (klasse != null) {
            Set<String> fixedClasses = new HashSet<>();
            fixedClasses.add(klasse);
            subst.setClasses(fixedClasses);
        }
        if (subst.getType() == null) {
            String recognizedType = null;
            if (subst.getDesc() != null)
                recognizedType = recognizeType(subst.getDesc());
            subst.setType(recognizedType != null ? recognizedType : "Vertretung");
        }
        subst.setColor(colorProvider.getColor(subst.getType()));

        if (substDate == null && day == null)
            continue;

        if (day == null || substDate != null && !substDate.equals(day.getDate())) {
            day = null;
            for (SubstitutionScheduleDay d : v.getDays()) {
                if (d.getDate().equals(substDate)) {
                    day = d;
                }
            }
            if (day == null) {
                day = new SubstitutionScheduleDay();
                day.setDate(substDate);
                v.addDay(day);
            }
        }

        day.addSubstitution(subst);

    }
}

From source file:org.asqatasun.processing.ProcessRemarkServiceImpl.java

/**
 * This methods search the line where the current node is present in
 * the source code//from  w  w  w. jav a  2 s .c  o  m
 * @param node
 * @return
 */
private int getElementIndex(Element element) {
    Elements elements = jsoupDocument.getElementsByTag(element.tagName());
    for (int i = 0; i < elements.size(); i++) {
        Element current = elements.get(i);
        if (current.equals(element)) {
            return i;
        }
    }
    return -1;
}

From source file:org.asqatasun.rules.elementselector.ImageElementSelector.java

/**
 * /*from w ww. j  a  va2 s . c  om*/
 * @param imageParent
 * @param image
 * @return whether the current image is an image link
 */
private boolean isImageLink(Element imageParent, Element image) {
    if (imageParent == null || !StringUtils.equals(imageParent.text(), image.text())) {
        return false;
    }
    if (imageParent.children().size() == 1) {
        return isImageLink(imageParent.child(0), image);
    } else if (imageParent.children().isEmpty() && imageParent.equals(image)) {
        return true;
    }
    return false;
}