/*
* Copyright 2015 Nokia Solutions and Networks
* Licensed under the Apache License, Version 2.0,
* see license.txt file for details.
*/
package org.rf.ide.core.testdata.model.table;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import org.rf.ide.core.testdata.model.RobotFile;
import org.rf.ide.core.testdata.model.presenter.MoveElementHelper;
import org.rf.ide.core.testdata.model.table.keywords.UserKeyword;
import org.rf.ide.core.testdata.text.read.recognizer.RobotToken;
public class KeywordTable extends ARobotSectionTable {
private final List<UserKeyword> userKeywords = new ArrayList<>();
public KeywordTable(final RobotFile parent) {
super(parent);
}
public UserKeyword createUserKeyword(final String keywordName) {
return createUserKeyword(keywordName, userKeywords.size());
}
public UserKeyword createUserKeyword(final String keywordName, final int position) {
RobotToken keyName = new RobotToken();
keyName.setText(keywordName);
UserKeyword uk = new UserKeyword(keyName);
addKeyword(uk, position);
return uk;
}
public void addKeyword(final UserKeyword keyword) {
addKeyword(keyword, userKeywords.size());
}
public void addKeyword(final UserKeyword keyword, final int position) {
keyword.setParent(this);
userKeywords.add(position, keyword);
}
public void removeKeyword(final UserKeyword keyword) {
userKeywords.remove(keyword);
}
public boolean moveUpKeyword(final UserKeyword keyword) {
return MoveElementHelper.moveUp(userKeywords, keyword);
}
public boolean moveDownKeyword(final UserKeyword keyword) {
return MoveElementHelper.moveDown(userKeywords, keyword);
}
public List<UserKeyword> getKeywords() {
return Collections.unmodifiableList(userKeywords);
}
public boolean isEmpty() {
return (userKeywords.isEmpty());
}
}