/*******************************************************************************
* Copyright Technophobia Ltd 2012
*
* This file is part of the Substeps Eclipse Plugin.
*
* The Substeps Eclipse Plugin is free software: you can redistribute it and/or modify
* it under the terms of the Eclipse Public License v1.0.
*
* The Substeps Eclipse Plugin is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* Eclipse Public License for more details.
*
* You should have received a copy of the Eclipse Public License
* along with the Substeps Eclipse Plugin. If not, see <http://www.eclipse.org/legal/epl-v10.html>.
******************************************************************************/
package com.technophobia.substeps.document.text.rule.word;
import org.eclipse.jface.text.rules.IWordDetector;
public class MultipleChoiceSingleWordDetector implements IWordDetector {
private final char[] firstChars;
public MultipleChoiceSingleWordDetector(final String... words) {
this.firstChars = firstLettersOf(words);
}
/**
* Only really interested in the keyword, so only pick words which start
* with the same character
*/
@Override
public boolean isWordStart(final char c) {
for (final char firstChar : firstChars) {
if (firstChar == c) {
return true;
}
}
return false;
}
@Override
public boolean isWordPart(final char c) {
return !Character.isWhitespace(c);
}
private char[] firstLettersOf(final String[] strings) {
final char[] chars = new char[strings.length];
for (int i = 0; i < strings.length; i++) {
chars[i] = strings[i].charAt(0);
}
return chars;
}
}