Added @Override annotations to interface implementations due to recent switching of Java compatibility level to 6

Signed-off-by: Miro Spönemann <miro.spoenemann@itemis.de>
This commit is contained in:
Miro Spönemann 2014-12-12 11:17:13 +01:00
parent 850c21c152
commit 0f09576578
499 changed files with 2075 additions and 8 deletions

View file

@ -78,6 +78,7 @@ public class ContentAssistContext {
return this;
}
@Override
public void accept(AbstractElement element) {
if (element == null)
throw new NullPointerException("element may not be null");

View file

@ -21,6 +21,7 @@ public interface IFollowElementAcceptor {
this.decorated = decorated;
}
@Override
public void accept(AbstractElement element) {
if (element != null)
decorated.accept(element);

View file

@ -60,6 +60,7 @@ public abstract class AbstractContentAssistParser implements IContentAssistParse
return lexer;
}
@Override
public Collection<FollowElement> getFollowElements(FollowElement element) {
if (element.getLookAhead() <= 1)
throw new IllegalArgumentException("lookahead may not be less than or equal to 1");
@ -74,6 +75,7 @@ public abstract class AbstractContentAssistParser implements IContentAssistParse
parser.getUnorderedGroupHelper().initializeWith(parser);
final Iterator<LookAheadTerminal> iter = element.getLookAheadTerminals().iterator();
ObservableXtextTokenStream tokens = new ObservableXtextTokenStream(new TokenSource(){
@Override
public Token nextToken() {
if (iter.hasNext()) {
LookAheadTerminal lookAhead = iter.next();
@ -81,6 +83,7 @@ public abstract class AbstractContentAssistParser implements IContentAssistParse
}
return Token.EOF_TOKEN;
}
@Override
public String getSourceName() {
return "LookAheadTerminalTokenSource";
}
@ -104,36 +107,44 @@ public abstract class AbstractContentAssistParser implements IContentAssistParse
parser.setUnorderedGroupHelper(new IUnorderedGroupHelper() {
boolean first = true;
@Override
public void initializeWith(BaseRecognizer recognizer) {
helper.initializeWith(recognizer);
}
@Override
public void enter(UnorderedGroup group) {
if (!first)
helper.enter(group);
first = false;
}
@Override
public void leave(UnorderedGroup group) {
helper.leave(group);
}
@Override
public boolean canSelect(UnorderedGroup group, int index) {
return helper.canSelect(group, index);
}
@Override
public void select(UnorderedGroup group, int index) {
helper.select(group, index);
}
@Override
public void returnFromSelection(UnorderedGroup group) {
helper.returnFromSelection(group);
}
@Override
public boolean canLeave(UnorderedGroup group) {
return helper.canLeave(group);
}
@Override
public UnorderedGroupState snapShot(UnorderedGroup... groups) {
return helper.snapShot(groups);
}
@ -165,6 +176,7 @@ public abstract class AbstractContentAssistParser implements IContentAssistParse
ObservableXtextTokenStream stream = (ObservableXtextTokenStream) parser.getTokenStream();
stream.setListener(new StreamListener() {
@Override
public void announceEof(int lookAhead) {
if (!wasRecovering[0]) {
parser.announceEof(lookAhead);
@ -184,16 +196,19 @@ public abstract class AbstractContentAssistParser implements IContentAssistParse
}
}
@Override
public void announceConsume() {
parser.announceConsume();
if (!wasRecovering[0])
consumedSomething[0] = true;
}
@Override
public void announceMark(int marker) {
parser.announceMark(marker);
}
@Override
public void announceRewind(int marker) {
parser.announceRewind(marker);
}
@ -202,12 +217,14 @@ public abstract class AbstractContentAssistParser implements IContentAssistParse
private int startedErrorRecoveryAt;
@Override
public void endErrorRecovery() {
if (!wasEof[0] && !parserState.failed && startedErrorRecoveryAt == parser.input.index()) {
wasRecovering[0] = false;
}
}
@Override
public void beginErrorRecovery() {
startedErrorRecoveryAt = parser.input.index();
wasRecovering[0] = true;
@ -301,6 +318,7 @@ public abstract class AbstractContentAssistParser implements IContentAssistParse
protected abstract String[] getInitialHiddenTokens();
@Override
public Collection<FollowElement> getFollowElements(String input, boolean strict) {
TokenSource tokenSource = createTokenSource(input);
AbstractInternalContentAssistParser parser = createParser();

View file

@ -41,6 +41,7 @@ public abstract class AbstractPartialContentAssistParser extends AbstractContent
@Inject
private EntryPointFinder entryPointFinder;
@Override
public Collection<FollowElement> getFollowElements(IParseResult parseResult, int offset, boolean strict) {
ICompositeNode entryPoint = entryPointFinder.findEntryPoint(parseResult, offset);
if (entryPoint != null) {

View file

@ -105,6 +105,7 @@ public class ContentAssistContextFactory implements Function<ContentAssistContex
private String document;
@Override
public ContentAssistContext apply(Builder from) {
return from.toContext();
}
@ -136,6 +137,7 @@ public class ContentAssistContextFactory implements Function<ContentAssistContex
List<Future<?>> futures = Lists.newArrayList();
if (!datatypeNode.equals(lastCompleteNode)) {
futures.add(pool.submit(new Callable<Void>() {
@Override
public Void call() throws Exception {
handleLastCompleteNodeAsPartOfDatatypeNode();
return null;
@ -147,6 +149,7 @@ public class ContentAssistContextFactory implements Function<ContentAssistContex
// any valid grammar element by removing the current token and using it as prefix
if (datatypeNode.equals(lastCompleteNode) && completionOffset != lastCompleteNode.getOffset()) {
futures.add(pool.submit(new Callable<Void>() {
@Override
public Void call() throws Exception {
handleLastCompleteNodeIsAtEndOfDatatypeNode();
return null;
@ -157,6 +160,7 @@ public class ContentAssistContextFactory implements Function<ContentAssistContex
// 4th context: we assume, that the current position is perfectly ok to insert a new token, if the previous one was valid
if (!(lastCompleteNode instanceof ILeafNode) || lastCompleteNode.getGrammarElement() != null) {
futures.add(pool.submit(new Callable<Void>() {
@Override
public Void call() throws Exception {
handleLastCompleteNodeIsPartOfLookahead();
return null;
@ -331,6 +335,7 @@ public class ContentAssistContextFactory implements Function<ContentAssistContex
protected void computeFollowElements(Collection<FollowElement> followElements, final Collection<AbstractElement> result) {
FollowElementCalculator calculator = new FollowElementCalculator();
calculator.acceptor = new IFollowElementAcceptor(){
@Override
public void accept(AbstractElement element) {
ParserRule rule = GrammarUtil.containingParserRule(element);
if (rule == null || !GrammarUtil.isDatatypeRule(rule))

View file

@ -50,6 +50,7 @@ public abstract class AbstractInternalContentAssistParser extends Parser impleme
private static final Logger logger = Logger.getLogger(AbstractInternalContentAssistParser.class);
protected class DefaultFollowElementFactory implements IFollowElementFactory {
@Override
public FollowElement createFollowElement(AbstractElement current, int lookAhead) {
if (logger.isDebugEnabled())
logger.debug("Creating FollowElement for: " + current);
@ -246,14 +247,17 @@ public abstract class AbstractInternalContentAssistParser extends Parser impleme
}
protected abstract class StreamAdapter implements ObservableXtextTokenStream.StreamListener {
@Override
public void announceConsume() {
AbstractInternalContentAssistParser.this.announceConsume();
}
@Override
public void announceMark(int marker) {
AbstractInternalContentAssistParser.this.announceMark(marker);
}
@Override
public void announceRewind(int marker) {
AbstractInternalContentAssistParser.this.announceRewind(marker);
}
@ -292,6 +296,7 @@ public abstract class AbstractInternalContentAssistParser extends Parser impleme
protected StreamAdapter createNoOpStrategy() {
return new StreamAdapter() {
@Override
public void announceEof(int lookAhead) {
}
};
@ -311,6 +316,7 @@ public abstract class AbstractInternalContentAssistParser extends Parser impleme
followElementFactory = AbstractInternalContentAssistParser.this.followElementFactory;
AbstractInternalContentAssistParser.this.followElementFactory = new IFollowElementFactory() {
@Override
public FollowElement createFollowElement(AbstractElement current, int lookAhead) {
if (lastKnownSyntaxErrors == Integer.MAX_VALUE || state.lastErrorIndex < 0) {
FollowElement result = followElementFactory.createFollowElement(current, lookAhead);
@ -327,6 +333,7 @@ public abstract class AbstractInternalContentAssistParser extends Parser impleme
};
}
@Override
public void announceEof(int lookAhead) {
try {
if (predictionLevel == 0) {
@ -390,6 +397,7 @@ public abstract class AbstractInternalContentAssistParser extends Parser impleme
private AbstractElement lastAddedElement;
@Override
public void announceEof(int lookAhead) {
AbstractElement current = getCurrentGrammarElement();
if (current != null
@ -408,6 +416,7 @@ public abstract class AbstractInternalContentAssistParser extends Parser impleme
protected StreamAdapter createNotErrorRecoveryStrategy() {
return new StreamAdapter() {
@Override
public void announceEof(int lookAhead) {
if (!state.errorRecovery && !mismatch && ((!isBacktracking() || marked > 0) || wasErrorCount <= 0)) {
AbstractElement current = getCurrentGrammarElement();
@ -428,6 +437,7 @@ public abstract class AbstractInternalContentAssistParser extends Parser impleme
private boolean wasErrorRecovery = false;
@Override
public void announceEof(int lookAhead) {
wasErrorRecovery = wasErrorRecovery || state.errorRecovery;
if (!wasErrorRecovery && !mismatch) {
@ -505,6 +515,7 @@ public abstract class AbstractInternalContentAssistParser extends Parser impleme
throw new IllegalArgumentException("tokenType " + token.getType() + " seems to be invalid.");
}
@Override
public void announceEof(int lookAhead) {
if (logger.isDebugEnabled()) {
logger.debug("Reached Eof with LA " + lookAhead);
@ -541,6 +552,7 @@ public abstract class AbstractInternalContentAssistParser extends Parser impleme
delegate.announceEof(lookAhead);
}
@Override
public void announceConsume() {
if (marked <= 0)
localTrace.clear();
@ -559,6 +571,7 @@ public abstract class AbstractInternalContentAssistParser extends Parser impleme
}
}
@Override
public void announceRewind(int marker) {
int useLookAhead = -1;
if (marker != 0 && delegate == null && strict && predictionLevel != 0 && lookAheadAddOn > 0 && state.syntaxErrors == 0
@ -577,6 +590,7 @@ public abstract class AbstractInternalContentAssistParser extends Parser impleme
marked --;
}
@Override
public void announceMark(int marker) {
if (marked <= 0) {
marked++;
@ -608,6 +622,7 @@ public abstract class AbstractInternalContentAssistParser extends Parser impleme
return followElements;
}
@Override
public Map<Integer, String> getTokenDefMap() {
String[] names = getTokenNames();
Map<Integer, String> result = Maps.newHashMapWithExpectedSize(names.length - Token.MIN_TOKEN_TYPE);

View file

@ -226,6 +226,7 @@ public abstract class AbstractXtextTests extends Assert implements ResourceLoadH
return instance.split(",")[0];
}
@Override
public final XtextResource getResourceFor(InputStream stream) {
try {
return getResourceAndExpect(stream, AbstractXtextTests.UNKNOWN_EXPECTATION);

View file

@ -48,6 +48,7 @@ public @interface Flaky {
*/
class Rule implements TestRule {
@Override
public Statement apply(Statement base, Description description) {
Flaky flaky = description.getAnnotation(Flaky.class);
if (flaky == null) {

View file

@ -101,6 +101,7 @@ public class StopwatchRule implements TestRule {
return sb.toString();
}
@Override
public Statement apply(final Statement base, final Description description) {
if (!watchAll && description.getAnnotation(Timed.class) == null)
return base;

View file

@ -116,6 +116,7 @@ public abstract class AbstractParallelScenarioRunner extends AbstractScenarioRun
private void runChildren(final RunNotifier notifier) {
for (final FrameworkMethod each : getChildren())
scheduler.schedule(new Runnable() {
@Override
public void run() {
AbstractParallelScenarioRunner.this.runChild(each, notifier);
}
@ -175,7 +176,8 @@ public abstract class AbstractParallelScenarioRunner extends AbstractScenarioRun
futures = Collections.synchronizedList(new ArrayList<Future<?>>());
}
public void finished() {
@Override
public void finished() {
executor.shutdown();
for(Future<?> future: futures) {
try {
@ -199,7 +201,8 @@ public abstract class AbstractParallelScenarioRunner extends AbstractScenarioRun
}
}
public void schedule(Runnable childStatement) {
@Override
public void schedule(Runnable childStatement) {
futures.add(executor.submit(childStatement));
}
}

View file

@ -24,6 +24,7 @@ import com.google.common.io.CharStreams;
*/
@Beta
public class TestDataProvider extends AbstractParser {
@Override
public IParseResult parse(ParserRule rule, Reader reader) throws TestDataCarrier {
try {
throw new TestDataCarrier(CharStreams.toString(reader));
@ -33,6 +34,7 @@ public class TestDataProvider extends AbstractParser {
}
}
@Override
public IParseResult parse(RuleCall ruleCall, Reader reader, int initialLookAhead) throws TestDataCarrier {
try {
throw new TestDataCarrier(CharStreams.toString(reader));

View file

@ -63,6 +63,7 @@ public class WrappingInjectorProvider implements IInjectorProvider, IRegistryCon
Injector delegateInjector = delegate.getInjector();
final Map<Key<?>, Binding<?>> bindings = delegateInjector.getBindings();
Injector injector = Guice.createInjector(Modules.override(new Module() {
@Override
public void configure(Binder binder) {
for(Binding<?> binding: bindings.values()) {
Type typeLiteral = binding.getKey().getTypeLiteral().getType();
@ -72,6 +73,7 @@ public class WrappingInjectorProvider implements IInjectorProvider, IRegistryCon
}
}
}).with(new Module() {
@Override
public void configure(Binder binder) {
binder.bind(IParser.class).toInstance(new TestDataProvider());
}
@ -83,14 +85,17 @@ public class WrappingInjectorProvider implements IInjectorProvider, IRegistryCon
return delegate;
}
@Override
public void restoreRegistry() {
stateBeforeInjectorCreation.restoreGlobalState();
}
@Override
public void setupRegistry() {
stateAfterInjectorCreation.restoreGlobalState();
}
@Override
public Injector getInjector() {
return injector;
}

View file

@ -34,6 +34,7 @@ public abstract class AbstractContentAssistProcessorTest extends AbstractXtextTe
this.plainSetup = plainSetup;
}
@Override
public Injector createInjectorAndDoEMFRegistration() {
return plainSetup.createInjectorAndDoEMFRegistration();
}
@ -81,6 +82,7 @@ public abstract class AbstractContentAssistProcessorTest extends AbstractXtextTe
return doGetSetup();
}
return new ISetup() {
@Override
public Injector createInjectorAndDoEMFRegistration() {
if (staticSetup == null) {
staticSetup = new SetupExtension(doGetSetup());

View file

@ -70,6 +70,7 @@ public abstract class AbstractDamagerRepairerTest extends Assert implements IDoc
protected Document createDocument(String before) throws Exception {
DocumentTokenSource source = new DocumentTokenSource();
source.setLexer(new Provider<Lexer>() {
@Override
public Lexer get() {
return createLexer();
}
@ -84,24 +85,30 @@ public abstract class AbstractDamagerRepairerTest extends Assert implements IDoc
assertEquals("length", expLength, actual.getLength());
}
@Override
public void documentChanged(DocumentEvent event) {
lastRegion = damager.getDamageRegion(new TypedRegion(0,event.getDocument().getLength(), IDocument.DEFAULT_CONTENT_TYPE), event, false);
}
@Override
public void documentAboutToBeChanged(DocumentEvent event) {
}
@Override
public void setRange(IDocument document, int offset, int length) {
}
@Override
public IToken nextToken() {
return null;
}
@Override
public int getTokenOffset() {
return 0;
}
@Override
public int getTokenLength() {
return 0;
}

View file

@ -517,18 +517,22 @@ public class ContentAssistProcessorTestBuilder implements Cloneable {
final XtextResource xtextResource = loadHelper.getResourceFor(new StringInputStream(Strings.emptyIfNull(currentModelToParse)));
if (announceDirtyState) {
dirtyResource = new IDirtyResource() {
@Override
public String getContents() {
return currentModelToParse;
}
@Override
public String getActualContents() {
return currentModelToParse;
}
@Override
public IResourceDescription getDescription() {
return xtextResource.getResourceServiceProvider().getResourceDescriptionManager().getResourceDescription(xtextResource);
}
@Override
public URI getURI() {
return xtextResource.getURI();
}

View file

@ -16,18 +16,22 @@ import org.eclipse.jface.viewers.ISelectionProvider;
*/
public class MockableSelectionProvider implements ISelectionProvider {
@Override
public void addSelectionChangedListener(ISelectionChangedListener listener) {
throw new UnsupportedOperationException();
}
@Override
public ISelection getSelection() {
throw new UnsupportedOperationException();
}
@Override
public void removeSelectionChangedListener(ISelectionChangedListener listener) {
throw new UnsupportedOperationException();
}
@Override
public void setSelection(ISelection selection) {
throw new UnsupportedOperationException();
}

View file

@ -32,166 +32,207 @@ import org.eclipse.swt.graphics.Point;
@SuppressWarnings("deprecation")
public class MockableTextViewer implements ITextViewer {
@Override
public void activatePlugins() {
throw new UnsupportedOperationException();
}
@Override
public void addTextInputListener(ITextInputListener listener) {
throw new UnsupportedOperationException();
}
@Override
public void addTextListener(ITextListener listener) {
throw new UnsupportedOperationException();
}
@Override
public void addViewportListener(IViewportListener listener) {
throw new UnsupportedOperationException();
}
@Override
public void changeTextPresentation(TextPresentation presentation, boolean controlRedraw) {
throw new UnsupportedOperationException();
}
@Override
public int getBottomIndex() {
throw new UnsupportedOperationException();
}
@Override
public int getBottomIndexEndOffset() {
throw new UnsupportedOperationException();
}
@Override
public IDocument getDocument() {
throw new UnsupportedOperationException();
}
@Override
public IFindReplaceTarget getFindReplaceTarget() {
throw new UnsupportedOperationException();
}
@Override
public Point getSelectedRange() {
throw new UnsupportedOperationException();
}
@Override
public ISelectionProvider getSelectionProvider() {
throw new UnsupportedOperationException();
}
@Override
public ITextOperationTarget getTextOperationTarget() {
throw new UnsupportedOperationException();
}
@Override
public StyledText getTextWidget() {
throw new UnsupportedOperationException();
}
@Override
public int getTopIndex() {
throw new UnsupportedOperationException();
}
@Override
public int getTopIndexStartOffset() {
throw new UnsupportedOperationException();
}
@Override
public int getTopInset() {
throw new UnsupportedOperationException();
}
@Override
public IRegion getVisibleRegion() {
throw new UnsupportedOperationException();
}
@Override
public void invalidateTextPresentation() {
throw new UnsupportedOperationException();
}
@Override
public boolean isEditable() {
throw new UnsupportedOperationException();
}
@Override
public boolean overlapsWithVisibleRegion(int offset, int length) {
throw new UnsupportedOperationException();
}
@Override
public void removeTextInputListener(ITextInputListener listener) {
throw new UnsupportedOperationException();
}
@Override
public void removeTextListener(ITextListener listener) {
throw new UnsupportedOperationException();
}
@Override
public void removeViewportListener(IViewportListener listener) {
throw new UnsupportedOperationException();
}
@Override
public void resetPlugins() {
throw new UnsupportedOperationException();
}
@Override
public void resetVisibleRegion() {
throw new UnsupportedOperationException();
}
@Override
public void revealRange(int offset, int length) {
throw new UnsupportedOperationException();
}
@Override
public void setAutoIndentStrategy(IAutoIndentStrategy strategy, String contentType) {
throw new UnsupportedOperationException();
}
@Override
public void setDefaultPrefixes(String[] defaultPrefixes, String contentType) {
throw new UnsupportedOperationException();
}
@Override
public void setDocument(IDocument document) {
throw new UnsupportedOperationException();
}
@Override
public void setDocument(IDocument document, int modelRangeOffset, int modelRangeLength) {
throw new UnsupportedOperationException();
}
@Override
public void setEditable(boolean editable) {
throw new UnsupportedOperationException();
}
@Override
public void setEventConsumer(IEventConsumer consumer) {
throw new UnsupportedOperationException();
}
@Override
public void setIndentPrefixes(String[] indentPrefixes, String contentType) {
throw new UnsupportedOperationException();
}
@Override
public void setSelectedRange(int offset, int length) {
throw new UnsupportedOperationException();
}
@Override
public void setTextColor(Color color) {
throw new UnsupportedOperationException();
}
@Override
public void setTextColor(Color color, int offset, int length, boolean controlRedraw) {
throw new UnsupportedOperationException();
}
@Override
public void setTextDoubleClickStrategy(ITextDoubleClickStrategy strategy, String contentType) {
throw new UnsupportedOperationException();
}
@Override
public void setTextHover(ITextHover textViewerHover, String contentType) {
throw new UnsupportedOperationException();
}
@Override
public void setTopIndex(int index) {
throw new UnsupportedOperationException();
}
@Override
public void setUndoManager(IUndoManager undoManager) {
throw new UnsupportedOperationException();
}
@Override
public void setVisibleRegion(int offset, int length) {
throw new UnsupportedOperationException();
}

View file

@ -32,14 +32,17 @@ public class URIBasedTestResourceDescription extends AbstractResourceDescription
return Collections.emptyList();
}
@Override
public Iterable<QualifiedName> getImportedNames() {
return Collections.emptyList();
}
@Override
public Iterable<IReferenceDescription> getReferenceDescriptions() {
return Collections.emptyList();
}
@Override
public URI getURI() {
return uri;
}

View file

@ -44,16 +44,19 @@ public class AssertableDiagnostics {
iteratorStack.add(root.getChildren().iterator());
}
@Override
public boolean hasNext() {
while (iteratorStack.size() > 0 && !iteratorStack.get(iteratorStack.size() - 1).hasNext())
iteratorStack.remove(iteratorStack.size() - 1);
return iteratorStack.size() != 0;
}
@Override
public Iterator<Diagnostic> iterator() {
return this;
}
@Override
public Diagnostic next() {
Diagnostic d = iteratorStack.get(iteratorStack.size() - 1).next();
if (d.getChildren().size() > 0)
@ -61,6 +64,7 @@ public class AssertableDiagnostics {
return d;
}
@Override
public void remove() {
throw new RuntimeException("operation not supported");
}
@ -84,6 +88,7 @@ public class AssertableDiagnostics {
this.msg = msg;
}
@Override
public boolean apply(Diagnostic d) {
if (severity != null && d.getSeverity() != severity)
return false;

View file

@ -49,6 +49,7 @@ public class ValidationTestHelper {
public void assertNoErrors(final EObject model) {
final List<Issue> validate = validate(model);
Iterable<Issue> issues = filter(validate, new Predicate<Issue>() {
@Override
public boolean apply(Issue input) {
return Severity.ERROR == input.getSeverity();
}
@ -60,6 +61,7 @@ public class ValidationTestHelper {
public void assertNoError(final EObject model, final String issuecode) {
final List<Issue> validate = validate(model);
Iterable<Issue> issues = filter(validate, new Predicate<Issue>() {
@Override
public boolean apply(Issue input) {
return issuecode.equals(input.getCode());
}
@ -89,6 +91,7 @@ public class ValidationTestHelper {
public void assertNoIssues(final EObject root, final EClass objectType) {
final List<Issue> validate = validate(root);
Iterable<Issue> issues = filter(validate, new Predicate<Issue>() {
@Override
public boolean apply(Issue input) {
EObject object = root.eResource().getEObject(input.getUriToProblem().fragment());
if (objectType.isInstance(object)) {
@ -107,6 +110,7 @@ public class ValidationTestHelper {
public void assertNoIssue(final EObject root, final EClass objectType, final String issuecode) {
final List<Issue> validate = validate(root);
Iterable<Issue> issues = filter(validate, new Predicate<Issue>() {
@Override
public boolean apply(Issue input) {
if (issuecode.equals(input.getCode())) {
EObject object = root.eResource().getEObject(input.getUriToProblem().fragment());
@ -200,6 +204,7 @@ public class ValidationTestHelper {
final int offset, final int length, final Severity severity, final List<Issue> validate,
final String... messageParts) {
return Iterables.filter(validate, new Predicate<Issue>() {
@Override
public boolean apply(Issue input) {
if (Strings.equal(input.getCode(), code) && input.getSeverity()==severity) {
if ((offset < 0 || offset == input.getOffset()) && (length < 0 || length == input.getLength())) {

View file

@ -35,10 +35,12 @@ public abstract class AbstractLinkedStack<THIS extends AbstractLinkedStack<?, EL
this.ele = ele;
}
@Override
public boolean hasNext() {
return ele != null;
}
@Override
public ELEMENT next() {
if (!hasNext())
throw new NoSuchElementException();
@ -47,6 +49,7 @@ public abstract class AbstractLinkedStack<THIS extends AbstractLinkedStack<?, EL
return prev.value;
}
@Override
public void remove() {
throw new UnsupportedOperationException();
}
@ -133,6 +136,7 @@ public abstract class AbstractLinkedStack<THIS extends AbstractLinkedStack<?, EL
/**
* @since 2.0
*/
@Override
public Iterator<ELEMENT> iterator() {
return new ElementIterator(top);
}

View file

@ -15,6 +15,7 @@ public interface CancelIndicator {
boolean isCanceled();
public final static CancelIndicator NullImpl = new CancelIndicator() {
@Override
public boolean isCanceled() {
return false;
}

View file

@ -25,6 +25,7 @@ public class CollectionBasedAcceptor<T> implements IAcceptor<T> {
this.collection = collection;
}
@Override
public void accept(T t) {
collection.add(t);
}

View file

@ -51,6 +51,7 @@ public class EmfFormatter {
Collections.singleton(ignoredFeatures[0]) ) :
Collections.<EStructuralFeature>emptySet();
return objToStr(obj, new Predicate<EStructuralFeature>() {
@Override
public boolean apply(EStructuralFeature input) {
return ignoreUs.contains(input);
}

View file

@ -17,16 +17,19 @@ public enum ExceptionAcceptor implements IAcceptor<Exception> {
LOGGING {
private final Logger LOG = Logger.getLogger(ExceptionAcceptor.class);
@Override
public void accept(Exception t) {
LOG.error(t.getMessage(), t);
}
},
THROWING {
@Override
public void accept(Exception t) {
Exceptions.throwUncheckedException(t);
}
},
IGNORING {
@Override
public void accept(Exception t) {
}
};

View file

@ -76,6 +76,7 @@ public class Files {
FileFilter myFilter = filter;
if (myFilter == null)
myFilter = new FileFilter() {
@Override
public boolean accept(File pathname) {
return true;
}
@ -114,6 +115,7 @@ public class Files {
*/
public static boolean sweepFolder(File folder) throws FileNotFoundException {
return Files.cleanFolder(folder, new FileFilter() {
@Override
public boolean accept(File pathname) {
return true;
}

View file

@ -29,9 +29,11 @@ public interface IResourceScopeCache {
static class NullImpl implements IResourceScopeCache {
public final static IResourceScopeCache INSTANCE = new NullImpl();
@Override
public <T> T get(Object key, Resource res, Provider<T> provider) {
return provider.get();
}
@Override
public void clear(Resource res) {}
}
}

View file

@ -29,34 +29,42 @@ public interface ITextRegionWithLineInformation extends ITextRegion {
static ITextRegionWithLineInformation EMPTY_REGION = new ITextRegionWithLineInformation() {
@Override
public int getOffset() {
return 0;
}
@Override
public int getLength() {
return 0;
}
@Override
public ITextRegion merge(ITextRegion region) {
return region;
}
@Override
public boolean contains(ITextRegion other) {
return false;
}
@Override
public boolean contains(int offset) {
return false;
}
@Override
public int getLineNumber() {
return 0;
}
@Override
public int getEndLineNumber() {
return 0;
}
@Override
public ITextRegionWithLineInformation merge(ITextRegionWithLineInformation other) {
return other;
}

View file

@ -54,6 +54,7 @@ public class OnChangeEvictingCache implements IResourceScopeCache {
/**
* Clears the cache of the given resource.
*/
@Override
public void clear(Resource resource) {
getOrCreate(resource).clearValues();
}
@ -65,6 +66,7 @@ public class OnChangeEvictingCache implements IResourceScopeCache {
* @param key the cache key. May not be <code>null</code>.
* @param provider the strategy to compute the value if necessary. May not be <code>null</code>.
*/
@Override
public <T> T get(Object key, Resource resource, Provider<T> provider) {
if(resource == null) {
return provider.get();

View file

@ -37,6 +37,7 @@ public class PolymorphicDispatcher<RT> {
private List<MethodDesc> declaredMethodsOrderedBySpecificParameterType;
public static class DefaultErrorHandler<RT> implements ErrorHandler<RT> {
@Override
public RT handle(Object[] params, Throwable e) {
return Exceptions.throwUncheckedException(e);
}
@ -48,6 +49,7 @@ public class PolymorphicDispatcher<RT> {
return new NullErrorHandler<RT>();
}
@Override
public RT handle(Object[] params, Throwable throwable) {
// ignore
return null;
@ -66,6 +68,7 @@ public class PolymorphicDispatcher<RT> {
return new WarningErrorHandler<RT>(logger);
}
@Override
public RT handle(Object[] params, Throwable throwable) {
logger.warn("Error in polymorphic dispatcher : "+throwable.getMessage(), throwable);
return null;
@ -86,6 +89,7 @@ public class PolymorphicDispatcher<RT> {
this.minParams = minParams;
}
@Override
public boolean apply(Method param) {
return param.getName().equals(methodName) && param.getParameterTypes().length >= minParams
&& param.getParameterTypes().length <= maxParams;
@ -245,6 +249,7 @@ public class PolymorphicDispatcher<RT> {
private final SimpleCache<List<Class<?>>, List<MethodDesc>> cache =
new SimpleCache<List<Class<?>>, List<MethodDesc>>(
new Function<List<Class<?>>, List<MethodDesc>>() {
@Override
public List<MethodDesc> apply(List<Class<?>> paramTypes) {
List<MethodDesc> result = new ArrayList<MethodDesc>();
Iterator<MethodDesc> iterator = declaredMethodsOrderedBySpecificParameterType.iterator();
@ -346,6 +351,7 @@ public class PolymorphicDispatcher<RT> {
}
}
Collections.sort(cachedDescriptors, new Comparator<MethodDesc>() {
@Override
public int compare(MethodDesc o1, MethodDesc o2) {
return PolymorphicDispatcher.this.compare(o1, o2);
}

View file

@ -48,6 +48,7 @@ public class SimpleAttributeResolver<K extends EObject, T> implements Function<K
this.attributeName = attributeName;
this.discardingAdapter = new DiscardingAdapter(this);
attributeCache = new SimpleCache<EClass, EAttribute>(new Function<EClass, EAttribute>() {
@Override
public EAttribute apply(EClass param) {
final EStructuralFeature structuralFeature = param.getEStructuralFeature(attributeName);
if (structuralFeature != null && structuralFeature instanceof EAttribute && !structuralFeature.isMany()) {
@ -59,6 +60,7 @@ public class SimpleAttributeResolver<K extends EObject, T> implements Function<K
}
});
valueCache = new SimpleCache<EObject, T>(new Function<EObject, T>() {
@Override
@SuppressWarnings("unchecked")
public T apply(EObject param) {
final EStructuralFeature feature = attributeCache.get(param.eClass());
@ -76,6 +78,7 @@ public class SimpleAttributeResolver<K extends EObject, T> implements Function<K
public Iterable<K> getMatches(final Iterable<K> candidates, final T value) {
return Iterables.filter(candidates, new Predicate<K>() {
@Override
public boolean apply(K param) {
final T candidateValue = getValue(param);
return value.equals(candidateValue);
@ -91,14 +94,17 @@ public class SimpleAttributeResolver<K extends EObject, T> implements Function<K
this.resolver = resolver;
}
@Override
public Notifier getTarget() {
return null;
}
@Override
public boolean isAdapterForType(final Object type) {
return type instanceof DiscardingAdapter;
}
@Override
public void notifyChanged(final Notification notification) {
if (!notification.isTouch() && Notification.SET == notification.getEventType()) {
final Object feature = notification.getFeature();
@ -112,11 +118,13 @@ public class SimpleAttributeResolver<K extends EObject, T> implements Function<K
}
}
@Override
public void setTarget(final Notifier newTarget) {
// nothing to do
}
}
@Override
public T apply(final K from) {
return getValue(from);
}

View file

@ -22,14 +22,17 @@ public class TextRegion implements ITextRegion {
this.length = length;
}
@Override
public int getOffset() {
return offset;
}
@Override
public int getLength() {
return length;
}
@Override
public ITextRegion merge(ITextRegion other) {
if (contains(other))
return this;
@ -40,10 +43,12 @@ public class TextRegion implements ITextRegion {
return new TextRegion(newOffset, newLength);
}
@Override
public boolean contains(ITextRegion other) {
return other == EMPTY_REGION || (other.getOffset() + other.getLength() <= offset + length && other.getOffset() >= offset);
}
@Override
public boolean contains(int offset) {
return offset >= this.offset && offset < this.offset + length;
}

View file

@ -26,10 +26,12 @@ public class TextRegionWithLineInformation extends TextRegion implements ITextRe
this.endLineNumber = endLineNumber;
}
@Override
public int getLineNumber() {
return lineNumber;
}
@Override
public int getEndLineNumber() {
return endLineNumber;
}
@ -41,6 +43,7 @@ public class TextRegionWithLineInformation extends TextRegion implements ITextRe
return super.merge(other);
}
@Override
public ITextRegionWithLineInformation merge(ITextRegionWithLineInformation other) {
if (contains(other))
return this;

View file

@ -54,6 +54,7 @@ public abstract class AbstractReadWriteAcces<P> implements IReadAccess<P> {
}
};
@Override
public <T> T readOnly(IUnitOfWork<T, P> work) {
acquireReadLock();
try {

View file

@ -21,6 +21,7 @@ public abstract class CancelableUnitOfWork<R,P> implements IUnitOfWork<R, P> {
this.cancelIndicator = cancelIndicator;
}
@Override
public R exec(P state) throws Exception {
return exec(state, cancelIndicator);
}

View file

@ -32,6 +32,7 @@ public interface IUnitOfWork<R,P> {
* @param <T>
*/
public static abstract class Void<T> implements IUnitOfWork<Object,T> {
@Override
public final Object exec(T state) throws Exception {
process(state);
return null;

View file

@ -25,6 +25,7 @@ public class CfgUtil {
this.cfg = cfg;
}
@Override
public boolean apply(E input) {
return cfg.getCall(input) != null;
}

View file

@ -162,6 +162,7 @@ public class FollowerFunctionImpl<E, T> implements FollowerFunction<E> {
return filter;
}
@Override
public Iterable<E> getFollowers(E element) {
if (filter(element)) {
if (element == null)
@ -177,6 +178,7 @@ public class FollowerFunctionImpl<E, T> implements FollowerFunction<E> {
return production;
}
@Override
public Iterable<E> getStarts(E root) {
if (root == null)
throw new NullPointerException();

View file

@ -86,34 +86,42 @@ public class NfaToProduction {
this.root = root;
}
@Override
public Iterable<AbstractElementAlias<TOKEN>> getAlternativeChildren(AbstractElementAlias<TOKEN> ele) {
return ele instanceof AlternativeAlias ? ((AlternativeAlias<TOKEN>) ele).getChildren() : null;
}
@Override
public AbstractElementAlias<TOKEN> getParent(AbstractElementAlias<TOKEN> ele) {
return null;
}
@Override
public AbstractElementAlias<TOKEN> getRoot() {
return root;
}
@Override
public Iterable<AbstractElementAlias<TOKEN>> getSequentialChildren(AbstractElementAlias<TOKEN> ele) {
return ele instanceof GroupAlias ? ((GroupAlias<TOKEN>) ele).getChildren() : null;
}
@Override
public TOKEN getToken(AbstractElementAlias<TOKEN> owner) {
return owner instanceof ElementAlias ? ((ElementAlias<TOKEN>) owner).getElement() : null;
}
@Override
public Iterable<AbstractElementAlias<TOKEN>> getUnorderedChildren(AbstractElementAlias<TOKEN> ele) {
return null;
}
@Override
public boolean isMany(AbstractElementAlias<TOKEN> ele) {
return ele.isMany();
}
@Override
public boolean isOptional(AbstractElementAlias<TOKEN> ele) {
return ele.isOptional();
}
@ -268,14 +276,17 @@ public class NfaToProduction {
this.stop = stop;
}
@Override
public Iterable<StateAlias<TOKEN>> getFollowers(StateAlias<TOKEN> state) {
return state.getOutgoing();
}
@Override
public StateAlias<TOKEN> getStart() {
return start;
}
@Override
public StateAlias<TOKEN> getStop() {
return stop;
}

View file

@ -68,6 +68,7 @@ public class NfaUtil {
this.production = production;
}
@Override
public T apply(E from) {
return production.getToken(from);
}
@ -81,6 +82,7 @@ public class NfaUtil {
this.sortBy = sortBy;
}
@Override
public int compare(S o1, S o2) {
COMPARABLE c1 = sortBy.get(o1);
if (c1 == null)
@ -94,14 +96,17 @@ public class NfaUtil {
public static class NFAFactory<S> implements NfaFactory<Nfa<S>, S, S> {
@Override
public Nfa<S> create(S start, S stop) {
return new NFAImpl<S>(start, stop, Maps.<S, List<S>> newLinkedHashMap());
}
@Override
public S createState(Nfa<S> nfa, S token) {
return token;
}
@Override
public void setFollowers(Nfa<S> nfa, S owner, Iterable<S> followers) {
((NFAImpl<S>) nfa).followers.put(owner, Lists.newArrayList(followers));
}
@ -119,15 +124,18 @@ public class NfaUtil {
this.followers = followers;
}
@Override
public List<S> getFollowers(S node) {
List<S> result = followers.get(node);
return result == null ? Collections.<S> emptyList() : result;
}
@Override
public S getStart() {
return start;
}
@Override
public S getStop() {
return stop;
}
@ -289,6 +297,7 @@ public class NfaUtil {
public <S> Map<S, Integer> distanceToFinalStateMap(Nfa<S> nfa) {
final S stop = nfa.getStop();
return distanceToStateMap(nfa, new Predicate<S>() {
@Override
public boolean apply(S input) {
return stop == input;
}
@ -301,6 +310,7 @@ public class NfaUtil {
public <S> boolean equalsIgnoreOrder(Nfa<S> nfa1, Nfa<S> nfa2) {
return equalsIgnoreOrder(nfa1, nfa2, new Function<S, Object>() {
@Override
public Object apply(S from) {
return from;
}
@ -336,21 +346,25 @@ public class NfaUtil {
public <S> Nfa<S> filter(final Nfa<S> nfa, final Predicate<S> filter) {
return new Nfa<S>() {
@Override
public Set<S> getFollowers(final S node) {
final S start = nfa.getStart();
final S stop = nfa.getStop();
return filterFollowers(nfa, nfa.getFollowers(node), new Predicate<S>() {
@Override
public boolean apply(S input) {
return input == start || input == stop || filter.apply(input);
}
});
}
@Override
public S getStart() {
// return filterFollowers(nfa, nfa.getStartStates(), filter);
return nfa.getStart();
}
@Override
public S getStop() {
// return filterFinalStates(nfa, filter);
return nfa.getStop();

View file

@ -20,6 +20,7 @@ import com.google.common.collect.Lists;
public class PdaListFormatter<STATE, STACKITEM> implements Function<Pda<STATE, STACKITEM>, String> {
protected static class ObjToStrFunction<OBJ> implements Function<OBJ, String> {
@Override
public String apply(OBJ from) {
return from == null ? "null" : from.toString();
}
@ -36,6 +37,7 @@ public class PdaListFormatter<STATE, STACKITEM> implements Function<Pda<STATE, S
return this;
}
@Override
public String apply(Pda<STATE, STACKITEM> pda) {
return format(pda);
}

View file

@ -50,6 +50,7 @@ public class PdaUtil {
return list.isEmpty();
}
@Override
public Iterator<T> iterator() {
return list.iterator();
}
@ -85,6 +86,7 @@ public class PdaUtil {
this.pda = pda;
}
@Override
public boolean apply(S input) {
return pda.getPop(input) != null;
}
@ -125,6 +127,7 @@ public class PdaUtil {
}
public static class CyclicStackTraverser<S, P> implements Traverser<Pda<S, P>, S, CyclicStackItem<P>> {
@Override
public CyclicStackItem<P> enter(Pda<S, P> pda, S state, CyclicStackItem<P> previous) {
P item;
if ((item = pda.getPush(state)) != null)
@ -136,6 +139,7 @@ public class PdaUtil {
return previous;
}
@Override
public boolean isSolution(CyclicStackItem<P> result) {
return result.parent == null;
}

View file

@ -19,6 +19,7 @@ import com.google.common.collect.Lists;
public class ProductionFormatter<ELEMENT, TOKEN> implements Function<Production<ELEMENT, TOKEN>, String> {
protected static class ObjToStrFunction<TOKEN> implements Function<TOKEN, String> {
@Override
public String apply(TOKEN from) {
return from == null ? "null" : from.toString();
}
@ -30,6 +31,7 @@ public class ProductionFormatter<ELEMENT, TOKEN> implements Function<Production<
protected Function<TOKEN, String> tokenToString = new ObjToStrFunction<TOKEN>();
@Override
public String apply(Production<ELEMENT, TOKEN> from) {
return format(from);
}

View file

@ -35,12 +35,14 @@ public class ProductionStringFactory<TOKEN> implements ProductionFactory<String,
return many ? (optional ? "*" : "+") : (optional ? "?" : "");
}
@Override
public String createForAlternativeChildren(boolean many, boolean optional, Iterable<String> children) {
List<String> childrenSorted = Lists.newArrayList(Iterables.filter(children, Predicates.notNull()));
Collections.sort(childrenSorted);
return "(" + Joiner.on(" | ").join(childrenSorted) + ")" + card(many, optional);
}
@Override
public String createForSequentialChildren(boolean many, boolean optional, Iterable<String> children) {
children = Iterables.filter(children, Predicates.notNull());
if (many || optional)
@ -48,6 +50,7 @@ public class ProductionStringFactory<TOKEN> implements ProductionFactory<String,
return Joiner.on(" ").join(children) + card(many, optional);
}
@Override
public String createForToken(boolean many, boolean optional, TOKEN token) {
if (token2String != null)
return token2String.apply(token) + card(many, optional);
@ -56,6 +59,7 @@ public class ProductionStringFactory<TOKEN> implements ProductionFactory<String,
return token.toString() + card(many, optional);
}
@Override
public String createForUnordertedChildren(boolean many, boolean optional, Iterable<String> children) {
List<String> childrenSorted = Lists.newArrayList(Iterables.filter(children, Predicates.notNull()));
Collections.sort(childrenSorted);

View file

@ -81,6 +81,7 @@ public class ProductionUtil {
public <E, T> E findByToken(final Production<E, T> production, E element, final Predicate<T> matches) {
return find(production, element, new Predicate<E>() {
@Override
public boolean apply(E input) {
T token = production.getToken(input);
return token != null && matches.apply(token);

View file

@ -48,6 +48,7 @@ public class StringCfg extends StringProduction implements Cfg<ProdElement, Stri
throw new RuntimeException("Expected ID");
}
@Override
public ProdElement getCall(ProdElement ele) {
if (ele.name != null)
return rules.get(ele.name);

View file

@ -39,16 +39,19 @@ public class StringNfa implements Nfa<String> {
this.nullState = nullState;
}
@Override
public StringNfa create(Object start, Object stop) {
String starts = start != null ? start.toString() : nullStart;
String stops = stop != null ? stop.toString() : nullStop;
return new StringNfa(starts, stops);
}
@Override
public String createState(StringNfa nfa, Object token) {
return token != null ? token.toString() : nullState;
}
@Override
public void setFollowers(StringNfa nfa, String owner, Iterable<String> followers) {
nfa.state(owner).followedBy(Iterables.toArray(followers, String.class));
}
@ -79,14 +82,17 @@ public class StringNfa implements Nfa<String> {
this.stop = stop;
}
@Override
public Iterable<String> getFollowers(String state) {
return followers.get(state);
}
@Override
public String getStart() {
return start;
}
@Override
public String getStop() {
return stop;
}

View file

@ -34,10 +34,12 @@ public class StringPda extends StringNfa implements Pda<String, String> {
this.nullState = nullState;
}
@Override
public StringPda create(T start, T stop) {
return new StringPda(tokenToStr(start, nullStart), tokenToStr(stop, nullStop));
}
@Override
public String createPop(StringPda pda, T token) {
String pop = tokenToStr(token, nullState);
String s = pop.startsWith("<<") ? pop : "<<" + pop;
@ -45,6 +47,7 @@ public class StringPda extends StringNfa implements Pda<String, String> {
return s;
}
@Override
public String createPush(StringPda pda, T token) {
String push = tokenToStr(token, nullState);
String s = push.startsWith(">>") ? push : ">>" + push;
@ -52,10 +55,12 @@ public class StringPda extends StringNfa implements Pda<String, String> {
return s;
}
@Override
public String createState(StringPda pda, T token) {
return tokenToStr(token, nullState);
}
@Override
public void setFollowers(StringPda pda, String owner, Iterable<String> followers) {
pda.state(owner).followedBy(Iterables.toArray(followers, String.class));
}
@ -106,10 +111,12 @@ public class StringPda extends StringNfa implements Pda<String, String> {
super(start, stop);
}
@Override
public String getPop(String state) {
return pops.get(state);
}
@Override
public String getPush(String state) {
return pushs.get(state);
}

View file

@ -142,34 +142,42 @@ public class StringProduction implements Production<ProdElement, String> {
return new ProdElement(type);
}
@Override
public Iterable<ProdElement> getAlternativeChildren(ProdElement ele) {
return ele.type == ElementType.ALTERNATIVE ? ele.children : null;
}
@Override
public ProdElement getParent(ProdElement ele) {
return ele.parent;
}
@Override
public ProdElement getRoot() {
return root;
}
@Override
public Iterable<ProdElement> getSequentialChildren(ProdElement ele) {
return ele.type == ElementType.SEQUENCE ? ele.children : null;
}
@Override
public String getToken(ProdElement ele) {
return ele.type == ElementType.TOKEN ? ele.value : null;
}
@Override
public Iterable<ProdElement> getUnorderedChildren(ProdElement ele) {
return ele.type == ElementType.UNOREDERED ? ele.children : null;
}
@Override
public boolean isMany(ProdElement ele) {
return ele.many;
}
@Override
public boolean isOptional(ProdElement ele) {
return ele.optional;
}

View file

@ -34,6 +34,7 @@ public class Stopwatches {
this.numbers = numbers;
}
@Override
public void start() {
if (!isRunning())
lastStart = System.currentTimeMillis();
@ -44,6 +45,7 @@ public class Stopwatches {
return lastStart != notRunning;
}
@Override
public void stop() {
if (isRunning()) {
reentrant--;
@ -81,7 +83,9 @@ public class Stopwatches {
private static Map<String, NumbersForTask> data = newLinkedHashMap();
private static boolean enabled = false;
private static StoppedTask NULLIMPL = new StoppedTask() {
@Override
public void start() {}
@Override
public void stop() {}
};

View file

@ -32,10 +32,12 @@ public class TerminalsPackratParser extends AbstractPackratParser {
return (TerminalsGrammarAccess)super.getGrammarAccess();
}
@Override
public IParseResult parse(ParserRule rule, Reader reader) {
throw new UnsupportedOperationException();
}
@Override
public IParseResult parse(RuleCall ruleCall, Reader reader, int initialLookAhead) {
throw new UnsupportedOperationException();
}

View file

@ -34,13 +34,16 @@ public class TerminalsParserConfiguration extends AbstractParserConfiguration {
this.grammarAccess = grammarAccess;
}
@Override
public INonTerminalConsumer getRootConsumer() {
return null;
}
@Override
public void createNonTerminalConsumers() {
}
@Override
public void createTerminalConsumers() {
idConsumer = new TerminalsIDConsumer(this);
intConsumer = new TerminalsINTConsumer(this);
@ -51,6 +54,7 @@ public class TerminalsParserConfiguration extends AbstractParserConfiguration {
anyOtherConsumer = new TerminalsANY_OTHERConsumer(this);
}
@Override
public void configureConsumers() {
if (grammarAccess == null)
throw new NullPointerException("grammarAccess may not be null, you call configureConsumers");

View file

@ -71,6 +71,7 @@ public abstract class AbstractPackratParser extends AbstractParser implements
this.hiddens = previousHiddens;
}
@Override
public void restore() {
setHiddens(this.hiddens);
}
@ -82,6 +83,7 @@ public abstract class AbstractPackratParser extends AbstractParser implements
}
private static final IHiddenTokenState NULL_HIDDEN_TOKEN_STATE = new IHiddenTokenState() {
@Override
public void restore() {
}
};
@ -134,21 +136,27 @@ public abstract class AbstractPackratParser extends AbstractParser implements
final IBacktracker localBacktracker = DebugUtil.BACKTRACKER_DEBUG ? new DebugBacktracker(backtracker) : backtracker;
IParserConfiguration result = createParserConfiguration(new IInternalParserConfiguration() {
@Override
public IConsumerUtility getConsumerUtil() {
return localConsumerUtil;
}
@Override
public IHiddenTokenHandler getHiddenTokenHandler() {
return localHiddenTokenHandler;
}
@Override
public ICharSequenceWithOffset getInput() {
return localInput;
}
@Override
public IMarkerFactory getMarkerFactory() {
return localMarkerFactory;
}
@Override
public IParsedTokenAcceptor getTokenAcceptor() {
return localTokenAcceptor;
}
@Override
public IBacktracker getBacktracker() {
return localBacktracker;
}
@ -173,10 +181,12 @@ public abstract class AbstractPackratParser extends AbstractParser implements
return input;
}
@Override
public final IParseResult parse(CharSequence input) {
return parse(input, getRootConsumer());
}
@Override
public final IParseResult parse(CharSequence input, INonTerminalConsumer consumer) {
this.input = input;
this.offset = 0;
@ -187,6 +197,7 @@ public abstract class AbstractPackratParser extends AbstractParser implements
private class RootConsumerListener implements IRootConsumerListener {
@Override
public void beforeNonTerminalEnd(INonTerminalConsumer nonTerminalConsumer, int result, INonTerminalConsumerConfiguration configuration) {
if (result == ConsumeResult.SUCCESS) {
if (offset != length())
@ -198,10 +209,12 @@ public abstract class AbstractPackratParser extends AbstractParser implements
}
}
@Override
public void afterNonTerminalBegin(INonTerminalConsumer nonTerminalConsumer, INonTerminalConsumerConfiguration configuration) {
consumeHiddens();
}
@Override
public void handleException(NonTerminalConsumer nonTerminalConsumer, Exception e, INonTerminalConsumerConfiguration configuration) {
log.error("handle Exception: " + e.getMessage(), e);
configuration.getTokenAcceptor().accept(new ErrorToken(offset, length() - offset, null, e.getMessage()));
@ -246,39 +259,47 @@ public abstract class AbstractPackratParser extends AbstractParser implements
}
}
@Override
public IMarker mark() {
return getNextMarker(activeMarker, offset);
}
@Override
public Marker getActiveMarker() {
return activeMarker;
}
@Override
public Marker getNextMarker(Marker parent, int offset) {
return markerBufferSize > 0 ?
markerBuffer[--markerBufferSize].reInit(offset, parent, this, this) :
new Marker(parent, offset, this, this);
}
@Override
public void setActiveMarker(Marker marker) {
this.activeMarker = marker;
}
@Override
public void releaseMarker(Marker marker) {
if (markerBufferSize < MARKER_BUFFER_SIZE)
markerBuffer[markerBufferSize++] = marker;
}
@Override
public int consumeKeyword(Keyword keyword, String feature, boolean isMany, boolean isBoolean, ICharacterClass notFollowedBy, boolean optional) {
keywordConsumer.configure(keyword, notFollowedBy);
return consumeTerminal(keywordConsumer, feature, isMany, isBoolean, keyword, ISequenceMatcher.Factory.nullMatcher(), optional);
}
@Override
public int consumeEnum(EnumLiteralDeclaration literal, ICharacterClass notFollowedBy) {
literalConsumer.configure(literal, notFollowedBy);
return consumeTerminal(literalConsumer, null, false, false, literal, ISequenceMatcher.Factory.nullMatcher(), false);
}
@Override
public int consumeTerminal(ITerminalConsumer consumer, String feature, boolean isMany, boolean isBoolean,
AbstractElement grammarElement, ISequenceMatcher notMatching, boolean optional) {
IMarker marker = mark();
@ -293,6 +314,7 @@ public abstract class AbstractPackratParser extends AbstractParser implements
return result;
}
@Override
public int consumeNonTerminal(INonTerminalConsumer consumer, String feature, boolean isMany,
boolean isDatatype, boolean isBoolean, AbstractElement grammarElement, boolean optional) throws Exception {
if (!consumer.isDefiningHiddens())
@ -330,8 +352,10 @@ public abstract class AbstractPackratParser extends AbstractParser implements
return result;
}
@Override
public void consumeAction(final Action action, final boolean isMany) {
accept(new ParsedAction(offset, action, isMany, new IParsedTokenSource(){
@Override
public int parseAgain(ParsedToken token) throws Exception {
consumeAction(action, isMany);
return ConsumeResult.SUCCESS;
@ -347,38 +371,47 @@ public abstract class AbstractPackratParser extends AbstractParser implements
return grammarAccess;
}
@Override
public int getOffset() {
return offset;
}
@Override
public char charAt(int index) {
return input.charAt(index);
}
@Override
public int length() {
return input.length();
}
@Override
public CharSequence subSequence(int start, int end) {
return input.subSequence(start, end);
}
@Override
public void incOffset() {
offset++;
}
@Override
public void incOffset(int amount) {
offset+=amount;
}
@Override
public void accept(AbstractParsedToken token) {
activeMarker.accept(token);
}
@Override
public void setOffset(int offset) {
this.offset = offset;
}
@Override
public IHiddenTokenState replaceHiddenTokens(ITerminalConsumer... consumers) {
if (consumers == null)
return NULL_HIDDEN_TOKEN_STATE;

View file

@ -57,38 +57,47 @@ public abstract class AbstractParserConfiguration implements
this.backtracker = configuration.getBacktracker();
}
@Override
public ICharSequenceWithOffset getInput() {
return input;
}
@Override
public IMarkerFactory getMarkerFactory() {
return markerFactory;
}
@Override
public IParsedTokenAcceptor getTokenAcceptor() {
return tokenAcceptor;
}
@Override
public IHiddenTokenHandler getHiddenTokenHandler() {
return hiddenTokenHandler;
}
@Override
public IConsumerUtility getConsumerUtil() {
return consumerUtil;
}
@Override
public IBacktracker getBacktracker() {
return backtracker;
}
@Override
public KeywordConsumer createKeywordConsumer() {
return new KeywordConsumer(this);
}
@Override
public EnumLiteralConsumer createLiteralConsumer() {
return new EnumLiteralConsumer(this);
}
@Override
public ITerminalConsumer[] getInitialHiddenTerminals() {
return EMPTY_HIDDENS;
}

View file

@ -14,10 +14,12 @@ import java.io.CharArrayWriter;
*/
public class CharArrayWriterAsSequence extends CharArrayWriter implements CharSequence {
@Override
public char charAt(int index) {
return buf[index];
}
@Override
public int length() {
return count;
}
@ -30,6 +32,7 @@ public class CharArrayWriterAsSequence extends CharArrayWriter implements CharSe
super(1024);
}
@Override
public CharSequence subSequence(int start, int end) {
return new SubSequence(this, start, end);
}
@ -45,14 +48,17 @@ public class CharArrayWriterAsSequence extends CharArrayWriter implements CharSe
this.end = end;
}
@Override
public char charAt(int index) {
return base.charAt(index + start);
}
@Override
public int length() {
return end - start;
}
@Override
public CharSequence subSequence(int start, int end) {
return new SubSequence(base, this.start + start, this.start + end);
}

View file

@ -54,6 +54,7 @@ public class ParseResultFactory extends AbstractParsedTokenVisitor implements IP
this.nonterminalStack = new LinkedList<ParsedNonTerminal>();
}
@Override
public IParseResult createParseResult(AbstractParsedToken token, CharSequence input) {
// currentNode = null;
currentStack.clear();

View file

@ -149,6 +149,7 @@ public abstract class NonTerminalConsumer extends AbstractConsumer implements IN
this.element = element;
}
@Override
public int consume() throws Exception {
IMarker marker = mark();
int result = doConsume(false);
@ -180,6 +181,7 @@ public abstract class NonTerminalConsumer extends AbstractConsumer implements IN
return result;
}
@Override
public int parseAgain(ParsedToken token) throws Exception {
return consume();
}
@ -242,6 +244,7 @@ public abstract class NonTerminalConsumer extends AbstractConsumer implements IN
return consumers;
}
@Override
public int parseFurther(IFurtherParsable<UnorderedGroupToken> token) throws Exception {
final UnorderedGroupToken groupToken = token.getToken();
return doConsumeUnorderedGroup(this, getConsumers(), this, groupToken.isOptional() /*, groupToken.getAlternative() + 1 */);
@ -272,6 +275,7 @@ public abstract class NonTerminalConsumer extends AbstractConsumer implements IN
return consumers;
}
@Override
public int parseFurther(IFurtherParsable<AlternativesToken> token) throws Exception {
final AlternativesToken alternativesToken = token.getToken();
return doConsumeAlternatives(this, getConsumers(), this, alternativesToken.isOptional(), alternativesToken.getAlternative() + 1);
@ -360,6 +364,7 @@ public abstract class NonTerminalConsumer extends AbstractConsumer implements IN
return consumers;
}
@Override
public int parseFurther(IFurtherParsable<UnorderedGroupToken> token) throws Exception {
final UnorderedGroupToken groupToken = token.getToken();
return doConsumeUnorderedGroup(this, getConsumers(), this, groupToken.isOptional() /*, groupToken.getAlternative() + 1 */);
@ -390,6 +395,7 @@ public abstract class NonTerminalConsumer extends AbstractConsumer implements IN
return consumers;
}
@Override
public int parseFurther(IFurtherParsable<AlternativesToken> token) throws Exception {
final AlternativesToken alternativesToken = token.getToken();
return doConsumeAlternatives(this, getConsumers(), this, alternativesToken.isOptional(), alternativesToken.getAlternative() + 1);
@ -477,6 +483,7 @@ public abstract class NonTerminalConsumer extends AbstractConsumer implements IN
return consumers;
}
@Override
public int parseFurther(IFurtherParsable<UnorderedGroupToken> token) throws Exception {
final UnorderedGroupToken groupToken = token.getToken();
return doConsumeUnorderedGroup(this, getConsumers(), this, groupToken.isOptional() /*, groupToken.getAlternative() + 1 */);
@ -507,6 +514,7 @@ public abstract class NonTerminalConsumer extends AbstractConsumer implements IN
return consumers;
}
@Override
public int parseFurther(IFurtherParsable<AlternativesToken> token) throws Exception {
final AlternativesToken alternativesToken = token.getToken();
return doConsumeAlternatives(this, getConsumers(), this, alternativesToken.isOptional(), alternativesToken.getAlternative() + 1);
@ -639,6 +647,7 @@ public abstract class NonTerminalConsumer extends AbstractConsumer implements IN
return consumers;
}
@Override
public int parseFurther(IFurtherParsable<UnorderedGroupToken> token) throws Exception {
final UnorderedGroupToken groupToken = token.getToken();
return doConsumeUnorderedGroup(this, getConsumers(), this, groupToken.isOptional() /*, groupToken.getAlternative() + 1 */);
@ -669,6 +678,7 @@ public abstract class NonTerminalConsumer extends AbstractConsumer implements IN
return consumers;
}
@Override
public int parseFurther(IFurtherParsable<AlternativesToken> token) throws Exception {
final AlternativesToken alternativesToken = token.getToken();
return doConsumeAlternatives(this, getConsumers(), this, alternativesToken.isOptional(), alternativesToken.getAlternative() + 1);
@ -863,16 +873,19 @@ public abstract class NonTerminalConsumer extends AbstractConsumer implements IN
getTokenAcceptor().accept(new PlaceholderToken(getOffset(), consumer.getElement(), consumer, true));
}
@Override
public boolean isDefiningHiddens() {
return hiddenTokens != null;
}
@Override
public int consume(final String feature, final boolean isMany, final boolean isDatatype, final boolean isBoolean,
final AbstractElement grammarElement, final boolean optional) throws Exception {
IHiddenTokenState prevState = hiddenTokenHandler.replaceHiddenTokens(hiddenTokens);
IMarker marker = mark();
getTokenAcceptor().accept(new ParsedNonTerminal(getInput().getOffset(), grammarElement != null ? grammarElement : getGrammarElement(),
getDefaultType(), new IParsedTokenSource(){
@Override
public int parseAgain(ParsedToken token) throws Exception {
return consume(feature, isMany, isDatatype, isBoolean, grammarElement, optional);
}
@ -884,11 +897,13 @@ public abstract class NonTerminalConsumer extends AbstractConsumer implements IN
return result;
}
@Override
public void consumeAsRoot(final IRootConsumerListener listener) {
IHiddenTokenState prevState = hiddenTokenHandler.replaceHiddenTokens(hiddenTokens);
IMarker marker = mark();
getTokenAcceptor().accept(new ParsedNonTerminal(getInput().getOffset(), getGrammarElement(),
getDefaultType(), new IParsedTokenSource(){
@Override
public int parseAgain(ParsedToken token) throws Exception {
throw new IllegalStateException("Cannot reparse root token");
}
@ -944,18 +959,22 @@ public abstract class NonTerminalConsumer extends AbstractConsumer implements IN
protected abstract AbstractRule getGrammarElement();
@Override
public IConsumerUtility getConsumerUtil() {
return consumerUtil;
}
@Override
public IHiddenTokenHandler getHiddenTokenHandler() {
return hiddenTokenHandler;
}
@Override
public IMarkerFactory getMarkerFactory() {
return markerFactory;
}
@Override
public IBacktracker getBacktracker() {
return backtracker;
}

View file

@ -34,6 +34,7 @@ public abstract class TerminalConsumer extends AbstractConsumer implements ITerm
super(configuration.getInput(), configuration.getTokenAcceptor());
}
@Override
public final int consume(final String feature, final boolean isMany, final boolean isBoolean,
final AbstractElement element, final ISequenceMatcher notMatching, final boolean optional) {
final int prevMarker = mark();
@ -46,6 +47,7 @@ public abstract class TerminalConsumer extends AbstractConsumer implements ITerm
}
getTokenAcceptor().accept(createParsedToken(feature, isMany, isBoolean, element, notMatching, optional, prevMarker,
new IParsedTokenSource(){
@Override
public int parseAgain(ParsedToken token) throws Exception {
return consume(feature, isMany, isBoolean, element, notMatching, optional);
}
@ -67,6 +69,7 @@ public abstract class TerminalConsumer extends AbstractConsumer implements ITerm
source, optional);
}
@Override
public final int consume() {
int prevOffset = getInput().getOffset();
final int result = doConsume();
@ -76,6 +79,7 @@ public abstract class TerminalConsumer extends AbstractConsumer implements ITerm
return result;
}
@Override
public final int consume(ISequenceMatcher notMatching) {
int prevOffset = getInput().getOffset();
final int result = doConsume();
@ -202,10 +206,12 @@ public abstract class TerminalConsumer extends AbstractConsumer implements ITerm
protected abstract String getRuleName();
@Override
public void setHidden(boolean hidden) {
this.hidden = hidden;
}
@Override
public boolean isHidden() {
return hidden;
}

View file

@ -23,6 +23,7 @@ public class DebugBacktracker implements IBacktracker {
this.delegate = delegate;
}
@Override
public IBacktrackingResult skipPreviousToken() {
if (log.isDebugEnabled()) {
log.debug("Trying to skip recently parsed optional token.");

View file

@ -22,6 +22,7 @@ public class DebugCharSequence implements CharSequence {
this.delegate = delegate;
}
@Override
public char charAt(int index) {
char result = delegate.charAt(index);
if (log.isTraceEnabled()) {
@ -30,10 +31,12 @@ public class DebugCharSequence implements CharSequence {
return result;
}
@Override
public int length() {
return delegate.length();
}
@Override
public CharSequence subSequence(int start, int end) {
if (log.isTraceEnabled()) {
log.trace("subSequence(start = " + start + ", end = " + end + ")");

View file

@ -24,6 +24,7 @@ public class DebugCharSequenceWithOffset extends DebugCharSequence implements IC
this.delegate = delegate;
}
@Override
public int getOffset() {
int result = delegate.getOffset();
if (log.isTraceEnabled()) {
@ -32,6 +33,7 @@ public class DebugCharSequenceWithOffset extends DebugCharSequence implements IC
return result;
}
@Override
public void incOffset() {
if (log.isTraceEnabled()) {
log.trace("incOffset()");
@ -39,6 +41,7 @@ public class DebugCharSequenceWithOffset extends DebugCharSequence implements IC
delegate.incOffset();
}
@Override
public void incOffset(int amount) {
if (log.isTraceEnabled()) {
log.trace("incOffset(" + amount + ")");
@ -46,6 +49,7 @@ public class DebugCharSequenceWithOffset extends DebugCharSequence implements IC
delegate.incOffset(amount);
}
@Override
public void setOffset(int offset) {
if (log.isTraceEnabled()) {
log.trace("setOffset(" + offset + ")");

View file

@ -31,6 +31,7 @@ public class DebugConsumerUtility implements IConsumerUtility {
this.delegate = delegate;
}
@Override
public void consumeAction(Action action, boolean isMany) {
if (log.isDebugEnabled()) {
log.debug("consumeAction(type = " + action.getType().getClassifier().getName() + ", feature = " + action.getFeature() + ", isMany = " + isMany + ")");
@ -38,6 +39,7 @@ public class DebugConsumerUtility implements IConsumerUtility {
delegate.consumeAction(action, isMany);
}
@Override
public int consumeKeyword(Keyword keyword, String feature, boolean isMany, boolean isBoolean,
ICharacterClass notFollowedBy, boolean optional) {
if (log.isDebugEnabled()) {
@ -55,6 +57,7 @@ public class DebugConsumerUtility implements IConsumerUtility {
return result;
}
@Override
public int consumeNonTerminal(INonTerminalConsumer consumer, String feature, boolean isMany,
boolean isDatatype, boolean isBoolean, AbstractElement grammarElement, boolean optional) throws Exception {
if (log.isDebugEnabled()) {
@ -73,6 +76,7 @@ public class DebugConsumerUtility implements IConsumerUtility {
return result;
}
@Override
public int consumeTerminal(ITerminalConsumer consumer, String feature, boolean isMany, boolean isBoolean,
AbstractElement grammarElement, ISequenceMatcher notMatching, boolean optional) {
if (log.isDebugEnabled()) {
@ -91,6 +95,7 @@ public class DebugConsumerUtility implements IConsumerUtility {
return result;
}
@Override
public int consumeEnum(EnumLiteralDeclaration literal, ICharacterClass notFollowedBy) {
if (log.isDebugEnabled()) {
log.debug("consumeEnum(enum = '" + literal.getEnumLiteral().getName() + "', " +

View file

@ -26,6 +26,7 @@ public class DebugHiddenTokenHandler implements IHiddenTokenHandler {
this.delegate = delegate;
}
@Override
public IHiddenTokenState replaceHiddenTokens(ITerminalConsumer... consumers) {
if (log.isDebugEnabled()) {
log.debug("replaceHiddenTokens(" + Arrays.toString(consumers) + ")");
@ -45,6 +46,7 @@ public class DebugHiddenTokenHandler implements IHiddenTokenHandler {
this.delegate = delegate;
}
@Override
public void restore() {
if (log.isDebugEnabled()) {
log.debug("restore(" + delegate + ")");

View file

@ -23,6 +23,7 @@ public class DebugMarkerFactory implements IMarkerFactory {
this.delegate = delegate;
}
@Override
public IMarker mark() {
if (log.isDebugEnabled()) {
log.debug("mark()");
@ -42,6 +43,7 @@ public class DebugMarkerFactory implements IMarkerFactory {
this.delegate = delegate;
}
@Override
public void rollback() {
if (log.isDebugEnabled()) {
log.debug("rollback(" + delegate + ")");
@ -49,6 +51,7 @@ public class DebugMarkerFactory implements IMarkerFactory {
delegate.rollback();
}
@Override
public void commit() {
if (log.isDebugEnabled()) {
log.debug("commit(" + delegate + ")");
@ -56,6 +59,7 @@ public class DebugMarkerFactory implements IMarkerFactory {
delegate.commit();
}
@Override
public void flush() {
if (log.isDebugEnabled()) {
log.debug("flush(" + delegate + ")");
@ -63,6 +67,7 @@ public class DebugMarkerFactory implements IMarkerFactory {
delegate.flush();
}
@Override
public IMarker fork() {
if (log.isDebugEnabled()) {
log.debug("fork(" + delegate + ")");
@ -70,6 +75,7 @@ public class DebugMarkerFactory implements IMarkerFactory {
return new DebuggingMarker(delegate.fork());
}
@Override
public IMarker join(IMarker forkedMarker) {
IMarker join = forkedMarker instanceof DebuggingMarker ? ((DebuggingMarker)forkedMarker).delegate : forkedMarker;
if (log.isDebugEnabled()) {

View file

@ -24,6 +24,7 @@ public class DebugParsedTokenAcceptor implements IParsedTokenAcceptor {
this.delegate = delegate;
}
@Override
public void accept(AbstractParsedToken token) {
if (log.isDebugEnabled()) {
log.debug("accept(" + token + ")");

View file

@ -21,6 +21,7 @@ public class Backtracker implements IBacktracker {
this.markerClient = markerClient;
}
@Override
public IBacktrackingResult skipPreviousToken() {
return markerClient.getActiveMarker().skipPreviousToken();
}

View file

@ -72,6 +72,7 @@ public class Marker extends AbstractParsedToken implements IMarkerFactory.IMarke
return this;
}
@Override
public void rollback() {
if (danglingChildCount > 0)
throw new IllegalStateException("childCount has to be zero before rollback.");
@ -80,6 +81,7 @@ public class Marker extends AbstractParsedToken implements IMarkerFactory.IMarke
forget();
}
@Override
public void flush() {
if (danglingChildCount > 0)
throw new IllegalStateException("childCount has to be zero before flush.");
@ -95,6 +97,7 @@ public class Marker extends AbstractParsedToken implements IMarkerFactory.IMarke
lastOffset = input.getOffset();
}
@Override
public void commit() {
if (danglingChildCount > 0)
throw new IllegalStateException("childCount has to be zero before commit.");
@ -111,6 +114,7 @@ public class Marker extends AbstractParsedToken implements IMarkerFactory.IMarke
this.parent = null; // prevent accidental change
}
@Override
public Marker fork() {
lastOffset = input.getOffset();
input.setOffset(getOffset());
@ -125,6 +129,7 @@ public class Marker extends AbstractParsedToken implements IMarkerFactory.IMarke
return result;
}
@Override
public IMarker join(IMarker forkedMarker) {
if (!(forkedMarker instanceof Marker))
throw new IllegalArgumentException("forkedMarker is not supported: " + forkedMarker);
@ -179,6 +184,7 @@ public class Marker extends AbstractParsedToken implements IMarkerFactory.IMarke
}
}
@Override
public void accept(AbstractParsedToken token) {
if (danglingChildCount != 0)
throw new IllegalStateException("cannot accept tokens if there exist any dangling children.");
@ -201,6 +207,7 @@ public class Marker extends AbstractParsedToken implements IMarkerFactory.IMarke
return input;
}
@Override
public IBacktrackingResult skipPreviousToken() {
if (danglingChildCount > 0)
throw new IllegalStateException("childCount has to be zero before backtracking.");

View file

@ -62,6 +62,7 @@ public class MarkerAwareBacktracker implements IBacktracker {
this.workingMarkers = new ArrayList<Marker>(4);
}
@Override
public void commit() {
if (workingMarkers.isEmpty())
throw new IllegalStateException("Working marker may not be null");
@ -77,6 +78,7 @@ public class MarkerAwareBacktracker implements IBacktracker {
markedTokens.clear();
}
@Override
public void discard() {
for(AbstractParsedToken token: markedTokens) {
token.setSkipped(false);
@ -93,10 +95,12 @@ public class MarkerAwareBacktracker implements IBacktracker {
markedTokens.clear();
}
@Override
public boolean isSuccessful() {
return result;
}
@Override
public IBacktrackingResult skipPreviousToken() {
discardImpl();
init();
@ -212,6 +216,7 @@ public class MarkerAwareBacktracker implements IBacktracker {
}
}
@Override
public void visitMarker(Marker marker) {
throw new IllegalStateException("Marker may not be content of other markers.");
}
@ -324,6 +329,7 @@ public class MarkerAwareBacktracker implements IBacktracker {
}
}
@Override
public void visitMarker(Marker marker) {
throw new IllegalStateException("Marker may not be content of other markers.");
}
@ -488,6 +494,7 @@ public class MarkerAwareBacktracker implements IBacktracker {
replayToken = token;
}
@Override
public void visitMarker(Marker marker) {
throw new IllegalStateException("Marker may not be content of other markers.");
}
@ -495,6 +502,7 @@ public class MarkerAwareBacktracker implements IBacktracker {
}
}
@Override
public IBacktrackingResult skipPreviousToken() {
return new NestedBacktrackingResult().skipPreviousToken();
}

View file

@ -18,6 +18,7 @@ public class CharacterAlternatives implements ICharacterClass {
this.classes = classes;
}
@Override
public boolean matches(char candidate) {
for (ICharacterClass characterClass: classes) {
if (characterClass.matches(candidate))

View file

@ -22,6 +22,7 @@ public class CharacterArray implements ICharacterClass {
Arrays.sort(this.characters);
}
@Override
public boolean matches(char candidate) {
return candidate >= characters[0] && candidate <= characters[characters.length -1 ] &&
Arrays.binarySearch(characters, candidate) >= 0;

View file

@ -22,6 +22,7 @@ public class CharacterRange implements ICharacterClass {
this.max = max;
}
@Override
public boolean matches(char candidate) {
return this.min <= candidate && this.max >= candidate;
}

View file

@ -17,6 +17,7 @@ public interface ICharacterClass {
class Factory {
private static class NullCharacterClass implements ICharacterClass {
private static ICharacterClass INSTANCE = new NullCharacterClass();
@Override
public boolean matches(char candidate) {
return false;
}
@ -42,6 +43,7 @@ public interface ICharacterClass {
public static ICharacterClass invert(final ICharacterClass clazz) {
return new ICharacterClass() {
@Override
public boolean matches(char candidate) {
return !clazz.matches(candidate);
}

View file

@ -17,6 +17,7 @@ public interface ISequenceMatcher {
class Factory {
private static class NullSequenceMatcher implements ISequenceMatcher {
private static ISequenceMatcher INSTANCE = new NullSequenceMatcher();
@Override
public boolean matches(CharSequence input, int offset, int length) {
return false;
}

View file

@ -22,6 +22,7 @@ public class SetBasedKeywordMatcher implements ISequenceMatcher {
this.keywords = new HashSet<String>(Arrays.asList(keywords));
}
@Override
public boolean matches(CharSequence input, int offset, int length) {
return keywords.contains(input.subSequence(offset, offset + length).toString());
}

View file

@ -19,6 +19,7 @@ public class SingleCharacter implements ICharacterClass {
this.c = c;
}
@Override
public boolean matches(char candidate) {
return candidate == c;
}

View file

@ -24,34 +24,42 @@ public class StringWithOffset implements ICharSequenceWithOffset, IMarkerFactory
this.offset = 0;
}
@Override
public int getOffset() {
return offset;
}
@Override
public void incOffset() {
offset++;
}
@Override
public void incOffset(int amount) {
offset+=amount;
}
@Override
public void setOffset(int offset) {
this.offset = offset;
}
@Override
public char charAt(int index) {
return value.charAt(index);
}
@Override
public int length() {
return value.length();
}
@Override
public CharSequence subSequence(int start, int end) {
return value.subSequence(start, end);
}
@Override
public IMarker mark() {
return new Marker();
}
@ -68,6 +76,7 @@ public class StringWithOffset implements ICharSequenceWithOffset, IMarkerFactory
this.offset = offset;
}
@Override
public void rollback() {
StringWithOffset.this.setOffset(offset);
}
@ -77,17 +86,21 @@ public class StringWithOffset implements ICharSequenceWithOffset, IMarkerFactory
return "Marker@" + offset;
}
@Override
public void commit() {
}
@Override
public IMarker fork() {
return new Marker(offset);
}
@Override
public IMarker join(IMarker forkedMarker) {
return this;
}
@Override
public void flush() {
}
}

View file

@ -15,99 +15,123 @@ import org.eclipse.xtext.parser.packrat.tokens.CompoundParsedToken.End;
*/
public abstract class AbstractParsedTokenVisitor implements IParsedTokenVisitor {
@Override
public void visitAbstractParsedToken(AbstractParsedToken token) {
throw new UnsupportedOperationException("visitAbstractParsedToken is not implemented.");
}
@Override
public void visitAbstractParsedTokenEnd(AbstractParsedToken.End token) {
visitAbstractParsedToken(token);
}
@Override
public void visitCompoundParsedToken(CompoundParsedToken token) {
visitParsedToken(token);
}
@Override
public void visitCompoundParsedTokenEnd(End token) {
visitAbstractParsedTokenEnd(token);
}
@Override
public void visitAssignmentToken(AssignmentToken token) {
visitCompoundParsedToken(token);
}
@Override
public void visitAssignmentTokenEnd(AssignmentToken.End token) {
visitCompoundParsedTokenEnd(token);
}
@Override
public void visitAlternativesToken(AlternativesToken token) {
visitCompoundParsedToken(token);
}
@Override
public void visitAlternativesTokenEnd(AlternativesToken.End token) {
visitCompoundParsedTokenEnd(token);
}
@Override
public void visitGroupToken(GroupToken token) {
visitCompoundParsedToken(token);
}
@Override
public void visitGroupTokenEnd(GroupToken.End token) {
visitCompoundParsedTokenEnd(token);
}
@Override
public void visitUnorderedGroupToken(UnorderedGroupToken token) {
visitCompoundParsedToken(token);
}
@Override
public void visitUnorderedGroupTokenEnd(UnorderedGroupToken.End token) {
visitCompoundParsedTokenEnd(token);
}
@Override
public void visitErrorToken(ErrorToken token) {
visitParsedToken(token);
}
@Override
public void visitFakedToken(FakedToken token) {
visitAbstractParsedToken(token);
}
@Override
public void visitParsedNonTerminal(ParsedNonTerminal token) {
visitParsedToken(token);
}
@Override
public void visitParsedNonTerminalEnd(ParsedNonTerminalEnd token) {
visitAbstractParsedTokenEnd(token);
}
@Override
public void visitParsedTerminal(ParsedTerminal token) {
visitParsedToken(token);
}
@Override
public void visitParsedTerminalWithFeatureInfo(ParsedTerminalWithFeatureInfo token) {
visitParsedTerminal(token);
}
@Override
public void visitParsedTerminalWithFeature(ParsedTerminalWithFeature token) {
visitParsedTerminalWithFeatureInfo(token);
}
@Override
public void visitParsedToken(ParsedToken token) {
visitAbstractParsedToken(token);
}
@Override
public void visitParsedAction(ParsedAction token) {
visitParsedToken(token);
}
@Override
public void visitPlaceholder(PlaceholderToken token) {
visitParsedToken(token);
}
@Override
public Void apply(AbstractParsedToken param) {
param.accept(this);
return null;
}
@Override
public void visitParsedEnumLiteral(ParsedEnumLiteral token) {
visitParsedToken(token);
}

View file

@ -42,6 +42,7 @@ public class AlternativesToken extends CompoundParsedToken implements IFurtherPa
return alternative;
}
@Override
public AlternativesToken getToken() {
return this;
}
@ -52,6 +53,7 @@ public class AlternativesToken extends CompoundParsedToken implements IFurtherPa
return (Source<AlternativesToken>) super.getSource();
}
@Override
public boolean canParseFurther() {
return alternative < totalAlternatives - 1;
}

View file

@ -43,6 +43,7 @@ public class UnorderedGroupToken extends CompoundParsedToken implements IFurther
// return alternative;
// }
@Override
public UnorderedGroupToken getToken() {
return this;
}
@ -53,6 +54,7 @@ public class UnorderedGroupToken extends CompoundParsedToken implements IFurther
return (Source<UnorderedGroupToken>) super.getSource();
}
@Override
public boolean canParseFurther() {
return false; // alternative < totalAlternatives - 1;
}

View file

@ -230,6 +230,7 @@ public class EcoreUtil2 extends EcoreUtil {
private TreeIterator<EObject> it = null;
private int index = 0;
@Override
public void prune() {
switch (index) {
case 0:
@ -243,6 +244,7 @@ public class EcoreUtil2 extends EcoreUtil {
}
}
@Override
public boolean hasNext() {
if (index == 0)
return true;
@ -251,6 +253,7 @@ public class EcoreUtil2 extends EcoreUtil {
return false;
}
@Override
public EObject next() {
if (index++ == 0) {
it = obj.eAllContents();
@ -261,6 +264,7 @@ public class EcoreUtil2 extends EcoreUtil {
return null;
}
@Override
public void remove() {
if (index == 0)
EcoreUtil.remove(obj);
@ -272,6 +276,7 @@ public class EcoreUtil2 extends EcoreUtil {
public static Iterable<EObject> eAllContents(final EObject n) {
return new Iterable<EObject>() {
@Override
public Iterator<EObject> iterator() {
return eAll(n);
}
@ -361,6 +366,7 @@ public class EcoreUtil2 extends EcoreUtil {
private static class EClassTypeHierarchyComparator implements Comparator<EClass> {
@Override
public int compare(EClass classA, EClass classB) {
if (classA.getEAllSuperTypes().contains(classB))
return -1;

View file

@ -441,15 +441,18 @@ public class GrammarUtil {
public static Collection<EPackage> allEPackagesToValidate(final Grammar _this) {
Iterable<TypeRef> allTypeRefs = concat(transform(allParserRules(_this), new Function<ParserRule, Iterable<TypeRef>>() {
@Override
public Iterable<TypeRef> apply(ParserRule from) {
return EcoreUtil2.eAllOfType(from, TypeRef.class);
}
}));
return newLinkedHashSet(transform(filter(allTypeRefs, new Predicate<TypeRef>() {
@Override
public boolean apply(TypeRef input) {
return !(input.eContainer() instanceof CrossReference) && input.getClassifier() instanceof EClass;
}
}), new Function<TypeRef, EPackage>() {
@Override
public EPackage apply(TypeRef from) {
return from.getClassifier().getEPackage();
}

View file

@ -24,10 +24,12 @@ public interface IGrammarAccess {
}
interface IEnumRuleAccess extends IAbstractRuleAccess {
@Override
EnumRule getRule();
}
interface IParserRuleAccess extends IAbstractRuleAccess {
@Override
ParserRule getRule();
}

View file

@ -20,9 +20,11 @@ import org.eclipse.xtext.nodemodel.INode;
public interface IValueConverter<Type> {
IValueConverter<? extends Object> NO_OP_CONVERTER = new IValueConverter<String>() {
@Override
public String toString(String value) {
return value;
}
@Override
public String toValue(String string, INode node) {
return string;
}

View file

@ -64,10 +64,12 @@ public abstract class AbstractDeclarativeValueConverterService extends AbstractV
return grammar;
}
@Override
public String toString(Object value, String lexerRule) {
return getConverter(lexerRule).toString(value);
}
@Override
public Object toValue(String string, String lexerRule, INode node) throws ValueConverterException {
return getConverter(lexerRule).toValue(string, node);
}
@ -75,6 +77,7 @@ public abstract class AbstractDeclarativeValueConverterService extends AbstractV
/**
* @since 2.7
*/
@Override
@SuppressWarnings("unchecked")
public IValueConverter<Object> getConverter(String lexerRule) {
Map<String, IValueConverter<Object>> map = getConverters();

View file

@ -80,6 +80,7 @@ public abstract class AbstractIDValueConverter extends AbstractLexerBasedConvert
protected String getInvalidCharactersMessage(String value, Set<Character> invalidChars) {
String chars = Joiner.on(", ").join(Iterables.transform(invalidChars, new Function<Character, String>() {
@Override
public String apply(Character from) {
return "'" + from + "' (0x" + Integer.toHexString(from) + ")";
}
@ -104,6 +105,7 @@ public abstract class AbstractIDValueConverter extends AbstractLexerBasedConvert
return result;
}
@Override
public String toValue(String string, INode node) {
if (string == null)
return null;

View file

@ -37,6 +37,7 @@ public abstract class AbstractLexerBasedConverter<T> extends AbstractValueConver
private AbstractRule rule;
@Override
public String toString(T value) {
assertValidValue(value);
String result = toEscapedString(value);
@ -118,6 +119,7 @@ public abstract class AbstractLexerBasedConverter<T> extends AbstractValueConver
return rule;
}
@Override
public void setRule(AbstractRule rule) {
this.rule = rule;
}

View file

@ -15,6 +15,7 @@ import org.eclipse.xtext.nodemodel.INode;
*/
public abstract class AbstractNullSafeConverter<T> extends AbstractValueConverter<T> {
@Override
public String toString(T value) {
if (value == null)
return null;
@ -23,6 +24,7 @@ public abstract class AbstractNullSafeConverter<T> extends AbstractValueConverte
protected abstract String internalToString(T value);
@Override
public T toValue(String string, INode node) throws ValueConverterException {
if (string == null)
return null;

View file

@ -43,6 +43,7 @@ public class DefaultTerminalConverter extends AbstractLexerBasedConverter<Object
this.dataType = dataType;
}
@Override
public Object toValue(String string, INode node) throws ValueConverterException {
try {
return dataType.getEPackage().getEFactoryInstance().createFromString(dataType, string);

View file

@ -26,10 +26,12 @@ public class EFactoryValueConverter implements IValueConverter<Object> {
this.dataType = dataType;
}
@Override
public String toString(Object value) {
return dataType.getEPackage().getEFactoryInstance().convertToString(dataType, value);
}
@Override
public Object toValue(String string, INode node) throws ValueConverterException {
try {
Object value = dataType.getEPackage().getEFactoryInstance().createFromString(dataType, string);

View file

@ -32,6 +32,7 @@ public class INTValueConverter extends AbstractLexerBasedConverter<Integer> {
throw new ValueConverterException(getRuleName() + "-value may not be negative (value: " + value + ").", null, null);
}
@Override
public Integer toValue(String string, INode node) {
if (Strings.isEmpty(string))
throw new ValueConverterException("Couldn't convert empty string to an int value.", node, null);

View file

@ -36,6 +36,7 @@ public class KeywordAlternativeConverter extends AbstractValueConverter<String>
private IValueConverterService delegateService;
private IValueConverter<Object> delegateConverter;
@Override
public String toValue(String string, INode node) throws ValueConverterException {
if (keywords.contains(string))
return string;
@ -43,6 +44,7 @@ public class KeywordAlternativeConverter extends AbstractValueConverter<String>
return result;
}
@Override
public String toString(String value) throws ValueConverterException {
if (keywords.contains(value))
return value;
@ -60,10 +62,12 @@ public class KeywordAlternativeConverter extends AbstractValueConverter<String>
final String ruleName = delegateRule.getName();
return delegateConverter = new IValueConverter<Object>() {
@Override
public Object toValue(String string, INode node) throws ValueConverterException {
return delegateService.toValue(string, ruleName, node);
}
@Override
public String toString(Object value) throws ValueConverterException {
return delegateService.toString(value, ruleName);
}
@ -80,6 +84,7 @@ public class KeywordAlternativeConverter extends AbstractValueConverter<String>
* @throws IllegalArgumentException if the rule is not a datatype rule or does not fulfill
* the pattern <pre>RuleName: 'keyword' | 'other';</pre>
*/
@Override
public void setRule(AbstractRule rule) {
if (!GrammarUtil.isDatatypeRule(rule))
throw new IllegalArgumentException(rule.getName() + " is not a data type rule");

View file

@ -39,10 +39,12 @@ public class KeywordBasedValueConverter extends AbstractValueConverter<String> i
private Set<String> keywords;
private AbstractRule rule;
@Override
public String toValue(String string, INode node) throws ValueConverterException {
return string;
}
@Override
public String toString(String value) throws ValueConverterException {
assertValidValue(value);
String result = toEscapedString(value);
@ -66,6 +68,7 @@ public class KeywordBasedValueConverter extends AbstractValueConverter<String> i
* @throws IllegalArgumentException if the rule is not a datatype rule or does not fulfill
* the pattern <pre>RuleName: 'keyword' | 'other';</pre>
*/
@Override
public void setRule(AbstractRule rule) {
this.rule = rule;
if (!GrammarUtil.isDatatypeRule(rule))

View file

@ -71,6 +71,7 @@ public class QualifiedNameValueConverter extends AbstractValueConverter<String>
return "ID";
}
@Override
public String toString(String value) {
String valueDelimiter = getValueNamespaceDelimiter();
List<String> segments = valueDelimiter.length() == 1 ? Strings.split(value, valueDelimiter.charAt(0)) : Strings.split(value, valueDelimiter);
@ -93,6 +94,7 @@ public class QualifiedNameValueConverter extends AbstractValueConverter<String>
return result.toString();
}
@Override
public String toValue(String string, INode node) throws ValueConverterException {
StringBuilder buffer = new StringBuilder();
boolean isFirst = true;
@ -154,10 +156,12 @@ public class QualifiedNameValueConverter extends AbstractValueConverter<String>
final String ruleName = getDelegateRuleName();
return delegateConverter = new IValueConverter<Object>() {
@Override
public Object toValue(String string, INode node) throws ValueConverterException {
return valueConverterService.toValue(string, ruleName, node);
}
@Override
public String toString(Object value) throws ValueConverterException {
return valueConverterService.toString(value, ruleName);
}

View file

@ -22,6 +22,7 @@ public class STRINGValueConverter extends AbstractLexerBasedConverter<String> {
return '"' + Strings.convertToJavaString(value, false) + '"';
}
@Override
public String toValue(String string, INode node) {
if (string == null)
return null;

View file

@ -21,6 +21,7 @@ public interface IStratumBreakpointSupport {
public static class DefaultImpl implements IStratumBreakpointSupport {
@Override
public boolean isValidLineForBreakPoint(XtextResource resource, int line) {
return false;
}

View file

@ -23,6 +23,7 @@ public abstract class AbstractDiagnostic implements Diagnostic {
public abstract String[] getData();
@Override
public int getLength() {
INode node = getNode();
if (node != null)
@ -30,6 +31,7 @@ public abstract class AbstractDiagnostic implements Diagnostic {
return 1;
}
@Override
public int getOffset() {
INode node = getNode();
if (node != null)
@ -37,10 +39,12 @@ public abstract class AbstractDiagnostic implements Diagnostic {
return 0;
}
@Override
public int getColumn() {
throw new UnsupportedOperationException();
}
@Override
public int getLine() {
INode node = getNode();
if (node != null)
@ -48,6 +52,7 @@ public abstract class AbstractDiagnostic implements Diagnostic {
return -1;
}
@Override
public String getLocation() {
return null;
}

View file

@ -26,20 +26,24 @@ public abstract class AbstractDiagnosticProducer implements IDiagnosticProducer
this.consumer = consumer;
}
@Override
public void addDiagnostic(DiagnosticMessage message) {
consumer.consume(createDiagnostic(message), message.getSeverity());
}
protected abstract Diagnostic createDiagnostic(DiagnosticMessage message);
@Override
public void setNode(INode node) {
this.node = node;
}
@Override
public INode getNode() {
return node;
}
@Override
public void setTarget(EObject object, EStructuralFeature feature) {
// nothing to do
}

View file

@ -23,18 +23,22 @@ public class AbstractDiagnosticProducerDecorator implements IDiagnosticProducer
this.producer = producer;
}
@Override
public void addDiagnostic(DiagnosticMessage message) {
producer.addDiagnostic(message);
}
@Override
public INode getNode() {
return producer.getNode();
}
@Override
public void setNode(INode node) {
producer.setNode(node);
}
@Override
public void setTarget(EObject object, EStructuralFeature feature) {
producer.setTarget(object, feature);
}

View file

@ -18,26 +18,32 @@ public class ExceptionDiagnostic implements Diagnostic {
this.exception = exception;
}
@Override
public int getLength() {
return 1;
}
@Override
public int getOffset() {
return 0;
}
@Override
public int getColumn() {
return 0;
}
@Override
public int getLine() {
return 1;
}
@Override
public String getLocation() {
return null;
}
@Override
public String getMessage() {
return exception.getClass().getSimpleName() + ": " + exception.getMessage() + " (see logs for details)";
}

View file

@ -16,18 +16,22 @@ import org.eclipse.xtext.nodemodel.INode;
*/
public class NullDiagnosticProducer implements IDiagnosticProducer {
@Override
public void addDiagnostic(DiagnosticMessage message) {
// nothing to do
}
@Override
public INode getNode() {
return null;
}
@Override
public void setNode(INode node) {
// nothing to do
}
@Override
public void setTarget(EObject object, EStructuralFeature feature) {
// nothing to do
}

Some files were not shown because too many files have changed in this diff Show more