/*
* Copyright 2016 Nokia Solutions and Networks
* Licensed under the Apache License, Version 2.0,
* see license.txt file for details.
*/
package org.robotframework.ide.eclipse.main.plugin.project.build.validation.keywords;
import java.util.ArrayList;
import java.util.List;
import org.eclipse.core.resources.IFile;
import org.rf.ide.core.testdata.model.table.KeywordTable;
import org.rf.ide.core.testdata.model.table.keywords.KeywordDocumentation;
import org.rf.ide.core.testdata.model.table.keywords.UserKeyword;
import org.rf.ide.core.testdata.text.read.recognizer.RobotToken;
import org.robotframework.ide.eclipse.main.plugin.model.RobotKeywordsSection;
import org.robotframework.ide.eclipse.main.plugin.project.build.ProblemsReportingStrategy;
import org.robotframework.ide.eclipse.main.plugin.project.build.causes.IProblemCause;
import org.robotframework.ide.eclipse.main.plugin.project.build.causes.KeywordsProblem;
import org.robotframework.ide.eclipse.main.plugin.project.build.validation.ADocumentDeprecatedDeclarationValidator;
public class DocumentationUserKeywordDeclarationSettingValidator extends ADocumentDeprecatedDeclarationValidator {
private final RobotKeywordsSection section;
public DocumentationUserKeywordDeclarationSettingValidator(final IFile file, final RobotKeywordsSection section,
final ProblemsReportingStrategy reporter) {
super(file, reporter);
this.section = section;
}
@Override
public IProblemCause getSettingProblemId() {
return KeywordsProblem.DOCUMENT_SYNONYM;
}
@Override
public List<RobotToken> getDocumentationDeclaration() {
final List<RobotToken> documentationDec = new ArrayList<>(0);
final KeywordTable keywordTable = section.getLinkedElement();
if (keywordTable.isPresent()) {
final List<UserKeyword> keywords = keywordTable.getKeywords();
for (final UserKeyword keyword : keywords) {
final List<KeywordDocumentation> documentation = keyword.getDocumentation();
for (final KeywordDocumentation keywordDocumentation : documentation) {
documentationDec.add(keywordDocumentation.getDeclaration());
}
}
}
return documentationDec;
}
}