/* * Copyright 2015 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.versiondependent.setting; import static com.google.common.collect.Lists.transform; import java.util.List; import org.eclipse.core.resources.IFile; import org.rf.ide.core.testdata.model.RobotVersion; import org.rf.ide.core.testdata.model.table.setting.DefaultTags; import org.rf.ide.core.testdata.text.read.recognizer.RobotToken; import org.robotframework.ide.eclipse.main.plugin.model.RobotSettingsSection; import org.robotframework.ide.eclipse.main.plugin.project.build.ProblemsReportingStrategy; import org.robotframework.ide.eclipse.main.plugin.project.build.causes.GeneralSettingsProblem; import com.google.common.base.Function; import com.google.common.base.Joiner; import com.google.common.collect.Range; public class DuplicatedDefaultTagsInOlderValidator extends ADuplicatedInOldValidator<DefaultTags> { public DuplicatedDefaultTagsInOlderValidator(final IFile file, final RobotSettingsSection section, final ProblemsReportingStrategy reporter) { super(file, section, reporter); } @Override protected Range<RobotVersion> getApplicableVersionRange() { return Range.lessThan(new RobotVersion(3, 0)); } @Override protected List<DefaultTags> getElements() { return section.getLinkedElement().getDefaultTags(); } @Override protected Function<DefaultTags, String> getImportantElement() { return new Function<DefaultTags, String>() { @Override public String apply(final DefaultTags tags) { return tags.getTags() == null ? null : Joiner.on(' ').skipNulls().join(transform(tags.getTags(), new Function<RobotToken, String>() { @Override public String apply(final RobotToken tag) { return tag.getText() == null ? null : tag.getText(); } })); } }; } @Override protected GeneralSettingsProblem getSettingProblemId() { return GeneralSettingsProblem.DUPLICATED_DEFAULT_TAGS_28; } }