/* * Copyright 2015 Nokia Solutions and Networks * Licensed under the Apache License, Version 2.0, * see license.txt file for details. */ /* * 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.variables; import org.eclipse.core.resources.IFile; import org.eclipse.core.runtime.IProgressMonitor; import org.rf.ide.core.testdata.model.RobotVersion; import org.rf.ide.core.testdata.model.table.variables.AVariable.VariableType; import org.rf.ide.core.testdata.model.table.variables.IVariableHolder; import org.robotframework.ide.eclipse.main.plugin.project.build.ProblemsReportingStrategy; import org.robotframework.ide.eclipse.main.plugin.project.build.RobotProblem; import org.robotframework.ide.eclipse.main.plugin.project.build.causes.VariablesProblem; import org.robotframework.ide.eclipse.main.plugin.project.build.validation.versiondependent.VersionDependentModelUnitValidator; import com.google.common.collect.Range; public class ScalarAsListValidator extends VersionDependentModelUnitValidator { private final IFile file; private final IVariableHolder variable; private final ProblemsReportingStrategy reporter; public ScalarAsListValidator(final IFile file, final IVariableHolder variable, final ProblemsReportingStrategy reporter) { this.file = file; this.variable = variable; this.reporter = reporter; } @Override protected Range<RobotVersion> getApplicableVersionRange() { return Range.closedOpen(new RobotVersion(2, 8), new RobotVersion(2, 9)); } @Override public void validate(final IProgressMonitor monitor) { if (variable.getType() == VariableType.SCALAR_AS_LIST) { final RobotProblem problem = RobotProblem.causedBy(VariablesProblem.SCALAR_WITH_MULTIPLE_VALUES_2_8_x) .formatMessageWith(variable.getName()); reporter.handleProblem(problem, file, DictionaryExistenceValidator.toPositionOfWholeDefinition(variable)); } } }