Package org.wikipediacleaner.api.check

Examples of org.wikipediacleaner.api.check.CheckErrorResult


          return true;
        }
        result = true;
        PageElementCategory keepCategory = keepCategory(groupCategory, lastTitle);
        if (keepCategory == category) {
          CheckErrorResult errorResult = createCheckErrorResult(
              analysis,
              category.getBeginIndex(),
              category.getEndIndex(),
              CheckErrorResult.ErrorLevel.CORRECT);
          errors.add(errorResult);
        } else {
          int beginIndex = category.getBeginIndex();
          while ((beginIndex > 0) && (contents.charAt(beginIndex - 1) == ' ')) {
            beginIndex--;
          }
          boolean beginLine = (beginIndex == 0) || (contents.charAt(beginIndex - 1) == '\n');
          int endIndex = category.getEndIndex();
          while ((endIndex < contents.length()) && (contents.charAt(endIndex) == ' ')) {
            endIndex++;
          }
          boolean endLine = (endIndex >= contents.length()) || (contents.charAt(endIndex) == '\n');
          if (beginLine && endLine) {
            endIndex = Math.min(endIndex + 1, contents.length());
          }
          if (!beginLine) {
            beginIndex = category.getBeginIndex();
          }
          if (!endLine) {
            endIndex = category.getEndIndex();
          }

          // Decide in the fix can be automatic
          boolean automatic = false;
          if (category.getBeginIndex() > keepCategory.getBeginIndex()) {
            int currentIndex = keepCategory.getEndIndex();
            boolean finished = false;
            while (!finished && (currentIndex < category.getBeginIndex())) {
              char currentChar = contents.charAt(currentIndex);
              if ((currentChar == ' ') || (currentChar == '\n')) {
                currentIndex++;
              } else {
                PageElementCategory nextCategory = analysis.isInCategory(currentIndex);
                if (nextCategory != null) {
                  currentIndex = nextCategory.getEndIndex();
                } else {
                  finished = true;
                }
              }
            }
            if (currentIndex >= keepCategory.getBeginIndex()) {
              if ((category.getSort() != null) &&
                  (category.getSort().length() > 0)) {
                if (category.getSort().equals(keepCategory.getSort())) {
                  automatic = true;
                }
              } else {
                if ((keepCategory.getSort() == null) ||
                    (keepCategory.getSort().length() == 0)) {
                  automatic = true;
                }
              }
            }
          }

          // Mark the error
          CheckErrorResult errorResult = createCheckErrorResult(
              analysis, beginIndex, endIndex);
          errorResult.addReplacement("", GT._("Delete"), automatic);
          errors.add(errorResult);
        }
      }
    }
View Full Code Here


        if (level > 0) {
          if (errors == null) {
            return true;
          }
          result = true;
          CheckErrorResult errorResult = createCheckErrorResult(
              analysis,
              tag.getBeginIndex(), tag.getEndIndex());
          errorResult.addReplacement("");
          errors.add(errorResult);
        }
      } else if (tag.isEndTag()) {
        // Closing tag
        level--;
        if (level < 0) {
          level = 0;
          if (errors == null) {
            return true;
          }
          result = true;
          CheckErrorResult errorResult = createCheckErrorResult(
              analysis,
              tag.getBeginIndex(), tag.getEndIndex());
          errorResult.addReplacement("");
          errors.add(errorResult);
        }
      } else {
        if (level == 0) {
          level0Tag = tag;
        } else if (level > 0) {
          if (errors == null) {
            return true;
          }
          result = true;

          // Manage double small tags on the same text
          boolean doubleSmall = false;
          if ((tag.getMatchingTag() != null) &&
              (level0Tag != null) &&
              (level0Tag.getMatchingTag() != null)) {
            if ((level0Tag.getEndIndex() == tag.getBeginIndex()) &&
                (tag.getMatchingTag().getEndIndex() == level0Tag.getMatchingTag().getBeginIndex())) {
              doubleSmall = true;
            }
          }

          if (level0Tag != null) {
            int possibleEnd = getPossibleEnd(analysis, level0Tag);
            if (possibleEnd > 0) {
              CheckErrorResult errorResult = createCheckErrorResult(
                  analysis,
                  level0Tag.getBeginIndex(), possibleEnd,
                  ErrorLevel.WARNING);
              errorResult.addReplacement(
                  contents.substring(level0Tag.getBeginIndex(), possibleEnd) + "</small>",
                  "<small>...</small>");
              errors.add(errorResult);
            } else {
              CheckErrorResult errorResult = createCheckErrorResult(
                  analysis,
                  level0Tag.getBeginIndex(),
                  level0Tag.getEndIndex(),
                  ErrorLevel.CORRECT);
              errors.add(errorResult);
              if (level0Tag.getMatchingTag() != null) {
                errorResult = createCheckErrorResult(
                    analysis,
                    level0Tag.getMatchingTag().getBeginIndex(),
                    level0Tag.getMatchingTag().getEndIndex(),
                    ErrorLevel.CORRECT);
                errors.add(errorResult);
              }
            }
            level0Tag = null;
          }

          int possibleEnd = getPossibleEnd(analysis, tag);
          if (possibleEnd > 0) {
            CheckErrorResult errorResult = createCheckErrorResult(
                analysis, tag.getBeginIndex(), possibleEnd);
            errorResult.addReplacement(
                contents.substring(tag.getBeginIndex(), possibleEnd) + "</small>",
                "<small>...</small>");
            errors.add(errorResult);
          } else {
            CheckErrorResult errorResult = createCheckErrorResult(
                analysis,
                tag.getCompleteBeginIndex(),
                tag.getCompleteEndIndex());
            if (doubleSmall) {
              errorResult.addReplacement(
                  contents.substring(tag.getEndIndex(), tag.getMatchingTag().getBeginIndex()),
                  GT._("Remove <small> tags"));
            }
            if (!tag.isComplete() && !tag.isFullTag() && !tag.isEndTag()) {
              errorResult.addReplacement(
                  PageElementTag.createTag(PageElementTag.TAG_HTML_SMALL, true, false));
            }
            errors.add(errorResult);
            if (tag.isComplete()) {
              tagIndex = PageElementTag.getMatchingTagIndex(tags, tagIndex);
View Full Code Here

          if (!found) {
            if (errors == null) {
              return false;
            }
            result = true;
            CheckErrorResult errorResult = createCheckErrorResult(
                analysis, tag.getCompleteBeginIndex(), tag.getCompleteEndIndex());
            errors.add(errorResult);
          }
        }
      }
View Full Code Here

          (title.getLevel() > previousTitleLevel + 1)) {
        if (errors == null) {
          return true;
        }
        result = true;
        CheckErrorResult errorResult = createCheckErrorResult(
            analysis, title.getBeginIndex(), title.getEndIndex());
        errorResult.addEditTocAction();
        errors.add(errorResult);
      }
      previousTitleLevel = title.getLevel();
    }
View Full Code Here

            (Character.isDigit(computedCheck) || (computedCheck == 'X'))) {
          if (errors == null) {
            return true;
          }
          result = true;
          CheckErrorResult errorResult = createCheckErrorResult(analysis, isbn, true);
          errorResult.addPossibleAction(
              GT._(
                  "The checksum is {0} instead of {1}",
                  new Object[] { check, computedCheck } ),
              new NullActionProvider());
          addHelpNeededTemplates(analysis, errorResult, isbn);
View Full Code Here

          if (!onlySmall) {
            if (errors == null) {
              return true;
            }
            result = true;
            CheckErrorResult errorResult = createCheckErrorResult(
                analysis, image.getBeginIndex(), image.getEndIndex());
            StringBuilder replacement = new StringBuilder();
            int lastIndex = 0;
            for (PageElementTag smallTag : smallTags) {
              if (smallTag.getBeginIndex() > lastIndex) {
                replacement.append(description.substring(lastIndex, smallTag.getBeginIndex()));
              }
              lastIndex = smallTag.getEndIndex();
            }
            if (lastIndex < description.length()) {
              replacement.append(description.substring(lastIndex));
            }
            errorResult.addReplacement(
                image.getDescriptionReplacement(replacement.toString()),
                GT._("Remove {0} tags", "<small>"));
            errors.add(errorResult);
          }
        }
View Full Code Here

            beginIndex--;
            endIndex++;
          }

          // Check language link
          CheckErrorResult errorResult = createCheckErrorResult(
              analysis, beginIndex, endIndex);
          if ((fromWiki != null) && (article.length() >0)) {
            errorResult.addPossibleAction(
                GT._("Check language links"),
                new CheckLanguageLinkActionProvider(
                    fromWiki, analysis.getWikipedia(),
                    article, link.getText()));
          }

          // Use templates
          if ((templatesList != null) &&
              (templatesList.size() > 0) &&
              (article.length() > 0) &&
              (language != null)) {
            for (String template : templatesList) {
              String[] templateArgs = template.split("\\|");
              if (templateArgs.length >= 5) {
                String textPrefix =
                  "{{" + templateArgs[0] + "|" + templateArgs[1] + "=";
                String textSuffix =
                  "|" + templateArgs[2] + "=" + prefix +
                  "|" + templateArgs[3] + "=" + article +
                  "|" + templateArgs[4] + "=" + ((link.getText() != null) ? link.getText() : article) +
                  "}}";
                String question = GT._("What is the title of the page on this wiki ?");
                AddTextActionProvider action = null;
                if ((link.getText() != null) && (!link.getText().equals(article))) {
                  String[] possibleValues = { null, article, link.getText() };
                  action = new AddTextActionProvider(
                      textPrefix, textSuffix, null, question,
                      possibleValues, false, null, checker);
                } else {
                  action = new AddTextActionProvider(
                      textPrefix, textSuffix, null, question,
                      article, checker);
                }
                errorResult.addPossibleAction(
                    GT._("Replace using template {0}", "{{" + templateArgs[0] + "}}"),
                    action);
              }
            }
          }

          // Create internal link
          if (link.hasSquare() && link.hasSecondSquare()) {
            boolean first = (errorResult.getPossibleActions() == null) || (errorResult.getPossibleActions().isEmpty());
            errorResult.addReplacement(
                "[[:" + prefix + ":" + article + "|" + (link.getText() != null ? link.getText() : article) + "]]",
                first);
          }
          errors.add(errorResult);
        }
View Full Code Here

              (analysis.getSurroundingTag(PageElementTag.TAG_WIKI_NOWIKI, beginIndex) == null)) {
            if (errors == null) {
              return true;
            }
            result = true;
            CheckErrorResult errorResult = createCheckErrorResult(
                analysis, beginIndex, endIndex);
            errorResult.addReplacement("");
            errors.add(errorResult);
          }
        } else if (tag.isEndTag()) {

          // Closing tag with white space (detected by CW)
          String contents = analysis.getContents();
          if ((contents.charAt(endIndex - 1) == '>') &&
              (contents.charAt(endIndex - 2) == ' ')) {
            if (errors == null) {
              return true;
            }
            result = true;
            CheckErrorResult errorResult = createCheckErrorResult(
                analysis, beginIndex, endIndex, ErrorLevel.WARNING);
            errorResult.addReplacement(
                PageElementTag.createTag(tagName, true, false),
                true);
            errors.add(errorResult);
          }
        }
View Full Code Here

          }
          if (errors == null) {
            return true;
          }
          result = true;
          CheckErrorResult errorResult = createCheckErrorResult(
              analysis, beginIndex, endIndex);
          String externalLink = contents.substring(link.getBeginIndex(), link.getEndIndex());
          errorResult.addReplacement(externalLink);
          errorResult.addReplacement(externalLink.replaceAll("\\|", " "));
          errors.add(errorResult);
        }
      }
    }
View Full Code Here

    // Analyze replacements
    List<String> multiples = new ArrayList<String>();
    for (ReplacementGroup group : groups) {

      // Create error
      CheckErrorResult error = createCheckErrorResult(
          analysis, group.getBegin(), group.getEnd());
      String previousComment = null;
      multiples.clear();
      for (Replacement replacement : group.getReplacements()) {

        // Manage comment
        String comment = replacement.getComment();
        if (comment == null) {
          error.addPossibleAction(null, new NullActionProvider());
        } else if (!comment.equals(previousComment)) {
          error.addPossibleAction(comment, new NullActionProvider());
        }
        previousComment = comment;

        error.addReplacement(replacement.getReplacement(), replacement.isAutomatic());
        if (Boolean.TRUE.equals(replacement.isMultiple())) {
          multiples.add(replacement.getReplacement());
        }
      }
      error.addReplacement(group.getText(), GT._("Restore original text"));

      // Multiple replacements
      if (!multiples.isEmpty()) {
        if (multiples.size() == 1) {
          error.addPossibleAction(new SimpleAction(
              GT._("Replace each time with {0}", multiples.get(0)),
              new MWPaneReplaceAllAction(group.getText(), multiples.get(0))));
        } else {
          List<Actionnable> actions = new ArrayList<Actionnable>();
          for (String multiple : multiples) {
            actions.add(new SimpleAction(multiple, new MWPaneReplaceAllAction(group.getText(), multiple)));
          }
          error.addPossibleAction(new CompositeAction(GT._("Replace each time with"), actions));
        }
      }
      errors.add(error);
    }
View Full Code Here

TOP

Related Classes of org.wikipediacleaner.api.check.CheckErrorResult

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.