/*
* 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.setting;
import java.util.List;
import java.util.Optional;
import org.rf.ide.core.testdata.model.RobotFile;
import org.rf.ide.core.testdata.model.table.SettingTable;
import org.rf.ide.core.testdata.model.table.setting.Metadata;
import org.rf.ide.core.testdata.text.read.IRobotLineElement;
import org.rf.ide.core.testdata.text.read.RobotLine;
import org.rf.ide.core.testdata.text.read.recognizer.RobotToken;
import org.rf.ide.core.testdata.text.read.recognizer.RobotTokenType;
public class OldMetaSynataxHelper {
public boolean isOldSyntax(final Metadata metadata, final SettingTable settings) {
boolean result = false;
final RobotToken settingDeclaration = metadata.getDeclaration();
final String settingText = settingDeclaration.getText();
if ("meta:".equalsIgnoreCase(settingText.trim())) {
if (settingDeclaration.getEndColumn() + 1 == metadata.getKey().getStartColumn()) {
final RobotFile model = settings.getParent();
final Optional<Integer> robotLineIndexBy = model.getRobotLineIndexBy(metadata.getBeginPosition().getOffset());
if (robotLineIndexBy.isPresent()) {
final RobotLine robotLine = model.getFileContent().get(robotLineIndexBy.get());
final Optional<Integer> elementPositionInLine = robotLine.getElementPositionInLine(settingDeclaration);
if (elementPositionInLine.isPresent()) {
final Integer metaDeclarationPos = elementPositionInLine.get();
final List<IRobotLineElement> lineElements = robotLine.getLineElements();
if (metaDeclarationPos < lineElements.size()) {
if (lineElements.get(metaDeclarationPos + 1)
.getTypes()
.contains(RobotTokenType.PRETTY_ALIGN_SPACE)) {
result = true;
}
}
}
}
}
}
return result;
}
}