From a54f69fa7d82e009e21152aa4810effbae66fdfb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miro=20Spo=CC=88nemann?= Date: Tue, 10 Jan 2017 15:24:12 +0100 Subject: [PATCH] Removed xtend-gen folders --- .gitignore | 1 + .../entities/ide/EntitiesIdeModule.java | 17 - .../entities/ide/EntitiesIdeSetup.java | 28 - .../entities/EntitiesRuntimeModule.java | 17 - .../entities/EntitiesStandaloneSetup.java | 20 - .../formatting2/EntitiesFormatter.java | 194 --- .../jvmmodel/EntitiesJvmModelInferrer.java | 138 -- .../scoping/EntitiesScopeProvider.java | 20 - .../validation/EntitiesValidator.java | 19 - .../web/example/jetty/EntitiesWebModule.java | 39 - .../web/example/jetty/EntitiesWebSetup.java | 40 - .../web/example/jetty/MyXtextServlet.java | 43 - .../web/example/jetty/ServerLauncher.java | 89 -- .../example/jetty/StatemachineWebModule.java | 52 - .../example/jetty/StatemachineWebSetup.java | 40 - .../StatemachineContentTypeProvider.java | 28 - .../StatemachineResourceSetProvider.java | 44 - .../ide/StatemachineIdeModule.java | 34 - .../ide/StatemachineIdeSetup.java | 28 - .../StatemachineImageDescriptionProvider.java | 37 - ...machineSemanticHighlightingCalculator.java | 61 - .../StatemachineTemplateProposalProvider.java | 36 - ...tatemachineWebContentProposalProvider.java | 175 --- .../StatemachineRuntimeModule.java | 17 - .../StatemachineStandaloneSetup.java | 20 - .../formatting2/StatemachineFormatter.java | 215 --- .../generator/StatemachineGenerator.java | 171 --- .../scoping/StatemachineScopeProvider.java | 20 - .../validation/StatemachineValidator.java | 38 - .../xtext/web/servlet/HttpServiceContext.java | 125 -- .../xtext/web/servlet/HttpSessionWrapper.java | 65 - .../web/servlet/XtextResourcesServlet.java | 81 -- .../xtext/web/servlet/XtextServlet.java | 239 ---- .../xtext/web/server/DefaultWebModule.java | 22 - .../xtext/web/server/IServiceContext.java | 41 - .../xtext/web/server/IServiceResult.java | 16 - .../eclipse/xtext/web/server/ISession.java | 65 - .../web/server/IUnwrappableServiceResult.java | 27 - .../web/server/InvalidRequestException.java | 94 -- .../web/server/ServiceConflictResult.java | 75 -- .../web/server/XtextServiceDispatcher.java | 1021 -------------- .../contentassist/ContentAssistResult.java | 87 -- .../contentassist/ContentAssistService.java | 190 --- .../server/formatting/FormattingResult.java | 101 -- .../server/formatting/FormattingService.java | 152 --- .../generator/DefaultContentTypeProvider.java | 26 - .../web/server/generator/GeneratorResult.java | 101 -- .../server/generator/GeneratorService.java | 207 --- .../generator/IContentTypeProvider.java | 17 - .../xtext/web/server/hover/HoverResult.java | 105 -- .../xtext/web/server/hover/HoverService.java | 224 ---- .../server/model/AbstractCachedService.java | 36 - .../web/server/model/DocumentStateResult.java | 67 - .../server/model/DocumentSynchronizer.java | 83 -- .../server/model/IWebDocumentProvider.java | 58 - .../server/model/IWebResourceSetProvider.java | 41 - .../web/server/model/IXtextWebDocument.java | 34 - .../model/PrecomputedServiceRegistry.java | 58 - .../server/model/UpdateDocumentService.java | 95 -- .../web/server/model/XtextWebDocument.java | 204 --- .../server/model/XtextWebDocumentAccess.java | 328 ----- .../server/occurrences/OccurrencesResult.java | 101 -- .../occurrences/OccurrencesService.java | 114 -- .../persistence/FileResourceHandler.java | 100 -- .../persistence/IResourceBaseProvider.java | 18 - .../persistence/IServerResourceHandler.java | 38 - .../persistence/ResourceBaseProviderImpl.java | 50 - .../persistence/ResourceContentResult.java | 94 -- .../ResourcePersistenceService.java | 123 -- .../syntaxcoloring/HighlightingResult.java | 142 -- .../syntaxcoloring/HighlightingService.java | 51 - .../util/CancelIndicatorProgressMonitor.java | 59 - .../web/server/util/ElementAtOffsetUtil.java | 44 - .../server/validation/ValidationResult.java | 201 --- .../server/validation/ValidationService.java | 85 -- .../server/test/AbstractWebServerTest.java | 116 -- .../xtext/web/server/test/Bug489571Test.java | 93 -- .../web/server/test/ContentAssistTest.java | 1168 ----------------- .../web/server/test/Formatting1Test.java | 100 -- .../web/server/test/Formatting2Test.java | 77 -- .../xtext/web/server/test/GeneratorTest.java | 271 ---- .../xtext/web/server/test/HashMapSession.java | 47 - .../web/server/test/HighlightingTest.java | 139 -- .../xtext/web/server/test/HoverTest.java | 355 ----- .../web/server/test/MockServiceContext.java | 47 - .../xtext/web/server/test/OccurrenceTest.java | 213 --- .../server/test/ResourcePersistenceTest.java | 134 -- .../web/server/test/UpdateDocumentTest.java | 523 -------- .../xtext/web/server/test/ValidationTest.java | 215 --- .../test/languages/StatemachineWebModule.java | 41 - .../formatting/StatemachineFormatter.java | 44 - .../xbase/web/DefaultXbaseWebModule.java | 17 - .../xbase/web/test/AbstractXbaseWebTest.java | 116 -- .../xbase/web/test/ContentAssistTest.java | 1018 -------------- .../xtext/xbase/web/test/HashMapSession.java | 47 - .../xbase/web/test/MockServiceContext.java | 47 - .../web/test/languages/EntitiesWebModule.java | 41 - 97 files changed, 1 insertion(+), 11854 deletions(-) delete mode 100644 org.eclipse.xtext.web.example.entities.ide/xtend-gen/org/eclipse/xtext/web/example/entities/ide/EntitiesIdeModule.java delete mode 100644 org.eclipse.xtext.web.example.entities.ide/xtend-gen/org/eclipse/xtext/web/example/entities/ide/EntitiesIdeSetup.java delete mode 100644 org.eclipse.xtext.web.example.entities/xtend-gen/org/eclipse/xtext/web/example/entities/EntitiesRuntimeModule.java delete mode 100644 org.eclipse.xtext.web.example.entities/xtend-gen/org/eclipse/xtext/web/example/entities/EntitiesStandaloneSetup.java delete mode 100644 org.eclipse.xtext.web.example.entities/xtend-gen/org/eclipse/xtext/web/example/entities/formatting2/EntitiesFormatter.java delete mode 100644 org.eclipse.xtext.web.example.entities/xtend-gen/org/eclipse/xtext/web/example/entities/jvmmodel/EntitiesJvmModelInferrer.java delete mode 100644 org.eclipse.xtext.web.example.entities/xtend-gen/org/eclipse/xtext/web/example/entities/scoping/EntitiesScopeProvider.java delete mode 100644 org.eclipse.xtext.web.example.entities/xtend-gen/org/eclipse/xtext/web/example/entities/validation/EntitiesValidator.java delete mode 100644 org.eclipse.xtext.web.example.jetty/src/main/xtend-gen/org/eclipse/xtext/web/example/jetty/EntitiesWebModule.java delete mode 100644 org.eclipse.xtext.web.example.jetty/src/main/xtend-gen/org/eclipse/xtext/web/example/jetty/EntitiesWebSetup.java delete mode 100644 org.eclipse.xtext.web.example.jetty/src/main/xtend-gen/org/eclipse/xtext/web/example/jetty/MyXtextServlet.java delete mode 100644 org.eclipse.xtext.web.example.jetty/src/main/xtend-gen/org/eclipse/xtext/web/example/jetty/ServerLauncher.java delete mode 100644 org.eclipse.xtext.web.example.jetty/src/main/xtend-gen/org/eclipse/xtext/web/example/jetty/StatemachineWebModule.java delete mode 100644 org.eclipse.xtext.web.example.jetty/src/main/xtend-gen/org/eclipse/xtext/web/example/jetty/StatemachineWebSetup.java delete mode 100644 org.eclipse.xtext.web.example.jetty/src/main/xtend-gen/org/eclipse/xtext/web/example/jetty/resource/StatemachineContentTypeProvider.java delete mode 100644 org.eclipse.xtext.web.example.jetty/src/main/xtend-gen/org/eclipse/xtext/web/example/jetty/resource/StatemachineResourceSetProvider.java delete mode 100644 org.eclipse.xtext.web.example.statemachine.ide/xtend-gen/org/eclipse/xtext/web/example/statemachine/ide/StatemachineIdeModule.java delete mode 100644 org.eclipse.xtext.web.example.statemachine.ide/xtend-gen/org/eclipse/xtext/web/example/statemachine/ide/StatemachineIdeSetup.java delete mode 100644 org.eclipse.xtext.web.example.statemachine.ide/xtend-gen/org/eclipse/xtext/web/example/statemachine/ide/StatemachineImageDescriptionProvider.java delete mode 100644 org.eclipse.xtext.web.example.statemachine.ide/xtend-gen/org/eclipse/xtext/web/example/statemachine/ide/StatemachineSemanticHighlightingCalculator.java delete mode 100644 org.eclipse.xtext.web.example.statemachine.ide/xtend-gen/org/eclipse/xtext/web/example/statemachine/ide/StatemachineTemplateProposalProvider.java delete mode 100644 org.eclipse.xtext.web.example.statemachine.ide/xtend-gen/org/eclipse/xtext/web/example/statemachine/ide/StatemachineWebContentProposalProvider.java delete mode 100644 org.eclipse.xtext.web.example.statemachine/xtend-gen/org/eclipse/xtext/web/example/statemachine/StatemachineRuntimeModule.java delete mode 100644 org.eclipse.xtext.web.example.statemachine/xtend-gen/org/eclipse/xtext/web/example/statemachine/StatemachineStandaloneSetup.java delete mode 100644 org.eclipse.xtext.web.example.statemachine/xtend-gen/org/eclipse/xtext/web/example/statemachine/formatting2/StatemachineFormatter.java delete mode 100644 org.eclipse.xtext.web.example.statemachine/xtend-gen/org/eclipse/xtext/web/example/statemachine/generator/StatemachineGenerator.java delete mode 100644 org.eclipse.xtext.web.example.statemachine/xtend-gen/org/eclipse/xtext/web/example/statemachine/scoping/StatemachineScopeProvider.java delete mode 100644 org.eclipse.xtext.web.example.statemachine/xtend-gen/org/eclipse/xtext/web/example/statemachine/validation/StatemachineValidator.java delete mode 100644 org.eclipse.xtext.web.servlet/src/main/xtend-gen/org/eclipse/xtext/web/servlet/HttpServiceContext.java delete mode 100644 org.eclipse.xtext.web.servlet/src/main/xtend-gen/org/eclipse/xtext/web/servlet/HttpSessionWrapper.java delete mode 100644 org.eclipse.xtext.web.servlet/src/main/xtend-gen/org/eclipse/xtext/web/servlet/XtextResourcesServlet.java delete mode 100644 org.eclipse.xtext.web.servlet/src/main/xtend-gen/org/eclipse/xtext/web/servlet/XtextServlet.java delete mode 100644 org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/DefaultWebModule.java delete mode 100644 org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/IServiceContext.java delete mode 100644 org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/IServiceResult.java delete mode 100644 org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/ISession.java delete mode 100644 org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/IUnwrappableServiceResult.java delete mode 100644 org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/InvalidRequestException.java delete mode 100644 org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/ServiceConflictResult.java delete mode 100644 org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/XtextServiceDispatcher.java delete mode 100644 org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/contentassist/ContentAssistResult.java delete mode 100644 org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/contentassist/ContentAssistService.java delete mode 100644 org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/formatting/FormattingResult.java delete mode 100644 org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/formatting/FormattingService.java delete mode 100644 org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/generator/DefaultContentTypeProvider.java delete mode 100644 org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/generator/GeneratorResult.java delete mode 100644 org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/generator/GeneratorService.java delete mode 100644 org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/generator/IContentTypeProvider.java delete mode 100644 org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/hover/HoverResult.java delete mode 100644 org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/hover/HoverService.java delete mode 100644 org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/model/AbstractCachedService.java delete mode 100644 org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/model/DocumentStateResult.java delete mode 100644 org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/model/DocumentSynchronizer.java delete mode 100644 org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/model/IWebDocumentProvider.java delete mode 100644 org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/model/IWebResourceSetProvider.java delete mode 100644 org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/model/IXtextWebDocument.java delete mode 100644 org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/model/PrecomputedServiceRegistry.java delete mode 100644 org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/model/UpdateDocumentService.java delete mode 100644 org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/model/XtextWebDocument.java delete mode 100644 org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/model/XtextWebDocumentAccess.java delete mode 100644 org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/occurrences/OccurrencesResult.java delete mode 100644 org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/occurrences/OccurrencesService.java delete mode 100644 org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/persistence/FileResourceHandler.java delete mode 100644 org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/persistence/IResourceBaseProvider.java delete mode 100644 org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/persistence/IServerResourceHandler.java delete mode 100644 org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/persistence/ResourceBaseProviderImpl.java delete mode 100644 org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/persistence/ResourceContentResult.java delete mode 100644 org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/persistence/ResourcePersistenceService.java delete mode 100644 org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/syntaxcoloring/HighlightingResult.java delete mode 100644 org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/syntaxcoloring/HighlightingService.java delete mode 100644 org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/util/CancelIndicatorProgressMonitor.java delete mode 100644 org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/util/ElementAtOffsetUtil.java delete mode 100644 org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/validation/ValidationResult.java delete mode 100644 org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/validation/ValidationService.java delete mode 100644 org.eclipse.xtext.web/src/test/xtend-gen/org/eclipse/xtext/web/server/test/AbstractWebServerTest.java delete mode 100644 org.eclipse.xtext.web/src/test/xtend-gen/org/eclipse/xtext/web/server/test/Bug489571Test.java delete mode 100644 org.eclipse.xtext.web/src/test/xtend-gen/org/eclipse/xtext/web/server/test/ContentAssistTest.java delete mode 100644 org.eclipse.xtext.web/src/test/xtend-gen/org/eclipse/xtext/web/server/test/Formatting1Test.java delete mode 100644 org.eclipse.xtext.web/src/test/xtend-gen/org/eclipse/xtext/web/server/test/Formatting2Test.java delete mode 100644 org.eclipse.xtext.web/src/test/xtend-gen/org/eclipse/xtext/web/server/test/GeneratorTest.java delete mode 100644 org.eclipse.xtext.web/src/test/xtend-gen/org/eclipse/xtext/web/server/test/HashMapSession.java delete mode 100644 org.eclipse.xtext.web/src/test/xtend-gen/org/eclipse/xtext/web/server/test/HighlightingTest.java delete mode 100644 org.eclipse.xtext.web/src/test/xtend-gen/org/eclipse/xtext/web/server/test/HoverTest.java delete mode 100644 org.eclipse.xtext.web/src/test/xtend-gen/org/eclipse/xtext/web/server/test/MockServiceContext.java delete mode 100644 org.eclipse.xtext.web/src/test/xtend-gen/org/eclipse/xtext/web/server/test/OccurrenceTest.java delete mode 100644 org.eclipse.xtext.web/src/test/xtend-gen/org/eclipse/xtext/web/server/test/ResourcePersistenceTest.java delete mode 100644 org.eclipse.xtext.web/src/test/xtend-gen/org/eclipse/xtext/web/server/test/UpdateDocumentTest.java delete mode 100644 org.eclipse.xtext.web/src/test/xtend-gen/org/eclipse/xtext/web/server/test/ValidationTest.java delete mode 100644 org.eclipse.xtext.web/src/test/xtend-gen/org/eclipse/xtext/web/server/test/languages/StatemachineWebModule.java delete mode 100644 org.eclipse.xtext.web/src/test/xtend-gen/org/eclipse/xtext/web/server/test/languages/formatting/StatemachineFormatter.java delete mode 100644 org.eclipse.xtext.xbase.web/src/main/xtend-gen/org/eclipse/xtext/xbase/web/DefaultXbaseWebModule.java delete mode 100644 org.eclipse.xtext.xbase.web/src/test/xtend-gen/org/eclipse/xtext/xbase/web/test/AbstractXbaseWebTest.java delete mode 100644 org.eclipse.xtext.xbase.web/src/test/xtend-gen/org/eclipse/xtext/xbase/web/test/ContentAssistTest.java delete mode 100644 org.eclipse.xtext.xbase.web/src/test/xtend-gen/org/eclipse/xtext/xbase/web/test/HashMapSession.java delete mode 100644 org.eclipse.xtext.xbase.web/src/test/xtend-gen/org/eclipse/xtext/xbase/web/test/MockServiceContext.java delete mode 100644 org.eclipse.xtext.xbase.web/src/test/xtend-gen/org/eclipse/xtext/xbase/web/test/languages/EntitiesWebModule.java diff --git a/.gitignore b/.gitignore index 02399d7f271..8189b3d7267 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ bin/ +xtend-gen/ .gradle/ build/ *._trace diff --git a/org.eclipse.xtext.web.example.entities.ide/xtend-gen/org/eclipse/xtext/web/example/entities/ide/EntitiesIdeModule.java b/org.eclipse.xtext.web.example.entities.ide/xtend-gen/org/eclipse/xtext/web/example/entities/ide/EntitiesIdeModule.java deleted file mode 100644 index 6d4dbadadca..00000000000 --- a/org.eclipse.xtext.web.example.entities.ide/xtend-gen/org/eclipse/xtext/web/example/entities/ide/EntitiesIdeModule.java +++ /dev/null @@ -1,17 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.example.entities.ide; - -import org.eclipse.xtext.web.example.entities.ide.AbstractEntitiesIdeModule; - -/** - * Use this class to register ide components. - */ -@SuppressWarnings("all") -public class EntitiesIdeModule extends AbstractEntitiesIdeModule { -} diff --git a/org.eclipse.xtext.web.example.entities.ide/xtend-gen/org/eclipse/xtext/web/example/entities/ide/EntitiesIdeSetup.java b/org.eclipse.xtext.web.example.entities.ide/xtend-gen/org/eclipse/xtext/web/example/entities/ide/EntitiesIdeSetup.java deleted file mode 100644 index de7e9a32c74..00000000000 --- a/org.eclipse.xtext.web.example.entities.ide/xtend-gen/org/eclipse/xtext/web/example/entities/ide/EntitiesIdeSetup.java +++ /dev/null @@ -1,28 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.example.entities.ide; - -import com.google.inject.Guice; -import com.google.inject.Injector; -import org.eclipse.xtext.util.Modules2; -import org.eclipse.xtext.web.example.entities.EntitiesRuntimeModule; -import org.eclipse.xtext.web.example.entities.EntitiesStandaloneSetup; -import org.eclipse.xtext.web.example.entities.ide.EntitiesIdeModule; - -/** - * Initialization support for running Xtext languages as language servers. - */ -@SuppressWarnings("all") -public class EntitiesIdeSetup extends EntitiesStandaloneSetup { - @Override - public Injector createInjector() { - EntitiesRuntimeModule _entitiesRuntimeModule = new EntitiesRuntimeModule(); - EntitiesIdeModule _entitiesIdeModule = new EntitiesIdeModule(); - return Guice.createInjector(Modules2.mixin(_entitiesRuntimeModule, _entitiesIdeModule)); - } -} diff --git a/org.eclipse.xtext.web.example.entities/xtend-gen/org/eclipse/xtext/web/example/entities/EntitiesRuntimeModule.java b/org.eclipse.xtext.web.example.entities/xtend-gen/org/eclipse/xtext/web/example/entities/EntitiesRuntimeModule.java deleted file mode 100644 index 3b1ee829dbb..00000000000 --- a/org.eclipse.xtext.web.example.entities/xtend-gen/org/eclipse/xtext/web/example/entities/EntitiesRuntimeModule.java +++ /dev/null @@ -1,17 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.example.entities; - -import org.eclipse.xtext.web.example.entities.AbstractEntitiesRuntimeModule; - -/** - * Use this class to register components to be used at runtime / without the Equinox extension registry. - */ -@SuppressWarnings("all") -public class EntitiesRuntimeModule extends AbstractEntitiesRuntimeModule { -} diff --git a/org.eclipse.xtext.web.example.entities/xtend-gen/org/eclipse/xtext/web/example/entities/EntitiesStandaloneSetup.java b/org.eclipse.xtext.web.example.entities/xtend-gen/org/eclipse/xtext/web/example/entities/EntitiesStandaloneSetup.java deleted file mode 100644 index 6fa191d65ff..00000000000 --- a/org.eclipse.xtext.web.example.entities/xtend-gen/org/eclipse/xtext/web/example/entities/EntitiesStandaloneSetup.java +++ /dev/null @@ -1,20 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.example.entities; - -import org.eclipse.xtext.web.example.entities.EntitiesStandaloneSetupGenerated; - -/** - * Initialization support for running Xtext languages without Equinox extension registry. - */ -@SuppressWarnings("all") -public class EntitiesStandaloneSetup extends EntitiesStandaloneSetupGenerated { - public static void doSetup() { - new EntitiesStandaloneSetup().createInjectorAndDoEMFRegistration(); - } -} diff --git a/org.eclipse.xtext.web.example.entities/xtend-gen/org/eclipse/xtext/web/example/entities/formatting2/EntitiesFormatter.java b/org.eclipse.xtext.web.example.entities/xtend-gen/org/eclipse/xtext/web/example/entities/formatting2/EntitiesFormatter.java deleted file mode 100644 index 8981df6b304..00000000000 --- a/org.eclipse.xtext.web.example.entities/xtend-gen/org/eclipse/xtext/web/example/entities/formatting2/EntitiesFormatter.java +++ /dev/null @@ -1,194 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.example.entities.formatting2; - -import java.util.Arrays; -import org.eclipse.emf.common.util.EList; -import org.eclipse.emf.ecore.EObject; -import org.eclipse.xtext.common.types.JvmFormalParameter; -import org.eclipse.xtext.common.types.JvmGenericArrayTypeReference; -import org.eclipse.xtext.common.types.JvmParameterizedTypeReference; -import org.eclipse.xtext.common.types.JvmTypeConstraint; -import org.eclipse.xtext.common.types.JvmTypeParameter; -import org.eclipse.xtext.common.types.JvmWildcardTypeReference; -import org.eclipse.xtext.formatting2.IFormattableDocument; -import org.eclipse.xtext.resource.XtextResource; -import org.eclipse.xtext.web.example.entities.domainmodel.AbstractElement; -import org.eclipse.xtext.web.example.entities.domainmodel.Entities; -import org.eclipse.xtext.web.example.entities.domainmodel.PackageDeclaration; -import org.eclipse.xtext.xbase.XAssignment; -import org.eclipse.xtext.xbase.XBasicForLoopExpression; -import org.eclipse.xtext.xbase.XBinaryOperation; -import org.eclipse.xtext.xbase.XBlockExpression; -import org.eclipse.xtext.xbase.XCastedExpression; -import org.eclipse.xtext.xbase.XClosure; -import org.eclipse.xtext.xbase.XCollectionLiteral; -import org.eclipse.xtext.xbase.XConstructorCall; -import org.eclipse.xtext.xbase.XDoWhileExpression; -import org.eclipse.xtext.xbase.XExpression; -import org.eclipse.xtext.xbase.XFeatureCall; -import org.eclipse.xtext.xbase.XForLoopExpression; -import org.eclipse.xtext.xbase.XIfExpression; -import org.eclipse.xtext.xbase.XInstanceOfExpression; -import org.eclipse.xtext.xbase.XMemberFeatureCall; -import org.eclipse.xtext.xbase.XPostfixOperation; -import org.eclipse.xtext.xbase.XReturnExpression; -import org.eclipse.xtext.xbase.XSwitchExpression; -import org.eclipse.xtext.xbase.XSynchronizedExpression; -import org.eclipse.xtext.xbase.XThrowExpression; -import org.eclipse.xtext.xbase.XTryCatchFinallyExpression; -import org.eclipse.xtext.xbase.XTypeLiteral; -import org.eclipse.xtext.xbase.XVariableDeclaration; -import org.eclipse.xtext.xbase.XWhileExpression; -import org.eclipse.xtext.xbase.formatting2.XbaseFormatter; -import org.eclipse.xtext.xbase.lib.Extension; -import org.eclipse.xtext.xtype.XFunctionTypeRef; -import org.eclipse.xtext.xtype.XImportDeclaration; -import org.eclipse.xtext.xtype.XImportSection; - -@SuppressWarnings("all") -public class EntitiesFormatter extends XbaseFormatter { - protected void _format(final Entities entities, @Extension final IFormattableDocument document) { - document.format(entities.getImportSection()); - EList _elements = entities.getElements(); - for (final AbstractElement elements : _elements) { - document.format(elements); - } - } - - protected void _format(final PackageDeclaration packageDeclaration, @Extension final IFormattableDocument document) { - EList _elements = packageDeclaration.getElements(); - for (final AbstractElement elements : _elements) { - document.format(elements); - } - } - - public void format(final Object packageDeclaration, final IFormattableDocument document) { - if (packageDeclaration instanceof JvmTypeParameter) { - _format((JvmTypeParameter)packageDeclaration, document); - return; - } else if (packageDeclaration instanceof JvmFormalParameter) { - _format((JvmFormalParameter)packageDeclaration, document); - return; - } else if (packageDeclaration instanceof XtextResource) { - _format((XtextResource)packageDeclaration, document); - return; - } else if (packageDeclaration instanceof XAssignment) { - _format((XAssignment)packageDeclaration, document); - return; - } else if (packageDeclaration instanceof XBinaryOperation) { - _format((XBinaryOperation)packageDeclaration, document); - return; - } else if (packageDeclaration instanceof XDoWhileExpression) { - _format((XDoWhileExpression)packageDeclaration, document); - return; - } else if (packageDeclaration instanceof XFeatureCall) { - _format((XFeatureCall)packageDeclaration, document); - return; - } else if (packageDeclaration instanceof XMemberFeatureCall) { - _format((XMemberFeatureCall)packageDeclaration, document); - return; - } else if (packageDeclaration instanceof XPostfixOperation) { - _format((XPostfixOperation)packageDeclaration, document); - return; - } else if (packageDeclaration instanceof XWhileExpression) { - _format((XWhileExpression)packageDeclaration, document); - return; - } else if (packageDeclaration instanceof XFunctionTypeRef) { - _format((XFunctionTypeRef)packageDeclaration, document); - return; - } else if (packageDeclaration instanceof JvmGenericArrayTypeReference) { - _format((JvmGenericArrayTypeReference)packageDeclaration, document); - return; - } else if (packageDeclaration instanceof JvmParameterizedTypeReference) { - _format((JvmParameterizedTypeReference)packageDeclaration, document); - return; - } else if (packageDeclaration instanceof JvmWildcardTypeReference) { - _format((JvmWildcardTypeReference)packageDeclaration, document); - return; - } else if (packageDeclaration instanceof PackageDeclaration) { - _format((PackageDeclaration)packageDeclaration, document); - return; - } else if (packageDeclaration instanceof XBasicForLoopExpression) { - _format((XBasicForLoopExpression)packageDeclaration, document); - return; - } else if (packageDeclaration instanceof XBlockExpression) { - _format((XBlockExpression)packageDeclaration, document); - return; - } else if (packageDeclaration instanceof XCastedExpression) { - _format((XCastedExpression)packageDeclaration, document); - return; - } else if (packageDeclaration instanceof XClosure) { - _format((XClosure)packageDeclaration, document); - return; - } else if (packageDeclaration instanceof XCollectionLiteral) { - _format((XCollectionLiteral)packageDeclaration, document); - return; - } else if (packageDeclaration instanceof XConstructorCall) { - _format((XConstructorCall)packageDeclaration, document); - return; - } else if (packageDeclaration instanceof XForLoopExpression) { - _format((XForLoopExpression)packageDeclaration, document); - return; - } else if (packageDeclaration instanceof XIfExpression) { - _format((XIfExpression)packageDeclaration, document); - return; - } else if (packageDeclaration instanceof XInstanceOfExpression) { - _format((XInstanceOfExpression)packageDeclaration, document); - return; - } else if (packageDeclaration instanceof XReturnExpression) { - _format((XReturnExpression)packageDeclaration, document); - return; - } else if (packageDeclaration instanceof XSwitchExpression) { - _format((XSwitchExpression)packageDeclaration, document); - return; - } else if (packageDeclaration instanceof XSynchronizedExpression) { - _format((XSynchronizedExpression)packageDeclaration, document); - return; - } else if (packageDeclaration instanceof XThrowExpression) { - _format((XThrowExpression)packageDeclaration, document); - return; - } else if (packageDeclaration instanceof XTryCatchFinallyExpression) { - _format((XTryCatchFinallyExpression)packageDeclaration, document); - return; - } else if (packageDeclaration instanceof XTypeLiteral) { - _format((XTypeLiteral)packageDeclaration, document); - return; - } else if (packageDeclaration instanceof XVariableDeclaration) { - _format((XVariableDeclaration)packageDeclaration, document); - return; - } else if (packageDeclaration instanceof JvmTypeConstraint) { - _format((JvmTypeConstraint)packageDeclaration, document); - return; - } else if (packageDeclaration instanceof Entities) { - _format((Entities)packageDeclaration, document); - return; - } else if (packageDeclaration instanceof XExpression) { - _format((XExpression)packageDeclaration, document); - return; - } else if (packageDeclaration instanceof XImportDeclaration) { - _format((XImportDeclaration)packageDeclaration, document); - return; - } else if (packageDeclaration instanceof XImportSection) { - _format((XImportSection)packageDeclaration, document); - return; - } else if (packageDeclaration instanceof EObject) { - _format((EObject)packageDeclaration, document); - return; - } else if (packageDeclaration == null) { - _format((Void)null, document); - return; - } else if (packageDeclaration != null) { - _format(packageDeclaration, document); - return; - } else { - throw new IllegalArgumentException("Unhandled parameter types: " + - Arrays.asList(packageDeclaration, document).toString()); - } - } -} diff --git a/org.eclipse.xtext.web.example.entities/xtend-gen/org/eclipse/xtext/web/example/entities/jvmmodel/EntitiesJvmModelInferrer.java b/org.eclipse.xtext.web.example.entities/xtend-gen/org/eclipse/xtext/web/example/entities/jvmmodel/EntitiesJvmModelInferrer.java deleted file mode 100644 index 2f13491d905..00000000000 --- a/org.eclipse.xtext.web.example.entities/xtend-gen/org/eclipse/xtext/web/example/entities/jvmmodel/EntitiesJvmModelInferrer.java +++ /dev/null @@ -1,138 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.example.entities.jvmmodel; - -import com.google.inject.Inject; -import java.util.Arrays; -import org.eclipse.emf.common.util.EList; -import org.eclipse.emf.ecore.EObject; -import org.eclipse.xtend2.lib.StringConcatenationClient; -import org.eclipse.xtext.common.types.JvmConstructor; -import org.eclipse.xtext.common.types.JvmField; -import org.eclipse.xtext.common.types.JvmFormalParameter; -import org.eclipse.xtext.common.types.JvmGenericType; -import org.eclipse.xtext.common.types.JvmMember; -import org.eclipse.xtext.common.types.JvmOperation; -import org.eclipse.xtext.common.types.JvmParameterizedTypeReference; -import org.eclipse.xtext.common.types.JvmTypeReference; -import org.eclipse.xtext.naming.IQualifiedNameProvider; -import org.eclipse.xtext.web.example.entities.domainmodel.Entity; -import org.eclipse.xtext.web.example.entities.domainmodel.Feature; -import org.eclipse.xtext.web.example.entities.domainmodel.Operation; -import org.eclipse.xtext.web.example.entities.domainmodel.Property; -import org.eclipse.xtext.xbase.jvmmodel.AbstractModelInferrer; -import org.eclipse.xtext.xbase.jvmmodel.IJvmDeclaredTypeAcceptor; -import org.eclipse.xtext.xbase.jvmmodel.JvmTypesBuilder; -import org.eclipse.xtext.xbase.lib.Extension; -import org.eclipse.xtext.xbase.lib.Procedures.Procedure1; - -@SuppressWarnings("all") -public class EntitiesJvmModelInferrer extends AbstractModelInferrer { - @Inject - @Extension - private JvmTypesBuilder _jvmTypesBuilder; - - @Inject - @Extension - private IQualifiedNameProvider _iQualifiedNameProvider; - - protected void _infer(final Entity entity, @Extension final IJvmDeclaredTypeAcceptor acceptor, final boolean prelinkingPhase) { - final Procedure1 _function = (JvmGenericType it) -> { - this._jvmTypesBuilder.setDocumentation(it, this._jvmTypesBuilder.getDocumentation(entity)); - JvmParameterizedTypeReference _superType = entity.getSuperType(); - boolean _tripleNotEquals = (_superType != null); - if (_tripleNotEquals) { - EList _superTypes = it.getSuperTypes(); - JvmTypeReference _cloneWithProxies = this._jvmTypesBuilder.cloneWithProxies(entity.getSuperType()); - this._jvmTypesBuilder.operator_add(_superTypes, _cloneWithProxies); - } - EList _members = it.getMembers(); - final Procedure1 _function_1 = (JvmConstructor it_1) -> { - }; - JvmConstructor _constructor = this._jvmTypesBuilder.toConstructor(entity, _function_1); - this._jvmTypesBuilder.operator_add(_members, _constructor); - final JvmTypeReference procedureType = this._typeReferenceBuilder.typeRef(Procedure1.class, this._typeReferenceBuilder.typeRef(it)); - EList _members_1 = it.getMembers(); - final Procedure1 _function_2 = (JvmConstructor it_1) -> { - EList _parameters = it_1.getParameters(); - JvmFormalParameter _parameter = this._jvmTypesBuilder.toParameter(entity, "initializer", procedureType); - this._jvmTypesBuilder.operator_add(_parameters, _parameter); - StringConcatenationClient _client = new StringConcatenationClient() { - @Override - protected void appendTo(StringConcatenationClient.TargetStringConcatenation _builder) { - _builder.append("initializer.apply(this);"); - _builder.newLine(); - } - }; - this._jvmTypesBuilder.setBody(it_1, _client); - }; - JvmConstructor _constructor_1 = this._jvmTypesBuilder.toConstructor(entity, _function_2); - this._jvmTypesBuilder.operator_add(_members_1, _constructor_1); - EList _features = entity.getFeatures(); - for (final Feature f : _features) { - boolean _matched = false; - if (f instanceof Property) { - _matched=true; - final JvmField field = this._jvmTypesBuilder.toField(f, ((Property)f).getName(), ((Property)f).getType()); - EList _members_2 = it.getMembers(); - this._jvmTypesBuilder.operator_add(_members_2, field); - EList _members_3 = it.getMembers(); - JvmOperation _getter = this._jvmTypesBuilder.toGetter(f, ((Property)f).getName(), ((Property)f).getType()); - this._jvmTypesBuilder.operator_add(_members_3, _getter); - EList _members_4 = it.getMembers(); - JvmOperation _setter = this._jvmTypesBuilder.toSetter(f, ((Property)f).getName(), ((Property)f).getType()); - this._jvmTypesBuilder.operator_add(_members_4, _setter); - } - if (!_matched) { - if (f instanceof Operation) { - _matched=true; - EList _members_2 = it.getMembers(); - String _name = ((Operation)f).getName(); - JvmTypeReference _elvis = null; - JvmTypeReference _type = ((Operation)f).getType(); - if (_type != null) { - _elvis = _type; - } else { - JvmTypeReference _inferredType = this._jvmTypesBuilder.inferredType(); - _elvis = _inferredType; - } - final Procedure1 _function_3 = (JvmOperation it_1) -> { - this._jvmTypesBuilder.setDocumentation(it_1, this._jvmTypesBuilder.getDocumentation(f)); - EList _params = ((Operation)f).getParams(); - for (final JvmFormalParameter p : _params) { - EList _parameters = it_1.getParameters(); - JvmFormalParameter _parameter = this._jvmTypesBuilder.toParameter(p, p.getName(), p.getParameterType()); - this._jvmTypesBuilder.operator_add(_parameters, _parameter); - } - this._jvmTypesBuilder.setBody(it_1, ((Operation)f).getBody()); - }; - JvmOperation _method = this._jvmTypesBuilder.toMethod(f, _name, _elvis, _function_3); - this._jvmTypesBuilder.operator_add(_members_2, _method); - } - } - } - EList _members_2 = it.getMembers(); - JvmOperation _toStringMethod = this._jvmTypesBuilder.toToStringMethod(entity, it); - this._jvmTypesBuilder.operator_add(_members_2, _toStringMethod); - }; - acceptor.accept(this._jvmTypesBuilder.toClass(entity, this._iQualifiedNameProvider.getFullyQualifiedName(entity)), _function); - } - - public void infer(final EObject entity, final IJvmDeclaredTypeAcceptor acceptor, final boolean prelinkingPhase) { - if (entity instanceof Entity) { - _infer((Entity)entity, acceptor, prelinkingPhase); - return; - } else if (entity != null) { - _infer(entity, acceptor, prelinkingPhase); - return; - } else { - throw new IllegalArgumentException("Unhandled parameter types: " + - Arrays.asList(entity, acceptor, prelinkingPhase).toString()); - } - } -} diff --git a/org.eclipse.xtext.web.example.entities/xtend-gen/org/eclipse/xtext/web/example/entities/scoping/EntitiesScopeProvider.java b/org.eclipse.xtext.web.example.entities/xtend-gen/org/eclipse/xtext/web/example/entities/scoping/EntitiesScopeProvider.java deleted file mode 100644 index 4dfcce6a425..00000000000 --- a/org.eclipse.xtext.web.example.entities/xtend-gen/org/eclipse/xtext/web/example/entities/scoping/EntitiesScopeProvider.java +++ /dev/null @@ -1,20 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.example.entities.scoping; - -import org.eclipse.xtext.web.example.entities.scoping.AbstractEntitiesScopeProvider; - -/** - * This class contains custom scoping description. - * - * See https://www.eclipse.org/Xtext/documentation/303_runtime_concepts.html#scoping - * on how and when to use it. - */ -@SuppressWarnings("all") -public class EntitiesScopeProvider extends AbstractEntitiesScopeProvider { -} diff --git a/org.eclipse.xtext.web.example.entities/xtend-gen/org/eclipse/xtext/web/example/entities/validation/EntitiesValidator.java b/org.eclipse.xtext.web.example.entities/xtend-gen/org/eclipse/xtext/web/example/entities/validation/EntitiesValidator.java deleted file mode 100644 index 86fa0be8385..00000000000 --- a/org.eclipse.xtext.web.example.entities/xtend-gen/org/eclipse/xtext/web/example/entities/validation/EntitiesValidator.java +++ /dev/null @@ -1,19 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.example.entities.validation; - -import org.eclipse.xtext.web.example.entities.validation.AbstractEntitiesValidator; - -/** - * Custom validation rules. - * - * See https://www.eclipse.org/Xtext/documentation/303_runtime_concepts.html#validation - */ -@SuppressWarnings("all") -public class EntitiesValidator extends AbstractEntitiesValidator { -} diff --git a/org.eclipse.xtext.web.example.jetty/src/main/xtend-gen/org/eclipse/xtext/web/example/jetty/EntitiesWebModule.java b/org.eclipse.xtext.web.example.jetty/src/main/xtend-gen/org/eclipse/xtext/web/example/jetty/EntitiesWebModule.java deleted file mode 100644 index 34ceb049810..00000000000 --- a/org.eclipse.xtext.web.example.jetty/src/main/xtend-gen/org/eclipse/xtext/web/example/jetty/EntitiesWebModule.java +++ /dev/null @@ -1,39 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.example.jetty; - -import com.google.inject.Binder; -import org.eclipse.xtend.lib.annotations.FinalFieldsConstructor; -import org.eclipse.xtext.web.example.jetty.AbstractEntitiesWebModule; -import org.eclipse.xtext.web.server.persistence.FileResourceHandler; -import org.eclipse.xtext.web.server.persistence.IResourceBaseProvider; -import org.eclipse.xtext.web.server.persistence.IServerResourceHandler; - -/** - * Use this class to register additional components to be used within the web application. - */ -@FinalFieldsConstructor -@SuppressWarnings("all") -public class EntitiesWebModule extends AbstractEntitiesWebModule { - private final IResourceBaseProvider resourceBaseProvider; - - public void configureResourceBaseProvider(final Binder binder) { - if ((this.resourceBaseProvider != null)) { - binder.bind(IResourceBaseProvider.class).toInstance(this.resourceBaseProvider); - } - } - - public Class bindIServerResourceHandler() { - return FileResourceHandler.class; - } - - public EntitiesWebModule(final IResourceBaseProvider resourceBaseProvider) { - super(); - this.resourceBaseProvider = resourceBaseProvider; - } -} diff --git a/org.eclipse.xtext.web.example.jetty/src/main/xtend-gen/org/eclipse/xtext/web/example/jetty/EntitiesWebSetup.java b/org.eclipse.xtext.web.example.jetty/src/main/xtend-gen/org/eclipse/xtext/web/example/jetty/EntitiesWebSetup.java deleted file mode 100644 index 4c5eda9e7eb..00000000000 --- a/org.eclipse.xtext.web.example.jetty/src/main/xtend-gen/org/eclipse/xtext/web/example/jetty/EntitiesWebSetup.java +++ /dev/null @@ -1,40 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.example.jetty; - -import com.google.inject.Guice; -import com.google.inject.Injector; -import org.eclipse.xtend.lib.annotations.FinalFieldsConstructor; -import org.eclipse.xtext.util.Modules2; -import org.eclipse.xtext.web.example.entities.EntitiesRuntimeModule; -import org.eclipse.xtext.web.example.entities.EntitiesStandaloneSetup; -import org.eclipse.xtext.web.example.entities.ide.EntitiesIdeModule; -import org.eclipse.xtext.web.example.jetty.EntitiesWebModule; -import org.eclipse.xtext.web.server.persistence.IResourceBaseProvider; - -/** - * Initialization support for running Xtext languages in web applications. - */ -@FinalFieldsConstructor -@SuppressWarnings("all") -public class EntitiesWebSetup extends EntitiesStandaloneSetup { - private final IResourceBaseProvider resourceBaseProvider; - - @Override - public Injector createInjector() { - final EntitiesWebModule webModule = new EntitiesWebModule(this.resourceBaseProvider); - EntitiesRuntimeModule _entitiesRuntimeModule = new EntitiesRuntimeModule(); - EntitiesIdeModule _entitiesIdeModule = new EntitiesIdeModule(); - return Guice.createInjector(Modules2.mixin(_entitiesRuntimeModule, _entitiesIdeModule, webModule)); - } - - public EntitiesWebSetup(final IResourceBaseProvider resourceBaseProvider) { - super(); - this.resourceBaseProvider = resourceBaseProvider; - } -} diff --git a/org.eclipse.xtext.web.example.jetty/src/main/xtend-gen/org/eclipse/xtext/web/example/jetty/MyXtextServlet.java b/org.eclipse.xtext.web.example.jetty/src/main/xtend-gen/org/eclipse/xtext/web/example/jetty/MyXtextServlet.java deleted file mode 100644 index f6c14452362..00000000000 --- a/org.eclipse.xtext.web.example.jetty/src/main/xtend-gen/org/eclipse/xtext/web/example/jetty/MyXtextServlet.java +++ /dev/null @@ -1,43 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.example.jetty; - -import javax.servlet.annotation.WebServlet; -import org.eclipse.xtext.util.DisposableRegistry; -import org.eclipse.xtext.web.example.jetty.EntitiesWebSetup; -import org.eclipse.xtext.web.example.jetty.StatemachineWebSetup; -import org.eclipse.xtext.web.server.persistence.ResourceBaseProviderImpl; -import org.eclipse.xtext.web.servlet.XtextServlet; -import org.eclipse.xtext.xbase.lib.Exceptions; - -@WebServlet(name = "Xtext Services", urlPatterns = "/xtext-service/*") -@SuppressWarnings("all") -public class MyXtextServlet extends XtextServlet { - private DisposableRegistry disposableRegistry; - - @Override - public void init() { - try { - super.init(); - final ResourceBaseProviderImpl resourceBaseProvider = new ResourceBaseProviderImpl("./test-files"); - new StatemachineWebSetup(resourceBaseProvider).createInjectorAndDoEMFRegistration(); - new EntitiesWebSetup(resourceBaseProvider).createInjectorAndDoEMFRegistration(); - } catch (Throwable _e) { - throw Exceptions.sneakyThrow(_e); - } - } - - @Override - public void destroy() { - if ((this.disposableRegistry != null)) { - this.disposableRegistry.dispose(); - this.disposableRegistry = null; - } - super.destroy(); - } -} diff --git a/org.eclipse.xtext.web.example.jetty/src/main/xtend-gen/org/eclipse/xtext/web/example/jetty/ServerLauncher.java b/org.eclipse.xtext.web.example.jetty/src/main/xtend-gen/org/eclipse/xtext/web/example/jetty/ServerLauncher.java deleted file mode 100644 index 593f50e3783..00000000000 --- a/org.eclipse.xtext.web.example.jetty/src/main/xtend-gen/org/eclipse/xtext/web/example/jetty/ServerLauncher.java +++ /dev/null @@ -1,89 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.example.jetty; - -import java.net.InetSocketAddress; -import org.eclipse.jetty.annotations.AnnotationConfiguration; -import org.eclipse.jetty.server.Handler; -import org.eclipse.jetty.server.Server; -import org.eclipse.jetty.server.handler.HandlerList; -import org.eclipse.jetty.server.handler.ResourceHandler; -import org.eclipse.jetty.util.log.Slf4jLog; -import org.eclipse.jetty.webapp.Configuration; -import org.eclipse.jetty.webapp.MetaInfConfiguration; -import org.eclipse.jetty.webapp.WebAppContext; -import org.eclipse.jetty.webapp.WebInfConfiguration; -import org.eclipse.jetty.webapp.WebXmlConfiguration; -import org.eclipse.xtext.xbase.lib.Exceptions; -import org.eclipse.xtext.xbase.lib.ObjectExtensions; -import org.eclipse.xtext.xbase.lib.Procedures.Procedure1; - -@SuppressWarnings("all") -public class ServerLauncher { - public static void main(final String[] args) { - InetSocketAddress _inetSocketAddress = new InetSocketAddress("localhost", 8080); - final Server server = new Server(_inetSocketAddress); - HandlerList _handlerList = new HandlerList(); - final Procedure1 _function = (HandlerList it) -> { - ResourceHandler _resourceHandler = new ResourceHandler(); - final Procedure1 _function_1 = (ResourceHandler it_1) -> { - it_1.setResourceBase("src/main/webapp"); - it_1.setWelcomeFiles(new String[] { "index.html" }); - }; - ResourceHandler _doubleArrow = ObjectExtensions.operator_doubleArrow(_resourceHandler, _function_1); - ResourceHandler _resourceHandler_1 = new ResourceHandler(); - final Procedure1 _function_2 = (ResourceHandler it_1) -> { - it_1.setResourceBase("../org.eclipse.xtext.web/src/main/css"); - }; - ResourceHandler _doubleArrow_1 = ObjectExtensions.operator_doubleArrow(_resourceHandler_1, _function_2); - WebAppContext _webAppContext = new WebAppContext(); - final Procedure1 _function_3 = (WebAppContext it_1) -> { - it_1.setResourceBase("../org.eclipse.xtext.web/src/main/js"); - it_1.setContextPath("/"); - AnnotationConfiguration _annotationConfiguration = new AnnotationConfiguration(); - WebXmlConfiguration _webXmlConfiguration = new WebXmlConfiguration(); - WebInfConfiguration _webInfConfiguration = new WebInfConfiguration(); - MetaInfConfiguration _metaInfConfiguration = new MetaInfConfiguration(); - it_1.setConfigurations(new Configuration[] { _annotationConfiguration, _webXmlConfiguration, _webInfConfiguration, _metaInfConfiguration }); - it_1.setAttribute(WebInfConfiguration.CONTAINER_JAR_PATTERN, - ".*/org\\.eclipse\\.xtext\\.web.*,.*/org.webjars.*"); - }; - WebAppContext _doubleArrow_2 = ObjectExtensions.operator_doubleArrow(_webAppContext, _function_3); - it.setHandlers(new Handler[] { _doubleArrow, _doubleArrow_1, _doubleArrow_2 }); - }; - HandlerList _doubleArrow = ObjectExtensions.operator_doubleArrow(_handlerList, _function); - server.setHandler(_doubleArrow); - String _name = ServerLauncher.class.getName(); - final Slf4jLog log = new Slf4jLog(_name); - try { - server.start(); - log.info("Press enter to stop the server..."); - final Runnable _function_1 = () -> { - try { - final int key = System.in.read(); - server.stop(); - if ((key == (-1))) { - log.warn("The standard input stream is empty."); - } - } catch (Throwable _e) { - throw Exceptions.sneakyThrow(_e); - } - }; - new Thread(_function_1).start(); - server.join(); - } catch (final Throwable _t) { - if (_t instanceof Exception) { - final Exception exception = (Exception)_t; - log.warn(exception.getMessage()); - System.exit(1); - } else { - throw Exceptions.sneakyThrow(_t); - } - } - } -} diff --git a/org.eclipse.xtext.web.example.jetty/src/main/xtend-gen/org/eclipse/xtext/web/example/jetty/StatemachineWebModule.java b/org.eclipse.xtext.web.example.jetty/src/main/xtend-gen/org/eclipse/xtext/web/example/jetty/StatemachineWebModule.java deleted file mode 100644 index e4ffb3f2146..00000000000 --- a/org.eclipse.xtext.web.example.jetty/src/main/xtend-gen/org/eclipse/xtext/web/example/jetty/StatemachineWebModule.java +++ /dev/null @@ -1,52 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.example.jetty; - -import com.google.inject.Binder; -import org.eclipse.xtend.lib.annotations.FinalFieldsConstructor; -import org.eclipse.xtext.web.example.jetty.AbstractStatemachineWebModule; -import org.eclipse.xtext.web.example.jetty.resource.StatemachineContentTypeProvider; -import org.eclipse.xtext.web.example.jetty.resource.StatemachineResourceSetProvider; -import org.eclipse.xtext.web.server.generator.IContentTypeProvider; -import org.eclipse.xtext.web.server.model.IWebResourceSetProvider; -import org.eclipse.xtext.web.server.persistence.FileResourceHandler; -import org.eclipse.xtext.web.server.persistence.IResourceBaseProvider; -import org.eclipse.xtext.web.server.persistence.IServerResourceHandler; - -/** - * Use this class to register additional components to be used within the web application. - */ -@FinalFieldsConstructor -@SuppressWarnings("all") -public class StatemachineWebModule extends AbstractStatemachineWebModule { - private final IResourceBaseProvider resourceBaseProvider; - - @Override - public Class bindIContentTypeProvider() { - return StatemachineContentTypeProvider.class; - } - - public Class bindIWebResourceSetProvider() { - return StatemachineResourceSetProvider.class; - } - - public void configureResourceBaseProvider(final Binder binder) { - if ((this.resourceBaseProvider != null)) { - binder.bind(IResourceBaseProvider.class).toInstance(this.resourceBaseProvider); - } - } - - public Class bindIServerResourceHandler() { - return FileResourceHandler.class; - } - - public StatemachineWebModule(final IResourceBaseProvider resourceBaseProvider) { - super(); - this.resourceBaseProvider = resourceBaseProvider; - } -} diff --git a/org.eclipse.xtext.web.example.jetty/src/main/xtend-gen/org/eclipse/xtext/web/example/jetty/StatemachineWebSetup.java b/org.eclipse.xtext.web.example.jetty/src/main/xtend-gen/org/eclipse/xtext/web/example/jetty/StatemachineWebSetup.java deleted file mode 100644 index 2ff68f7df25..00000000000 --- a/org.eclipse.xtext.web.example.jetty/src/main/xtend-gen/org/eclipse/xtext/web/example/jetty/StatemachineWebSetup.java +++ /dev/null @@ -1,40 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.example.jetty; - -import com.google.inject.Guice; -import com.google.inject.Injector; -import org.eclipse.xtend.lib.annotations.FinalFieldsConstructor; -import org.eclipse.xtext.util.Modules2; -import org.eclipse.xtext.web.example.jetty.StatemachineWebModule; -import org.eclipse.xtext.web.example.statemachine.StatemachineRuntimeModule; -import org.eclipse.xtext.web.example.statemachine.StatemachineStandaloneSetup; -import org.eclipse.xtext.web.example.statemachine.ide.StatemachineIdeModule; -import org.eclipse.xtext.web.server.persistence.IResourceBaseProvider; - -/** - * Initialization support for running Xtext languages in web applications. - */ -@FinalFieldsConstructor -@SuppressWarnings("all") -public class StatemachineWebSetup extends StatemachineStandaloneSetup { - private final IResourceBaseProvider resourceBaseProvider; - - @Override - public Injector createInjector() { - final StatemachineWebModule webModule = new StatemachineWebModule(this.resourceBaseProvider); - StatemachineRuntimeModule _statemachineRuntimeModule = new StatemachineRuntimeModule(); - StatemachineIdeModule _statemachineIdeModule = new StatemachineIdeModule(); - return Guice.createInjector(Modules2.mixin(_statemachineRuntimeModule, _statemachineIdeModule, webModule)); - } - - public StatemachineWebSetup(final IResourceBaseProvider resourceBaseProvider) { - super(); - this.resourceBaseProvider = resourceBaseProvider; - } -} diff --git a/org.eclipse.xtext.web.example.jetty/src/main/xtend-gen/org/eclipse/xtext/web/example/jetty/resource/StatemachineContentTypeProvider.java b/org.eclipse.xtext.web.example.jetty/src/main/xtend-gen/org/eclipse/xtext/web/example/jetty/resource/StatemachineContentTypeProvider.java deleted file mode 100644 index 8df4a3dd6e7..00000000000 --- a/org.eclipse.xtext.web.example.jetty/src/main/xtend-gen/org/eclipse/xtext/web/example/jetty/resource/StatemachineContentTypeProvider.java +++ /dev/null @@ -1,28 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.example.jetty.resource; - -import com.google.common.base.Objects; -import org.eclipse.xtext.web.server.generator.DefaultContentTypeProvider; -import org.eclipse.xtext.web.server.generator.GeneratorService; - -@SuppressWarnings("all") -public class StatemachineContentTypeProvider extends DefaultContentTypeProvider { - @Override - public String getContentType(final String fileName) { - String _xblockexpression = null; - { - boolean _equals = Objects.equal(fileName, GeneratorService.DEFAULT_ARTIFACT); - if (_equals) { - return "text/html"; - } - _xblockexpression = super.getContentType(fileName); - } - return _xblockexpression; - } -} diff --git a/org.eclipse.xtext.web.example.jetty/src/main/xtend-gen/org/eclipse/xtext/web/example/jetty/resource/StatemachineResourceSetProvider.java b/org.eclipse.xtext.web.example.jetty/src/main/xtend-gen/org/eclipse/xtext/web/example/jetty/resource/StatemachineResourceSetProvider.java deleted file mode 100644 index c52537f46dc..00000000000 --- a/org.eclipse.xtext.web.example.jetty/src/main/xtend-gen/org/eclipse/xtext/web/example/jetty/resource/StatemachineResourceSetProvider.java +++ /dev/null @@ -1,44 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.example.jetty.resource; - -import com.google.inject.Inject; -import com.google.inject.Provider; -import org.eclipse.emf.ecore.resource.ResourceSet; -import org.eclipse.xtext.web.server.IServiceContext; -import org.eclipse.xtext.web.server.ISession; -import org.eclipse.xtext.web.server.model.IWebResourceSetProvider; -import org.eclipse.xtext.xbase.lib.Functions.Function0; -import org.eclipse.xtext.xbase.lib.Pair; - -/** - * Resources that run in multi-resource mode share the same resource set. - */ -@SuppressWarnings("all") -public class StatemachineResourceSetProvider implements IWebResourceSetProvider { - private final static String MULTI_RESOURCE_PREFIX = "multi-resource"; - - @Inject - private Provider provider; - - @Override - public ResourceSet get(final String resourceId, final IServiceContext serviceContext) { - if (((resourceId != null) && resourceId.startsWith(StatemachineResourceSetProvider.MULTI_RESOURCE_PREFIX))) { - final int pathEnd = Math.max(resourceId.indexOf("/"), StatemachineResourceSetProvider.MULTI_RESOURCE_PREFIX.length()); - ISession _session = serviceContext.getSession(); - String _substring = resourceId.substring(0, pathEnd); - Pair, String> _mappedTo = Pair., String>of(ResourceSet.class, _substring); - final Function0 _function = () -> { - return this.provider.get(); - }; - return _session.get(_mappedTo, _function); - } else { - return this.provider.get(); - } - } -} diff --git a/org.eclipse.xtext.web.example.statemachine.ide/xtend-gen/org/eclipse/xtext/web/example/statemachine/ide/StatemachineIdeModule.java b/org.eclipse.xtext.web.example.statemachine.ide/xtend-gen/org/eclipse/xtext/web/example/statemachine/ide/StatemachineIdeModule.java deleted file mode 100644 index 535519fee72..00000000000 --- a/org.eclipse.xtext.web.example.statemachine.ide/xtend-gen/org/eclipse/xtext/web/example/statemachine/ide/StatemachineIdeModule.java +++ /dev/null @@ -1,34 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.example.statemachine.ide; - -import org.eclipse.xtext.ide.editor.contentassist.IdeContentProposalProvider; -import org.eclipse.xtext.ide.editor.syntaxcoloring.ISemanticHighlightingCalculator; -import org.eclipse.xtext.ide.labels.IImageDescriptionProvider; -import org.eclipse.xtext.web.example.statemachine.ide.AbstractStatemachineIdeModule; -import org.eclipse.xtext.web.example.statemachine.ide.StatemachineImageDescriptionProvider; -import org.eclipse.xtext.web.example.statemachine.ide.StatemachineSemanticHighlightingCalculator; -import org.eclipse.xtext.web.example.statemachine.ide.StatemachineWebContentProposalProvider; - -/** - * Use this class to register ide components. - */ -@SuppressWarnings("all") -public class StatemachineIdeModule extends AbstractStatemachineIdeModule { - public Class bindIdeContentProposalProvider() { - return StatemachineWebContentProposalProvider.class; - } - - public Class bindIImageDescriptionProvider() { - return StatemachineImageDescriptionProvider.class; - } - - public Class bindISemanticHighlightingCalculator() { - return StatemachineSemanticHighlightingCalculator.class; - } -} diff --git a/org.eclipse.xtext.web.example.statemachine.ide/xtend-gen/org/eclipse/xtext/web/example/statemachine/ide/StatemachineIdeSetup.java b/org.eclipse.xtext.web.example.statemachine.ide/xtend-gen/org/eclipse/xtext/web/example/statemachine/ide/StatemachineIdeSetup.java deleted file mode 100644 index 572e733d0c7..00000000000 --- a/org.eclipse.xtext.web.example.statemachine.ide/xtend-gen/org/eclipse/xtext/web/example/statemachine/ide/StatemachineIdeSetup.java +++ /dev/null @@ -1,28 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.example.statemachine.ide; - -import com.google.inject.Guice; -import com.google.inject.Injector; -import org.eclipse.xtext.util.Modules2; -import org.eclipse.xtext.web.example.statemachine.StatemachineRuntimeModule; -import org.eclipse.xtext.web.example.statemachine.StatemachineStandaloneSetup; -import org.eclipse.xtext.web.example.statemachine.ide.StatemachineIdeModule; - -/** - * Initialization support for running Xtext languages as language servers. - */ -@SuppressWarnings("all") -public class StatemachineIdeSetup extends StatemachineStandaloneSetup { - @Override - public Injector createInjector() { - StatemachineRuntimeModule _statemachineRuntimeModule = new StatemachineRuntimeModule(); - StatemachineIdeModule _statemachineIdeModule = new StatemachineIdeModule(); - return Guice.createInjector(Modules2.mixin(_statemachineRuntimeModule, _statemachineIdeModule)); - } -} diff --git a/org.eclipse.xtext.web.example.statemachine.ide/xtend-gen/org/eclipse/xtext/web/example/statemachine/ide/StatemachineImageDescriptionProvider.java b/org.eclipse.xtext.web.example.statemachine.ide/xtend-gen/org/eclipse/xtext/web/example/statemachine/ide/StatemachineImageDescriptionProvider.java deleted file mode 100644 index df4944abf56..00000000000 --- a/org.eclipse.xtext.web.example.statemachine.ide/xtend-gen/org/eclipse/xtext/web/example/statemachine/ide/StatemachineImageDescriptionProvider.java +++ /dev/null @@ -1,37 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.example.statemachine.ide; - -import org.eclipse.xtext.ide.labels.DecoratedImageDescription; -import org.eclipse.xtext.ide.labels.EClassImageDescriptionProvider; -import org.eclipse.xtext.ide.labels.IImageDescription; -import org.eclipse.xtext.ide.labels.SimpleImageDescription; -import org.eclipse.xtext.web.example.statemachine.statemachine.OutputSignal; - -@SuppressWarnings("all") -public class StatemachineImageDescriptionProvider extends EClassImageDescriptionProvider { - @Override - public IImageDescription getImageDescription(final Object element) { - IImageDescription _xblockexpression = null; - { - final IImageDescription baseImage = super.getImageDescription(element); - IImageDescription _switchResult = null; - boolean _matched = false; - if (element instanceof OutputSignal) { - _matched=true; - SimpleImageDescription _simpleImageDescription = new SimpleImageDescription("output"); - _switchResult = new DecoratedImageDescription(baseImage, _simpleImageDescription); - } - if (!_matched) { - _switchResult = baseImage; - } - _xblockexpression = _switchResult; - } - return _xblockexpression; - } -} diff --git a/org.eclipse.xtext.web.example.statemachine.ide/xtend-gen/org/eclipse/xtext/web/example/statemachine/ide/StatemachineSemanticHighlightingCalculator.java b/org.eclipse.xtext.web.example.statemachine.ide/xtend-gen/org/eclipse/xtext/web/example/statemachine/ide/StatemachineSemanticHighlightingCalculator.java deleted file mode 100644 index bda60476989..00000000000 --- a/org.eclipse.xtext.web.example.statemachine.ide/xtend-gen/org/eclipse/xtext/web/example/statemachine/ide/StatemachineSemanticHighlightingCalculator.java +++ /dev/null @@ -1,61 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.example.statemachine.ide; - -import com.google.inject.Inject; -import java.util.function.Consumer; -import org.eclipse.emf.ecore.EObject; -import org.eclipse.emf.ecore.EStructuralFeature; -import org.eclipse.xtext.ide.editor.syntaxcoloring.DefaultSemanticHighlightingCalculator; -import org.eclipse.xtext.ide.editor.syntaxcoloring.IHighlightedPositionAcceptor; -import org.eclipse.xtext.nodemodel.INode; -import org.eclipse.xtext.nodemodel.util.NodeModelUtils; -import org.eclipse.xtext.service.OperationCanceledManager; -import org.eclipse.xtext.util.CancelIndicator; -import org.eclipse.xtext.web.example.statemachine.statemachine.Command; -import org.eclipse.xtext.web.example.statemachine.statemachine.Event; -import org.eclipse.xtext.web.example.statemachine.statemachine.Signal; -import org.eclipse.xtext.web.example.statemachine.statemachine.StatemachinePackage; -import org.eclipse.xtext.xbase.lib.Extension; - -@SuppressWarnings("all") -public class StatemachineSemanticHighlightingCalculator extends DefaultSemanticHighlightingCalculator { - @Inject - @Extension - private OperationCanceledManager _operationCanceledManager; - - @Override - protected boolean highlightElement(final EObject it, final IHighlightedPositionAcceptor acceptor, final CancelIndicator cancelIndicator) { - boolean _matched = false; - if (it instanceof Signal) { - _matched=true; - this.highlightSignal(it, ((Signal)it), StatemachinePackage.Literals.SIGNAL__NAME, acceptor, cancelIndicator); - } - if (!_matched) { - if (it instanceof Command) { - _matched=true; - this.highlightSignal(it, ((Command)it).getSignal(), StatemachinePackage.Literals.COMMAND__SIGNAL, acceptor, cancelIndicator); - } - } - if (!_matched) { - if (it instanceof Event) { - _matched=true; - this.highlightSignal(it, ((Event)it).getSignal(), StatemachinePackage.Literals.EVENT__SIGNAL, acceptor, cancelIndicator); - } - } - return false; - } - - protected void highlightSignal(final EObject owner, final Signal signal, final EStructuralFeature feature, final IHighlightedPositionAcceptor acceptor, final CancelIndicator cancelIndicator) { - this._operationCanceledManager.checkCanceled(cancelIndicator); - final Consumer _function = (INode it) -> { - acceptor.addPosition(it.getOffset(), it.getLength(), signal.eClass().getName()); - }; - NodeModelUtils.findNodesForFeature(owner, feature).forEach(_function); - } -} diff --git a/org.eclipse.xtext.web.example.statemachine.ide/xtend-gen/org/eclipse/xtext/web/example/statemachine/ide/StatemachineTemplateProposalProvider.java b/org.eclipse.xtext.web.example.statemachine.ide/xtend-gen/org/eclipse/xtext/web/example/statemachine/ide/StatemachineTemplateProposalProvider.java deleted file mode 100644 index 2b1ef88fa2c..00000000000 --- a/org.eclipse.xtext.web.example.statemachine.ide/xtend-gen/org/eclipse/xtext/web/example/statemachine/ide/StatemachineTemplateProposalProvider.java +++ /dev/null @@ -1,36 +0,0 @@ -/** - * Copyright (c) 2016 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.example.statemachine.ide; - -import org.eclipse.xtend2.lib.StringConcatenationClient; -import org.eclipse.xtext.ide.editor.contentassist.AbstractIdeTemplateProposalProvider; -import org.eclipse.xtext.ide.editor.contentassist.ContentAssistContext; -import org.eclipse.xtext.ide.editor.contentassist.IIdeContentProposalAcceptor; - -@SuppressWarnings("all") -public class StatemachineTemplateProposalProvider extends AbstractIdeTemplateProposalProvider { - public void createStateProposal(final ContentAssistContext context, final IIdeContentProposalAcceptor acceptor) { - StringConcatenationClient _client = new StringConcatenationClient() { - @Override - protected void appendTo(StringConcatenationClient.TargetStringConcatenation _builder) { - _builder.append("state "); - AbstractIdeTemplateProposalProvider.Variable _variable = StatemachineTemplateProposalProvider.this.variable("name"); - _builder.append(_variable); - _builder.newLineIfNotEmpty(); - _builder.append("\t"); - AbstractIdeTemplateProposalProvider.Cursor _cursor = StatemachineTemplateProposalProvider.this.cursor(); - _builder.append(_cursor, "\t"); - _builder.newLineIfNotEmpty(); - _builder.append("end"); - _builder.newLine(); - } - }; - final StringConcatenationClient template = _client; - this.acceptProposal("state", "Create a new state", template, context, acceptor); - } -} diff --git a/org.eclipse.xtext.web.example.statemachine.ide/xtend-gen/org/eclipse/xtext/web/example/statemachine/ide/StatemachineWebContentProposalProvider.java b/org.eclipse.xtext.web.example.statemachine.ide/xtend-gen/org/eclipse/xtext/web/example/statemachine/ide/StatemachineWebContentProposalProvider.java deleted file mode 100644 index d52a8bcf753..00000000000 --- a/org.eclipse.xtext.web.example.statemachine.ide/xtend-gen/org/eclipse/xtext/web/example/statemachine/ide/StatemachineWebContentProposalProvider.java +++ /dev/null @@ -1,175 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.example.statemachine.ide; - -import com.google.common.base.Objects; -import com.google.inject.Inject; -import java.util.Arrays; -import org.eclipse.emf.ecore.EClass; -import org.eclipse.xtext.AbstractElement; -import org.eclipse.xtext.AbstractRule; -import org.eclipse.xtext.Assignment; -import org.eclipse.xtext.CrossReference; -import org.eclipse.xtext.Keyword; -import org.eclipse.xtext.ParserRule; -import org.eclipse.xtext.RuleCall; -import org.eclipse.xtext.TerminalRule; -import org.eclipse.xtext.ide.editor.contentassist.ContentAssistContext; -import org.eclipse.xtext.ide.editor.contentassist.ContentAssistEntry; -import org.eclipse.xtext.ide.editor.contentassist.IIdeContentProposalAcceptor; -import org.eclipse.xtext.ide.editor.contentassist.IdeContentProposalProvider; -import org.eclipse.xtext.resource.IEObjectDescription; -import org.eclipse.xtext.scoping.IScope; -import org.eclipse.xtext.web.example.statemachine.ide.StatemachineTemplateProposalProvider; -import org.eclipse.xtext.web.example.statemachine.services.StatemachineGrammarAccess; -import org.eclipse.xtext.web.example.statemachine.statemachine.StatemachinePackage; -import org.eclipse.xtext.xbase.lib.Extension; -import org.eclipse.xtext.xbase.lib.Functions.Function1; -import org.eclipse.xtext.xbase.lib.IterableExtensions; -import org.eclipse.xtext.xbase.lib.Procedures.Procedure1; - -@SuppressWarnings("all") -public class StatemachineWebContentProposalProvider extends IdeContentProposalProvider { - @Inject - @Extension - private StatemachineGrammarAccess _statemachineGrammarAccess; - - @Inject - private StatemachineTemplateProposalProvider templateProvider; - - @Override - protected void _createProposals(final RuleCall ruleCall, final ContentAssistContext context, final IIdeContentProposalAcceptor acceptor) { - AbstractRule _rule = ruleCall.getRule(); - boolean _matched = false; - TerminalRule _bOOLEANRule = this._statemachineGrammarAccess.getBOOLEANRule(); - if (Objects.equal(_rule, _bOOLEANRule)) { - _matched=true; - boolean _startsWith = "true".startsWith(context.getPrefix()); - if (_startsWith) { - final ContentAssistEntry trueEntry = this.getProposalCreator().createProposal("true", context); - acceptor.accept(trueEntry, this.getProposalPriorities().getDefaultPriority(trueEntry)); - } - boolean _startsWith_1 = "false".startsWith(context.getPrefix()); - if (_startsWith_1) { - final ContentAssistEntry falseEntry = this.getProposalCreator().createProposal("false", context); - acceptor.accept(falseEntry, this.getProposalPriorities().getDefaultPriority(falseEntry)); - } - } - if (!_matched) { - ParserRule _stateRule = this._statemachineGrammarAccess.getStateRule(); - if (Objects.equal(_rule, _stateRule)) { - _matched=true; - this.templateProvider.createStateProposal(context, acceptor); - } - } - if (!_matched) { - super._createProposals(ruleCall, context, acceptor); - } - } - - @Override - protected void _createProposals(final Assignment assignment, final ContentAssistContext context, final IIdeContentProposalAcceptor acceptor) { - boolean _matched = false; - Assignment _signalAssignment_0 = this._statemachineGrammarAccess.getEventAccess().getSignalAssignment_0(); - if (Objects.equal(assignment, _signalAssignment_0)) { - _matched=true; - final IScope scope = this.getScopeProvider().getScope(context.getCurrentModel(), StatemachinePackage.Literals.EVENT__SIGNAL); - final Function1 _function = (IEObjectDescription it) -> { - EClass _eClass = it.getEClass(); - return Boolean.valueOf(Objects.equal(_eClass, StatemachinePackage.Literals.INPUT_SIGNAL)); - }; - Iterable _filter = IterableExtensions.filter(scope.getAllElements(), _function); - for (final IEObjectDescription description : _filter) { - { - final Procedure1 _function_1 = (ContentAssistEntry it) -> { - it.setSource(description); - it.setDescription("input signal"); - }; - final ContentAssistEntry entry = this.getProposalCreator().createProposal(description.getName().toString(), context, _function_1); - acceptor.accept(entry, this.getProposalPriorities().getCrossRefPriority(description, entry)); - } - } - } - if (!_matched) { - Assignment _signalAssignment_1 = this._statemachineGrammarAccess.getCommandAccess().getSignalAssignment_1(); - if (Objects.equal(assignment, _signalAssignment_1)) { - _matched=true; - final IScope scope_1 = this.getScopeProvider().getScope(context.getCurrentModel(), StatemachinePackage.Literals.COMMAND__SIGNAL); - final Function1 _function_1 = (IEObjectDescription it) -> { - EClass _eClass = it.getEClass(); - return Boolean.valueOf(Objects.equal(_eClass, StatemachinePackage.Literals.OUTPUT_SIGNAL)); - }; - Iterable _filter_1 = IterableExtensions.filter(scope_1.getAllElements(), _function_1); - for (final IEObjectDescription description_1 : _filter_1) { - { - final Procedure1 _function_2 = (ContentAssistEntry it) -> { - it.setSource(description_1); - it.setDescription("output signal"); - }; - final ContentAssistEntry entry = this.getProposalCreator().createProposal(description_1.getName().toString(), context, _function_2); - acceptor.accept(entry, this.getProposalPriorities().getCrossRefPriority(description_1, entry)); - } - } - } - } - if (!_matched) { - Assignment _valueAssignment_2 = this._statemachineGrammarAccess.getEventAccess().getValueAssignment_2(); - if (Objects.equal(assignment, _valueAssignment_2)) { - _matched=true; - } - if (!_matched) { - Assignment _newValueAssignment_3 = this._statemachineGrammarAccess.getCommandAccess().getNewValueAssignment_3(); - if (Objects.equal(assignment, _newValueAssignment_3)) { - _matched=true; - } - } - if (_matched) { - } - } - if (!_matched) { - super._createProposals(assignment, context, acceptor); - } - } - - @Override - protected boolean filterKeyword(final Keyword keyword, final ContentAssistContext context) { - boolean _switchResult = false; - boolean _matched = false; - Keyword _stateKeyword_0 = this._statemachineGrammarAccess.getStateAccess().getStateKeyword_0(); - if (Objects.equal(keyword, _stateKeyword_0)) { - _matched=true; - _switchResult = false; - } - if (!_matched) { - _switchResult = super.filterKeyword(keyword, context); - } - return _switchResult; - } - - public void createProposals(final AbstractElement assignment, final ContentAssistContext context, final IIdeContentProposalAcceptor acceptor) { - if (assignment instanceof Assignment) { - _createProposals((Assignment)assignment, context, acceptor); - return; - } else if (assignment instanceof CrossReference) { - _createProposals((CrossReference)assignment, context, acceptor); - return; - } else if (assignment instanceof Keyword) { - _createProposals((Keyword)assignment, context, acceptor); - return; - } else if (assignment instanceof RuleCall) { - _createProposals((RuleCall)assignment, context, acceptor); - return; - } else if (assignment != null) { - _createProposals(assignment, context, acceptor); - return; - } else { - throw new IllegalArgumentException("Unhandled parameter types: " + - Arrays.asList(assignment, context, acceptor).toString()); - } - } -} diff --git a/org.eclipse.xtext.web.example.statemachine/xtend-gen/org/eclipse/xtext/web/example/statemachine/StatemachineRuntimeModule.java b/org.eclipse.xtext.web.example.statemachine/xtend-gen/org/eclipse/xtext/web/example/statemachine/StatemachineRuntimeModule.java deleted file mode 100644 index 5fcaecb30fe..00000000000 --- a/org.eclipse.xtext.web.example.statemachine/xtend-gen/org/eclipse/xtext/web/example/statemachine/StatemachineRuntimeModule.java +++ /dev/null @@ -1,17 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.example.statemachine; - -import org.eclipse.xtext.web.example.statemachine.AbstractStatemachineRuntimeModule; - -/** - * Use this class to register components to be used at runtime / without the Equinox extension registry. - */ -@SuppressWarnings("all") -public class StatemachineRuntimeModule extends AbstractStatemachineRuntimeModule { -} diff --git a/org.eclipse.xtext.web.example.statemachine/xtend-gen/org/eclipse/xtext/web/example/statemachine/StatemachineStandaloneSetup.java b/org.eclipse.xtext.web.example.statemachine/xtend-gen/org/eclipse/xtext/web/example/statemachine/StatemachineStandaloneSetup.java deleted file mode 100644 index a8b6ae0fbac..00000000000 --- a/org.eclipse.xtext.web.example.statemachine/xtend-gen/org/eclipse/xtext/web/example/statemachine/StatemachineStandaloneSetup.java +++ /dev/null @@ -1,20 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.example.statemachine; - -import org.eclipse.xtext.web.example.statemachine.StatemachineStandaloneSetupGenerated; - -/** - * Initialization support for running Xtext languages without Equinox extension registry. - */ -@SuppressWarnings("all") -public class StatemachineStandaloneSetup extends StatemachineStandaloneSetupGenerated { - public static void doSetup() { - new StatemachineStandaloneSetup().createInjectorAndDoEMFRegistration(); - } -} diff --git a/org.eclipse.xtext.web.example.statemachine/xtend-gen/org/eclipse/xtext/web/example/statemachine/formatting2/StatemachineFormatter.java b/org.eclipse.xtext.web.example.statemachine/xtend-gen/org/eclipse/xtext/web/example/statemachine/formatting2/StatemachineFormatter.java deleted file mode 100644 index 9208660da63..00000000000 --- a/org.eclipse.xtext.web.example.statemachine/xtend-gen/org/eclipse/xtext/web/example/statemachine/formatting2/StatemachineFormatter.java +++ /dev/null @@ -1,215 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.example.statemachine.formatting2; - -import com.google.inject.Inject; -import java.util.Arrays; -import java.util.function.Consumer; -import org.eclipse.emf.common.util.EList; -import org.eclipse.emf.ecore.EObject; -import org.eclipse.xtext.formatting2.AbstractFormatter2; -import org.eclipse.xtext.formatting2.IFormattableDocument; -import org.eclipse.xtext.formatting2.IHiddenRegionFormatter; -import org.eclipse.xtext.formatting2.regionaccess.ISemanticRegion; -import org.eclipse.xtext.resource.XtextResource; -import org.eclipse.xtext.web.example.statemachine.services.StatemachineGrammarAccess; -import org.eclipse.xtext.web.example.statemachine.statemachine.Command; -import org.eclipse.xtext.web.example.statemachine.statemachine.Condition; -import org.eclipse.xtext.web.example.statemachine.statemachine.Event; -import org.eclipse.xtext.web.example.statemachine.statemachine.Signal; -import org.eclipse.xtext.web.example.statemachine.statemachine.State; -import org.eclipse.xtext.web.example.statemachine.statemachine.Statemachine; -import org.eclipse.xtext.web.example.statemachine.statemachine.Transition; -import org.eclipse.xtext.xbase.lib.Extension; -import org.eclipse.xtext.xbase.lib.Procedures.Procedure1; - -@SuppressWarnings("all") -public class StatemachineFormatter extends AbstractFormatter2 { - @Inject - @Extension - private StatemachineGrammarAccess _statemachineGrammarAccess; - - protected void _format(final Statemachine statemachine, @Extension final IFormattableDocument document) { - EList _signals = statemachine.getSignals(); - for (final Signal signal : _signals) { - { - this.format(signal, document); - final Procedure1 _function = (IHiddenRegionFormatter it) -> { - it.setNewLines(1, 1, 2); - }; - document.append(signal, _function); - } - } - EList _states = statemachine.getStates(); - for (final State state : _states) { - { - this.format(state, document); - final Procedure1 _function = (IHiddenRegionFormatter it) -> { - it.setNewLines(1, 1, 2); - }; - document.append(state, _function); - } - } - } - - protected void _format(final Signal signal, @Extension final IFormattableDocument document) { - final Procedure1 _function = (IHiddenRegionFormatter it) -> { - it.oneSpace(); - }; - final Procedure1 _function_1 = (IHiddenRegionFormatter it) -> { - it.oneSpace(); - }; - document.append(document.prepend(this.textRegionExtensions.regionFor(signal).keyword(this._statemachineGrammarAccess.getSignalAccess().getSignalKeyword_1()), _function), _function_1); - } - - protected void _format(final State state, @Extension final IFormattableDocument document) { - final Procedure1 _function = (IHiddenRegionFormatter it) -> { - it.oneSpace(); - }; - document.append(this.textRegionExtensions.regionFor(state).keyword(this._statemachineGrammarAccess.getStateAccess().getStateKeyword_0()), _function); - final Procedure1 _function_1 = (IHiddenRegionFormatter it) -> { - it.newLine(); - }; - final Procedure1 _function_2 = (IHiddenRegionFormatter it) -> { - it.indent(); - }; - document.interior( - document.append(this.textRegionExtensions.regionFor(state).assignment(this._statemachineGrammarAccess.getStateAccess().getNameAssignment_1()), _function_1), - this.textRegionExtensions.regionFor(state).keyword(this._statemachineGrammarAccess.getStateAccess().getEndKeyword_5()), _function_2); - EList _commands = state.getCommands(); - for (final Command command : _commands) { - { - this.format(command, document); - final Procedure1 _function_3 = (IHiddenRegionFormatter it) -> { - it.newLine(); - }; - document.append(command, _function_3); - } - } - EList _transitions = state.getTransitions(); - for (final Transition transition : _transitions) { - { - this.format(transition, document); - final Procedure1 _function_3 = (IHiddenRegionFormatter it) -> { - it.newLine(); - }; - document.append(transition, _function_3); - } - } - EList _nestedStates = state.getNestedStates(); - for (final State nestedState : _nestedStates) { - { - this.format(nestedState, document); - final Procedure1 _function_3 = (IHiddenRegionFormatter it) -> { - it.newLine(); - }; - document.append(nestedState, _function_3); - } - } - } - - protected void _format(final Command command, @Extension final IFormattableDocument document) { - final Procedure1 _function = (IHiddenRegionFormatter it) -> { - it.oneSpace(); - }; - document.append(this.textRegionExtensions.regionFor(command).keyword(this._statemachineGrammarAccess.getCommandAccess().getSetKeyword_0()), _function); - final Procedure1 _function_1 = (IHiddenRegionFormatter it) -> { - it.oneSpace(); - }; - final Procedure1 _function_2 = (IHiddenRegionFormatter it) -> { - it.oneSpace(); - }; - document.append(document.prepend(this.textRegionExtensions.regionFor(command).keyword(this._statemachineGrammarAccess.getCommandAccess().getEqualsSignKeyword_2()), _function_1), _function_2); - } - - protected void _format(final Transition transition, @Extension final IFormattableDocument document) { - final Procedure1 _function = (IHiddenRegionFormatter it) -> { - it.oneSpace(); - }; - document.append(this.textRegionExtensions.regionFor(transition).keyword(this._statemachineGrammarAccess.getTransitionAccess().getIfKeyword_0()), _function); - final Procedure1 _function_1 = (IHiddenRegionFormatter it) -> { - it.oneSpace(); - }; - final Procedure1 _function_2 = (IHiddenRegionFormatter it) -> { - it.oneSpace(); - }; - document.append(document.prepend(this.textRegionExtensions.regionFor(transition).keyword(this._statemachineGrammarAccess.getTransitionAccess().getGotoKeyword_2()), _function_1), _function_2); - Condition _condition = transition.getCondition(); - boolean _tripleNotEquals = (_condition != null); - if (_tripleNotEquals) { - this.format(transition.getCondition(), document); - } - } - - protected void _format(final Condition condition, @Extension final IFormattableDocument document) { - final Consumer _function = (ISemanticRegion it) -> { - final Procedure1 _function_1 = (IHiddenRegionFormatter it_1) -> { - it_1.oneSpace(); - }; - final Procedure1 _function_2 = (IHiddenRegionFormatter it_1) -> { - it_1.oneSpace(); - }; - document.append(document.prepend(it, _function_1), _function_2); - }; - this.textRegionExtensions.regionFor(condition).keywords(this._statemachineGrammarAccess.getConditionAccess().getAndKeyword_1_0()).forEach(_function); - EList _events = condition.getEvents(); - for (final Event event : _events) { - this.format(event, document); - } - } - - protected void _format(final Event event, @Extension final IFormattableDocument document) { - final Procedure1 _function = (IHiddenRegionFormatter it) -> { - it.oneSpace(); - }; - final Procedure1 _function_1 = (IHiddenRegionFormatter it) -> { - it.oneSpace(); - }; - document.append(document.prepend(this.textRegionExtensions.regionFor(event).keyword(this._statemachineGrammarAccess.getEventAccess().getEqualsSignEqualsSignKeyword_1()), _function), _function_1); - } - - public void format(final Object command, final IFormattableDocument document) { - if (command instanceof XtextResource) { - _format((XtextResource)command, document); - return; - } else if (command instanceof Command) { - _format((Command)command, document); - return; - } else if (command instanceof Condition) { - _format((Condition)command, document); - return; - } else if (command instanceof Event) { - _format((Event)command, document); - return; - } else if (command instanceof Signal) { - _format((Signal)command, document); - return; - } else if (command instanceof State) { - _format((State)command, document); - return; - } else if (command instanceof Statemachine) { - _format((Statemachine)command, document); - return; - } else if (command instanceof Transition) { - _format((Transition)command, document); - return; - } else if (command instanceof EObject) { - _format((EObject)command, document); - return; - } else if (command == null) { - _format((Void)null, document); - return; - } else if (command != null) { - _format(command, document); - return; - } else { - throw new IllegalArgumentException("Unhandled parameter types: " + - Arrays.asList(command, document).toString()); - } - } -} diff --git a/org.eclipse.xtext.web.example.statemachine/xtend-gen/org/eclipse/xtext/web/example/statemachine/generator/StatemachineGenerator.java b/org.eclipse.xtext.web.example.statemachine/xtend-gen/org/eclipse/xtext/web/example/statemachine/generator/StatemachineGenerator.java deleted file mode 100644 index 5c14eaf3f9a..00000000000 --- a/org.eclipse.xtext.web.example.statemachine/xtend-gen/org/eclipse/xtext/web/example/statemachine/generator/StatemachineGenerator.java +++ /dev/null @@ -1,171 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.example.statemachine.generator; - -import com.google.common.collect.Iterables; -import java.util.List; -import org.eclipse.emf.common.util.EList; -import org.eclipse.emf.ecore.resource.Resource; -import org.eclipse.xtend2.lib.StringConcatenation; -import org.eclipse.xtext.generator.AbstractGenerator; -import org.eclipse.xtext.generator.IFileSystemAccess2; -import org.eclipse.xtext.generator.IGeneratorContext; -import org.eclipse.xtext.web.example.statemachine.statemachine.InputSignal; -import org.eclipse.xtext.web.example.statemachine.statemachine.Signal; -import org.eclipse.xtext.web.example.statemachine.statemachine.State; -import org.eclipse.xtext.web.example.statemachine.statemachine.Statemachine; -import org.eclipse.xtext.web.example.statemachine.statemachine.Transition; -import org.eclipse.xtext.xbase.lib.Functions.Function1; -import org.eclipse.xtext.xbase.lib.IterableExtensions; - -/** - * Generates code from your model files on save. - * - * See https://www.eclipse.org/Xtext/documentation/303_runtime_concepts.html#code-generation - */ -@SuppressWarnings("all") -public class StatemachineGenerator extends AbstractGenerator { - @Override - public void doGenerate(final Resource resource, final IFileSystemAccess2 fsa, final IGeneratorContext context) { - final Statemachine statemachine = IterableExtensions.head(Iterables.filter(resource.getContents(), Statemachine.class)); - if ((statemachine != null)) { - fsa.generateFile("/DEFAULT_ARTIFACT", this.generateHtml(statemachine)); - StringConcatenation _builder = new StringConcatenation(); - _builder.append("This is an additional generator artifact."); - fsa.generateFile("/hidden.txt", _builder); - } - } - - private CharSequence generateHtml(final Statemachine statemachine) { - StringConcatenation _builder = new StringConcatenation(); - _builder.append(""); - _builder.newLine(); - _builder.append(""); - _builder.newLine(); - _builder.append(""); - _builder.newLine(); - _builder.append("\t"); - _builder.append(""); - _builder.newLine(); - _builder.append("\t"); - _builder.append(""); - _builder.newLine(); - _builder.append("\t"); - _builder.append("State Machine Overview"); - _builder.newLine(); - _builder.append("\t"); - _builder.append(""); - _builder.newLine(); - _builder.append("\t"); - _builder.append(""); - _builder.newLine(); - _builder.append(""); - _builder.newLine(); - _builder.append(""); - _builder.newLine(); - _builder.append("
"); - _builder.newLine(); - _builder.append("\t"); - _builder.append("

Signals

"); - _builder.newLine(); - { - final Function1 _function = (Signal it) -> { - return it.getName(); - }; - List _sortBy = IterableExtensions.sortBy(statemachine.getSignals(), _function); - for(final Signal signal : _sortBy) { - _builder.append("\t"); - _builder.append(""); - String _name = signal.getName(); - _builder.append(_name, "\t"); - _builder.append(" ("); - { - if ((signal instanceof InputSignal)) { - _builder.append("input"); - } else { - _builder.append("output"); - } - } - _builder.append(")
"); - _builder.newLineIfNotEmpty(); - } - } - _builder.append("\t"); - _builder.append("

States

"); - _builder.newLine(); - { - final Function1 _function_1 = (State it) -> { - return it.getName(); - }; - List _sortBy_1 = IterableExtensions.sortBy(statemachine.getStates(), _function_1); - for(final State state : _sortBy_1) { - _builder.append("\t"); - _builder.append(""); - String _name_1 = state.getName(); - _builder.append(_name_1, "\t"); - _builder.append(" – transitions: "); - { - boolean _isEmpty = state.getTransitions().isEmpty(); - if (_isEmpty) { - _builder.append("NONE"); - } else { - { - EList _transitions = state.getTransitions(); - boolean _hasElements = false; - for(final Transition transition : _transitions) { - if (!_hasElements) { - _hasElements = true; - } else { - _builder.appendImmediate(", ", "\t"); - } - String _name_2 = transition.getState().getName(); - _builder.append(_name_2, "\t"); - } - } - } - } - _builder.append("
"); - _builder.newLineIfNotEmpty(); - } - } - _builder.append("
"); - _builder.newLine(); - _builder.append(""); - _builder.newLine(); - _builder.append(""); - _builder.newLine(); - return _builder; - } -} diff --git a/org.eclipse.xtext.web.example.statemachine/xtend-gen/org/eclipse/xtext/web/example/statemachine/scoping/StatemachineScopeProvider.java b/org.eclipse.xtext.web.example.statemachine/xtend-gen/org/eclipse/xtext/web/example/statemachine/scoping/StatemachineScopeProvider.java deleted file mode 100644 index dd44be4567a..00000000000 --- a/org.eclipse.xtext.web.example.statemachine/xtend-gen/org/eclipse/xtext/web/example/statemachine/scoping/StatemachineScopeProvider.java +++ /dev/null @@ -1,20 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.example.statemachine.scoping; - -import org.eclipse.xtext.scoping.impl.AbstractDeclarativeScopeProvider; - -/** - * This class contains custom scoping description. - * - * See https://www.eclipse.org/Xtext/documentation/303_runtime_concepts.html#scoping - * on how and when to use it. - */ -@SuppressWarnings("all") -public class StatemachineScopeProvider extends AbstractDeclarativeScopeProvider { -} diff --git a/org.eclipse.xtext.web.example.statemachine/xtend-gen/org/eclipse/xtext/web/example/statemachine/validation/StatemachineValidator.java b/org.eclipse.xtext.web.example.statemachine/xtend-gen/org/eclipse/xtext/web/example/statemachine/validation/StatemachineValidator.java deleted file mode 100644 index e2eef00813b..00000000000 --- a/org.eclipse.xtext.web.example.statemachine/xtend-gen/org/eclipse/xtext/web/example/statemachine/validation/StatemachineValidator.java +++ /dev/null @@ -1,38 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.example.statemachine.validation; - -import org.eclipse.xtext.validation.Check; -import org.eclipse.xtext.web.example.statemachine.statemachine.Command; -import org.eclipse.xtext.web.example.statemachine.statemachine.Event; -import org.eclipse.xtext.web.example.statemachine.statemachine.InputSignal; -import org.eclipse.xtext.web.example.statemachine.statemachine.OutputSignal; -import org.eclipse.xtext.web.example.statemachine.statemachine.StatemachinePackage; -import org.eclipse.xtext.web.example.statemachine.validation.AbstractStatemachineValidator; - -/** - * This class contains custom validation rules. - * - * See https://www.eclipse.org/Xtext/documentation/303_runtime_concepts.html#validation - */ -@SuppressWarnings("all") -public class StatemachineValidator extends AbstractStatemachineValidator { - @Check - public void checkEventUsesInputSignal(final Event event) { - if ((((event.getSignal() != null) && (!event.getSignal().eIsProxy())) && (!(event.getSignal() instanceof InputSignal)))) { - this.error("Only input signals are allowed for read access.", event, StatemachinePackage.Literals.EVENT__SIGNAL); - } - } - - @Check - public void checkCommandUsesOutputSignal(final Command command) { - if ((((command.getSignal() != null) && (!command.getSignal().eIsProxy())) && (!(command.getSignal() instanceof OutputSignal)))) { - this.error("Only output signals are allowed for write access.", command, StatemachinePackage.Literals.COMMAND__SIGNAL); - } - } -} diff --git a/org.eclipse.xtext.web.servlet/src/main/xtend-gen/org/eclipse/xtext/web/servlet/HttpServiceContext.java b/org.eclipse.xtext.web.servlet/src/main/xtend-gen/org/eclipse/xtext/web/servlet/HttpServiceContext.java deleted file mode 100644 index 3b429d5efff..00000000000 --- a/org.eclipse.xtext.web.servlet/src/main/xtend-gen/org/eclipse/xtext/web/servlet/HttpServiceContext.java +++ /dev/null @@ -1,125 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.servlet; - -import com.google.common.base.Objects; -import com.google.common.io.CharStreams; -import java.net.URLDecoder; -import java.nio.charset.Charset; -import java.util.Collections; -import java.util.Enumeration; -import java.util.Map; -import java.util.Set; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpSession; -import org.eclipse.xtend.lib.annotations.Accessors; -import org.eclipse.xtext.web.server.IServiceContext; -import org.eclipse.xtext.web.server.ISession; -import org.eclipse.xtext.web.servlet.HttpSessionWrapper; -import org.eclipse.xtext.xbase.lib.CollectionLiterals; -import org.eclipse.xtext.xbase.lib.Exceptions; -import org.eclipse.xtext.xbase.lib.Pure; - -/** - * Provides the parameters and metadata of an {@link HttpServletRequest}. - */ -@SuppressWarnings("all") -public class HttpServiceContext implements IServiceContext { - @Accessors - private final HttpServletRequest request; - - private final Map parameters = CollectionLiterals.newHashMap(); - - private HttpSessionWrapper sessionWrapper; - - public HttpServiceContext(final HttpServletRequest request) { - this.request = request; - this.initializeParameters(); - } - - private String initializeParameters() { - try { - String _xblockexpression = null; - { - String _contentType = this.request.getContentType(); - String[] _split = null; - if (_contentType!=null) { - _split=_contentType.split(";(\\s*)"); - } - final String[] contentType = _split; - if (((contentType != null) && Objects.equal(contentType[0], "application/x-www-form-urlencoded"))) { - String _xifexpression = null; - if ((((contentType != null) && (contentType.length >= 2)) && contentType[1].startsWith("charset="))) { - _xifexpression = contentType[1].substring("charset=".length()); - } else { - _xifexpression = Charset.defaultCharset().toString(); - } - String charset = _xifexpression; - final String[] encodedParams = CharStreams.toString(this.request.getReader()).split("&"); - for (final String param : encodedParams) { - { - final int nameEnd = param.indexOf("="); - if ((nameEnd > 0)) { - final String key = param.substring(0, nameEnd); - final String value = URLDecoder.decode(param.substring((nameEnd + 1)), charset); - this.parameters.put(key, value); - } - } - } - } - final Enumeration paramNames = this.request.getParameterNames(); - while (paramNames.hasMoreElements()) { - { - final String name = paramNames.nextElement(); - this.parameters.put(name, this.request.getParameter(name)); - } - } - String _xifexpression_1 = null; - boolean _containsKey = this.parameters.containsKey(IServiceContext.SERVICE_TYPE); - boolean _not = (!_containsKey); - if (_not) { - String _pathInfo = this.request.getPathInfo(); - String _substring = null; - if (_pathInfo!=null) { - _substring=_pathInfo.substring(1); - } - _xifexpression_1 = this.parameters.put(IServiceContext.SERVICE_TYPE, _substring); - } - _xblockexpression = _xifexpression_1; - } - return _xblockexpression; - } catch (Throwable _e) { - throw Exceptions.sneakyThrow(_e); - } - } - - @Override - public Set getParameterKeys() { - return Collections.unmodifiableSet(this.parameters.keySet()); - } - - @Override - public String getParameter(final String key) { - return this.parameters.get(key); - } - - @Override - public ISession getSession() { - if ((this.sessionWrapper == null)) { - HttpSession _session = this.request.getSession(true); - HttpSessionWrapper _httpSessionWrapper = new HttpSessionWrapper(_session); - this.sessionWrapper = _httpSessionWrapper; - } - return this.sessionWrapper; - } - - @Pure - public HttpServletRequest getRequest() { - return this.request; - } -} diff --git a/org.eclipse.xtext.web.servlet/src/main/xtend-gen/org/eclipse/xtext/web/servlet/HttpSessionWrapper.java b/org.eclipse.xtext.web.servlet/src/main/xtend-gen/org/eclipse/xtext/web/servlet/HttpSessionWrapper.java deleted file mode 100644 index 76c77796f81..00000000000 --- a/org.eclipse.xtext.web.servlet/src/main/xtend-gen/org/eclipse/xtext/web/servlet/HttpSessionWrapper.java +++ /dev/null @@ -1,65 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.servlet; - -import javax.servlet.http.HttpSession; -import org.eclipse.xtend.lib.annotations.Accessors; -import org.eclipse.xtend.lib.annotations.FinalFieldsConstructor; -import org.eclipse.xtext.web.server.ISession; -import org.eclipse.xtext.xbase.lib.Functions.Function0; -import org.eclipse.xtext.xbase.lib.Pure; - -/** - * Provides access to the information stored in a {@link HttpSession}. - */ -@FinalFieldsConstructor -@Accessors -@SuppressWarnings("all") -public class HttpSessionWrapper implements ISession { - private final HttpSession session; - - @Override - public T get(final Object key) { - Object _attribute = this.session.getAttribute(key.toString()); - return ((T) _attribute); - } - - @Override - public T get(final Object key, final Function0 factory) { - synchronized (this.session) { - final T sessionValue = this.get(key); - if ((sessionValue != null)) { - return sessionValue; - } else { - final T factoryValue = factory.apply(); - this.put(key, factoryValue); - return factoryValue; - } - } - } - - @Override - public void put(final Object key, final Object value) { - this.session.setAttribute(key.toString(), value); - } - - @Override - public void remove(final Object key) { - this.session.removeAttribute(key.toString()); - } - - public HttpSessionWrapper(final HttpSession session) { - super(); - this.session = session; - } - - @Pure - public HttpSession getSession() { - return this.session; - } -} diff --git a/org.eclipse.xtext.web.servlet/src/main/xtend-gen/org/eclipse/xtext/web/servlet/XtextResourcesServlet.java b/org.eclipse.xtext.web.servlet/src/main/xtend-gen/org/eclipse/xtext/web/servlet/XtextResourcesServlet.java deleted file mode 100644 index 1acd19d77ec..00000000000 --- a/org.eclipse.xtext.web.servlet/src/main/xtend-gen/org/eclipse/xtext/web/servlet/XtextResourcesServlet.java +++ /dev/null @@ -1,81 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.servlet; - -import com.google.common.io.ByteStreams; -import java.io.InputStream; -import javax.servlet.ServletConfig; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import org.eclipse.xtext.web.server.XtextServiceDispatcher; -import org.eclipse.xtext.xbase.lib.Exceptions; - -/** - * This servlet is required only in servlet containers that do not support the servlet 3.0 API. - */ -@SuppressWarnings("all") -public class XtextResourcesServlet extends HttpServlet { - private final static long DEFAULT_EXPIRE_TIME_MS = 86400000L; - - private final static long DEFAULT_EXPIRE_TIME_S = 86400L; - - private boolean disableCache = false; - - @Override - public void init(final ServletConfig config) throws ServletException { - super.init(config); - String disableCache = config.getInitParameter("disableCache"); - if ((disableCache != null)) { - this.disableCache = Boolean.parseBoolean(disableCache); - } - } - - @Override - public void doGet(final HttpServletRequest request, final HttpServletResponse response) { - try { - String _servletPath = request.getServletPath(); - String _plus = ("META-INF/resources" + _servletPath); - String _pathInfo = request.getPathInfo(); - final String resourceURI = (_plus + _pathInfo); - final InputStream inputStream = this.getResourceAsStream(resourceURI); - if ((inputStream != null)) { - final String[] tokens = resourceURI.split("/"); - int _length = tokens.length; - int _minus = (_length - 1); - final String fileName = tokens[_minus]; - if (((!this.disableCache) && (tokens.length > 4))) { - final String version = tokens[3]; - response.setHeader("ETag", ((fileName + "_") + version)); - long _currentTimeMillis = System.currentTimeMillis(); - long _plus_1 = (_currentTimeMillis + XtextResourcesServlet.DEFAULT_EXPIRE_TIME_MS); - response.setDateHeader("Expires", _plus_1); - response.addHeader("Cache-Control", ("private, max-age=" + Long.valueOf(XtextResourcesServlet.DEFAULT_EXPIRE_TIME_S))); - } - final String mimeType = this.getServletContext().getMimeType(fileName); - String _elvis = null; - if (mimeType != null) { - _elvis = mimeType; - } else { - _elvis = "application/octet-stream"; - } - response.setContentType(_elvis); - ByteStreams.copy(inputStream, response.getOutputStream()); - } else { - response.sendError(HttpServletResponse.SC_NOT_FOUND); - } - } catch (Throwable _e) { - throw Exceptions.sneakyThrow(_e); - } - } - - protected InputStream getResourceAsStream(final String resourceURI) { - return XtextServiceDispatcher.class.getClassLoader().getResourceAsStream(resourceURI); - } -} diff --git a/org.eclipse.xtext.web.servlet/src/main/xtend-gen/org/eclipse/xtext/web/servlet/XtextServlet.java b/org.eclipse.xtext.web.servlet/src/main/xtend-gen/org/eclipse/xtext/web/servlet/XtextServlet.java deleted file mode 100644 index aff5854df49..00000000000 --- a/org.eclipse.xtext.web.servlet/src/main/xtend-gen/org/eclipse/xtext/web/servlet/XtextServlet.java +++ /dev/null @@ -1,239 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.servlet; - -import com.google.common.base.Objects; -import com.google.gson.Gson; -import com.google.inject.Injector; -import java.io.IOException; -import java.util.Set; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import org.apache.log4j.Logger; -import org.eclipse.emf.common.util.URI; -import org.eclipse.xtend2.lib.StringConcatenation; -import org.eclipse.xtext.resource.IResourceServiceProvider; -import org.eclipse.xtext.web.server.IServiceContext; -import org.eclipse.xtext.web.server.IServiceResult; -import org.eclipse.xtext.web.server.IUnwrappableServiceResult; -import org.eclipse.xtext.web.server.InvalidRequestException; -import org.eclipse.xtext.web.server.XtextServiceDispatcher; -import org.eclipse.xtext.web.servlet.HttpServiceContext; -import org.eclipse.xtext.xbase.lib.Exceptions; -import org.eclipse.xtext.xbase.lib.StringExtensions; - -/** - * An HTTP servlet for publishing the Xtext services. Include this into your web server by creating - * a subclass that executes the standalone setups of your languages in its {@link #init()} method: - * - *
- * @WebServlet(name = "Xtext Services", urlPatterns = "/xtext-service/*")
- * class MyXtextServlet extends XtextServlet {
- *     override init() {
- *         super.init();
- *         MyDslWebSetup.doSetup();
- *     }
- * }
- * 
- * - * Use the {@code WebServlet} annotation to register your servlet. The default URL pattern for - * Xtext services is {@code "/xtext-service/*"}. - */ -@SuppressWarnings("all") -public class XtextServlet extends HttpServlet { - private final Logger LOG = Logger.getLogger(this.getClass()); - - private final IResourceServiceProvider.Registry serviceProviderRegistry = IResourceServiceProvider.Registry.INSTANCE; - - private final Gson gson = new Gson(); - - @Override - protected void service(final HttpServletRequest req, final HttpServletResponse resp) throws ServletException, IOException { - try { - super.service(req, resp); - } catch (final Throwable _t) { - if (_t instanceof InvalidRequestException.ResourceNotFoundException) { - final InvalidRequestException.ResourceNotFoundException exception = (InvalidRequestException.ResourceNotFoundException)_t; - String _requestURI = req.getRequestURI(); - String _plus = ("Invalid request (" + _requestURI); - String _plus_1 = (_plus + "): "); - String _message = exception.getMessage(); - String _plus_2 = (_plus_1 + _message); - this.LOG.trace(_plus_2); - resp.sendError(HttpServletResponse.SC_NOT_FOUND, exception.getMessage()); - } else if (_t instanceof InvalidRequestException.InvalidDocumentStateException) { - final InvalidRequestException.InvalidDocumentStateException exception_1 = (InvalidRequestException.InvalidDocumentStateException)_t; - String _requestURI_1 = req.getRequestURI(); - String _plus_3 = ("Invalid request (" + _requestURI_1); - String _plus_4 = (_plus_3 + "): "); - String _message_1 = exception_1.getMessage(); - String _plus_5 = (_plus_4 + _message_1); - this.LOG.trace(_plus_5); - resp.sendError(HttpServletResponse.SC_CONFLICT, exception_1.getMessage()); - } else if (_t instanceof InvalidRequestException.PermissionDeniedException) { - final InvalidRequestException.PermissionDeniedException exception_2 = (InvalidRequestException.PermissionDeniedException)_t; - String _requestURI_2 = req.getRequestURI(); - String _plus_6 = ("Invalid request (" + _requestURI_2); - String _plus_7 = (_plus_6 + "): "); - String _message_2 = exception_2.getMessage(); - String _plus_8 = (_plus_7 + _message_2); - this.LOG.trace(_plus_8); - resp.sendError(HttpServletResponse.SC_FORBIDDEN, exception_2.getMessage()); - } else if (_t instanceof InvalidRequestException) { - final InvalidRequestException exception_3 = (InvalidRequestException)_t; - String _requestURI_3 = req.getRequestURI(); - String _plus_9 = ("Invalid request (" + _requestURI_3); - String _plus_10 = (_plus_9 + "): "); - String _message_3 = exception_3.getMessage(); - String _plus_11 = (_plus_10 + _message_3); - this.LOG.trace(_plus_11); - resp.sendError(HttpServletResponse.SC_BAD_REQUEST, exception_3.getMessage()); - } else { - throw Exceptions.sneakyThrow(_t); - } - } - } - - @Override - protected void doGet(final HttpServletRequest req, final HttpServletResponse resp) throws ServletException, IOException { - final XtextServiceDispatcher.ServiceDescriptor service = this.getService(req); - if (((!service.isHasConflict()) && (service.isHasSideEffects() || this.hasTextInput(service)))) { - super.doGet(req, resp); - } else { - this.doService(service, resp); - } - } - - @Override - protected void doPut(final HttpServletRequest req, final HttpServletResponse resp) throws ServletException, IOException { - final XtextServiceDispatcher.ServiceDescriptor service = this.getService(req); - final String type = service.getContext().getParameter(IServiceContext.SERVICE_TYPE); - if (((!service.isHasConflict()) && (!Objects.equal(type, "update")))) { - super.doPut(req, resp); - } else { - this.doService(service, resp); - } - } - - @Override - protected void doPost(final HttpServletRequest req, final HttpServletResponse resp) throws ServletException, IOException { - final XtextServiceDispatcher.ServiceDescriptor service = this.getService(req); - final String type = service.getContext().getParameter(IServiceContext.SERVICE_TYPE); - if (((!service.isHasConflict()) && (((!service.isHasSideEffects()) && (!this.hasTextInput(service))) || Objects.equal(type, "update")))) { - super.doPost(req, resp); - } else { - this.doService(service, resp); - } - } - - protected boolean hasTextInput(final XtextServiceDispatcher.ServiceDescriptor service) { - boolean _xblockexpression = false; - { - final Set parameterKeys = service.getContext().getParameterKeys(); - _xblockexpression = (parameterKeys.contains("fullText") || parameterKeys.contains("deltaText")); - } - return _xblockexpression; - } - - /** - * Retrieve the service metadata for the given request. This involves resolving the Guice - * injector for the respective language, querying the {@link XtextServiceDispatcher}, and - * checking the permission to invoke the service. - */ - protected XtextServiceDispatcher.ServiceDescriptor getService(final HttpServletRequest request) throws InvalidRequestException { - final HttpServiceContext serviceContext = new HttpServiceContext(request); - final Injector injector = this.getInjector(serviceContext); - final XtextServiceDispatcher serviceDispatcher = injector.getInstance(XtextServiceDispatcher.class); - final XtextServiceDispatcher.ServiceDescriptor service = serviceDispatcher.getService(serviceContext); - return service; - } - - /** - * Invoke the service function of the given service descriptor and write its result to the - * servlet response in Json format. An exception is made for {@link IUnwrappableServiceResult}: - * here the document itself is written into the response instead of wrapping it into a Json object. - */ - protected void doService(final XtextServiceDispatcher.ServiceDescriptor service, final HttpServletResponse response) { - try { - final IServiceResult result = service.getService().apply(); - response.setStatus(HttpServletResponse.SC_OK); - response.setCharacterEncoding(this.getEncoding(service, result)); - response.setHeader("Cache-Control", "no-cache"); - if (((result instanceof IUnwrappableServiceResult) && (((IUnwrappableServiceResult) result).getContent() != null))) { - final IUnwrappableServiceResult unwrapResult = ((IUnwrappableServiceResult) result); - String _elvis = null; - String _contentType = unwrapResult.getContentType(); - if (_contentType != null) { - _elvis = _contentType; - } else { - _elvis = "text/plain"; - } - response.setContentType(_elvis); - response.getWriter().write(unwrapResult.getContent()); - } else { - response.setContentType("text/x-json"); - this.gson.toJson(result, response.getWriter()); - } - } catch (Throwable _e) { - throw Exceptions.sneakyThrow(_e); - } - } - - /** - * Determine the encoding to apply to servlet responses. The default is UTF-8. - */ - protected String getEncoding(final XtextServiceDispatcher.ServiceDescriptor service, final IServiceResult result) { - return "UTF-8"; - } - - /** - * Resolve the Guice injector for the language associated with the given context. - */ - protected Injector getInjector(final HttpServiceContext serviceContext) throws InvalidRequestException.UnknownLanguageException { - IResourceServiceProvider resourceServiceProvider = null; - String _elvis = null; - String _parameter = serviceContext.getParameter("resource"); - if (_parameter != null) { - _elvis = _parameter; - } else { - _elvis = ""; - } - final URI emfURI = URI.createURI(_elvis); - final String contentType = serviceContext.getParameter("contentType"); - boolean _isNullOrEmpty = StringExtensions.isNullOrEmpty(contentType); - if (_isNullOrEmpty) { - resourceServiceProvider = this.serviceProviderRegistry.getResourceServiceProvider(emfURI); - if ((resourceServiceProvider == null)) { - boolean _isEmpty = emfURI.toString().isEmpty(); - if (_isEmpty) { - StringConcatenation _builder = new StringConcatenation(); - _builder.append("Unable to identify the Xtext language: missing parameter \'resource\' or \'contentType\'."); - throw new InvalidRequestException.UnknownLanguageException(_builder.toString()); - } else { - StringConcatenation _builder_1 = new StringConcatenation(); - _builder_1.append("Unable to identify the Xtext language for resource "); - _builder_1.append(emfURI); - _builder_1.append("."); - throw new InvalidRequestException.UnknownLanguageException(_builder_1.toString()); - } - } - } else { - resourceServiceProvider = this.serviceProviderRegistry.getResourceServiceProvider(emfURI, contentType); - if ((resourceServiceProvider == null)) { - StringConcatenation _builder_2 = new StringConcatenation(); - _builder_2.append("Unable to identify the Xtext language for contentType "); - _builder_2.append(contentType); - _builder_2.append("."); - throw new InvalidRequestException.UnknownLanguageException(_builder_2.toString()); - } - } - return resourceServiceProvider.get(Injector.class); - } -} diff --git a/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/DefaultWebModule.java b/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/DefaultWebModule.java deleted file mode 100644 index 2323a6898f3..00000000000 --- a/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/DefaultWebModule.java +++ /dev/null @@ -1,22 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.server; - -import org.eclipse.xtext.service.AbstractGenericModule; -import org.eclipse.xtext.web.server.generator.DefaultContentTypeProvider; -import org.eclipse.xtext.web.server.generator.IContentTypeProvider; - -/** - * Default Guice bindings for the web integration of Xtext. - */ -@SuppressWarnings("all") -public class DefaultWebModule extends AbstractGenericModule { - public Class bindIContentTypeProvider() { - return DefaultContentTypeProvider.class; - } -} diff --git a/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/IServiceContext.java b/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/IServiceContext.java deleted file mode 100644 index eeabb14287a..00000000000 --- a/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/IServiceContext.java +++ /dev/null @@ -1,41 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.server; - -import java.util.Set; -import org.eclipse.xtext.web.server.ISession; - -/** - * Provides the parameters and meta data of a service request. - */ -@SuppressWarnings("all") -public interface IServiceContext { - /** - * Key for the service type parameter, which determines the actual service to be invoked. - */ - public final static String SERVICE_TYPE = "serviceType"; - - /** - * The available keys that can be used as arguments to {@link #getParameter(String)}. - */ - public abstract Set getParameterKeys(); - - /** - * Returns the request parameter for the given key. - */ - public abstract String getParameter(final String key); - - /** - * Returns a session into which information can be stored across multiple requests from - * the same client. If a session does not exist yet, one is created. - * - *

Warning: This method may have side effects on the response sent to the client, - * such as adding a session Id.

- */ - public abstract ISession getSession(); -} diff --git a/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/IServiceResult.java b/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/IServiceResult.java deleted file mode 100644 index 83314d076c0..00000000000 --- a/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/IServiceResult.java +++ /dev/null @@ -1,16 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.server; - -/** - * Marker interface for objects that can be converted to the Json - * format for sending service results to the client. - */ -@SuppressWarnings("all") -public interface IServiceResult { -} diff --git a/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/ISession.java b/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/ISession.java deleted file mode 100644 index bcca424cbc1..00000000000 --- a/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/ISession.java +++ /dev/null @@ -1,65 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.server; - -import org.eclipse.xtext.xbase.lib.Functions.Function0; - -/** - * Provides means to store information that can be accessed for subsequent requests. - * This allows to improve the server performance by avoiding duplicate computations, - * and to share resources across multiple service requests. - */ -@SuppressWarnings("all") -public interface ISession { - /** - * A default implementation that stores nothing. - */ - public static class NullImpl implements ISession { - @Override - public T get(final Object key) { - return null; - } - - @Override - public T get(final Object key, final Function0 factory) { - return factory.apply(); - } - - @Override - public void put(final Object key, final Object value) { - } - - @Override - public void remove(final Object key) { - } - } - - /** - * Get the stored information for the given key. Returns {@code null} if nothing - * is associated with that key. - */ - public abstract T get(final Object key); - - /** - * Get the stored information for the given key, creating it if it is not present yet. - * The check for presence of the information and the invocation of the factory are - * done in an atomic block, thus the session store may be accessed from multiple threads. - */ - public abstract T get(final Object key, final Function0 factory); - - /** - * Add the given information to this session store, overwriting any previously stored - * information for that key. - */ - public abstract void put(final Object key, final Object value); - - /** - * Remove the information stored with the given key. - */ - public abstract void remove(final Object key); -} diff --git a/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/IUnwrappableServiceResult.java b/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/IUnwrappableServiceResult.java deleted file mode 100644 index 6dae4b5a69e..00000000000 --- a/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/IUnwrappableServiceResult.java +++ /dev/null @@ -1,27 +0,0 @@ -/** - * Copyright (c) 2016 TypeFox GmbH (http://www.typefox.io) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.server; - -import org.eclipse.xtext.web.server.IServiceResult; - -/** - * Service results that implement this interface are unwrapped, i.e. the content of the result object - * is sent to the client instead of a Json object. - */ -@SuppressWarnings("all") -public interface IUnwrappableServiceResult extends IServiceResult { - /** - * The actual content to write into the request response. - */ - public abstract String getContent(); - - /** - * The content type of the text content. - */ - public abstract String getContentType(); -} diff --git a/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/InvalidRequestException.java b/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/InvalidRequestException.java deleted file mode 100644 index f148a27311b..00000000000 --- a/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/InvalidRequestException.java +++ /dev/null @@ -1,94 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.server; - -import org.eclipse.xtend.lib.annotations.Accessors; - -/** - * Exception that can be thrown anytime while preparing or executing an Xtext service. - * Clients invoking such a service directly or indirectly through {@link XtextServiceDispatcher} - * must catch this exception and translate it to a proper error message. - * An InvalidRequestException must never lead to an internal server error. - */ -@Accessors -@SuppressWarnings("all") -public class InvalidRequestException extends RuntimeException { - /** - * The request parameters are not valid. - */ - public static class InvalidParametersException extends InvalidRequestException { - public InvalidParametersException(final String message) { - super(message); - } - - public InvalidParametersException(final String message, final Throwable cause) { - super(message, cause); - } - } - - /** - * The Xtext language could not be inferred from the parameters or metadata. - */ - public static class UnknownLanguageException extends InvalidRequestException { - public UnknownLanguageException(final String message) { - super(message); - } - - public UnknownLanguageException(final String message, final Throwable cause) { - super(message, cause); - } - } - - /** - * The requested resource was not found on the server. - */ - public static class ResourceNotFoundException extends InvalidRequestException { - public ResourceNotFoundException(final String message) { - super(message); - } - - public ResourceNotFoundException(final String message, final Throwable cause) { - super(message, cause); - } - } - - /** - * The required document state does not match the current document state. - * @see org.eclipse.xtext.web.server.model.XtextWebDocument#getStateId() - */ - public static class InvalidDocumentStateException extends InvalidRequestException { - public InvalidDocumentStateException(final String message) { - super(message); - } - - public InvalidDocumentStateException(final String message, final Throwable cause) { - super(message, cause); - } - } - - /** - * Permission to invoke the requested service was denied. - */ - public static class PermissionDeniedException extends InvalidRequestException { - public PermissionDeniedException(final String message) { - super(message); - } - - public PermissionDeniedException(final String message, final Throwable cause) { - super(message, cause); - } - } - - public InvalidRequestException(final String message) { - super(message); - } - - public InvalidRequestException(final String message, final Throwable cause) { - super(message, cause); - } -} diff --git a/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/ServiceConflictResult.java b/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/ServiceConflictResult.java deleted file mode 100644 index 632a93cfd34..00000000000 --- a/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/ServiceConflictResult.java +++ /dev/null @@ -1,75 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.server; - -import org.eclipse.xtend.lib.annotations.Data; -import org.eclipse.xtext.web.server.IServiceResult; -import org.eclipse.xtext.xbase.lib.Pure; -import org.eclipse.xtext.xbase.lib.util.ToStringBuilder; - -/** - * A service result object indicating that a conflict has occurred an thus the original - * request could not be completed. This result type is used to avoid responses with - * error codes for conflict situations that can happen relatively often, e.g. when - * multiple requests are sent within a short amount of time. - */ -@Data -@SuppressWarnings("all") -public class ServiceConflictResult implements IServiceResult { - /** - * A descriptor of the reason for the conflict. Commonly used values are "invalidStateId" - * for cases when the requiredStateId parameter does not match the current document state, - * and "canceled" when the service has been interrupted by another service request. - */ - private final String conflict; - - public ServiceConflictResult(final String conflict) { - super(); - this.conflict = conflict; - } - - @Override - @Pure - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((this.conflict== null) ? 0 : this.conflict.hashCode()); - return result; - } - - @Override - @Pure - public boolean equals(final Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - ServiceConflictResult other = (ServiceConflictResult) obj; - if (this.conflict == null) { - if (other.conflict != null) - return false; - } else if (!this.conflict.equals(other.conflict)) - return false; - return true; - } - - @Override - @Pure - public String toString() { - ToStringBuilder b = new ToStringBuilder(this); - b.add("conflict", this.conflict); - return b.toString(); - } - - @Pure - public String getConflict() { - return this.conflict; - } -} diff --git a/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/XtextServiceDispatcher.java b/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/XtextServiceDispatcher.java deleted file mode 100644 index 46535e81e7b..00000000000 --- a/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/XtextServiceDispatcher.java +++ /dev/null @@ -1,1021 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.server; - -import com.google.common.base.Optional; -import com.google.inject.Inject; -import com.google.inject.Singleton; -import java.io.IOException; -import java.util.Arrays; -import java.util.LinkedHashMap; -import java.util.Random; -import org.apache.log4j.Logger; -import org.eclipse.emf.common.util.URI; -import org.eclipse.emf.ecore.resource.Resource; -import org.eclipse.emf.ecore.resource.ResourceSet; -import org.eclipse.xtend.lib.annotations.Accessors; -import org.eclipse.xtend.lib.annotations.ToString; -import org.eclipse.xtext.formatting2.FormatterPreferenceKeys; -import org.eclipse.xtext.formatting2.FormatterPreferences; -import org.eclipse.xtext.preferences.IPreferenceValues; -import org.eclipse.xtext.preferences.IPreferenceValuesProvider; -import org.eclipse.xtext.preferences.MapBasedPreferenceValues; -import org.eclipse.xtext.resource.FileExtensionProvider; -import org.eclipse.xtext.resource.IResourceFactory; -import org.eclipse.xtext.resource.XtextResource; -import org.eclipse.xtext.service.OperationCanceledManager; -import org.eclipse.xtext.util.CancelIndicator; -import org.eclipse.xtext.util.StringInputStream; -import org.eclipse.xtext.util.TextRegion; -import org.eclipse.xtext.util.concurrent.CancelableUnitOfWork; -import org.eclipse.xtext.util.internal.Log; -import org.eclipse.xtext.web.server.IServiceContext; -import org.eclipse.xtext.web.server.IServiceResult; -import org.eclipse.xtext.web.server.ISession; -import org.eclipse.xtext.web.server.InvalidRequestException; -import org.eclipse.xtext.web.server.ServiceConflictResult; -import org.eclipse.xtext.web.server.contentassist.ContentAssistService; -import org.eclipse.xtext.web.server.formatting.FormattingService; -import org.eclipse.xtext.web.server.generator.GeneratorService; -import org.eclipse.xtext.web.server.hover.HoverResult; -import org.eclipse.xtext.web.server.hover.HoverService; -import org.eclipse.xtext.web.server.model.DocumentStateResult; -import org.eclipse.xtext.web.server.model.IWebDocumentProvider; -import org.eclipse.xtext.web.server.model.IWebResourceSetProvider; -import org.eclipse.xtext.web.server.model.IXtextWebDocument; -import org.eclipse.xtext.web.server.model.PrecomputedServiceRegistry; -import org.eclipse.xtext.web.server.model.UpdateDocumentService; -import org.eclipse.xtext.web.server.model.XtextWebDocument; -import org.eclipse.xtext.web.server.model.XtextWebDocumentAccess; -import org.eclipse.xtext.web.server.occurrences.OccurrencesService; -import org.eclipse.xtext.web.server.persistence.IServerResourceHandler; -import org.eclipse.xtext.web.server.persistence.ResourceContentResult; -import org.eclipse.xtext.web.server.persistence.ResourcePersistenceService; -import org.eclipse.xtext.web.server.syntaxcoloring.HighlightingService; -import org.eclipse.xtext.web.server.validation.ValidationService; -import org.eclipse.xtext.xbase.lib.CollectionLiterals; -import org.eclipse.xtext.xbase.lib.Exceptions; -import org.eclipse.xtext.xbase.lib.Functions.Function0; -import org.eclipse.xtext.xbase.lib.Functions.Function1; -import org.eclipse.xtext.xbase.lib.IterableExtensions; -import org.eclipse.xtext.xbase.lib.ObjectExtensions; -import org.eclipse.xtext.xbase.lib.Pair; -import org.eclipse.xtext.xbase.lib.Procedures.Procedure1; -import org.eclipse.xtext.xbase.lib.Pure; -import org.eclipse.xtext.xbase.lib.StringExtensions; -import org.eclipse.xtext.xbase.lib.util.ToStringBuilder; - -/** - * The entry class for Xtext service invocations. Use {@link #getService(IServiceContext)} - * to obtain a {@link XtextServiceDispatcher.ServiceDescriptor} for a client request. The service - * descriptor has some metadata that may influence the message format expected for the request, and - * may lead to a rejection of the request. - * - *

A typical usage can look like this:

- *
- * val serviceDispatcher = injector.getInstance(XtextServiceDispatcher)
- * val serviceDescriptor = serviceDispatcher.getService(serviceContext)
- * // Check whether the service metadata fits to the request format
- * ...
- * val result = serviceDescriptor.service.apply()
- * // Serialize and send the result back to the client
- * ...
- * 
- */ -@Singleton -@Log -@SuppressWarnings("all") -public class XtextServiceDispatcher { - /** - * Service metadata, including a function for actually invoking the service. - */ - @Accessors - @ToString - public static class ServiceDescriptor { - /** - * Context information such as request parameters and session data. - */ - private IServiceContext context; - - /** - * The function for invoking the service. - */ - private Function0 service; - - /** - * Whether the service has any side effects apart from initializing data in the session. - */ - private boolean hasSideEffects; - - /** - * Whether one of the preconditions of the service does not match, e.g. because it is in - * conflict with another request. - */ - private boolean hasConflict; - - @Pure - public IServiceContext getContext() { - return this.context; - } - - public void setContext(final IServiceContext context) { - this.context = context; - } - - @Pure - public Function0 getService() { - return this.service; - } - - public void setService(final Function0 service) { - this.service = service; - } - - @Pure - public boolean isHasSideEffects() { - return this.hasSideEffects; - } - - public void setHasSideEffects(final boolean hasSideEffects) { - this.hasSideEffects = hasSideEffects; - } - - @Pure - public boolean isHasConflict() { - return this.hasConflict; - } - - public void setHasConflict(final boolean hasConflict) { - this.hasConflict = hasConflict; - } - - @Override - @Pure - public String toString() { - ToStringBuilder b = new ToStringBuilder(this); - b.add("context", this.context); - b.add("service", this.service); - b.add("hasSideEffects", this.hasSideEffects); - b.add("hasConflict", this.hasConflict); - return b.toString(); - } - } - - @Inject(optional = true) - @FormatterPreferences - private IPreferenceValuesProvider formatterPreferencesProvider; - - @Inject - private ResourcePersistenceService resourcePersistenceService; - - @Inject - private UpdateDocumentService updateDocumentService; - - @Inject - private ContentAssistService contentAssistService; - - @Inject - private ValidationService validationService; - - @Inject - private HighlightingService highlightingService; - - @Inject - private HoverService hoverService; - - @Inject - private OccurrencesService occurrencesService; - - @Inject - private FormattingService formattingService; - - @Inject - private GeneratorService generatorService; - - @Inject - private IServerResourceHandler resourceHandler; - - @Inject - private IWebResourceSetProvider resourceSetProvider; - - @Inject - private IWebDocumentProvider documentProvider; - - @Inject - private FileExtensionProvider fileExtensionProvider; - - @Inject - private IResourceFactory resourceFactory; - - @Inject - private OperationCanceledManager operationCanceledManager; - - @Inject - private XtextWebDocumentAccess.Factory documentAccessFactory; - - private final Random randomGenerator = new Random(); - - @Inject - protected void registerPreComputedServices(final PrecomputedServiceRegistry registry) { - registry.addPrecomputedService(this.highlightingService); - registry.addPrecomputedService(this.validationService); - } - - /** - * Create a service descriptor according to the parameters given in the service context. - */ - public XtextServiceDispatcher.ServiceDescriptor getService(final IServiceContext context) throws InvalidRequestException { - final String serviceType = context.getParameter(IServiceContext.SERVICE_TYPE); - if ((serviceType == null)) { - throw new InvalidRequestException.InvalidParametersException("The parameter \'serviceType\' is required."); - } - boolean _isTraceEnabled = XtextServiceDispatcher.LOG.isTraceEnabled(); - if (_isTraceEnabled) { - final Function1 _function = (String key) -> { - String _xblockexpression = null; - { - final String value = context.getParameter(key); - String _xifexpression = null; - int _length = value.length(); - boolean _greaterThan = (_length > 18); - if (_greaterThan) { - String _substring = value.substring(0, 16); - String _plus = ((key + "=\'") + _substring); - _xifexpression = (_plus + "...\'"); - } else { - String _xifexpression_1 = null; - boolean _matches = value.matches(".*\\s+.*"); - if (_matches) { - _xifexpression_1 = (((key + "=\'") + value) + "\'"); - } else { - _xifexpression_1 = ((key + "=") + value); - } - _xifexpression = _xifexpression_1; - } - _xblockexpression = _xifexpression; - } - return _xblockexpression; - }; - final String stringParams = IterableExtensions.join(IterableExtensions.sort(context.getParameterKeys()), ": ", ", ", "", _function).replaceAll("(\\n|\\f|\\r)+", " "); - XtextServiceDispatcher.LOG.trace((("xtext-service/" + serviceType) + stringParams)); - } - try { - XtextServiceDispatcher.ServiceDescriptor _createServiceDescriptor = this.createServiceDescriptor(serviceType, context); - final Procedure1 _function_1 = (XtextServiceDispatcher.ServiceDescriptor it) -> { - it.context = context; - }; - return ObjectExtensions.operator_doubleArrow(_createServiceDescriptor, _function_1); - } catch (final Throwable _t) { - if (_t instanceof InvalidRequestException.InvalidDocumentStateException) { - final InvalidRequestException.InvalidDocumentStateException ire = (InvalidRequestException.InvalidDocumentStateException)_t; - XtextServiceDispatcher.LOG.trace((("Invalid document state (" + serviceType) + ")")); - XtextServiceDispatcher.ServiceDescriptor _serviceDescriptor = new XtextServiceDispatcher.ServiceDescriptor(); - final Procedure1 _function_2 = (XtextServiceDispatcher.ServiceDescriptor it) -> { - it.context = context; - final Function0 _function_3 = () -> { - return new ServiceConflictResult("invalidStateId"); - }; - it.service = _function_3; - it.hasConflict = true; - }; - return ObjectExtensions.operator_doubleArrow(_serviceDescriptor, _function_2); - } else { - throw Exceptions.sneakyThrow(_t); - } - } - } - - /** - * Do the actual dispatching by delegating to a service descriptor creation method depending on the service type. - * Override this method if you want to add more services to the dispatcher. - */ - protected XtextServiceDispatcher.ServiceDescriptor createServiceDescriptor(final String serviceType, final IServiceContext context) { - XtextServiceDispatcher.ServiceDescriptor _switchResult = null; - if (serviceType != null) { - switch (serviceType) { - case "load": - _switchResult = this.getLoadResourceService(false, context); - break; - case "revert": - _switchResult = this.getLoadResourceService(true, context); - break; - case "save": - _switchResult = this.getSaveResourceService(context); - break; - case "update": - _switchResult = this.getUpdateDocumentService(context); - break; - case "assist": - _switchResult = this.getContentAssistService(context); - break; - case "validate": - _switchResult = this.getValidationService(context); - break; - case "hover": - _switchResult = this.getHoverService(context); - break; - case "highlight": - _switchResult = this.getHighlightingService(context); - break; - case "occurrences": - _switchResult = this.getOccurrencesService(context); - break; - case "format": - _switchResult = this.getFormattingService(context); - break; - case "generate": - _switchResult = this.getGeneratorService(context); - break; - default: - throw new InvalidRequestException.InvalidParametersException((("The service type \'" + serviceType) + "\' is not supported.")); - } - } else { - throw new InvalidRequestException.InvalidParametersException((("The service type \'" + serviceType) + "\' is not supported.")); - } - return _switchResult; - } - - protected XtextServiceDispatcher.ServiceDescriptor getLoadResourceService(final boolean revert, final IServiceContext context) throws InvalidRequestException { - XtextServiceDispatcher.ServiceDescriptor _xblockexpression = null; - { - final String resourceId = this.getResourceID(context); - if ((resourceId == null)) { - throw new InvalidRequestException.InvalidParametersException("The parameter \'resource\' is required."); - } - XtextServiceDispatcher.ServiceDescriptor _serviceDescriptor = new XtextServiceDispatcher.ServiceDescriptor(); - final Procedure1 _function = (XtextServiceDispatcher.ServiceDescriptor it) -> { - final Function0 _function_1 = () -> { - IServiceResult _xtrycatchfinallyexpression = null; - try { - ResourceContentResult _xifexpression = null; - if (revert) { - _xifexpression = this.resourcePersistenceService.revert(resourceId, this.resourceHandler, context); - } else { - _xifexpression = this.resourcePersistenceService.load(resourceId, this.resourceHandler, context); - } - _xtrycatchfinallyexpression = _xifexpression; - } catch (final Throwable _t) { - if (_t instanceof Throwable) { - final Throwable throwable = (Throwable)_t; - _xtrycatchfinallyexpression = this.handleError(it, throwable); - } else { - throw Exceptions.sneakyThrow(_t); - } - } - return _xtrycatchfinallyexpression; - }; - it.service = _function_1; - it.hasSideEffects = revert; - }; - _xblockexpression = ObjectExtensions.operator_doubleArrow(_serviceDescriptor, _function); - } - return _xblockexpression; - } - - protected XtextServiceDispatcher.ServiceDescriptor getSaveResourceService(final IServiceContext context) throws InvalidRequestException { - XtextServiceDispatcher.ServiceDescriptor _xblockexpression = null; - { - final XtextWebDocumentAccess document = this.getDocumentAccess(context); - XtextServiceDispatcher.ServiceDescriptor _serviceDescriptor = new XtextServiceDispatcher.ServiceDescriptor(); - final Procedure1 _function = (XtextServiceDispatcher.ServiceDescriptor it) -> { - final Function0 _function_1 = () -> { - IServiceResult _xtrycatchfinallyexpression = null; - try { - _xtrycatchfinallyexpression = this.resourcePersistenceService.save(document, this.resourceHandler, context); - } catch (final Throwable _t) { - if (_t instanceof Throwable) { - final Throwable throwable = (Throwable)_t; - _xtrycatchfinallyexpression = this.handleError(it, throwable); - } else { - throw Exceptions.sneakyThrow(_t); - } - } - return _xtrycatchfinallyexpression; - }; - it.service = _function_1; - it.hasSideEffects = true; - }; - _xblockexpression = ObjectExtensions.operator_doubleArrow(_serviceDescriptor, _function); - } - return _xblockexpression; - } - - protected XtextServiceDispatcher.ServiceDescriptor getUpdateDocumentService(final IServiceContext context) throws InvalidRequestException { - final String resourceId = this.getResourceID(context); - if ((resourceId == null)) { - throw new InvalidRequestException.InvalidParametersException("The parameter \'resource\' is required."); - } - final String fullText = context.getParameter("fullText"); - XtextWebDocument document = this.getResourceDocument(resourceId, context); - final boolean initializedFromFullText = (document == null); - if (initializedFromFullText) { - if ((fullText == null)) { - throw new InvalidRequestException.ResourceNotFoundException("The requested resource was not found."); - } - document = this.getFullTextDocument(fullText, resourceId, context); - } - final XtextWebDocumentAccess documentAccess = this.documentAccessFactory.create(document, context.getParameter("requiredStateId"), false); - XtextServiceDispatcher.ServiceDescriptor _serviceDescriptor = new XtextServiceDispatcher.ServiceDescriptor(); - final Procedure1 _function = (XtextServiceDispatcher.ServiceDescriptor it) -> { - it.hasSideEffects = true; - }; - final XtextServiceDispatcher.ServiceDescriptor result = ObjectExtensions.operator_doubleArrow(_serviceDescriptor, _function); - if ((fullText == null)) { - final String deltaText = context.getParameter("deltaText"); - if ((deltaText == null)) { - throw new InvalidRequestException.InvalidParametersException("One of the parameters \'deltaText\' and \'fullText\' must be specified."); - } - final int deltaOffset = this.getInt(context, "deltaOffset", Optional.absent()); - if ((deltaOffset < 0)) { - throw new InvalidRequestException.InvalidParametersException("The parameter \'deltaOffset\' must not be negative."); - } - final int deltaReplaceLength = this.getInt(context, "deltaReplaceLength", Optional.absent()); - if ((deltaReplaceLength < 0)) { - throw new InvalidRequestException.InvalidParametersException("The parameter \'deltaReplaceLength\' must not be negative."); - } - final Function0 _function_1 = () -> { - IServiceResult _xtrycatchfinallyexpression = null; - try { - _xtrycatchfinallyexpression = this.updateDocumentService.updateDeltaText(documentAccess, deltaText, deltaOffset, deltaReplaceLength); - } catch (final Throwable _t) { - if (_t instanceof Throwable) { - final Throwable throwable = (Throwable)_t; - _xtrycatchfinallyexpression = this.handleError(result, throwable); - } else { - throw Exceptions.sneakyThrow(_t); - } - } - return _xtrycatchfinallyexpression; - }; - result.service = _function_1; - } else { - boolean _contains = context.getParameterKeys().contains("deltaText"); - if (_contains) { - throw new InvalidRequestException.InvalidParametersException("The parameters \'deltaText\' and \'fullText\' cannot be set in the same request."); - } - final Function0 _function_2 = () -> { - IServiceResult _xtrycatchfinallyexpression = null; - try { - DocumentStateResult _xifexpression = null; - if (initializedFromFullText) { - _xifexpression = this.updateDocumentService.getStateId(documentAccess); - } else { - _xifexpression = this.updateDocumentService.updateFullText(documentAccess, fullText); - } - _xtrycatchfinallyexpression = _xifexpression; - } catch (final Throwable _t) { - if (_t instanceof Throwable) { - final Throwable throwable = (Throwable)_t; - _xtrycatchfinallyexpression = this.handleError(result, throwable); - } else { - throw Exceptions.sneakyThrow(_t); - } - } - return _xtrycatchfinallyexpression; - }; - result.service = _function_2; - } - return result; - } - - protected XtextServiceDispatcher.ServiceDescriptor getContentAssistService(final IServiceContext context) throws InvalidRequestException { - XtextServiceDispatcher.ServiceDescriptor _xblockexpression = null; - { - final int offset = this.getInt(context, "caretOffset", Optional.of(Integer.valueOf(0))); - if ((offset < 0)) { - throw new InvalidRequestException.InvalidParametersException("The parameter \'offset\' must not be negative."); - } - final XtextWebDocumentAccess document = this.getDocumentAccess(context); - final int proposalsLimit = this.getInt(context, "proposalsLimit", Optional.of(Integer.valueOf(ContentAssistService.DEFAULT_PROPOSALS_LIMIT))); - if ((proposalsLimit <= 0)) { - throw new InvalidRequestException.InvalidParametersException("The parameter \'proposalsLimit\' must contain a positive integer."); - } - final int selectionStart = this.getInt(context, "selectionStart", Optional.of(Integer.valueOf(offset))); - final int selectionEnd = this.getInt(context, "selectionEnd", Optional.of(Integer.valueOf(selectionStart))); - int _max = Math.max((selectionEnd - selectionStart), 0); - final TextRegion selection = new TextRegion(selectionStart, _max); - final String deltaText = context.getParameter("deltaText"); - XtextServiceDispatcher.ServiceDescriptor _xifexpression = null; - if ((deltaText == null)) { - XtextServiceDispatcher.ServiceDescriptor _serviceDescriptor = new XtextServiceDispatcher.ServiceDescriptor(); - final Procedure1 _function = (XtextServiceDispatcher.ServiceDescriptor it) -> { - final Function0 _function_1 = () -> { - IServiceResult _xtrycatchfinallyexpression = null; - try { - _xtrycatchfinallyexpression = this.contentAssistService.createProposals(document, selection, offset, proposalsLimit); - } catch (final Throwable _t) { - if (_t instanceof Throwable) { - final Throwable throwable = (Throwable)_t; - _xtrycatchfinallyexpression = this.handleError(it, throwable); - } else { - throw Exceptions.sneakyThrow(_t); - } - } - return _xtrycatchfinallyexpression; - }; - it.service = _function_1; - }; - _xifexpression = ObjectExtensions.operator_doubleArrow(_serviceDescriptor, _function); - } else { - XtextServiceDispatcher.ServiceDescriptor _xblockexpression_1 = null; - { - boolean _contains = context.getParameterKeys().contains("fullText"); - if (_contains) { - throw new InvalidRequestException.InvalidParametersException("The parameters \'deltaText\' and \'fullText\' cannot be set in the same request."); - } - final int deltaOffset = this.getInt(context, "deltaOffset", Optional.absent()); - if ((deltaOffset < 0)) { - throw new InvalidRequestException.InvalidParametersException("The parameter \'deltaOffset\' must not be negative."); - } - final int deltaReplaceLength = this.getInt(context, "deltaReplaceLength", Optional.absent()); - if ((deltaReplaceLength < 0)) { - throw new InvalidRequestException.InvalidParametersException("The parameter \'deltaReplaceLength\' must not be negative."); - } - XtextServiceDispatcher.ServiceDescriptor _serviceDescriptor_1 = new XtextServiceDispatcher.ServiceDescriptor(); - final Procedure1 _function_1 = (XtextServiceDispatcher.ServiceDescriptor it) -> { - final Function0 _function_2 = () -> { - IServiceResult _xtrycatchfinallyexpression = null; - try { - _xtrycatchfinallyexpression = this.contentAssistService.createProposalsWithUpdate(document, deltaText, deltaOffset, deltaReplaceLength, selection, offset, proposalsLimit); - } catch (final Throwable _t) { - if (_t instanceof Throwable) { - final Throwable throwable = (Throwable)_t; - _xtrycatchfinallyexpression = this.handleError(it, throwable); - } else { - throw Exceptions.sneakyThrow(_t); - } - } - return _xtrycatchfinallyexpression; - }; - it.service = _function_2; - it.hasSideEffects = true; - }; - _xblockexpression_1 = ObjectExtensions.operator_doubleArrow(_serviceDescriptor_1, _function_1); - } - _xifexpression = _xblockexpression_1; - } - _xblockexpression = _xifexpression; - } - return _xblockexpression; - } - - protected XtextServiceDispatcher.ServiceDescriptor getValidationService(final IServiceContext context) throws InvalidRequestException { - XtextServiceDispatcher.ServiceDescriptor _xblockexpression = null; - { - final XtextWebDocumentAccess document = this.getDocumentAccess(context); - XtextServiceDispatcher.ServiceDescriptor _serviceDescriptor = new XtextServiceDispatcher.ServiceDescriptor(); - final Procedure1 _function = (XtextServiceDispatcher.ServiceDescriptor it) -> { - final Function0 _function_1 = () -> { - IServiceResult _xtrycatchfinallyexpression = null; - try { - _xtrycatchfinallyexpression = this.validationService.getResult(document); - } catch (final Throwable _t) { - if (_t instanceof Throwable) { - final Throwable throwable = (Throwable)_t; - _xtrycatchfinallyexpression = this.handleError(it, throwable); - } else { - throw Exceptions.sneakyThrow(_t); - } - } - return _xtrycatchfinallyexpression; - }; - it.service = _function_1; - }; - _xblockexpression = ObjectExtensions.operator_doubleArrow(_serviceDescriptor, _function); - } - return _xblockexpression; - } - - protected XtextServiceDispatcher.ServiceDescriptor getHoverService(final IServiceContext context) throws InvalidRequestException { - XtextServiceDispatcher.ServiceDescriptor _xblockexpression = null; - { - final XtextWebDocumentAccess document = this.getDocumentAccess(context); - final int offset = this.getInt(context, "caretOffset", Optional.of(Integer.valueOf(0))); - if ((offset < 0)) { - throw new InvalidRequestException.InvalidParametersException("The parameter \'offset\' must not be negative."); - } - final int selectionStart = this.getInt(context, "selectionStart", Optional.of(Integer.valueOf(offset))); - final int selectionEnd = this.getInt(context, "selectionEnd", Optional.of(Integer.valueOf(selectionStart))); - int _max = Math.max((selectionEnd - selectionStart), 0); - final TextRegion selection = new TextRegion(selectionStart, _max); - final String proposal = context.getParameter("proposal"); - XtextServiceDispatcher.ServiceDescriptor _serviceDescriptor = new XtextServiceDispatcher.ServiceDescriptor(); - final Procedure1 _function = (XtextServiceDispatcher.ServiceDescriptor it) -> { - final Function0 _function_1 = () -> { - IServiceResult _xtrycatchfinallyexpression = null; - try { - HoverResult _xifexpression = null; - boolean _isNullOrEmpty = StringExtensions.isNullOrEmpty(proposal); - if (_isNullOrEmpty) { - _xifexpression = this.hoverService.getHover(document, offset); - } else { - _xifexpression = this.hoverService.getHover(document, proposal, selection, offset); - } - _xtrycatchfinallyexpression = _xifexpression; - } catch (final Throwable _t) { - if (_t instanceof Throwable) { - final Throwable throwable = (Throwable)_t; - _xtrycatchfinallyexpression = this.handleError(it, throwable); - } else { - throw Exceptions.sneakyThrow(_t); - } - } - return _xtrycatchfinallyexpression; - }; - it.service = _function_1; - }; - _xblockexpression = ObjectExtensions.operator_doubleArrow(_serviceDescriptor, _function); - } - return _xblockexpression; - } - - protected XtextServiceDispatcher.ServiceDescriptor getHighlightingService(final IServiceContext context) throws InvalidRequestException { - XtextServiceDispatcher.ServiceDescriptor _xblockexpression = null; - { - final XtextWebDocumentAccess document = this.getDocumentAccess(context); - XtextServiceDispatcher.ServiceDescriptor _serviceDescriptor = new XtextServiceDispatcher.ServiceDescriptor(); - final Procedure1 _function = (XtextServiceDispatcher.ServiceDescriptor it) -> { - final Function0 _function_1 = () -> { - IServiceResult _xtrycatchfinallyexpression = null; - try { - _xtrycatchfinallyexpression = this.highlightingService.getResult(document); - } catch (final Throwable _t) { - if (_t instanceof Throwable) { - final Throwable throwable = (Throwable)_t; - _xtrycatchfinallyexpression = this.handleError(it, throwable); - } else { - throw Exceptions.sneakyThrow(_t); - } - } - return _xtrycatchfinallyexpression; - }; - it.service = _function_1; - }; - _xblockexpression = ObjectExtensions.operator_doubleArrow(_serviceDescriptor, _function); - } - return _xblockexpression; - } - - protected XtextServiceDispatcher.ServiceDescriptor getOccurrencesService(final IServiceContext context) throws InvalidRequestException { - XtextServiceDispatcher.ServiceDescriptor _xblockexpression = null; - { - final XtextWebDocumentAccess document = this.getDocumentAccess(context); - final int offset = this.getInt(context, "caretOffset", Optional.of(Integer.valueOf(0))); - if ((offset < 0)) { - throw new InvalidRequestException.InvalidParametersException("The parameter \'offset\' must not be negative."); - } - XtextServiceDispatcher.ServiceDescriptor _serviceDescriptor = new XtextServiceDispatcher.ServiceDescriptor(); - final Procedure1 _function = (XtextServiceDispatcher.ServiceDescriptor it) -> { - final Function0 _function_1 = () -> { - IServiceResult _xtrycatchfinallyexpression = null; - try { - _xtrycatchfinallyexpression = this.occurrencesService.findOccurrences(document, offset); - } catch (final Throwable _t) { - if (_t instanceof Throwable) { - final Throwable throwable = (Throwable)_t; - _xtrycatchfinallyexpression = this.handleError(it, throwable); - } else { - throw Exceptions.sneakyThrow(_t); - } - } - return _xtrycatchfinallyexpression; - }; - it.service = _function_1; - }; - _xblockexpression = ObjectExtensions.operator_doubleArrow(_serviceDescriptor, _function); - } - return _xblockexpression; - } - - /** - * @see FormatterPreferenceKeys - */ - protected XtextServiceDispatcher.ServiceDescriptor getFormattingService(final IServiceContext context) throws InvalidRequestException { - XtextServiceDispatcher.ServiceDescriptor _xblockexpression = null; - { - final XtextWebDocumentAccess document = this.getDocumentAccess(context); - final int selectionStart = this.getInt(context, "selectionStart", Optional.of(Integer.valueOf(0))); - final int selectionEnd = this.getInt(context, "selectionEnd", Optional.of(Integer.valueOf(selectionStart))); - final String lineSeparator = context.getParameter("lineSeparator"); - final String indentation = context.getParameter("indentation"); - final int indentationLength = this.getInt(context, "indentationLength", Optional.of(Integer.valueOf(4))); - final int maxLineWidth = this.getInt(context, "maxLineWidth", Optional.of(Integer.valueOf(120))); - final CancelableUnitOfWork _function = new CancelableUnitOfWork() { - @Override - public IPreferenceValues exec(final IXtextWebDocument $0, final CancelIndicator $1) throws Exception { - IPreferenceValues _preferenceValues = null; - if (XtextServiceDispatcher.this.formatterPreferencesProvider!=null) { - _preferenceValues=XtextServiceDispatcher.this.formatterPreferencesProvider.getPreferenceValues($0.getResource()); - } - return _preferenceValues; - } - }; - final IPreferenceValues formatterPreferences = document.readOnly(_function); - LinkedHashMap _newLinkedHashMap = CollectionLiterals.newLinkedHashMap(); - final MapBasedPreferenceValues preferences = new MapBasedPreferenceValues(formatterPreferences, _newLinkedHashMap); - preferences.put(FormatterPreferenceKeys.lineSeparator, lineSeparator); - preferences.put(FormatterPreferenceKeys.indentation, indentation); - preferences.put(FormatterPreferenceKeys.tabWidth, Integer.valueOf(indentationLength)); - preferences.put(FormatterPreferenceKeys.maxLineWidth, Integer.valueOf(maxLineWidth)); - TextRegion _xifexpression = null; - if ((selectionEnd > selectionStart)) { - _xifexpression = new TextRegion(selectionStart, (selectionEnd - selectionStart)); - } else { - _xifexpression = null; - } - final TextRegion selection = _xifexpression; - XtextServiceDispatcher.ServiceDescriptor _serviceDescriptor = new XtextServiceDispatcher.ServiceDescriptor(); - final Procedure1 _function_1 = (XtextServiceDispatcher.ServiceDescriptor it) -> { - final Function0 _function_2 = () -> { - IServiceResult _xtrycatchfinallyexpression = null; - try { - _xtrycatchfinallyexpression = this.formattingService.format(document, selection, preferences); - } catch (final Throwable _t) { - if (_t instanceof Throwable) { - final Throwable throwable = (Throwable)_t; - _xtrycatchfinallyexpression = this.handleError(it, throwable); - } else { - throw Exceptions.sneakyThrow(_t); - } - } - return _xtrycatchfinallyexpression; - }; - it.service = _function_2; - it.hasSideEffects = true; - }; - _xblockexpression = ObjectExtensions.operator_doubleArrow(_serviceDescriptor, _function_1); - } - return _xblockexpression; - } - - protected XtextServiceDispatcher.ServiceDescriptor getGeneratorService(final IServiceContext context) throws InvalidRequestException { - XtextServiceDispatcher.ServiceDescriptor _xblockexpression = null; - { - final XtextWebDocumentAccess document = this.getDocumentAccess(context); - final boolean allArtifacts = this.getBoolean(context, "allArtifacts", Optional.of(Boolean.valueOf(false))); - final boolean includeContent = this.getBoolean(context, "includeContent", Optional.of(Boolean.valueOf(true))); - XtextServiceDispatcher.ServiceDescriptor _serviceDescriptor = new XtextServiceDispatcher.ServiceDescriptor(); - final Procedure1 _function = (XtextServiceDispatcher.ServiceDescriptor it) -> { - if (allArtifacts) { - final Function0 _function_1 = () -> { - IServiceResult _xtrycatchfinallyexpression = null; - try { - _xtrycatchfinallyexpression = this.generatorService.getResult(document, includeContent); - } catch (final Throwable _t) { - if (_t instanceof Throwable) { - final Throwable throwable = (Throwable)_t; - _xtrycatchfinallyexpression = this.handleError(it, throwable); - } else { - throw Exceptions.sneakyThrow(_t); - } - } - return _xtrycatchfinallyexpression; - }; - it.service = _function_1; - } else { - final String artifactId = context.getParameter("artifact"); - final Function0 _function_2 = () -> { - IServiceResult _xtrycatchfinallyexpression = null; - try { - _xtrycatchfinallyexpression = this.generatorService.getArtifact(document, artifactId, includeContent); - } catch (final Throwable _t) { - if (_t instanceof Throwable) { - final Throwable throwable = (Throwable)_t; - _xtrycatchfinallyexpression = this.handleError(it, throwable); - } else { - throw Exceptions.sneakyThrow(_t); - } - } - return _xtrycatchfinallyexpression; - }; - it.service = _function_2; - } - }; - _xblockexpression = ObjectExtensions.operator_doubleArrow(_serviceDescriptor, _function); - } - return _xblockexpression; - } - - /** - * Retrieve the document access for the given service context. If the 'fullText' parameter is given, - * a new document containing that text is created. Otherwise the 'resource' parameter is used - * to load a resource and put it into the session store. - */ - protected XtextWebDocumentAccess getDocumentAccess(final IServiceContext context) throws InvalidRequestException { - XtextWebDocument document = null; - boolean initializedFromFullText = false; - boolean _contains = context.getParameterKeys().contains("fullText"); - if (_contains) { - document = this.getFullTextDocument(context.getParameter("fullText"), this.getResourceID(context), context); - initializedFromFullText = true; - } else { - boolean _contains_1 = context.getParameterKeys().contains("resource"); - if (_contains_1) { - document = this.getResourceDocument(this.getResourceID(context), context); - if ((document == null)) { - throw new InvalidRequestException.ResourceNotFoundException("The requested resource was not found."); - } - } else { - throw new InvalidRequestException.InvalidParametersException("At least one of the parameters \'resource\' and \'fullText\' must be specified."); - } - } - return this.documentAccessFactory.create(document, context.getParameter("requiredStateId"), initializedFromFullText); - } - - /** - * Returns the resource ID from the service context. Potentially null. - */ - protected String getResourceID(final IServiceContext context) { - return context.getParameter("resource"); - } - - /** - * Create a new document containing the given text. - */ - protected XtextWebDocument getFullTextDocument(final String fullText, final String resourceId, final IServiceContext context) { - try { - final ResourceSet resourceSet = this.resourceSetProvider.get(resourceId, context); - String _elvis = null; - if (resourceId != null) { - _elvis = resourceId; - } else { - String _hexString = Integer.toHexString(this.randomGenerator.nextInt()); - String _plus = (_hexString + "."); - String _primaryFileExtension = this.fileExtensionProvider.getPrimaryFileExtension(); - String _plus_1 = (_plus + _primaryFileExtension); - _elvis = _plus_1; - } - final URI uri = URI.createURI(_elvis); - Resource _createResource = this.resourceFactory.createResource(uri); - final XtextResource resource = ((XtextResource) _createResource); - final Resource existingResource = resourceSet.getResource(uri, false); - if ((existingResource != null)) { - resourceSet.getResources().remove(existingResource); - } - resourceSet.getResources().add(resource); - StringInputStream _stringInputStream = new StringInputStream(fullText); - resource.load(_stringInputStream, CollectionLiterals.emptyMap()); - final XtextWebDocument document = this.documentProvider.get(resourceId, context); - document.setInput(resource); - if ((resourceId != null)) { - ISession _session = context.getSession(); - Pair, String> _mappedTo = Pair., String>of(XtextWebDocument.class, resourceId); - _session.put(_mappedTo, document); - } - return document; - } catch (Throwable _e) { - throw Exceptions.sneakyThrow(_e); - } - } - - /** - * Obtain a document from the session store, and if it is not present there, ask the - * {@link IServerResourceHandler} to provide it. In case that resource handler fails - * to provide the document, {@code null} is returned instead. - */ - protected XtextWebDocument getResourceDocument(final String resourceId, final IServiceContext context) { - try { - ISession _session = context.getSession(); - Pair, String> _mappedTo = Pair., String>of(XtextWebDocument.class, resourceId); - final Function0 _function = () -> { - try { - return this.resourceHandler.get(resourceId, context); - } catch (Throwable _e) { - throw Exceptions.sneakyThrow(_e); - } - }; - final XtextWebDocument document = _session.get(_mappedTo, _function); - return document; - } catch (final Throwable _t) { - if (_t instanceof IOException) { - final IOException ioe = (IOException)_t; - return null; - } else { - throw Exceptions.sneakyThrow(_t); - } - } - } - - /** - * Read an string-valued parameter. If the parameter is not available, the - * {@code defaultValue} is returned. - * - * @throws InvalidRequestException.InvalidParametersException if the parameter - * is not available and {@code defaultValue} is absent - */ - protected String getString(final IServiceContext context, final String key, final Optional defaultValue) throws InvalidRequestException.InvalidParametersException { - final String stringValue = context.getParameter(key); - if ((stringValue == null)) { - boolean _isPresent = defaultValue.isPresent(); - boolean _not = (!_isPresent); - if (_not) { - throw new InvalidRequestException.InvalidParametersException((("The parameter \'" + key) + "\' must be specified.")); - } - return defaultValue.get(); - } - return stringValue; - } - - /** - * Read an integer-valued parameter. If the parameter is not available, the - * {@code defaultValue} is returned. - * - * @throws InvalidRequestException.InvalidParametersException if the parameter - * is not available and {@code defaultValue} is absent - */ - protected int getInt(final IServiceContext context, final String key, final Optional defaultValue) throws InvalidRequestException.InvalidParametersException { - final String stringValue = context.getParameter(key); - if ((stringValue == null)) { - boolean _isPresent = defaultValue.isPresent(); - boolean _not = (!_isPresent); - if (_not) { - throw new InvalidRequestException.InvalidParametersException((("The parameter \'" + key) + "\' must be specified.")); - } - return defaultValue.get().intValue(); - } - try { - return Integer.parseInt(stringValue); - } catch (final Throwable _t) { - if (_t instanceof NumberFormatException) { - final NumberFormatException nfe = (NumberFormatException)_t; - throw new InvalidRequestException.InvalidParametersException((("The parameter \'" + key) + "\' must contain an integer value.")); - } else { - throw Exceptions.sneakyThrow(_t); - } - } - } - - /** - * Read a Boolean-valued parameter. If the parameter is not available, the - * {@code defaultValue} is returned. - * - * @throws InvalidRequestException.InvalidParametersException if the parameter - * is not available and {@code defaultValue} is absent - */ - protected boolean getBoolean(final IServiceContext context, final String key, final Optional defaultValue) throws InvalidRequestException.InvalidParametersException { - final String stringValue = context.getParameter(key); - if ((stringValue == null)) { - boolean _isPresent = defaultValue.isPresent(); - boolean _not = (!_isPresent); - if (_not) { - throw new InvalidRequestException.InvalidParametersException((("The parameter \'" + key) + "\' must be specified.")); - } - return defaultValue.get().booleanValue(); - } - String _lowerCase = stringValue.toLowerCase(); - if (_lowerCase != null) { - switch (_lowerCase) { - case "true": - return true; - case "false": - return false; - default: - throw new InvalidRequestException.InvalidParametersException((("The parameter \'" + key) + "\' must contain a Boolean value.")); - } - } else { - throw new InvalidRequestException.InvalidParametersException((("The parameter \'" + key) + "\' must contain a Boolean value.")); - } - } - - protected ServiceConflictResult _handleError(final XtextServiceDispatcher.ServiceDescriptor service, final Throwable throwable) { - try { - boolean _isOperationCanceledException = this.operationCanceledManager.isOperationCanceledException(throwable); - if (_isOperationCanceledException) { - String _parameter = service.context.getParameter(IServiceContext.SERVICE_TYPE); - String _plus = ("Service canceled (" + _parameter); - String _plus_1 = (_plus + ")"); - XtextServiceDispatcher.LOG.trace(_plus_1); - return new ServiceConflictResult("canceled"); - } - throw throwable; - } catch (Throwable _e) { - throw Exceptions.sneakyThrow(_e); - } - } - - protected ServiceConflictResult _handleError(final XtextServiceDispatcher.ServiceDescriptor service, final InvalidRequestException.InvalidDocumentStateException exception) { - String _parameter = service.context.getParameter(IServiceContext.SERVICE_TYPE); - String _plus = ("Invalid document state (" + _parameter); - String _plus_1 = (_plus + ")"); - XtextServiceDispatcher.LOG.trace(_plus_1); - return new ServiceConflictResult("invalidStateId"); - } - - protected ServiceConflictResult handleError(final XtextServiceDispatcher.ServiceDescriptor service, final Throwable exception) { - if (exception instanceof InvalidRequestException.InvalidDocumentStateException) { - return _handleError(service, (InvalidRequestException.InvalidDocumentStateException)exception); - } else if (exception != null) { - return _handleError(service, exception); - } else { - throw new IllegalArgumentException("Unhandled parameter types: " + - Arrays.asList(service, exception).toString()); - } - } - - private final static Logger LOG = Logger.getLogger(XtextServiceDispatcher.class); -} diff --git a/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/contentassist/ContentAssistResult.java b/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/contentassist/ContentAssistResult.java deleted file mode 100644 index 7dc52b5bfdf..00000000000 --- a/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/contentassist/ContentAssistResult.java +++ /dev/null @@ -1,87 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.server.contentassist; - -import java.util.List; -import org.eclipse.xtend.lib.annotations.Data; -import org.eclipse.xtend.lib.annotations.ToString; -import org.eclipse.xtext.ide.editor.contentassist.ContentAssistEntry; -import org.eclipse.xtext.web.server.IServiceResult; -import org.eclipse.xtext.xbase.lib.CollectionLiterals; -import org.eclipse.xtext.xbase.lib.Pure; -import org.eclipse.xtext.xbase.lib.util.ToStringBuilder; - -/** - * Result object returned by the content assist service. - */ -@Data -@ToString(skipNulls = true) -@SuppressWarnings("all") -public class ContentAssistResult implements IServiceResult { - private final String stateId; - - private final List entries = CollectionLiterals.newArrayList(); - - public ContentAssistResult(final String stateId) { - super(); - this.stateId = stateId; - } - - @Override - @Pure - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((this.stateId== null) ? 0 : this.stateId.hashCode()); - result = prime * result + ((this.entries== null) ? 0 : this.entries.hashCode()); - return result; - } - - @Override - @Pure - public boolean equals(final Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - ContentAssistResult other = (ContentAssistResult) obj; - if (this.stateId == null) { - if (other.stateId != null) - return false; - } else if (!this.stateId.equals(other.stateId)) - return false; - if (this.entries == null) { - if (other.entries != null) - return false; - } else if (!this.entries.equals(other.entries)) - return false; - return true; - } - - @Override - @Pure - public String toString() { - ToStringBuilder b = new ToStringBuilder(this); - b.skipNulls(); - b.add("stateId", this.stateId); - b.add("entries", this.entries); - return b.toString(); - } - - @Pure - public String getStateId() { - return this.stateId; - } - - @Pure - public List getEntries() { - return this.entries; - } -} diff --git a/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/contentassist/ContentAssistService.java b/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/contentassist/ContentAssistService.java deleted file mode 100644 index 4de46313264..00000000000 --- a/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/contentassist/ContentAssistService.java +++ /dev/null @@ -1,190 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.server.contentassist; - -import com.google.inject.Inject; -import com.google.inject.Provider; -import com.google.inject.Singleton; -import java.util.Comparator; -import java.util.HashSet; -import java.util.List; -import java.util.concurrent.ExecutorService; -import org.eclipse.xtend.lib.annotations.AccessorType; -import org.eclipse.xtend.lib.annotations.Accessors; -import org.eclipse.xtext.ide.editor.contentassist.ContentAssistContext; -import org.eclipse.xtext.ide.editor.contentassist.ContentAssistEntry; -import org.eclipse.xtext.ide.editor.contentassist.IIdeContentProposalAcceptor; -import org.eclipse.xtext.ide.editor.contentassist.IdeContentProposalProvider; -import org.eclipse.xtext.ide.editor.contentassist.antlr.ContentAssistContextFactory; -import org.eclipse.xtext.util.CancelIndicator; -import org.eclipse.xtext.util.ITextRegion; -import org.eclipse.xtext.util.concurrent.CancelableUnitOfWork; -import org.eclipse.xtext.web.server.InvalidRequestException; -import org.eclipse.xtext.web.server.contentassist.ContentAssistResult; -import org.eclipse.xtext.web.server.model.IXtextWebDocument; -import org.eclipse.xtext.web.server.model.XtextWebDocumentAccess; -import org.eclipse.xtext.xbase.lib.Conversions; -import org.eclipse.xtext.xbase.lib.Functions.Function1; -import org.eclipse.xtext.xbase.lib.IterableExtensions; -import org.eclipse.xtext.xbase.lib.ListExtensions; -import org.eclipse.xtext.xbase.lib.ObjectExtensions; -import org.eclipse.xtext.xbase.lib.Pair; -import org.eclipse.xtext.xbase.lib.Procedures.Procedure1; -import org.eclipse.xtext.xbase.lib.Pure; - -/** - * Service class for content assist proposals. - */ -@Singleton -@SuppressWarnings("all") -public class ContentAssistService { - public final static int DEFAULT_PROPOSALS_LIMIT = 1000; - - @Inject - private Provider contextFactoryProvider; - - @Inject - private ExecutorService executorService; - - @Accessors(AccessorType.PUBLIC_GETTER) - @Inject - private IdeContentProposalProvider proposalProvider; - - /** - * Create content assist proposals at the given caret offset. This document read operation - * is scheduled with higher priority, so currently running operations may be canceled. - * The document processing is rescheduled as background work afterwards. - */ - public ContentAssistResult createProposals(final XtextWebDocumentAccess document, final ITextRegion selection, final int caretOffset, final int proposalsLimit) throws InvalidRequestException { - final String[] stateIdWrapper = new String[1]; - final CancelableUnitOfWork _function = new CancelableUnitOfWork() { - @Override - public ContentAssistContext[] exec(final IXtextWebDocument it, final CancelIndicator cancelIndicator) throws Exception { - ContentAssistContext[] _xblockexpression = null; - { - stateIdWrapper[0] = it.getStateId(); - _xblockexpression = ContentAssistService.this.getContexts(it, selection, caretOffset); - } - return _xblockexpression; - } - }; - final ContentAssistContext[] contexts = document.priorityReadOnly(_function); - return this.createProposals(((List)Conversions.doWrapArray(contexts)), stateIdWrapper[0], proposalsLimit); - } - - /** - * Apply a text update and then create content assist proposals. This document read operation - * is scheduled with higher priority, so currently running operations may be canceled. - * The document processing is rescheduled as background work afterwards. - */ - public ContentAssistResult createProposalsWithUpdate(final XtextWebDocumentAccess document, final String deltaText, final int deltaOffset, final int deltaReplaceLength, final ITextRegion selection, final int caretOffset, final int proposalsLimit) throws InvalidRequestException { - final String[] stateIdWrapper = new String[1]; - final CancelableUnitOfWork _function = new CancelableUnitOfWork() { - @Override - public ContentAssistContext[] exec(final IXtextWebDocument it, final CancelIndicator cancelIndicator) throws Exception { - ContentAssistContext[] _xblockexpression = null; - { - it.setDirty(true); - it.createNewStateId(); - stateIdWrapper[0] = it.getStateId(); - it.updateText(deltaText, deltaOffset, deltaReplaceLength); - _xblockexpression = ContentAssistService.this.getContexts(it, selection, caretOffset); - } - return _xblockexpression; - } - }; - final ContentAssistContext[] contexts = document.modify(_function); - return this.createProposals(((List)Conversions.doWrapArray(contexts)), stateIdWrapper[0], proposalsLimit); - } - - public ContentAssistContext[] getContexts(final IXtextWebDocument document, final ITextRegion selection, final int caretOffset) { - ContentAssistContext[] _xblockexpression = null; - { - int _length = document.getText().length(); - boolean _greaterThan = (caretOffset > _length); - if (_greaterThan) { - return new ContentAssistContext[] {}; - } - ContentAssistContextFactory _get = this.contextFactoryProvider.get(); - final Procedure1 _function = (ContentAssistContextFactory it) -> { - it.setPool(this.executorService); - }; - final ContentAssistContextFactory contextFactory = ObjectExtensions.operator_doubleArrow(_get, _function); - _xblockexpression = contextFactory.create(document.getText(), selection, caretOffset, document.getResource()); - } - return _xblockexpression; - } - - /** - * Invoke the proposal provider and put the results into a {@link ContentAssistResult} object. - */ - protected ContentAssistResult createProposals(final List contexts, final String stateId, final int proposalsLimit) { - final ContentAssistResult result = new ContentAssistResult(stateId); - boolean _isEmpty = contexts.isEmpty(); - boolean _not = (!_isEmpty); - if (_not) { - final HashSet> proposals = new HashSet>(); - final IIdeContentProposalAcceptor acceptor = new IIdeContentProposalAcceptor() { - @Override - public void accept(final ContentAssistEntry entry, final int priority) { - if ((entry != null)) { - String _proposal = entry.getProposal(); - boolean _tripleEquals = (_proposal == null); - if (_tripleEquals) { - throw new IllegalArgumentException("proposal must not be null."); - } - Pair _mappedTo = Pair.of(Integer.valueOf(priority), entry); - proposals.add(_mappedTo); - } - } - - @Override - public boolean canAcceptMoreProposals() { - int _size = proposals.size(); - return (_size < proposalsLimit); - } - }; - this.proposalProvider.createProposals(contexts, acceptor); - final Comparator> _function = (Pair p1, Pair p2) -> { - final int prioResult = p2.getKey().compareTo(p1.getKey()); - if ((prioResult != 0)) { - return prioResult; - } - String _elvis = null; - String _label = p1.getValue().getLabel(); - if (_label != null) { - _elvis = _label; - } else { - String _proposal = p1.getValue().getProposal(); - _elvis = _proposal; - } - final String s1 = _elvis; - String _elvis_1 = null; - String _label_1 = p2.getValue().getLabel(); - if (_label_1 != null) { - _elvis_1 = _label_1; - } else { - String _proposal_1 = p2.getValue().getProposal(); - _elvis_1 = _proposal_1; - } - final String s2 = _elvis_1; - return s1.compareTo(s2); - }; - final Function1, ContentAssistEntry> _function_1 = (Pair it) -> { - return it.getValue(); - }; - result.getEntries().addAll(ListExtensions., ContentAssistEntry>map(IterableExtensions.>sortWith(proposals, _function), _function_1)); - } - return result; - } - - @Pure - public IdeContentProposalProvider getProposalProvider() { - return this.proposalProvider; - } -} diff --git a/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/formatting/FormattingResult.java b/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/formatting/FormattingResult.java deleted file mode 100644 index f01275d961d..00000000000 --- a/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/formatting/FormattingResult.java +++ /dev/null @@ -1,101 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.server.formatting; - -import org.eclipse.xtend.lib.annotations.Data; -import org.eclipse.xtend.lib.annotations.ToString; -import org.eclipse.xtext.util.TextRegion; -import org.eclipse.xtext.web.server.IServiceResult; -import org.eclipse.xtext.xbase.lib.Pure; -import org.eclipse.xtext.xbase.lib.util.ToStringBuilder; - -/** - * Result object returned by the formatting service. - */ -@Data -@ToString(skipNulls = true) -@SuppressWarnings("all") -public class FormattingResult implements IServiceResult { - private final String stateId; - - private final String formattedText; - - private final TextRegion replaceRegion; - - public FormattingResult(final String stateId, final String formattedText, final TextRegion replaceRegion) { - super(); - this.stateId = stateId; - this.formattedText = formattedText; - this.replaceRegion = replaceRegion; - } - - @Override - @Pure - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((this.stateId== null) ? 0 : this.stateId.hashCode()); - result = prime * result + ((this.formattedText== null) ? 0 : this.formattedText.hashCode()); - result = prime * result + ((this.replaceRegion== null) ? 0 : this.replaceRegion.hashCode()); - return result; - } - - @Override - @Pure - public boolean equals(final Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - FormattingResult other = (FormattingResult) obj; - if (this.stateId == null) { - if (other.stateId != null) - return false; - } else if (!this.stateId.equals(other.stateId)) - return false; - if (this.formattedText == null) { - if (other.formattedText != null) - return false; - } else if (!this.formattedText.equals(other.formattedText)) - return false; - if (this.replaceRegion == null) { - if (other.replaceRegion != null) - return false; - } else if (!this.replaceRegion.equals(other.replaceRegion)) - return false; - return true; - } - - @Override - @Pure - public String toString() { - ToStringBuilder b = new ToStringBuilder(this); - b.skipNulls(); - b.add("stateId", this.stateId); - b.add("formattedText", this.formattedText); - b.add("replaceRegion", this.replaceRegion); - return b.toString(); - } - - @Pure - public String getStateId() { - return this.stateId; - } - - @Pure - public String getFormattedText() { - return this.formattedText; - } - - @Pure - public TextRegion getReplaceRegion() { - return this.replaceRegion; - } -} diff --git a/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/formatting/FormattingService.java b/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/formatting/FormattingService.java deleted file mode 100644 index d271ef55e05..00000000000 --- a/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/formatting/FormattingService.java +++ /dev/null @@ -1,152 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.server.formatting; - -import com.google.inject.Inject; -import com.google.inject.Provider; -import com.google.inject.Singleton; -import java.util.Collections; -import java.util.List; -import org.eclipse.xtext.formatting.INodeModelFormatter; -import org.eclipse.xtext.formatting2.FormatterRequest; -import org.eclipse.xtext.formatting2.IFormatter2; -import org.eclipse.xtext.formatting2.regionaccess.ITextRegionAccess; -import org.eclipse.xtext.formatting2.regionaccess.ITextRegionRewriter; -import org.eclipse.xtext.formatting2.regionaccess.ITextReplacement; -import org.eclipse.xtext.formatting2.regionaccess.TextRegionAccessBuilder; -import org.eclipse.xtext.formatting2.regionaccess.internal.TextSegment; -import org.eclipse.xtext.nodemodel.ICompositeNode; -import org.eclipse.xtext.parser.IParseResult; -import org.eclipse.xtext.preferences.ITypedPreferenceValues; -import org.eclipse.xtext.resource.XtextResource; -import org.eclipse.xtext.util.CancelIndicator; -import org.eclipse.xtext.util.ITextRegion; -import org.eclipse.xtext.util.TextRegion; -import org.eclipse.xtext.util.Wrapper; -import org.eclipse.xtext.util.concurrent.CancelableUnitOfWork; -import org.eclipse.xtext.web.server.InvalidRequestException; -import org.eclipse.xtext.web.server.formatting.FormattingResult; -import org.eclipse.xtext.web.server.model.IXtextWebDocument; -import org.eclipse.xtext.web.server.model.XtextWebDocumentAccess; -import org.eclipse.xtext.xbase.lib.CollectionLiterals; - -/** - * Service class for text formatting. - */ -@Singleton -@SuppressWarnings("all") -public class FormattingService { - @Inject(optional = true) - private INodeModelFormatter formatter1; - - @Inject(optional = true) - private Provider formatter2Provider; - - @Inject - private Provider formatterRequestProvider; - - @Inject - private TextRegionAccessBuilder regionBuilder; - - /** - * Format the given document. This operation modifies the document content and returns the - */ - public FormattingResult format(final XtextWebDocumentAccess document, final ITextRegion selection, final ITypedPreferenceValues preferences) throws InvalidRequestException { - FormattingResult _xblockexpression = null; - { - final Wrapper textWrapper = new Wrapper(); - final Wrapper regionWrapper = new Wrapper(); - final CancelableUnitOfWork _function = new CancelableUnitOfWork() { - @Override - public FormattingResult exec(final IXtextWebDocument it, final CancelIndicator cancelIndicator) throws Exception { - if ((FormattingService.this.formatter2Provider != null)) { - textWrapper.set(FormattingService.this.format2(it.getResource(), selection, preferences)); - if ((selection != null)) { - int _offset = selection.getOffset(); - int _length = selection.getLength(); - TextRegion _textRegion = new TextRegion(_offset, _length); - regionWrapper.set(_textRegion); - } - } else { - if ((FormattingService.this.formatter1 != null)) { - final INodeModelFormatter.IFormattedRegion formattedRegion = FormattingService.this.format1(it.getResource(), selection); - textWrapper.set(formattedRegion.getFormattedText()); - int _offset_1 = formattedRegion.getOffset(); - int _length_1 = formattedRegion.getLength(); - TextRegion _textRegion_1 = new TextRegion(_offset_1, _length_1); - regionWrapper.set(_textRegion_1); - } else { - throw new IllegalStateException("No formatter is available in the language configuration."); - } - } - it.setDirty(true); - it.createNewStateId(); - String _stateId = it.getStateId(); - String _get = textWrapper.get(); - TextRegion _get_1 = regionWrapper.get(); - return new FormattingResult(_stateId, _get, _get_1); - } - }; - final CancelableUnitOfWork _function_1 = new CancelableUnitOfWork() { - @Override - public Object exec(final IXtextWebDocument it, final CancelIndicator cancelIndicator) throws Exception { - boolean _isEmpty = regionWrapper.isEmpty(); - if (_isEmpty) { - it.setText(textWrapper.get()); - } else { - it.updateText(textWrapper.get(), regionWrapper.get().getOffset(), regionWrapper.get().getLength()); - } - return null; - } - }; - _xblockexpression = document.modify(_function, _function_1); - } - return _xblockexpression; - } - - protected INodeModelFormatter.IFormattedRegion format1(final XtextResource resource, final ITextRegion selection) { - final IParseResult parseResult = resource.getParseResult(); - if ((parseResult == null)) { - return null; - } - final ICompositeNode rootNode = parseResult.getRootNode(); - ITextRegion region = selection; - if ((region == null)) { - int _offset = rootNode.getOffset(); - int _length = rootNode.getLength(); - TextRegion _textRegion = new TextRegion(_offset, _length); - region = _textRegion; - } - return this.formatter1.format(rootNode, region.getOffset(), region.getLength()); - } - - protected String format2(final XtextResource resource, final ITextRegion selection, final ITypedPreferenceValues preferences) { - final FormatterRequest request = this.formatterRequestProvider.get(); - request.setAllowIdentityEdits(false); - request.setFormatUndefinedHiddenRegionsOnly(false); - if ((selection != null)) { - request.setRegions(Collections.unmodifiableList(CollectionLiterals.newArrayList(selection))); - } - if ((preferences != null)) { - request.setPreferences(preferences); - } - final ITextRegionAccess regionAccess = this.regionBuilder.forNodeModel(resource).create(); - request.setTextRegionAccess(regionAccess); - final IFormatter2 formatter2 = this.formatter2Provider.get(); - final List replacements = formatter2.format(request); - if ((selection != null)) { - ITextRegionRewriter _rewriter = regionAccess.getRewriter(); - int _offset = selection.getOffset(); - int _length = selection.getLength(); - TextSegment _textSegment = new TextSegment(regionAccess, _offset, _length); - return _rewriter.renderToString(_textSegment, replacements); - } else { - return regionAccess.getRewriter().renderToString(replacements); - } - } -} diff --git a/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/generator/DefaultContentTypeProvider.java b/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/generator/DefaultContentTypeProvider.java deleted file mode 100644 index 9dab2fbe9f5..00000000000 --- a/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/generator/DefaultContentTypeProvider.java +++ /dev/null @@ -1,26 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.server.generator; - -import java.net.URLConnection; -import org.eclipse.xtext.web.server.generator.IContentTypeProvider; - -/** - * The default content type provider uses {@link URLConnection#guessContentTypeFromName(String)} - * to determine content types. - */ -@SuppressWarnings("all") -public class DefaultContentTypeProvider implements IContentTypeProvider { - @Override - public String getContentType(final String fileName) { - if ((fileName != null)) { - return URLConnection.guessContentTypeFromName(fileName); - } - return null; - } -} diff --git a/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/generator/GeneratorResult.java b/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/generator/GeneratorResult.java deleted file mode 100644 index 4059bd776a8..00000000000 --- a/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/generator/GeneratorResult.java +++ /dev/null @@ -1,101 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.server.generator; - -import org.eclipse.xtend.lib.annotations.Data; -import org.eclipse.xtend.lib.annotations.ToString; -import org.eclipse.xtext.web.server.IUnwrappableServiceResult; -import org.eclipse.xtext.xbase.lib.Pure; -import org.eclipse.xtext.xbase.lib.util.ToStringBuilder; - -/** - * Result object returned by the generator service. This object is usually not sent in - * JSON format, but the content itself is returned to the client. - */ -@Data -@ToString(skipNulls = true) -@SuppressWarnings("all") -public class GeneratorResult implements IUnwrappableServiceResult { - private final String name; - - private final String contentType; - - private final String content; - - public GeneratorResult(final String name, final String contentType, final String content) { - super(); - this.name = name; - this.contentType = contentType; - this.content = content; - } - - @Override - @Pure - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((this.name== null) ? 0 : this.name.hashCode()); - result = prime * result + ((this.contentType== null) ? 0 : this.contentType.hashCode()); - result = prime * result + ((this.content== null) ? 0 : this.content.hashCode()); - return result; - } - - @Override - @Pure - public boolean equals(final Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - GeneratorResult other = (GeneratorResult) obj; - if (this.name == null) { - if (other.name != null) - return false; - } else if (!this.name.equals(other.name)) - return false; - if (this.contentType == null) { - if (other.contentType != null) - return false; - } else if (!this.contentType.equals(other.contentType)) - return false; - if (this.content == null) { - if (other.content != null) - return false; - } else if (!this.content.equals(other.content)) - return false; - return true; - } - - @Override - @Pure - public String toString() { - ToStringBuilder b = new ToStringBuilder(this); - b.skipNulls(); - b.add("name", this.name); - b.add("contentType", this.contentType); - b.add("content", this.content); - return b.toString(); - } - - @Pure - public String getName() { - return this.name; - } - - @Pure - public String getContentType() { - return this.contentType; - } - - @Pure - public String getContent() { - return this.content; - } -} diff --git a/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/generator/GeneratorService.java b/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/generator/GeneratorService.java deleted file mode 100644 index e01a4e57ce6..00000000000 --- a/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/generator/GeneratorService.java +++ /dev/null @@ -1,207 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.server.generator; - -import com.google.common.base.Objects; -import com.google.common.collect.Iterables; -import com.google.inject.Inject; -import com.google.inject.Provider; -import com.google.inject.Singleton; -import java.util.List; -import java.util.Map; -import org.eclipse.xtend.lib.annotations.Data; -import org.eclipse.xtext.generator.GeneratorDelegate; -import org.eclipse.xtext.generator.IFileSystemAccess; -import org.eclipse.xtext.generator.IGeneratorContext; -import org.eclipse.xtext.generator.InMemoryFileSystemAccess; -import org.eclipse.xtext.util.CancelIndicator; -import org.eclipse.xtext.web.server.IServiceResult; -import org.eclipse.xtext.web.server.InvalidRequestException; -import org.eclipse.xtext.web.server.generator.GeneratorResult; -import org.eclipse.xtext.web.server.generator.IContentTypeProvider; -import org.eclipse.xtext.web.server.model.AbstractCachedService; -import org.eclipse.xtext.web.server.model.IXtextWebDocument; -import org.eclipse.xtext.web.server.model.XtextWebDocumentAccess; -import org.eclipse.xtext.xbase.lib.CollectionLiterals; -import org.eclipse.xtext.xbase.lib.Functions.Function1; -import org.eclipse.xtext.xbase.lib.IterableExtensions; -import org.eclipse.xtext.xbase.lib.ListExtensions; -import org.eclipse.xtext.xbase.lib.Pure; -import org.eclipse.xtext.xbase.lib.util.ToStringBuilder; - -/** - * Service class for code generation. The resulting documents are sent back to the client; - * if exactly one document is generated, the result should be unwrapped, i.e. the response body - * is the generated document. - * - *

Results of this service are cached in the session state. However, the service is not - * invoked automatically after a document change (in contrast to e.g. validation), but only after - * an explicit request.

- */ -@Singleton -@SuppressWarnings("all") -public class GeneratorService extends AbstractCachedService { - /** - * This service result class is just a wrapper to store all generated documents. - */ - @Data - public static class GeneratedArtifacts implements IServiceResult { - private final List artifacts = CollectionLiterals.newArrayList(); - - @Override - @Pure - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((this.artifacts== null) ? 0 : this.artifacts.hashCode()); - return result; - } - - @Override - @Pure - public boolean equals(final Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - GeneratorService.GeneratedArtifacts other = (GeneratorService.GeneratedArtifacts) obj; - if (this.artifacts == null) { - if (other.artifacts != null) - return false; - } else if (!this.artifacts.equals(other.artifacts)) - return false; - return true; - } - - @Override - @Pure - public String toString() { - ToStringBuilder b = new ToStringBuilder(this); - b.add("artifacts", this.artifacts); - return b.toString(); - } - - @Pure - public List getArtifacts() { - return this.artifacts; - } - } - - /** - * The default artifact name that is accessed when no specific artifact is requested. - * Value: "DEFAULT_OUTPUT/DEFAULT_ARTIFACT" - */ - public final static String DEFAULT_ARTIFACT = (IFileSystemAccess.DEFAULT_OUTPUT + "/DEFAULT_ARTIFACT"); - - @Inject - private GeneratorDelegate generator; - - @Inject - private IContentTypeProvider contentTypeProvider; - - @Inject - private Provider fileSystemAccessProvider; - - /** - * Generate artifacts for the given document. The result can be fetched with {@link #getResult(XtextWebDocumentAccess)}. - */ - @Override - public GeneratorService.GeneratedArtifacts compute(final IXtextWebDocument it, final CancelIndicator cancelIndicator) { - final InMemoryFileSystemAccess fileSystemAccess = this.fileSystemAccessProvider.get(); - final IGeneratorContext _function = () -> { - return cancelIndicator; - }; - this.generator.generate(it.getResource(), fileSystemAccess, _function); - final GeneratorService.GeneratedArtifacts result = new GeneratorService.GeneratedArtifacts(); - final Function1, GeneratorResult> _function_1 = (Map.Entry it_1) -> { - GeneratorResult _xblockexpression = null; - { - final String contentType = this.contentTypeProvider.getContentType(it_1.getKey()); - String _key = it_1.getKey(); - String _string = it_1.getValue().toString(); - _xblockexpression = new GeneratorResult(_key, contentType, _string); - } - return _xblockexpression; - }; - Iterables.addAll(result.artifacts, - IterableExtensions., GeneratorResult>map(fileSystemAccess.getTextFiles().entrySet(), _function_1)); - return result; - } - - /** - * Retrieve the generated artifact with given identifier. The identifier must match the name of one of - * the generator results; each name is created by concatenating the output configuration name and the file - * name (see {@link InMemoryFileSystemAccess#getFileName(String,String)}). If artifactId is null, - * {@link #DEFAULT_ARTIFACT} is used as identifier. If the requested artifact is in {@link IFileSystemAccess#DEFAULT_OUTPUT}, - * the output configuration prefix may be omitted. - */ - public GeneratorResult getArtifact(final XtextWebDocumentAccess document, final String artifactId) { - final List artifacts = this.getResult(document).artifacts; - String _elvis = null; - if (artifactId != null) { - _elvis = artifactId; - } else { - _elvis = GeneratorService.DEFAULT_ARTIFACT; - } - final String searchString = _elvis; - final Function1 _function = (GeneratorResult it) -> { - String _name = it.getName(); - return Boolean.valueOf(Objects.equal(_name, searchString)); - }; - GeneratorResult result = IterableExtensions.findFirst(artifacts, _function); - if (((result == null) && (!searchString.startsWith(IFileSystemAccess.DEFAULT_OUTPUT)))) { - final String defaultSearchString = (IFileSystemAccess.DEFAULT_OUTPUT + searchString); - final Function1 _function_1 = (GeneratorResult it) -> { - String _name = it.getName(); - return Boolean.valueOf(Objects.equal(_name, defaultSearchString)); - }; - result = IterableExtensions.findFirst(artifacts, _function_1); - } - if ((result == null)) { - throw new InvalidRequestException.ResourceNotFoundException("The requested generator artifact was not found."); - } - return result; - } - - /** - * Retrieve the generated artifact with given identifier. If {@code includeContent} is false, - * only the metadata is included in the service result. - */ - public GeneratorResult getArtifact(final XtextWebDocumentAccess document, final String artifactId, final boolean includeContent) { - final GeneratorResult result = this.getArtifact(document, artifactId); - if (includeContent) { - return result; - } else { - String _name = result.getName(); - String _contentType = result.getContentType(); - return new GeneratorResult(_name, _contentType, null); - } - } - - /** - * Returns a {@link GeneratedArtifacts} result with or without content. If {@code includeContent} is false, - * only the metadata is included in the service result, which is useful to explore the generated artifacts. - */ - public GeneratorService.GeneratedArtifacts getResult(final XtextWebDocumentAccess document, final boolean includeContent) { - if (includeContent) { - return this.getResult(document); - } else { - final List artifacts = this.getResult(document).artifacts; - final GeneratorService.GeneratedArtifacts result = new GeneratorService.GeneratedArtifacts(); - final Function1 _function = (GeneratorResult it) -> { - String _name = it.getName(); - String _contentType = it.getContentType(); - return new GeneratorResult(_name, _contentType, null); - }; - result.artifacts.addAll(ListExtensions.map(artifacts, _function)); - return result; - } - } -} diff --git a/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/generator/IContentTypeProvider.java b/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/generator/IContentTypeProvider.java deleted file mode 100644 index c6968a8415e..00000000000 --- a/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/generator/IContentTypeProvider.java +++ /dev/null @@ -1,17 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.server.generator; - -/** - * A content type provider is responsible for assigning content types to documents resulting - * from an {@link org.eclipse.xtext.generator.IGenerator} implementation. - */ -@SuppressWarnings("all") -public interface IContentTypeProvider { - public abstract String getContentType(final String fileName); -} diff --git a/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/hover/HoverResult.java b/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/hover/HoverResult.java deleted file mode 100644 index 03f48e533ed..00000000000 --- a/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/hover/HoverResult.java +++ /dev/null @@ -1,105 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.server.hover; - -import org.eclipse.xtend.lib.annotations.Data; -import org.eclipse.xtend.lib.annotations.ToString; -import org.eclipse.xtext.web.server.IServiceResult; -import org.eclipse.xtext.xbase.lib.Pure; -import org.eclipse.xtext.xbase.lib.util.ToStringBuilder; - -/** - * Result object returned by the hover service. - */ -@Data -@ToString(skipNulls = true) -@SuppressWarnings("all") -public class HoverResult implements IServiceResult { - private final String stateId; - - private final String title; - - private final String content; - - public HoverResult(final String stateId) { - this.stateId = stateId; - this.title = null; - this.content = null; - } - - public HoverResult(final String stateId, final String title, final String content) { - this.stateId = stateId; - this.title = title; - this.content = content; - } - - @Override - @Pure - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((this.stateId== null) ? 0 : this.stateId.hashCode()); - result = prime * result + ((this.title== null) ? 0 : this.title.hashCode()); - result = prime * result + ((this.content== null) ? 0 : this.content.hashCode()); - return result; - } - - @Override - @Pure - public boolean equals(final Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - HoverResult other = (HoverResult) obj; - if (this.stateId == null) { - if (other.stateId != null) - return false; - } else if (!this.stateId.equals(other.stateId)) - return false; - if (this.title == null) { - if (other.title != null) - return false; - } else if (!this.title.equals(other.title)) - return false; - if (this.content == null) { - if (other.content != null) - return false; - } else if (!this.content.equals(other.content)) - return false; - return true; - } - - @Override - @Pure - public String toString() { - ToStringBuilder b = new ToStringBuilder(this); - b.skipNulls(); - b.add("stateId", this.stateId); - b.add("title", this.title); - b.add("content", this.content); - return b.toString(); - } - - @Pure - public String getStateId() { - return this.stateId; - } - - @Pure - public String getTitle() { - return this.title; - } - - @Pure - public String getContent() { - return this.content; - } -} diff --git a/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/hover/HoverService.java b/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/hover/HoverService.java deleted file mode 100644 index bdda6f2c52d..00000000000 --- a/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/hover/HoverService.java +++ /dev/null @@ -1,224 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.server.hover; - -import com.google.common.base.Objects; -import com.google.common.collect.Iterables; -import com.google.inject.Inject; -import com.google.inject.Singleton; -import java.util.Collection; -import java.util.Collections; -import java.util.List; -import org.eclipse.emf.ecore.EObject; -import org.eclipse.xtend2.lib.StringConcatenation; -import org.eclipse.xtext.documentation.IEObjectDocumentationProvider; -import org.eclipse.xtext.ide.editor.contentassist.ContentAssistContext; -import org.eclipse.xtext.ide.editor.contentassist.ContentAssistEntry; -import org.eclipse.xtext.ide.editor.contentassist.IIdeContentProposalAcceptor; -import org.eclipse.xtext.ide.labels.AlternativeImageDescription; -import org.eclipse.xtext.ide.labels.DecoratedImageDescription; -import org.eclipse.xtext.ide.labels.IImageDescription; -import org.eclipse.xtext.ide.labels.IImageDescriptionProvider; -import org.eclipse.xtext.ide.labels.INameLabelProvider; -import org.eclipse.xtext.ide.labels.SimpleImageDescription; -import org.eclipse.xtext.resource.IEObjectDescription; -import org.eclipse.xtext.service.OperationCanceledManager; -import org.eclipse.xtext.util.CancelIndicator; -import org.eclipse.xtext.util.ITextRegion; -import org.eclipse.xtext.util.Wrapper; -import org.eclipse.xtext.util.concurrent.CancelableUnitOfWork; -import org.eclipse.xtext.web.server.InvalidRequestException; -import org.eclipse.xtext.web.server.contentassist.ContentAssistService; -import org.eclipse.xtext.web.server.hover.HoverResult; -import org.eclipse.xtext.web.server.model.IXtextWebDocument; -import org.eclipse.xtext.web.server.model.XtextWebDocumentAccess; -import org.eclipse.xtext.web.server.util.ElementAtOffsetUtil; -import org.eclipse.xtext.xbase.lib.CollectionLiterals; -import org.eclipse.xtext.xbase.lib.Conversions; -import org.eclipse.xtext.xbase.lib.Extension; -import org.eclipse.xtext.xbase.lib.Functions.Function1; -import org.eclipse.xtext.xbase.lib.Functions.Function2; -import org.eclipse.xtext.xbase.lib.IterableExtensions; -import org.eclipse.xtext.xbase.lib.ListExtensions; - -/** - * Service class for mouse hover information. Such information can be created for an already - * existing model element or for an element proposed through content assist. - */ -@Singleton -@SuppressWarnings("all") -public class HoverService { - @Inject - @Extension - private ElementAtOffsetUtil _elementAtOffsetUtil; - - @Inject - @Extension - private IEObjectDocumentationProvider _iEObjectDocumentationProvider; - - @Inject - @Extension - private IImageDescriptionProvider _iImageDescriptionProvider; - - @Inject - @Extension - private INameLabelProvider _iNameLabelProvider; - - @Inject - @Extension - private OperationCanceledManager _operationCanceledManager; - - @Inject - private ContentAssistService contentAssistService; - - /** - * Compute a hover result at the given offset in the document. - */ - public HoverResult getHover(final XtextWebDocumentAccess document, final int offset) throws InvalidRequestException { - final CancelableUnitOfWork _function = new CancelableUnitOfWork() { - @Override - public HoverResult exec(final IXtextWebDocument it, final CancelIndicator cancelIndicator) throws Exception { - HoverResult _xblockexpression = null; - { - final EObject element = HoverService.this._elementAtOffsetUtil.getElementAt(it.getResource(), offset); - _xblockexpression = HoverService.this.createHover(element, it.getStateId(), cancelIndicator); - } - return _xblockexpression; - } - }; - return document.readOnly(_function); - } - - /** - * Compute a hover result for a content assist proposal at the given offset. - */ - public HoverResult getHover(final XtextWebDocumentAccess document, final String proposal, final ITextRegion selection, final int offset) throws InvalidRequestException { - final CancelableUnitOfWork _function = new CancelableUnitOfWork() { - @Override - public HoverResult exec(final IXtextWebDocument it, final CancelIndicator cancelIndicator) throws Exception { - HoverResult _xblockexpression = null; - { - final ContentAssistContext[] contexts = HoverService.this.contentAssistService.getContexts(it, selection, offset); - final Wrapper proposedElement = new Wrapper(); - HoverService.this.contentAssistService.getProposalProvider().createProposals(((Collection)Conversions.doWrapArray(contexts)), new IIdeContentProposalAcceptor() { - @Override - public void accept(final ContentAssistEntry entry, final int priority) { - HoverService.this._operationCanceledManager.checkCanceled(cancelIndicator); - if ((((entry != null) && (entry.getSource() != null)) && Objects.equal(entry.getProposal(), proposal))) { - proposedElement.set(entry.getSource()); - } - } - - @Override - public boolean canAcceptMoreProposals() { - Object _get = proposedElement.get(); - return (_get == null); - } - }); - _xblockexpression = HoverService.this.createHover(proposedElement.get(), it.getStateId(), cancelIndicator); - } - return _xblockexpression; - } - }; - return document.readOnly(_function); - } - - protected HoverResult createHover(final Object element, final String stateId, final CancelIndicator cancelIndicator) { - String _nameLabel = null; - if (element!=null) { - _nameLabel=this._iNameLabelProvider.getNameLabel(element); - } - String _surroundWithDiv = null; - if (_nameLabel!=null) { - _surroundWithDiv=this.surroundWithDiv(_nameLabel, "element-name"); - } - final String nameLabel = _surroundWithDiv; - if ((nameLabel != null)) { - this._operationCanceledManager.checkCanceled(cancelIndicator); - final String titleHtml = this.surroundWithDiv(this.addIconDivs(this._iImageDescriptionProvider.getImageDescription(element), nameLabel), "xtext-hover"); - this._operationCanceledManager.checkCanceled(cancelIndicator); - EObject _switchResult = null; - boolean _matched = false; - if (element instanceof EObject) { - _matched=true; - _switchResult = ((EObject)element); - } - if (!_matched) { - if (element instanceof IEObjectDescription) { - _matched=true; - _switchResult = ((IEObjectDescription)element).getEObjectOrProxy(); - } - } - final EObject eobject = _switchResult; - String bodyHtml = ""; - if (((eobject != null) && (!eobject.eIsProxy()))) { - final String documentation = this._iEObjectDocumentationProvider.getDocumentation(eobject); - if ((documentation != null)) { - bodyHtml = this.surroundWithDiv(documentation, "xtext-hover"); - } - } - return new HoverResult(stateId, titleHtml, bodyHtml); - } - return new HoverResult(stateId); - } - - protected String addIconDivs(final IImageDescription it, final String nameHtml) { - String _switchResult = null; - boolean _matched = false; - if (it instanceof SimpleImageDescription) { - _matched=true; - String _imageID = ((SimpleImageDescription)it).getImageID(); - String _plus = (_imageID + "-icon"); - _switchResult = this.surroundWithDiv(nameHtml, _plus); - } - if (!_matched) { - if (it instanceof AlternativeImageDescription) { - _matched=true; - final Function1 _function = (String it_1) -> { - return (it_1 + "-icon"); - }; - _switchResult = this.surroundWithDiv(nameHtml, ((String[])Conversions.unwrapArray(ListExtensions.map(((AlternativeImageDescription)it).getImageIDs(), _function), String.class))); - } - } - if (!_matched) { - if (it instanceof DecoratedImageDescription) { - _matched=true; - List _decorators = ((DecoratedImageDescription)it).getDecorators(); - IImageDescription _baseImage = ((DecoratedImageDescription)it).getBaseImage(); - final Function2 _function = (String $0, IImageDescription $1) -> { - return this.addIconDivs($1, $0); - }; - _switchResult = IterableExtensions.fold(Iterables.concat(_decorators, Collections.unmodifiableList(CollectionLiterals.newArrayList(_baseImage))), nameHtml, _function); - } - } - return _switchResult; - } - - protected String surroundWithDiv(final String html, final String... divClasses) { - StringConcatenation _builder = new StringConcatenation(); - _builder.append(" 0); - if (_greaterThan) { - _builder.append(" class=\""); - String _join = IterableExtensions.join(((Iterable)Conversions.doWrapArray(divClasses)), " "); - _builder.append(_join); - _builder.append("\""); - } - } - _builder.append(">"); - _builder.newLineIfNotEmpty(); - _builder.append("\t"); - _builder.append(html, "\t"); - _builder.newLineIfNotEmpty(); - _builder.append(""); - _builder.newLine(); - return _builder.toString(); - } -} diff --git a/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/model/AbstractCachedService.java b/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/model/AbstractCachedService.java deleted file mode 100644 index 2f9a181dd21..00000000000 --- a/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/model/AbstractCachedService.java +++ /dev/null @@ -1,36 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.server.model; - -import org.eclipse.xtext.util.CancelIndicator; -import org.eclipse.xtext.web.server.IServiceResult; -import org.eclipse.xtext.web.server.model.IXtextWebDocument; -import org.eclipse.xtext.web.server.model.XtextWebDocumentAccess; - -/** - * Superclass for services that support caching their results in the document. Such a service is - * not necessarily precomputed automatically after a document change; this happens only if the - * service is registered in the {@link PrecomputedServiceRegistry}. - */ -@SuppressWarnings("all") -public abstract class AbstractCachedService { - /** - * If a cached result is available, that instance is returned. Otherwise a new result - * is obtained with {@link #compute(IXtextWebDocument, CancelIndicator)}. - */ - public T getResult(final XtextWebDocumentAccess it) { - return it.getCachedServiceResult(this, true); - } - - /** - * Perform the actual computations to obtain a result. This method should not be called - * directly from the service dispatcher; use {@link #getResult(XtextWebDocumentAccess)} instead - * in order to avoid duplicate computations. - */ - public abstract T compute(final IXtextWebDocument it, final CancelIndicator cancelIndicator); -} diff --git a/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/model/DocumentStateResult.java b/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/model/DocumentStateResult.java deleted file mode 100644 index d51cdf833d8..00000000000 --- a/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/model/DocumentStateResult.java +++ /dev/null @@ -1,67 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.server.model; - -import org.eclipse.xtend.lib.annotations.Data; -import org.eclipse.xtext.web.server.IServiceResult; -import org.eclipse.xtext.xbase.lib.Pure; -import org.eclipse.xtext.xbase.lib.util.ToStringBuilder; - -/** - * Result object containing the current document state identifier. - */ -@Data -@SuppressWarnings("all") -public class DocumentStateResult implements IServiceResult { - private final String stateId; - - public DocumentStateResult(final String stateId) { - super(); - this.stateId = stateId; - } - - @Override - @Pure - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((this.stateId== null) ? 0 : this.stateId.hashCode()); - return result; - } - - @Override - @Pure - public boolean equals(final Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - DocumentStateResult other = (DocumentStateResult) obj; - if (this.stateId == null) { - if (other.stateId != null) - return false; - } else if (!this.stateId.equals(other.stateId)) - return false; - return true; - } - - @Override - @Pure - public String toString() { - ToStringBuilder b = new ToStringBuilder(this); - b.add("stateId", this.stateId); - return b.toString(); - } - - @Pure - public String getStateId() { - return this.stateId; - } -} diff --git a/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/model/DocumentSynchronizer.java b/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/model/DocumentSynchronizer.java deleted file mode 100644 index 1317d29b3d2..00000000000 --- a/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/model/DocumentSynchronizer.java +++ /dev/null @@ -1,83 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.server.model; - -import com.google.inject.Inject; -import java.util.concurrent.Semaphore; -import java.util.concurrent.atomic.AtomicInteger; -import org.eclipse.xtend.lib.annotations.Accessors; -import org.eclipse.xtext.service.OperationCanceledManager; -import org.eclipse.xtext.util.CancelIndicator; -import org.eclipse.xtext.xbase.lib.Exceptions; -import org.eclipse.xtext.xbase.lib.Pure; - -/** - * Synchronizer object used by the {@link XtextWebDocumentAccess} for managing multithreaded - * access to a document. It holds the cancelation status and locking information. The lock - * is not bound to a thread, so it is possible for one thread to call {@link #acquireLock(boolean)} - * and for another thread to call {@link #releaseLock()}. - */ -@SuppressWarnings("all") -public class DocumentSynchronizer implements CancelIndicator { - private final Semaphore semaphore = new Semaphore(1, true); - - private final AtomicInteger waitingPriorityJobs = new AtomicInteger(); - - @Inject - private OperationCanceledManager operationCanceledManager; - - @Accessors - private volatile boolean canceled; - - public Boolean acquireLock(final boolean priority) { - try { - boolean _xblockexpression = false; - { - if (priority) { - this.waitingPriorityJobs.incrementAndGet(); - this.canceled = true; - } - this.semaphore.acquire(); - boolean _xifexpression = false; - if (priority) { - boolean _xifexpression_1 = false; - int _decrementAndGet = this.waitingPriorityJobs.decrementAndGet(); - boolean _equals = (_decrementAndGet == 0); - if (_equals) { - _xifexpression_1 = this.canceled = false; - } - _xifexpression = _xifexpression_1; - } else { - this.operationCanceledManager.checkCanceled(this); - } - _xblockexpression = _xifexpression; - } - return Boolean.valueOf(_xblockexpression); - } catch (Throwable _e) { - throw Exceptions.sneakyThrow(_e); - } - } - - public void releaseLock() { - int _availablePermits = this.semaphore.availablePermits(); - boolean _notEquals = (_availablePermits != 0); - if (_notEquals) { - throw new IllegalStateException("Cannot release a lock without acquiring it first."); - } - this.semaphore.release(); - } - - @Pure - public boolean isCanceled() { - return this.canceled; - } - - public void setCanceled(final boolean canceled) { - this.canceled = canceled; - } -} diff --git a/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/model/IWebDocumentProvider.java b/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/model/IWebDocumentProvider.java deleted file mode 100644 index b89d96adc03..00000000000 --- a/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/model/IWebDocumentProvider.java +++ /dev/null @@ -1,58 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.server.model; - -import com.google.inject.ImplementedBy; -import com.google.inject.Inject; -import com.google.inject.Provider; -import org.eclipse.xtext.web.server.IServiceContext; -import org.eclipse.xtext.web.server.model.DocumentSynchronizer; -import org.eclipse.xtext.web.server.model.XtextWebDocument; -import org.eclipse.xtext.xbase.lib.Functions.Function0; - -/** - * Provider for document instances. - */ -@ImplementedBy(IWebDocumentProvider.DefaultImpl.class) -@SuppressWarnings("all") -public interface IWebDocumentProvider { - /** - * The default implementation creates one document synchronizer per session. If stateless - * mode is requested, each document gets its own synchronizer. - */ - public static class DefaultImpl implements IWebDocumentProvider { - @Inject - private Provider synchronizerProvider; - - @Override - public XtextWebDocument get(final String resourceId, final IServiceContext serviceContext) { - XtextWebDocument _xblockexpression = null; - { - DocumentSynchronizer _xifexpression = null; - if ((resourceId == null)) { - _xifexpression = this.synchronizerProvider.get(); - } else { - final Function0 _function = () -> { - return this.synchronizerProvider.get(); - }; - _xifexpression = serviceContext.getSession().get(DocumentSynchronizer.class, _function); - } - final DocumentSynchronizer synchronizer = _xifexpression; - _xblockexpression = new XtextWebDocument(resourceId, synchronizer); - } - return _xblockexpression; - } - } - - /** - * Creates and configures a document. The resourceId may be {@code null}, which means that - * the request should be processed in stateless mode. Fetching the session from the service - * context should be avoided in this case. - */ - public abstract XtextWebDocument get(final String resourceId, final IServiceContext serviceContext); -} diff --git a/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/model/IWebResourceSetProvider.java b/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/model/IWebResourceSetProvider.java deleted file mode 100644 index b42c1836350..00000000000 --- a/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/model/IWebResourceSetProvider.java +++ /dev/null @@ -1,41 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.server.model; - -import com.google.inject.ImplementedBy; -import com.google.inject.Inject; -import com.google.inject.Provider; -import org.eclipse.emf.ecore.resource.ResourceSet; -import org.eclipse.xtext.web.server.IServiceContext; - -/** - * Provider for resource set instances. - */ -@ImplementedBy(IWebResourceSetProvider.DefaultImpl.class) -@SuppressWarnings("all") -public interface IWebResourceSetProvider { - /** - * The default implementation creates a new resource set for each resource. - */ - public static class DefaultImpl implements IWebResourceSetProvider { - @Inject - private Provider provider; - - @Override - public ResourceSet get(final String resourceId, final IServiceContext serviceContext) { - return this.provider.get(); - } - } - - /** - * Provides a resource set. The resourceId may be {@code null}, which means that the - * request should be processed in stateless mode. Fetching the session from the service - * context should be avoided in this case. - */ - public abstract ResourceSet get(final String resourceId, final IServiceContext serviceContext); -} diff --git a/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/model/IXtextWebDocument.java b/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/model/IXtextWebDocument.java deleted file mode 100644 index 8d5a8bf3496..00000000000 --- a/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/model/IXtextWebDocument.java +++ /dev/null @@ -1,34 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.server.model; - -import org.eclipse.xtext.resource.XtextResource; - -/** - * Interface for accessing a document. Depending on the access type, some methods may not be supported. - */ -@SuppressWarnings("all") -public interface IXtextWebDocument { - public abstract XtextResource getResource(); - - public abstract String getResourceId(); - - public abstract String getText(); - - public abstract String getStateId(); - - public abstract boolean isDirty(); - - public abstract void setText(final String text); - - public abstract void createNewStateId(); - - public abstract void updateText(final String text, final int offset, final int replaceLength); - - public abstract void setDirty(final boolean dirty); -} diff --git a/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/model/PrecomputedServiceRegistry.java b/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/model/PrecomputedServiceRegistry.java deleted file mode 100644 index 92e709e89a6..00000000000 --- a/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/model/PrecomputedServiceRegistry.java +++ /dev/null @@ -1,58 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.server.model; - -import com.google.inject.Singleton; -import java.util.Set; -import org.eclipse.xtext.web.server.IServiceResult; -import org.eclipse.xtext.web.server.model.AbstractCachedService; -import org.eclipse.xtext.xbase.lib.CollectionLiterals; - -/** - * Precomputed services are able to store their results in the document, which can in turn - * be cached in the session store of the server. This concept can improve performance by - *
    - *
  • avoiding multiple computations of the same results and
  • - *
  • starting computations immediately after a document change, reducing wait time for - * the corresponding requests.
  • - *
- */ -@Singleton -@SuppressWarnings("all") -public class PrecomputedServiceRegistry { - private final Set> precomputedServices = CollectionLiterals.>newHashSet(); - - /** - * Register a service to be precomputed after each document change. - */ - public boolean addPrecomputedService(final AbstractCachedService service) { - boolean _xsynchronizedexpression = false; - synchronized (this.precomputedServices) { - _xsynchronizedexpression = this.precomputedServices.add(service); - } - return _xsynchronizedexpression; - } - - /** - * Remove a service from the registry. - */ - public boolean removePrecomputedService(final AbstractCachedService service) { - boolean _xsynchronizedexpression = false; - synchronized (this.precomputedServices) { - _xsynchronizedexpression = this.precomputedServices.remove(service); - } - return _xsynchronizedexpression; - } - - /** - * Return the registered services. These services should be invoked whenever the document is changed. - */ - public Iterable> getPrecomputedServices() { - return this.precomputedServices; - } -} diff --git a/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/model/UpdateDocumentService.java b/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/model/UpdateDocumentService.java deleted file mode 100644 index 68f86613de7..00000000000 --- a/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/model/UpdateDocumentService.java +++ /dev/null @@ -1,95 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.server.model; - -import com.google.inject.Singleton; -import org.eclipse.xtext.util.CancelIndicator; -import org.eclipse.xtext.util.concurrent.CancelableUnitOfWork; -import org.eclipse.xtext.web.server.InvalidRequestException; -import org.eclipse.xtext.web.server.model.DocumentStateResult; -import org.eclipse.xtext.web.server.model.IXtextWebDocument; -import org.eclipse.xtext.web.server.model.XtextWebDocumentAccess; - -/** - * Service class for document updates. This service only makes sense with a stateful server, - * where the server-side document representation is updated after each modification. This - * can greatly improve response times compared to the stateless alternative, where the full - * text content is sent with each service request. - */ -@Singleton -@SuppressWarnings("all") -public class UpdateDocumentService { - /** - * Update the state identifier and return it. A background process is started where the given text - * is assigned to the document and the services registered in {@link PrecomputedServiceRegistry} - * are invoked. - */ - public DocumentStateResult updateFullText(final XtextWebDocumentAccess document, final String fullText) throws InvalidRequestException { - final CancelableUnitOfWork _function = new CancelableUnitOfWork() { - @Override - public DocumentStateResult exec(final IXtextWebDocument it, final CancelIndicator cancelIndicator) throws Exception { - it.setDirty(true); - it.createNewStateId(); - String _stateId = it.getStateId(); - return new DocumentStateResult(_stateId); - } - }; - final CancelableUnitOfWork _function_1 = new CancelableUnitOfWork() { - @Override - public Object exec(final IXtextWebDocument it, final CancelIndicator cancelIndicator) throws Exception { - it.setText(fullText); - return null; - } - }; - return document.modify(_function, _function_1); - } - - /** - * Update the state identifier and return it. A background process is started where the given text change - * is applied to the document and the services registered in {@link PrecomputedServiceRegistry} - * are invoked. - */ - public DocumentStateResult updateDeltaText(final XtextWebDocumentAccess document, final String deltaText, final int offset, final int replaceLength) throws InvalidRequestException { - final CancelableUnitOfWork _function = new CancelableUnitOfWork() { - @Override - public DocumentStateResult exec(final IXtextWebDocument it, final CancelIndicator cancelIndicator) throws Exception { - it.setDirty(true); - it.createNewStateId(); - String _stateId = it.getStateId(); - return new DocumentStateResult(_stateId); - } - }; - final CancelableUnitOfWork _function_1 = new CancelableUnitOfWork() { - @Override - public Object exec(final IXtextWebDocument it, final CancelIndicator cancelIndicator) throws Exception { - int _length = it.getText().length(); - boolean _lessEqualsThan = (offset <= _length); - if (_lessEqualsThan) { - it.updateText(deltaText, offset, replaceLength); - } - return null; - } - }; - return document.modify(_function, _function_1); - } - - /** - * Return the current state identifier. If the services registered in {@link PrecomputedServiceRegistry} - * are not cached yet, they are invoked in a background process. - */ - public DocumentStateResult getStateId(final XtextWebDocumentAccess document) throws InvalidRequestException { - final CancelableUnitOfWork _function = new CancelableUnitOfWork() { - @Override - public DocumentStateResult exec(final IXtextWebDocument it, final CancelIndicator cancelIndicator) throws Exception { - String _stateId = it.getStateId(); - return new DocumentStateResult(_stateId); - } - }; - return document.modify(_function); - } -} diff --git a/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/model/XtextWebDocument.java b/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/model/XtextWebDocument.java deleted file mode 100644 index f426e89a3fc..00000000000 --- a/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/model/XtextWebDocument.java +++ /dev/null @@ -1,204 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.server.model; - -import java.util.Map; -import org.apache.log4j.Logger; -import org.eclipse.xtend.lib.annotations.AccessorType; -import org.eclipse.xtend.lib.annotations.Accessors; -import org.eclipse.xtend.lib.annotations.FinalFieldsConstructor; -import org.eclipse.xtext.nodemodel.ICompositeNode; -import org.eclipse.xtext.parser.IParseResult; -import org.eclipse.xtext.resource.XtextResource; -import org.eclipse.xtext.util.CancelIndicator; -import org.eclipse.xtext.util.internal.Log; -import org.eclipse.xtext.web.server.IServiceResult; -import org.eclipse.xtext.web.server.model.AbstractCachedService; -import org.eclipse.xtext.web.server.model.DocumentSynchronizer; -import org.eclipse.xtext.web.server.model.IXtextWebDocument; -import org.eclipse.xtext.xbase.lib.CollectionLiterals; -import org.eclipse.xtext.xbase.lib.Exceptions; -import org.eclipse.xtext.xbase.lib.Pure; - -/** - * Container for an {@link XtextResource}. - */ -@Log -@FinalFieldsConstructor -@SuppressWarnings("all") -public class XtextWebDocument implements IXtextWebDocument { - @Accessors(AccessorType.PUBLIC_GETTER) - private final String resourceId; - - @Accessors(AccessorType.PACKAGE_GETTER) - private final DocumentSynchronizer synchronizer; - - @Accessors(AccessorType.PUBLIC_GETTER) - private XtextResource resource; - - @Accessors(AccessorType.PUBLIC_GETTER) - private String text; - - @Accessors - private boolean dirty; - - private final Map, IServiceResult> cachedServiceResults = CollectionLiterals., IServiceResult>newHashMap(); - - /** - * Clear any cached result of {@link AbstractCachedService}. This method is called whenever the text - * content of the resource is modified, but it may be necessary to clear the cached services in other - * cases, too. - */ - public void clearCachedServiceResults() { - this.cachedServiceResults.clear(); - } - - public T getCachedServiceResult(final AbstractCachedService service, final CancelIndicator cancelIndicator, final boolean logCacheMiss) { - T _elvis = null; - IServiceResult _get = this.cachedServiceResults.get(service.getClass()); - if (((T) _get) != null) { - _elvis = ((T) _get); - } else { - T _xblockexpression = null; - { - if (logCacheMiss) { - String _simpleName = service.getClass().getSimpleName(); - String _plus = ("Cache miss for " + _simpleName); - XtextWebDocument.LOG.trace(_plus); - } - final T result = service.compute(this, cancelIndicator); - this.cachedServiceResults.put(service.getClass(), result); - _xblockexpression = result; - } - _elvis = _xblockexpression; - } - return _elvis; - } - - @Override - public String toString() { - String _xblockexpression = null; - { - if ((this.resourceId != null)) { - String _simpleName = this.getClass().getSimpleName(); - String _plus = (_simpleName + "("); - String _plus_1 = (_plus + this.resourceId); - return (_plus_1 + ")"); - } - _xblockexpression = super.toString(); - } - return _xblockexpression; - } - - public String setInput(final XtextResource resource) { - String _xblockexpression = null; - { - this.clearCachedServiceResults(); - this.resource = resource; - _xblockexpression = this.refreshText(); - } - return _xblockexpression; - } - - protected String refreshText() { - String _elvis = null; - IParseResult _parseResult = this.resource.getParseResult(); - ICompositeNode _rootNode = null; - if (_parseResult!=null) { - _rootNode=_parseResult.getRootNode(); - } - String _text = null; - if (_rootNode!=null) { - _text=_rootNode.getText(); - } - if (_text != null) { - _elvis = _text; - } else { - _elvis = ""; - } - return this.text = _elvis; - } - - @Override - public String getStateId() { - return Long.toString(this.resource.getModificationStamp(), 16); - } - - /** - * Replace the text contents of the contained resource with the given text. - */ - @Override - public void setText(final String text) { - try { - this.clearCachedServiceResults(); - this.resource.reparse(text); - this.refreshText(); - } catch (Throwable _e) { - throw Exceptions.sneakyThrow(_e); - } - } - - /** - * Update a part of the text. - */ - @Override - public void updateText(final String text, final int offset, final int replaceLength) { - this.clearCachedServiceResults(); - this.resource.update(offset, replaceLength, text); - this.refreshText(); - } - - /** - * A new state id should be created whenever the text content is changed. The client must know - * the correct state id in order to send proper requests. If a request with an outdated state id - * is received by the server, the request is rejected. - */ - @Override - public void createNewStateId() { - long _modificationStamp = this.resource.getModificationStamp(); - final long newStateId = (_modificationStamp + 1); - this.resource.setModificationStamp(newStateId); - } - - private final static Logger LOG = Logger.getLogger(XtextWebDocument.class); - - public XtextWebDocument(final String resourceId, final DocumentSynchronizer synchronizer) { - super(); - this.resourceId = resourceId; - this.synchronizer = synchronizer; - } - - @Pure - public String getResourceId() { - return this.resourceId; - } - - @Pure - DocumentSynchronizer getSynchronizer() { - return this.synchronizer; - } - - @Pure - public XtextResource getResource() { - return this.resource; - } - - @Pure - public String getText() { - return this.text; - } - - @Pure - public boolean isDirty() { - return this.dirty; - } - - public void setDirty(final boolean dirty) { - this.dirty = dirty; - } -} diff --git a/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/model/XtextWebDocumentAccess.java b/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/model/XtextWebDocumentAccess.java deleted file mode 100644 index 2953bfd0fac..00000000000 --- a/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/model/XtextWebDocumentAccess.java +++ /dev/null @@ -1,328 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.server.model; - -import com.google.common.base.Objects; -import com.google.inject.Inject; -import com.google.inject.Provider; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.RejectedExecutionException; -import org.apache.log4j.Logger; -import org.eclipse.xtend.lib.annotations.Delegate; -import org.eclipse.xtend.lib.annotations.FinalFieldsConstructor; -import org.eclipse.xtext.EcoreUtil2; -import org.eclipse.xtext.ide.ExecutorServiceProvider; -import org.eclipse.xtext.resource.XtextResource; -import org.eclipse.xtext.service.OperationCanceledManager; -import org.eclipse.xtext.util.CancelIndicator; -import org.eclipse.xtext.util.concurrent.CancelableUnitOfWork; -import org.eclipse.xtext.util.internal.Log; -import org.eclipse.xtext.web.server.IServiceResult; -import org.eclipse.xtext.web.server.InvalidRequestException; -import org.eclipse.xtext.web.server.model.AbstractCachedService; -import org.eclipse.xtext.web.server.model.DocumentSynchronizer; -import org.eclipse.xtext.web.server.model.IXtextWebDocument; -import org.eclipse.xtext.web.server.model.PrecomputedServiceRegistry; -import org.eclipse.xtext.web.server.model.XtextWebDocument; -import org.eclipse.xtext.xbase.lib.Exceptions; -import org.eclipse.xtext.xbase.lib.Procedures.Procedure1; - -/** - * Accessor class for documents. Use {@link #readOnly(CancelableUnitOfWork)} to - * read the content and properties of the document, and - * {@link #modify(CancelableUnitOfWork, CancelableUnitOfWork)} to modify them. - * If this accessor has been created with a required state identifier, it will - * check the actual state identifier of the document before granting access, and - * throw an exception if it does not match. - */ -@Log -@SuppressWarnings("all") -public class XtextWebDocumentAccess { - public static class Factory { - @Inject - private Provider provider; - - public XtextWebDocumentAccess create(final XtextWebDocument document, final String requiredStateId, final boolean skipAsyncWork) { - final XtextWebDocumentAccess docAccess = this.provider.get(); - docAccess.init(document, requiredStateId, skipAsyncWork); - docAccess.checkStateId(); - return docAccess; - } - - public XtextWebDocumentAccess create(final XtextWebDocument document, final boolean skipAsyncWork) { - XtextWebDocumentAccess docAccess = this.provider.get(); - docAccess.init(document, null, skipAsyncWork); - return docAccess; - } - } - - @FinalFieldsConstructor - protected static class ReadAccess implements IXtextWebDocument { - @Delegate - private final XtextWebDocument document; - - @Override - public void setText(final String text) { - throw new UnsupportedOperationException("Cannot modify the document with read-only access."); - } - - @Override - public void updateText(final String text, final int offset, final int replaceLength) { - throw new UnsupportedOperationException("Cannot modify the document with read-only access."); - } - - @Override - public void createNewStateId() { - throw new UnsupportedOperationException("Cannot modify the document with read-only access."); - } - - public ReadAccess(final XtextWebDocument document) { - super(); - this.document = document; - } - - public XtextResource getResource() { - return this.document.getResource(); - } - - public String getResourceId() { - return this.document.getResourceId(); - } - - public String getText() { - return this.document.getText(); - } - - public String getStateId() { - return this.document.getStateId(); - } - - public boolean isDirty() { - return this.document.isDirty(); - } - - public void setDirty(final boolean dirty) { - this.document.setDirty(dirty); - } - } - - private final static String DOCUMENT_LOCK_EXECUTOR = "withDocumentLock"; - - @Inject - private PrecomputedServiceRegistry preComputedServiceRegistry; - - @Inject - private OperationCanceledManager operationCanceledManager; - - /** - * Executor service for runnables that are run when the lock is already acquired - */ - private ExecutorService executorService1; - - /** - * A second executor service for runnables that aquire the document lock themselves - */ - private ExecutorService executorService2; - - private XtextWebDocument document; - - private String requiredStateId; - - private boolean skipAsyncWork; - - @Inject - protected void setExecutorServiceProvider(final ExecutorServiceProvider executorServiceProvider) { - this.executorService1 = executorServiceProvider.get(XtextWebDocumentAccess.DOCUMENT_LOCK_EXECUTOR); - this.executorService2 = executorServiceProvider.get(); - } - - protected void init(final XtextWebDocument document, final String requiredStateId, final boolean skipAsyncWork) { - this.document = document; - this.requiredStateId = requiredStateId; - this.skipAsyncWork = skipAsyncWork; - } - - protected void checkStateId() throws InvalidRequestException.InvalidDocumentStateException { - if (((this.requiredStateId != null) && (!Objects.equal(this.requiredStateId, this.document.getStateId())))) { - throw new InvalidRequestException.InvalidDocumentStateException("The given state id does not match the current state."); - } - } - - /** - * Execute the given work unit with read-only access and return its result. - */ - public T readOnly(final CancelableUnitOfWork work) { - return this.doAccess(work, false, false, null); - } - - /** - * Execute the given work unit with read-only access and return its result. - * The work unit is handled with higher priority, i.e. currently running - * work units are canceled if they support cancellation. - */ - public T priorityReadOnly(final CancelableUnitOfWork work) { - return this.doAccess(work, true, false, null); - } - - /** - * Execute the given work unit with read and write access and return its - * result. The work unit is handled with higher priority, i.e. currently - * running work units are canceled if they support cancellation. - * The second work unit {@code asynchronousWork} is executed in a separate - * thread after the first one has finished. It can be used for background - * work that should be applied to the document, but is not relevant for the - * current service request. - */ - public T modify(final CancelableUnitOfWork work, final CancelableUnitOfWork asynchronousWork) { - return this.doAccess(work, true, true, asynchronousWork); - } - - /** - * Execute the given work unit with read and write access and return its - * result. The work unit is handled with higher priority, i.e. currently - * running work units are canceled if they support cancellation. - */ - public T modify(final CancelableUnitOfWork work) { - return this.doAccess(work, true, true, null); - } - - protected T doAccess(final CancelableUnitOfWork synchronousWork, final boolean priority, final boolean modify, final CancelableUnitOfWork asynchronousWork) { - try { - final DocumentSynchronizer synchronizer = this.document.getSynchronizer(); - IXtextWebDocument _xifexpression = null; - if (modify) { - _xifexpression = this.document; - } else { - _xifexpression = this.createReadAccess(this.document); - } - final IXtextWebDocument documentAccess = _xifexpression; - boolean currentThreadOwnsLock = true; - T result = null; - try { - synchronizer.acquireLock(priority); - this.checkStateId(); - synchronousWork.setCancelIndicator(synchronizer); - result = synchronousWork.exec(documentAccess); - this.requiredStateId = this.document.getStateId(); - if ((((((!this.skipAsyncWork) && priority) && (documentAccess != null)) && (!synchronizer.isCanceled())) && (!Thread.currentThread().isInterrupted()))) { - final Procedure1 _function = (Object it) -> { - try { - if ((asynchronousWork != null)) { - asynchronousWork.setCancelIndicator(synchronizer); - asynchronousWork.exec(documentAccess); - } - EcoreUtil2.resolveLazyCrossReferences(documentAccess.getResource(), synchronizer); - } catch (final Throwable _t) { - if (_t instanceof VirtualMachineError) { - final VirtualMachineError error = (VirtualMachineError)_t; - throw error; - } else if (_t instanceof Throwable) { - final Throwable throwable = (Throwable)_t; - boolean _isOperationCanceledException = this.operationCanceledManager.isOperationCanceledException(throwable); - if (_isOperationCanceledException) { - XtextWebDocumentAccess.LOG.trace("Canceling background work."); - } else { - XtextWebDocumentAccess.LOG.error("Error during background work.", throwable); - } - } else { - throw Exceptions.sneakyThrow(_t); - } - } finally { - synchronizer.releaseLock(); - } - }; - this.executorService1.submit( - ((Runnable) new Runnable() { - public void run() { - _function.apply(null); - } - })); - currentThreadOwnsLock = false; - final Procedure1 _function_1 = (Object it) -> { - try { - this.performPrecomputation(synchronizer); - } catch (final Throwable _t) { - if (_t instanceof VirtualMachineError) { - final VirtualMachineError error = (VirtualMachineError)_t; - throw error; - } else if (_t instanceof InvalidRequestException.InvalidDocumentStateException) { - final InvalidRequestException.InvalidDocumentStateException idse = (InvalidRequestException.InvalidDocumentStateException)_t; - return; - } else if (_t instanceof Throwable) { - final Throwable throwable = (Throwable)_t; - boolean _isOperationCanceledException = this.operationCanceledManager.isOperationCanceledException(throwable); - if (_isOperationCanceledException) { - XtextWebDocumentAccess.LOG.trace("Canceling precomputation."); - } else { - XtextWebDocumentAccess.LOG.error("Error during precomputation.", throwable); - } - } else { - throw Exceptions.sneakyThrow(_t); - } - } - }; - this.executorService2.submit( - ((Runnable) new Runnable() { - public void run() { - _function_1.apply(null); - } - })); - } - } catch (final Throwable _t) { - if (_t instanceof RejectedExecutionException) { - final RejectedExecutionException ree = (RejectedExecutionException)_t; - XtextWebDocumentAccess.LOG.error("Failed to start background work.", ree); - } else { - throw Exceptions.sneakyThrow(_t); - } - } finally { - if (currentThreadOwnsLock) { - synchronizer.releaseLock(); - } - } - return result; - } catch (Throwable _e) { - throw Exceptions.sneakyThrow(_e); - } - } - - protected void performPrecomputation(final CancelIndicator cancelIndicator) { - Iterable> _precomputedServices = this.preComputedServiceRegistry.getPrecomputedServices(); - for (final AbstractCachedService service : _precomputedServices) { - { - this.operationCanceledManager.checkCanceled(cancelIndicator); - this.getCachedServiceResult(service, false); - } - } - } - - protected T getCachedServiceResult(final AbstractCachedService service, final boolean logCacheMiss) { - final CancelableUnitOfWork _function = new CancelableUnitOfWork() { - @Override - public T exec(final IXtextWebDocument d, final CancelIndicator cancelIndicator) throws Exception { - String _resourceId = XtextWebDocumentAccess.this.document.getResourceId(); - boolean _tripleNotEquals = (_resourceId != null); - if (_tripleNotEquals) { - return XtextWebDocumentAccess.this.document.getCachedServiceResult(service, cancelIndicator, logCacheMiss); - } else { - return service.compute(XtextWebDocumentAccess.this.document, cancelIndicator); - } - } - }; - return this.readOnly(_function); - } - - /** - * @since 2.11 - */ - protected IXtextWebDocument createReadAccess(final XtextWebDocument document) { - return new XtextWebDocumentAccess.ReadAccess(document); - } - - private final static Logger LOG = Logger.getLogger(XtextWebDocumentAccess.class); -} diff --git a/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/occurrences/OccurrencesResult.java b/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/occurrences/OccurrencesResult.java deleted file mode 100644 index 729adf3e81c..00000000000 --- a/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/occurrences/OccurrencesResult.java +++ /dev/null @@ -1,101 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.server.occurrences; - -import java.util.List; -import org.eclipse.xtend.lib.annotations.Data; -import org.eclipse.xtend.lib.annotations.ToString; -import org.eclipse.xtext.util.TextRegion; -import org.eclipse.xtext.web.server.IServiceResult; -import org.eclipse.xtext.xbase.lib.CollectionLiterals; -import org.eclipse.xtext.xbase.lib.Pure; -import org.eclipse.xtext.xbase.lib.util.ToStringBuilder; - -/** - * Result object returned by the occurrences service. - */ -@Data -@ToString(skipNulls = true) -@SuppressWarnings("all") -public class OccurrencesResult implements IServiceResult { - private final String stateId; - - private final List writeRegions = CollectionLiterals.newArrayList(); - - private final List readRegions = CollectionLiterals.newArrayList(); - - public OccurrencesResult(final String stateId) { - super(); - this.stateId = stateId; - } - - @Override - @Pure - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((this.stateId== null) ? 0 : this.stateId.hashCode()); - result = prime * result + ((this.writeRegions== null) ? 0 : this.writeRegions.hashCode()); - result = prime * result + ((this.readRegions== null) ? 0 : this.readRegions.hashCode()); - return result; - } - - @Override - @Pure - public boolean equals(final Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - OccurrencesResult other = (OccurrencesResult) obj; - if (this.stateId == null) { - if (other.stateId != null) - return false; - } else if (!this.stateId.equals(other.stateId)) - return false; - if (this.writeRegions == null) { - if (other.writeRegions != null) - return false; - } else if (!this.writeRegions.equals(other.writeRegions)) - return false; - if (this.readRegions == null) { - if (other.readRegions != null) - return false; - } else if (!this.readRegions.equals(other.readRegions)) - return false; - return true; - } - - @Override - @Pure - public String toString() { - ToStringBuilder b = new ToStringBuilder(this); - b.skipNulls(); - b.add("stateId", this.stateId); - b.add("writeRegions", this.writeRegions); - b.add("readRegions", this.readRegions); - return b.toString(); - } - - @Pure - public String getStateId() { - return this.stateId; - } - - @Pure - public List getWriteRegions() { - return this.writeRegions; - } - - @Pure - public List getReadRegions() { - return this.readRegions; - } -} diff --git a/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/occurrences/OccurrencesService.java b/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/occurrences/OccurrencesService.java deleted file mode 100644 index 96179384bb1..00000000000 --- a/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/occurrences/OccurrencesService.java +++ /dev/null @@ -1,114 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.server.occurrences; - -import com.google.common.base.Objects; -import com.google.inject.Inject; -import com.google.inject.Provider; -import com.google.inject.Singleton; -import java.util.List; -import org.eclipse.emf.common.util.URI; -import org.eclipse.emf.ecore.EObject; -import org.eclipse.emf.ecore.EReference; -import org.eclipse.emf.ecore.resource.Resource; -import org.eclipse.xtext.EcoreUtil2; -import org.eclipse.xtext.findReferences.IReferenceFinder; -import org.eclipse.xtext.findReferences.TargetURIs; -import org.eclipse.xtext.resource.ILocationInFileProvider; -import org.eclipse.xtext.resource.IReferenceDescription; -import org.eclipse.xtext.resource.XtextResource; -import org.eclipse.xtext.util.CancelIndicator; -import org.eclipse.xtext.util.ITextRegion; -import org.eclipse.xtext.util.ITextRegionWithLineInformation; -import org.eclipse.xtext.util.TextRegion; -import org.eclipse.xtext.util.concurrent.CancelableUnitOfWork; -import org.eclipse.xtext.web.server.model.IXtextWebDocument; -import org.eclipse.xtext.web.server.model.XtextWebDocumentAccess; -import org.eclipse.xtext.web.server.occurrences.OccurrencesResult; -import org.eclipse.xtext.web.server.util.CancelIndicatorProgressMonitor; -import org.eclipse.xtext.web.server.util.ElementAtOffsetUtil; -import org.eclipse.xtext.xbase.lib.Extension; - -/** - * Service class for finding occurrences. - */ -@Singleton -@SuppressWarnings("all") -public class OccurrencesService { - @Inject - @Extension - private ElementAtOffsetUtil _elementAtOffsetUtil; - - @Inject - @Extension - private ILocationInFileProvider _iLocationInFileProvider; - - @Inject - private Provider targetURIsProvider; - - @Inject - @Extension - private IReferenceFinder _iReferenceFinder; - - /** - * Find occurrences of the element at the given offset. - */ - public OccurrencesResult findOccurrences(final XtextWebDocumentAccess document, final int offset) { - final CancelableUnitOfWork _function = new CancelableUnitOfWork() { - @Override - public OccurrencesResult exec(final IXtextWebDocument it, final CancelIndicator cancelIndicator) throws Exception { - final EObject element = OccurrencesService.this._elementAtOffsetUtil.getElementAt(it.getResource(), offset); - String _stateId = it.getStateId(); - final OccurrencesResult occurrencesResult = new OccurrencesResult(_stateId); - if (((element != null) && OccurrencesService.this.filter(element))) { - final URI elementURI = EcoreUtil2.getPlatformResourceOrNormalizedURI(element); - final TargetURIs targetURIs = OccurrencesService.this.targetURIsProvider.get(); - targetURIs.addURI(elementURI); - final IReferenceFinder.Acceptor acceptor = new IReferenceFinder.Acceptor() { - @Override - public void accept(final EObject source, final URI sourceURI, final EReference eReference, final int index, final EObject targetOrProxy, final URI targetURI) { - final ITextRegion region = OccurrencesService.this._iLocationInFileProvider.getSignificantTextRegion(source, eReference, index); - List _readRegions = occurrencesResult.getReadRegions(); - int _offset = region.getOffset(); - int _length = region.getLength(); - TextRegion _textRegion = new TextRegion(_offset, _length); - _readRegions.add(_textRegion); - } - - @Override - public void accept(final IReferenceDescription description) { - } - }; - XtextResource _resource = it.getResource(); - CancelIndicatorProgressMonitor _cancelIndicatorProgressMonitor = new CancelIndicatorProgressMonitor(cancelIndicator); - OccurrencesService.this._iReferenceFinder.findReferences(targetURIs, _resource, acceptor, _cancelIndicatorProgressMonitor); - Resource _eResource = element.eResource(); - XtextResource _resource_1 = it.getResource(); - boolean _equals = Objects.equal(_eResource, _resource_1); - if (_equals) { - final ITextRegion definitionRegion = OccurrencesService.this._iLocationInFileProvider.getSignificantTextRegion(element); - if (((definitionRegion != null) && (definitionRegion != ITextRegionWithLineInformation.EMPTY_REGION))) { - List _writeRegions = occurrencesResult.getWriteRegions(); - int _offset = definitionRegion.getOffset(); - int _length = definitionRegion.getLength(); - TextRegion _textRegion = new TextRegion(_offset, _length); - _writeRegions.add(_textRegion); - } - } - } - return occurrencesResult; - } - }; - return document.readOnly(_function); - } - - protected boolean filter(final EObject element) { - EObject _eContainer = element.eContainer(); - return (_eContainer != null); - } -} diff --git a/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/persistence/FileResourceHandler.java b/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/persistence/FileResourceHandler.java deleted file mode 100644 index 9715af603c6..00000000000 --- a/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/persistence/FileResourceHandler.java +++ /dev/null @@ -1,100 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.server.persistence; - -import com.google.inject.Inject; -import java.io.IOException; -import java.io.OutputStream; -import java.io.OutputStreamWriter; -import org.eclipse.emf.common.util.URI; -import org.eclipse.emf.common.util.WrappedException; -import org.eclipse.emf.ecore.resource.Resource; -import org.eclipse.emf.ecore.resource.ResourceSet; -import org.eclipse.xtext.parser.IEncodingProvider; -import org.eclipse.xtext.resource.XtextResource; -import org.eclipse.xtext.web.server.IServiceContext; -import org.eclipse.xtext.web.server.model.IWebDocumentProvider; -import org.eclipse.xtext.web.server.model.IWebResourceSetProvider; -import org.eclipse.xtext.web.server.model.IXtextWebDocument; -import org.eclipse.xtext.web.server.model.XtextWebDocument; -import org.eclipse.xtext.web.server.persistence.IResourceBaseProvider; -import org.eclipse.xtext.web.server.persistence.IServerResourceHandler; -import org.eclipse.xtext.xbase.lib.Exceptions; -import org.eclipse.xtext.xbase.lib.ObjectExtensions; -import org.eclipse.xtext.xbase.lib.Procedures.Procedure1; - -/** - * Resource handler that reads and writes files. The file paths are given by an implementation - * of {@link IResourceBaseProvider}. - */ -@SuppressWarnings("all") -public class FileResourceHandler implements IServerResourceHandler { - @Inject - private IResourceBaseProvider resourceBaseProvider; - - @Inject - private IWebResourceSetProvider resourceSetProvider; - - @Inject - private IWebDocumentProvider documentProvider; - - @Inject - private IEncodingProvider encodingProvider; - - @Override - public XtextWebDocument get(final String resourceId, final IServiceContext serviceContext) throws IOException { - try { - try { - final URI uri = this.resourceBaseProvider.getFileURI(resourceId); - if ((uri == null)) { - throw new IOException("The requested resource does not exist."); - } - final ResourceSet resourceSet = this.resourceSetProvider.get(resourceId, serviceContext); - Resource _resource = resourceSet.getResource(uri, true); - final XtextResource resource = ((XtextResource) _resource); - XtextWebDocument _get = this.documentProvider.get(resourceId, serviceContext); - final Procedure1 _function = (XtextWebDocument it) -> { - it.setInput(resource); - }; - return ObjectExtensions.operator_doubleArrow(_get, _function); - } catch (final Throwable _t) { - if (_t instanceof WrappedException) { - final WrappedException exception = (WrappedException)_t; - throw exception.getCause(); - } else { - throw Exceptions.sneakyThrow(_t); - } - } - } catch (Throwable _e) { - throw Exceptions.sneakyThrow(_e); - } - } - - @Override - public void put(final IXtextWebDocument document, final IServiceContext serviceContext) throws IOException { - try { - try { - final URI uri = this.resourceBaseProvider.getFileURI(document.getResourceId()); - final OutputStream outputStream = document.getResource().getResourceSet().getURIConverter().createOutputStream(uri); - String _encoding = this.encodingProvider.getEncoding(uri); - final OutputStreamWriter writer = new OutputStreamWriter(outputStream, _encoding); - writer.write(document.getText()); - writer.close(); - } catch (final Throwable _t) { - if (_t instanceof WrappedException) { - final WrappedException exception = (WrappedException)_t; - throw exception.getCause(); - } else { - throw Exceptions.sneakyThrow(_t); - } - } - } catch (Throwable _e) { - throw Exceptions.sneakyThrow(_e); - } - } -} diff --git a/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/persistence/IResourceBaseProvider.java b/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/persistence/IResourceBaseProvider.java deleted file mode 100644 index afd32bc2d7c..00000000000 --- a/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/persistence/IResourceBaseProvider.java +++ /dev/null @@ -1,18 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.server.persistence; - -import org.eclipse.emf.common.util.URI; - -/** - * Translates resource identifiers into file URIs that can be used to load and save files. - */ -@SuppressWarnings("all") -public interface IResourceBaseProvider { - public abstract URI getFileURI(final String resourceId); -} diff --git a/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/persistence/IServerResourceHandler.java b/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/persistence/IServerResourceHandler.java deleted file mode 100644 index 01ce5af569d..00000000000 --- a/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/persistence/IServerResourceHandler.java +++ /dev/null @@ -1,38 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.server.persistence; - -import com.google.inject.ImplementedBy; -import java.io.IOException; -import org.eclipse.xtext.web.server.IServiceContext; -import org.eclipse.xtext.web.server.model.IXtextWebDocument; -import org.eclipse.xtext.web.server.model.XtextWebDocument; - -/** - * Interface for get and put operations on documents. Implementations can - * use arbitrary persistence technology for performing these operations. - */ -@ImplementedBy(IServerResourceHandler.NullImpl.class) -@SuppressWarnings("all") -public interface IServerResourceHandler { - public static class NullImpl implements IServerResourceHandler { - @Override - public XtextWebDocument get(final String resourceId, final IServiceContext serviceContext) throws IOException { - throw new IOException("This server does not support resource handling."); - } - - @Override - public void put(final IXtextWebDocument document, final IServiceContext serviceContext) throws IOException { - throw new IOException("This server does not support resource handling."); - } - } - - public abstract XtextWebDocument get(final String resourceId, final IServiceContext serviceContext) throws IOException; - - public abstract void put(final IXtextWebDocument document, final IServiceContext serviceContext) throws IOException; -} diff --git a/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/persistence/ResourceBaseProviderImpl.java b/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/persistence/ResourceBaseProviderImpl.java deleted file mode 100644 index 92587ce201a..00000000000 --- a/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/persistence/ResourceBaseProviderImpl.java +++ /dev/null @@ -1,50 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.server.persistence; - -import java.io.File; -import org.eclipse.emf.common.util.URI; -import org.eclipse.xtend.lib.annotations.FinalFieldsConstructor; -import org.eclipse.xtext.web.server.InvalidRequestException; -import org.eclipse.xtext.web.server.persistence.IResourceBaseProvider; - -/** - * Default resource base provider that assumes all resource identifiers are relative - * paths inside a certain resource base path, which has to be given when creating - * this provider. - */ -@FinalFieldsConstructor -@SuppressWarnings("all") -public class ResourceBaseProviderImpl implements IResourceBaseProvider { - private final String resourceBase; - - @Override - public URI getFileURI(final String resourceId) { - URI _xblockexpression = null; - { - boolean _contains = resourceId.contains(".."); - if (_contains) { - throw new InvalidRequestException.InvalidParametersException("Invalid resource path."); - } - URI _xifexpression = null; - boolean _endsWith = this.resourceBase.endsWith(File.separator); - if (_endsWith) { - _xifexpression = URI.createFileURI((this.resourceBase + resourceId)); - } else { - _xifexpression = URI.createFileURI(((this.resourceBase + File.separator) + resourceId)); - } - _xblockexpression = _xifexpression; - } - return _xblockexpression; - } - - public ResourceBaseProviderImpl(final String resourceBase) { - super(); - this.resourceBase = resourceBase; - } -} diff --git a/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/persistence/ResourceContentResult.java b/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/persistence/ResourceContentResult.java deleted file mode 100644 index 21c9f8a00c1..00000000000 --- a/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/persistence/ResourceContentResult.java +++ /dev/null @@ -1,94 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.server.persistence; - -import org.eclipse.xtend.lib.annotations.Data; -import org.eclipse.xtext.web.server.IServiceResult; -import org.eclipse.xtext.xbase.lib.Pure; -import org.eclipse.xtext.xbase.lib.util.ToStringBuilder; - -/** - * Result object returned by load and revert services. - */ -@Data -@SuppressWarnings("all") -public class ResourceContentResult implements IServiceResult { - private final String fullText; - - private final String stateId; - - private final boolean dirty; - - public ResourceContentResult(final String fullText, final String stateId, final boolean dirty) { - super(); - this.fullText = fullText; - this.stateId = stateId; - this.dirty = dirty; - } - - @Override - @Pure - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((this.fullText== null) ? 0 : this.fullText.hashCode()); - result = prime * result + ((this.stateId== null) ? 0 : this.stateId.hashCode()); - result = prime * result + (this.dirty ? 1231 : 1237); - return result; - } - - @Override - @Pure - public boolean equals(final Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - ResourceContentResult other = (ResourceContentResult) obj; - if (this.fullText == null) { - if (other.fullText != null) - return false; - } else if (!this.fullText.equals(other.fullText)) - return false; - if (this.stateId == null) { - if (other.stateId != null) - return false; - } else if (!this.stateId.equals(other.stateId)) - return false; - if (other.dirty != this.dirty) - return false; - return true; - } - - @Override - @Pure - public String toString() { - ToStringBuilder b = new ToStringBuilder(this); - b.add("fullText", this.fullText); - b.add("stateId", this.stateId); - b.add("dirty", this.dirty); - return b.toString(); - } - - @Pure - public String getFullText() { - return this.fullText; - } - - @Pure - public String getStateId() { - return this.stateId; - } - - @Pure - public boolean isDirty() { - return this.dirty; - } -} diff --git a/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/persistence/ResourcePersistenceService.java b/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/persistence/ResourcePersistenceService.java deleted file mode 100644 index f72340d70df..00000000000 --- a/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/persistence/ResourcePersistenceService.java +++ /dev/null @@ -1,123 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.server.persistence; - -import com.google.inject.Inject; -import com.google.inject.Singleton; -import java.io.IOException; -import org.eclipse.xtext.util.CancelIndicator; -import org.eclipse.xtext.util.concurrent.CancelableUnitOfWork; -import org.eclipse.xtext.web.server.IServiceContext; -import org.eclipse.xtext.web.server.ISession; -import org.eclipse.xtext.web.server.InvalidRequestException; -import org.eclipse.xtext.web.server.model.DocumentStateResult; -import org.eclipse.xtext.web.server.model.IXtextWebDocument; -import org.eclipse.xtext.web.server.model.XtextWebDocument; -import org.eclipse.xtext.web.server.model.XtextWebDocumentAccess; -import org.eclipse.xtext.web.server.persistence.IServerResourceHandler; -import org.eclipse.xtext.web.server.persistence.ResourceContentResult; -import org.eclipse.xtext.xbase.lib.Exceptions; -import org.eclipse.xtext.xbase.lib.Functions.Function0; -import org.eclipse.xtext.xbase.lib.Pair; - -/** - * Service class for loading, saving, and reverting documents. The actual work is done by - * an implementation of {@link IServerResourceHandler}, so if you want to use this service - * you must provide such an implementation in the Guice bindings. - */ -@Singleton -@SuppressWarnings("all") -public class ResourcePersistenceService { - @Inject - private XtextWebDocumentAccess.Factory documentAccessFactory; - - /** - * Load the content of a document. - */ - public ResourceContentResult load(final String resourceId, final IServerResourceHandler resourceHandler, final IServiceContext serviceContext) throws InvalidRequestException { - ResourceContentResult _xblockexpression = null; - { - ISession _session = serviceContext.getSession(); - Pair, String> _mappedTo = Pair., String>of(XtextWebDocument.class, resourceId); - final Function0 _function = () -> { - XtextWebDocument _xtrycatchfinallyexpression = null; - try { - _xtrycatchfinallyexpression = resourceHandler.get(resourceId, serviceContext); - } catch (final Throwable _t) { - if (_t instanceof IOException) { - final IOException ioe = (IOException)_t; - throw new InvalidRequestException.ResourceNotFoundException("The requested resource was not found.", ioe); - } else { - throw Exceptions.sneakyThrow(_t); - } - } - return _xtrycatchfinallyexpression; - }; - final XtextWebDocument document = _session.get(_mappedTo, _function); - final CancelableUnitOfWork _function_1 = new CancelableUnitOfWork() { - @Override - public ResourceContentResult exec(final IXtextWebDocument it, final CancelIndicator cancelIndicator) throws Exception { - String _text = it.getText(); - String _stateId = it.getStateId(); - boolean _isDirty = it.isDirty(); - return new ResourceContentResult(_text, _stateId, _isDirty); - } - }; - _xblockexpression = this.documentAccessFactory.create(document, false).readOnly(_function_1); - } - return _xblockexpression; - } - - /** - * Revert the content of a document to the last saved state. - */ - public ResourceContentResult revert(final String resourceId, final IServerResourceHandler resourceHandler, final IServiceContext serviceContext) throws InvalidRequestException { - try { - final XtextWebDocument document = resourceHandler.get(resourceId, serviceContext); - ISession _session = serviceContext.getSession(); - Pair, String> _mappedTo = Pair., String>of(XtextWebDocument.class, resourceId); - _session.put(_mappedTo, document); - String _text = document.getText(); - String _stateId = document.getStateId(); - return new ResourceContentResult(_text, _stateId, false); - } catch (final Throwable _t) { - if (_t instanceof IOException) { - final IOException ioe = (IOException)_t; - throw new InvalidRequestException.ResourceNotFoundException("The requested resource was not found.", ioe); - } else { - throw Exceptions.sneakyThrow(_t); - } - } - } - - /** - * Save the content of a document. - */ - public DocumentStateResult save(final XtextWebDocumentAccess document, final IServerResourceHandler resourceHandler, final IServiceContext serviceContext) throws InvalidRequestException { - final CancelableUnitOfWork _function = new CancelableUnitOfWork() { - @Override - public DocumentStateResult exec(final IXtextWebDocument it, final CancelIndicator cancelIndicator) throws Exception { - try { - resourceHandler.put(it, serviceContext); - it.setDirty(false); - } catch (final Throwable _t) { - if (_t instanceof IOException) { - final IOException ioe = (IOException)_t; - String _message = ioe.getMessage(); - throw new InvalidRequestException.ResourceNotFoundException(_message, ioe); - } else { - throw Exceptions.sneakyThrow(_t); - } - } - String _stateId = it.getStateId(); - return new DocumentStateResult(_stateId); - } - }; - return document.readOnly(_function); - } -} diff --git a/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/syntaxcoloring/HighlightingResult.java b/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/syntaxcoloring/HighlightingResult.java deleted file mode 100644 index ae4aca4cc02..00000000000 --- a/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/syntaxcoloring/HighlightingResult.java +++ /dev/null @@ -1,142 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.server.syntaxcoloring; - -import java.util.Arrays; -import java.util.List; -import org.eclipse.xtend.lib.annotations.Data; -import org.eclipse.xtend.lib.annotations.ToString; -import org.eclipse.xtext.web.server.IServiceResult; -import org.eclipse.xtext.xbase.lib.CollectionLiterals; -import org.eclipse.xtext.xbase.lib.Pure; -import org.eclipse.xtext.xbase.lib.util.ToStringBuilder; - -/** - * Result object returned by the highlighting service. - */ -@Data -@SuppressWarnings("all") -public class HighlightingResult implements IServiceResult { - @Data - @ToString(singleLine = true) - public static class Region { - private final int offset; - - private final int length; - - private final String[] styleClasses; - - public Region(final int offset, final int length, final String[] styleClasses) { - super(); - this.offset = offset; - this.length = length; - this.styleClasses = styleClasses; - } - - @Override - @Pure - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + this.offset; - result = prime * result + this.length; - result = prime * result + ((this.styleClasses== null) ? 0 : Arrays.deepHashCode(this.styleClasses)); - return result; - } - - @Override - @Pure - public boolean equals(final Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - HighlightingResult.Region other = (HighlightingResult.Region) obj; - if (other.offset != this.offset) - return false; - if (other.length != this.length) - return false; - if (this.styleClasses == null) { - if (other.styleClasses != null) - return false; - } else if (!Arrays.deepEquals(this.styleClasses, other.styleClasses)) - return false; - return true; - } - - @Override - @Pure - public String toString() { - ToStringBuilder b = new ToStringBuilder(this); - b.singleLine(); - b.add("offset", this.offset); - b.add("length", this.length); - b.add("styleClasses", this.styleClasses); - return b.toString(); - } - - @Pure - public int getOffset() { - return this.offset; - } - - @Pure - public int getLength() { - return this.length; - } - - @Pure - public String[] getStyleClasses() { - return this.styleClasses; - } - } - - private final List regions = CollectionLiterals.newArrayList(); - - @Override - @Pure - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((this.regions== null) ? 0 : this.regions.hashCode()); - return result; - } - - @Override - @Pure - public boolean equals(final Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - HighlightingResult other = (HighlightingResult) obj; - if (this.regions == null) { - if (other.regions != null) - return false; - } else if (!this.regions.equals(other.regions)) - return false; - return true; - } - - @Override - @Pure - public String toString() { - ToStringBuilder b = new ToStringBuilder(this); - b.add("regions", this.regions); - return b.toString(); - } - - @Pure - public List getRegions() { - return this.regions; - } -} diff --git a/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/syntaxcoloring/HighlightingService.java b/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/syntaxcoloring/HighlightingService.java deleted file mode 100644 index 9194fa7a174..00000000000 --- a/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/syntaxcoloring/HighlightingService.java +++ /dev/null @@ -1,51 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.server.syntaxcoloring; - -import com.google.inject.Inject; -import com.google.inject.Singleton; -import java.util.List; -import org.eclipse.xtext.ide.editor.syntaxcoloring.IHighlightedPositionAcceptor; -import org.eclipse.xtext.ide.editor.syntaxcoloring.ISemanticHighlightingCalculator; -import org.eclipse.xtext.util.CancelIndicator; -import org.eclipse.xtext.web.server.model.AbstractCachedService; -import org.eclipse.xtext.web.server.model.IXtextWebDocument; -import org.eclipse.xtext.web.server.syntaxcoloring.HighlightingResult; - -/** - * Service class for semantic highlighting. The syntactic highlighting is assumed - * to be already computed in the client, since that can usually be done with - * simple regular expressions in JavaScript. - */ -@Singleton -@SuppressWarnings("all") -public class HighlightingService extends AbstractCachedService { - @Inject - private ISemanticHighlightingCalculator highlightingCalculator; - - /** - * Compute the highlighting result for the given document. This method should not be called - * directly from the service dispatcher; use {@link #getResult(XtextWebDocumentAccess)} instead - * in order to avoid duplicate computations. - */ - @Override - public HighlightingResult compute(final IXtextWebDocument it, final CancelIndicator cancelIndicator) { - final HighlightingResult result = new HighlightingResult(); - final IHighlightedPositionAcceptor acceptor = this.createHighlightedPositionAcceptor(result.getRegions()); - this.highlightingCalculator.provideHighlightingFor(it.getResource(), acceptor, cancelIndicator); - return result; - } - - protected IHighlightedPositionAcceptor createHighlightedPositionAcceptor(final List positions) { - final IHighlightedPositionAcceptor _function = (int offset, int length, String[] ids) -> { - HighlightingResult.Region _region = new HighlightingResult.Region(offset, length, ids); - positions.add(_region); - }; - return _function; - } -} diff --git a/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/util/CancelIndicatorProgressMonitor.java b/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/util/CancelIndicatorProgressMonitor.java deleted file mode 100644 index 8c552e3a0e7..00000000000 --- a/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/util/CancelIndicatorProgressMonitor.java +++ /dev/null @@ -1,59 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.server.util; - -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.xtend.lib.annotations.FinalFieldsConstructor; -import org.eclipse.xtext.util.CancelIndicator; - -@FinalFieldsConstructor -@SuppressWarnings("all") -public class CancelIndicatorProgressMonitor implements IProgressMonitor { - private final CancelIndicator delegate; - - private boolean isCanceled; - - @Override - public boolean isCanceled() { - return (this.isCanceled || this.delegate.isCanceled()); - } - - @Override - public void setCanceled(final boolean value) { - this.isCanceled = value; - } - - @Override - public void beginTask(final String name, final int totalWork) { - } - - @Override - public void setTaskName(final String name) { - } - - @Override - public void subTask(final String name) { - } - - @Override - public void internalWorked(final double work) { - } - - @Override - public void worked(final int work) { - } - - @Override - public void done() { - } - - public CancelIndicatorProgressMonitor(final CancelIndicator delegate) { - super(); - this.delegate = delegate; - } -} diff --git a/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/util/ElementAtOffsetUtil.java b/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/util/ElementAtOffsetUtil.java deleted file mode 100644 index e230ebea2d3..00000000000 --- a/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/util/ElementAtOffsetUtil.java +++ /dev/null @@ -1,44 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.server.util; - -import com.google.inject.Inject; -import org.eclipse.emf.ecore.EObject; -import org.eclipse.xtext.resource.EObjectAtOffsetHelper; -import org.eclipse.xtext.resource.ILocationInFileProvider; -import org.eclipse.xtext.resource.XtextResource; -import org.eclipse.xtext.util.ITextRegion; -import org.eclipse.xtext.xbase.lib.Extension; - -@SuppressWarnings("all") -public class ElementAtOffsetUtil { - @Inject - @Extension - private EObjectAtOffsetHelper _eObjectAtOffsetHelper; - - @Inject - @Extension - private ILocationInFileProvider _iLocationInFileProvider; - - public EObject getElementAt(final XtextResource resource, final int offset) { - EObject crossLinkedEObject = this._eObjectAtOffsetHelper.resolveCrossReferencedElementAt(resource, offset); - if ((crossLinkedEObject != null)) { - return crossLinkedEObject; - } else { - EObject containedEObject = this._eObjectAtOffsetHelper.resolveContainedElementAt(resource, offset); - if ((containedEObject != null)) { - final ITextRegion nameRegion = this._iLocationInFileProvider.getSignificantTextRegion(containedEObject); - boolean _contains = nameRegion.contains(offset); - if (_contains) { - return containedEObject; - } - } - } - return null; - } -} diff --git a/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/validation/ValidationResult.java b/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/validation/ValidationResult.java deleted file mode 100644 index fa6e0a04dd7..00000000000 --- a/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/validation/ValidationResult.java +++ /dev/null @@ -1,201 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.server.validation; - -import java.util.List; -import org.eclipse.xtend.lib.annotations.Data; -import org.eclipse.xtend.lib.annotations.ToString; -import org.eclipse.xtext.web.server.IServiceResult; -import org.eclipse.xtext.xbase.lib.CollectionLiterals; -import org.eclipse.xtext.xbase.lib.Pure; -import org.eclipse.xtext.xbase.lib.util.ToStringBuilder; - -/** - * Result object returned by the validation service. - */ -@Data -@SuppressWarnings("all") -public class ValidationResult implements IServiceResult { - @Data - @ToString(skipNulls = true) - public static class Issue { - private final String description; - - private final String severity; - - /** - * One based, the first line has the number 1. - */ - private final Integer line; - - /** - * One based, the first column in a line has the number 1. - */ - private final Integer column; - - /** - * Zero based, the first char in a document has the offset 0. - */ - private final Integer offset; - - private final Integer length; - - public Issue(final String description, final String severity, final Integer line, final Integer column, final Integer offset, final Integer length) { - super(); - this.description = description; - this.severity = severity; - this.line = line; - this.column = column; - this.offset = offset; - this.length = length; - } - - @Override - @Pure - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((this.description== null) ? 0 : this.description.hashCode()); - result = prime * result + ((this.severity== null) ? 0 : this.severity.hashCode()); - result = prime * result + ((this.line== null) ? 0 : this.line.hashCode()); - result = prime * result + ((this.column== null) ? 0 : this.column.hashCode()); - result = prime * result + ((this.offset== null) ? 0 : this.offset.hashCode()); - result = prime * result + ((this.length== null) ? 0 : this.length.hashCode()); - return result; - } - - @Override - @Pure - public boolean equals(final Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - ValidationResult.Issue other = (ValidationResult.Issue) obj; - if (this.description == null) { - if (other.description != null) - return false; - } else if (!this.description.equals(other.description)) - return false; - if (this.severity == null) { - if (other.severity != null) - return false; - } else if (!this.severity.equals(other.severity)) - return false; - if (this.line == null) { - if (other.line != null) - return false; - } else if (!this.line.equals(other.line)) - return false; - if (this.column == null) { - if (other.column != null) - return false; - } else if (!this.column.equals(other.column)) - return false; - if (this.offset == null) { - if (other.offset != null) - return false; - } else if (!this.offset.equals(other.offset)) - return false; - if (this.length == null) { - if (other.length != null) - return false; - } else if (!this.length.equals(other.length)) - return false; - return true; - } - - @Override - @Pure - public String toString() { - ToStringBuilder b = new ToStringBuilder(this); - b.skipNulls(); - b.add("description", this.description); - b.add("severity", this.severity); - b.add("line", this.line); - b.add("column", this.column); - b.add("offset", this.offset); - b.add("length", this.length); - return b.toString(); - } - - @Pure - public String getDescription() { - return this.description; - } - - @Pure - public String getSeverity() { - return this.severity; - } - - @Pure - public Integer getLine() { - return this.line; - } - - @Pure - public Integer getColumn() { - return this.column; - } - - @Pure - public Integer getOffset() { - return this.offset; - } - - @Pure - public Integer getLength() { - return this.length; - } - } - - private final List issues = CollectionLiterals.newArrayList(); - - @Override - @Pure - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((this.issues== null) ? 0 : this.issues.hashCode()); - return result; - } - - @Override - @Pure - public boolean equals(final Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - ValidationResult other = (ValidationResult) obj; - if (this.issues == null) { - if (other.issues != null) - return false; - } else if (!this.issues.equals(other.issues)) - return false; - return true; - } - - @Override - @Pure - public String toString() { - ToStringBuilder b = new ToStringBuilder(this); - b.add("issues", this.issues); - return b.toString(); - } - - @Pure - public List getIssues() { - return this.issues; - } -} diff --git a/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/validation/ValidationService.java b/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/validation/ValidationService.java deleted file mode 100644 index 23ff3748e37..00000000000 --- a/org.eclipse.xtext.web/src/main/xtend-gen/org/eclipse/xtext/web/server/validation/ValidationService.java +++ /dev/null @@ -1,85 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.server.validation; - -import com.google.common.base.Objects; -import com.google.inject.Inject; -import com.google.inject.Singleton; -import java.util.List; -import java.util.function.Consumer; -import org.eclipse.xtext.diagnostics.Severity; -import org.eclipse.xtext.util.CancelIndicator; -import org.eclipse.xtext.validation.CheckMode; -import org.eclipse.xtext.validation.IResourceValidator; -import org.eclipse.xtext.validation.Issue; -import org.eclipse.xtext.web.server.model.AbstractCachedService; -import org.eclipse.xtext.web.server.model.IXtextWebDocument; -import org.eclipse.xtext.web.server.validation.ValidationResult; -import org.eclipse.xtext.xbase.lib.Functions.Function1; -import org.eclipse.xtext.xbase.lib.IterableExtensions; - -/** - * Service class for model validation. - */ -@Singleton -@SuppressWarnings("all") -public class ValidationService extends AbstractCachedService { - @Inject - private IResourceValidator resourceValidator; - - /** - * Compute the validation result for the given document. This method should not be called - * directly from the service dispatcher; use {@link #getResult(XtextWebDocumentAccess)} instead - * in order to avoid duplicate computations. - */ - @Override - public ValidationResult compute(final IXtextWebDocument it, final CancelIndicator cancelIndicator) { - final List issues = this.resourceValidator.validate(it.getResource(), CheckMode.ALL, cancelIndicator); - final ValidationResult result = new ValidationResult(); - final Function1 _function = (Issue it_1) -> { - Severity _severity = it_1.getSeverity(); - return Boolean.valueOf((!Objects.equal(_severity, Severity.IGNORE))); - }; - final Consumer _function_1 = (Issue issue) -> { - List _issues = result.getIssues(); - String _message = issue.getMessage(); - String _translate = this.translate(issue.getSeverity()); - Integer _lineNumber = issue.getLineNumber(); - Integer _column = issue.getColumn(); - Integer _offset = issue.getOffset(); - Integer _length = issue.getLength(); - ValidationResult.Issue _issue = new ValidationResult.Issue(_message, _translate, _lineNumber, _column, _offset, _length); - _issues.add(_issue); - }; - IterableExtensions.filter(issues, _function).forEach(_function_1); - return result; - } - - protected String translate(final Severity severity) { - String _switchResult = null; - if (severity != null) { - switch (severity) { - case WARNING: - _switchResult = "warning"; - break; - case ERROR: - _switchResult = "error"; - break; - case INFO: - _switchResult = "info"; - break; - default: - _switchResult = "ignore"; - break; - } - } else { - _switchResult = "ignore"; - } - return _switchResult; - } -} diff --git a/org.eclipse.xtext.web/src/test/xtend-gen/org/eclipse/xtext/web/server/test/AbstractWebServerTest.java b/org.eclipse.xtext.web/src/test/xtend-gen/org/eclipse/xtext/web/server/test/AbstractWebServerTest.java deleted file mode 100644 index 312fd6466e1..00000000000 --- a/org.eclipse.xtext.web/src/test/xtend-gen/org/eclipse/xtext/web/server/test/AbstractWebServerTest.java +++ /dev/null @@ -1,116 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.server.test; - -import com.google.inject.Guice; -import com.google.inject.Inject; -import com.google.inject.Injector; -import com.google.inject.Module; -import java.io.File; -import java.io.FileWriter; -import java.util.HashMap; -import java.util.Map; -import org.eclipse.emf.common.util.URI; -import org.eclipse.xtext.util.DisposableRegistry; -import org.eclipse.xtext.util.Modules2; -import org.eclipse.xtext.web.example.statemachine.StatemachineRuntimeModule; -import org.eclipse.xtext.web.example.statemachine.StatemachineStandaloneSetup; -import org.eclipse.xtext.web.example.statemachine.ide.StatemachineIdeModule; -import org.eclipse.xtext.web.example.statemachine.tests.StatemachineInjectorProvider; -import org.eclipse.xtext.web.server.ISession; -import org.eclipse.xtext.web.server.XtextServiceDispatcher; -import org.eclipse.xtext.web.server.persistence.IResourceBaseProvider; -import org.eclipse.xtext.web.server.test.HashMapSession; -import org.eclipse.xtext.web.server.test.MockServiceContext; -import org.eclipse.xtext.web.server.test.languages.StatemachineWebModule; -import org.eclipse.xtext.xbase.lib.Exceptions; -import org.junit.After; -import org.junit.Before; - -@SuppressWarnings("all") -public abstract class AbstractWebServerTest { - public static class TestResourceBaseProvider implements IResourceBaseProvider { - private final HashMap testFiles = new HashMap(); - - @Override - public URI getFileURI(final String resourceId) { - return this.testFiles.get(resourceId); - } - } - - private final StatemachineInjectorProvider injectorProvider = new StatemachineInjectorProvider() { - @Override - protected Injector internalCreateInjector() { - return new StatemachineStandaloneSetup() { - @Override - public Injector createInjector() { - final StatemachineIdeModule ideModule = new StatemachineIdeModule(); - final StatemachineWebModule webModule = new StatemachineWebModule(); - webModule.setResourceBaseProvider(AbstractWebServerTest.this.resourceBaseProvider); - return Guice.createInjector(Modules2.mixin(AbstractWebServerTest.this.getRuntimeModule(), ideModule, webModule)); - } - }.createInjectorAndDoEMFRegistration(); - } - }; - - private AbstractWebServerTest.TestResourceBaseProvider resourceBaseProvider; - - @Inject - private DisposableRegistry disposableRegistry; - - @Inject - private XtextServiceDispatcher dispatcher; - - protected Module getRuntimeModule() { - return new StatemachineRuntimeModule(); - } - - @Before - public void setup() { - AbstractWebServerTest.TestResourceBaseProvider _testResourceBaseProvider = new AbstractWebServerTest.TestResourceBaseProvider(); - this.resourceBaseProvider = _testResourceBaseProvider; - final Injector injector = this.injectorProvider.getInjector(); - injector.injectMembers(this); - this.injectorProvider.setupRegistry(); - } - - @After - public void teardown() { - this.disposableRegistry.dispose(); - this.resourceBaseProvider.testFiles.clear(); - this.injectorProvider.restoreRegistry(); - } - - protected File createFile(final String content) { - try { - final File file = File.createTempFile("test", ".statemachine"); - this.resourceBaseProvider.testFiles.put(file.getName(), URI.createFileURI(file.getAbsolutePath())); - final FileWriter writer = new FileWriter(file); - writer.write(content); - writer.close(); - file.deleteOnExit(); - return file; - } catch (Throwable _e) { - throw Exceptions.sneakyThrow(_e); - } - } - - protected XtextServiceDispatcher.ServiceDescriptor getService(final Map parameters) { - HashMapSession _hashMapSession = new HashMapSession(); - return this.getService(parameters, _hashMapSession); - } - - protected XtextServiceDispatcher.ServiceDescriptor getService(final Map parameters, final ISession session) { - XtextServiceDispatcher.ServiceDescriptor _xblockexpression = null; - { - final MockServiceContext serviceContext = new MockServiceContext(parameters, session); - _xblockexpression = this.dispatcher.getService(serviceContext); - } - return _xblockexpression; - } -} diff --git a/org.eclipse.xtext.web/src/test/xtend-gen/org/eclipse/xtext/web/server/test/Bug489571Test.java b/org.eclipse.xtext.web/src/test/xtend-gen/org/eclipse/xtext/web/server/test/Bug489571Test.java deleted file mode 100644 index 581bf5ca33e..00000000000 --- a/org.eclipse.xtext.web/src/test/xtend-gen/org/eclipse/xtext/web/server/test/Bug489571Test.java +++ /dev/null @@ -1,93 +0,0 @@ -package org.eclipse.xtext.web.server.test; - -import com.google.inject.Module; -import java.io.File; -import java.util.Collections; -import org.eclipse.xtend2.lib.StringConcatenation; -import org.eclipse.xtext.formatting.IIndentationInformation; -import org.eclipse.xtext.web.example.statemachine.StatemachineRuntimeModule; -import org.eclipse.xtext.web.server.IServiceResult; -import org.eclipse.xtext.web.server.XtextServiceDispatcher; -import org.eclipse.xtext.web.server.formatting.FormattingResult; -import org.eclipse.xtext.web.server.test.AbstractWebServerTest; -import org.eclipse.xtext.xbase.lib.CollectionLiterals; -import org.eclipse.xtext.xbase.lib.Pair; -import org.junit.Assert; -import org.junit.Test; - -@SuppressWarnings("all") -public class Bug489571Test extends AbstractWebServerTest { - public static class Bug489571IndentationInformation implements IIndentationInformation { - @Override - public String getIndentString() { - return " "; - } - } - - @Override - protected Module getRuntimeModule() { - abstract class __Bug489571Test_1 extends StatemachineRuntimeModule { - public abstract Class bindIIndentationInformation(); - } - - return new __Bug489571Test_1() { - public Class bindIIndentationInformation() { - return Bug489571Test.Bug489571IndentationInformation.class; - } - }; - } - - @Test - public void testFormatFile() { - final File file = this.createFile("/* bla */ output signal x state foo set x = true end"); - Pair _mappedTo = Pair.of("serviceType", "format"); - String _name = file.getName(); - Pair _mappedTo_1 = Pair.of("resource", _name); - final XtextServiceDispatcher.ServiceDescriptor format = this.getService(Collections.unmodifiableMap(CollectionLiterals.newHashMap(_mappedTo, _mappedTo_1))); - Assert.assertTrue(format.isHasSideEffects()); - IServiceResult _apply = format.getService().apply(); - final FormattingResult result = ((FormattingResult) _apply); - StringConcatenation _builder = new StringConcatenation(); - _builder.append("FormattingResult ["); - _builder.newLine(); - _builder.append(" "); - _builder.append("stateId = \"-7fffffff\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("formattedText = \"/* bla */ output signal x\\nstate foo\\n set x = true\\nend\\n\""); - _builder.newLine(); - _builder.append("]"); - final String expectedResult = _builder.toString(); - Assert.assertEquals(expectedResult, result.toString()); - } - - @Test - public void testFormatSelection() { - final File file = this.createFile("/* bla */ output signal x state foo set x = true end "); - Pair _mappedTo = Pair.of("serviceType", "format"); - Pair _mappedTo_1 = Pair.of("selectionStart", "26"); - Pair _mappedTo_2 = Pair.of("selectionEnd", "52"); - String _name = file.getName(); - Pair _mappedTo_3 = Pair.of("resource", _name); - final XtextServiceDispatcher.ServiceDescriptor format = this.getService( - Collections.unmodifiableMap(CollectionLiterals.newHashMap(_mappedTo, _mappedTo_1, _mappedTo_2, _mappedTo_3))); - Assert.assertTrue(format.isHasSideEffects()); - IServiceResult _apply = format.getService().apply(); - final FormattingResult result = ((FormattingResult) _apply); - StringConcatenation _builder = new StringConcatenation(); - _builder.append("FormattingResult ["); - _builder.newLine(); - _builder.append(" "); - _builder.append("stateId = \"-7fffffff\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("formattedText = \"state foo\\n set x = true\\nend\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("replaceRegion = [26:26]"); - _builder.newLine(); - _builder.append("]"); - final String expectedResult = _builder.toString(); - Assert.assertEquals(expectedResult, result.toString()); - } -} diff --git a/org.eclipse.xtext.web/src/test/xtend-gen/org/eclipse/xtext/web/server/test/ContentAssistTest.java b/org.eclipse.xtext.web/src/test/xtend-gen/org/eclipse/xtext/web/server/test/ContentAssistTest.java deleted file mode 100644 index b3c35430458..00000000000 --- a/org.eclipse.xtext.web/src/test/xtend-gen/org/eclipse/xtext/web/server/test/ContentAssistTest.java +++ /dev/null @@ -1,1168 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.server.test; - -import java.io.File; -import java.util.Collections; -import org.eclipse.xtend2.lib.StringConcatenation; -import org.eclipse.xtext.web.server.IServiceResult; -import org.eclipse.xtext.web.server.ServiceConflictResult; -import org.eclipse.xtext.web.server.XtextServiceDispatcher; -import org.eclipse.xtext.web.server.contentassist.ContentAssistResult; -import org.eclipse.xtext.web.server.test.AbstractWebServerTest; -import org.eclipse.xtext.xbase.lib.CollectionLiterals; -import org.eclipse.xtext.xbase.lib.Pair; -import org.hamcrest.core.IsInstanceOf; -import org.junit.Assert; -import org.junit.Test; - -@SuppressWarnings("all") -public class ContentAssistTest extends AbstractWebServerTest { - protected void assertContentAssistResult(final CharSequence resourceContent, final CharSequence expectedResult) { - String contentString = resourceContent.toString(); - final int cursorOffset = contentString.indexOf("|"); - if ((cursorOffset >= 0)) { - String _substring = contentString.substring(0, cursorOffset); - String _substring_1 = contentString.substring((cursorOffset + 1)); - String _plus = (_substring + _substring_1); - contentString = _plus; - this.assertContentAssistResult(contentString, cursorOffset, expectedResult); - } else { - this.assertContentAssistResult(resourceContent, 0, expectedResult); - } - } - - protected void assertContentAssistResult(final CharSequence resourceContent, final int offset, final CharSequence expectedResult) { - Pair _mappedTo = Pair.of("serviceType", "assist"); - String _string = resourceContent.toString(); - Pair _mappedTo_1 = Pair.of("fullText", _string); - String _string_1 = Integer.valueOf(offset).toString(); - Pair _mappedTo_2 = Pair.of("caretOffset", _string_1); - final XtextServiceDispatcher.ServiceDescriptor contentAssist = this.getService( - Collections.unmodifiableMap(CollectionLiterals.newHashMap(_mappedTo, _mappedTo_1, _mappedTo_2))); - Assert.assertFalse(contentAssist.isHasSideEffects()); - IServiceResult _apply = contentAssist.getService().apply(); - final ContentAssistResult result = ((ContentAssistResult) _apply); - Assert.assertEquals(expectedResult.toString(), result.toString()); - } - - @Test - public void testKeywords() { - StringConcatenation _builder = new StringConcatenation(); - _builder.append("ContentAssistResult ["); - _builder.newLine(); - _builder.append(" "); - _builder.append("stateId = \"-80000000\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("entries = ArrayList ("); - _builder.newLine(); - _builder.append(" "); - _builder.append("ContentAssistEntry ["); - _builder.newLine(); - _builder.append(" "); - _builder.append("prefix = \"\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("proposal = \"state name\\n\t\\nend\\n\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("label = \"state\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("description = \"Create a new state\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("escapePosition = 22"); - _builder.newLine(); - _builder.append(" "); - _builder.append("textReplacements = ArrayList ()"); - _builder.newLine(); - _builder.append(" "); - _builder.append("editPositions = ArrayList ("); - _builder.newLine(); - _builder.append(" "); - _builder.append("[16:4]"); - _builder.newLine(); - _builder.append(" "); - _builder.append(")"); - _builder.newLine(); - _builder.append(" "); - _builder.append("kind = \"UNKNOWN\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("],"); - _builder.newLine(); - _builder.append(" "); - _builder.append("ContentAssistEntry ["); - _builder.newLine(); - _builder.append(" "); - _builder.append("prefix = \"\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("proposal = \"end\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("textReplacements = ArrayList ()"); - _builder.newLine(); - _builder.append(" "); - _builder.append("editPositions = ArrayList ()"); - _builder.newLine(); - _builder.append(" "); - _builder.append("kind = \"KEYWORD\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("],"); - _builder.newLine(); - _builder.append(" "); - _builder.append("ContentAssistEntry ["); - _builder.newLine(); - _builder.append(" "); - _builder.append("prefix = \"\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("proposal = \"if\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("textReplacements = ArrayList ()"); - _builder.newLine(); - _builder.append(" "); - _builder.append("editPositions = ArrayList ()"); - _builder.newLine(); - _builder.append(" "); - _builder.append("kind = \"KEYWORD\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("],"); - _builder.newLine(); - _builder.append(" "); - _builder.append("ContentAssistEntry ["); - _builder.newLine(); - _builder.append(" "); - _builder.append("prefix = \"\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("proposal = \"set\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("textReplacements = ArrayList ()"); - _builder.newLine(); - _builder.append(" "); - _builder.append("editPositions = ArrayList ()"); - _builder.newLine(); - _builder.append(" "); - _builder.append("kind = \"KEYWORD\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("]"); - _builder.newLine(); - _builder.append(" "); - _builder.append(")"); - _builder.newLine(); - _builder.append("]"); - this.assertContentAssistResult("state foo | end", _builder); - } - - @Test - public void testKeywordWithPrefix() { - StringConcatenation _builder = new StringConcatenation(); - _builder.append("ContentAssistResult ["); - _builder.newLine(); - _builder.append(" "); - _builder.append("stateId = \"-80000000\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("entries = ArrayList ("); - _builder.newLine(); - _builder.append(" "); - _builder.append("ContentAssistEntry ["); - _builder.newLine(); - _builder.append(" "); - _builder.append("prefix = \"inp\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("proposal = \"input\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("textReplacements = ArrayList ()"); - _builder.newLine(); - _builder.append(" "); - _builder.append("editPositions = ArrayList ()"); - _builder.newLine(); - _builder.append(" "); - _builder.append("kind = \"KEYWORD\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("]"); - _builder.newLine(); - _builder.append(" "); - _builder.append(")"); - _builder.newLine(); - _builder.append("]"); - this.assertContentAssistResult("inp|", _builder); - } - - @Test - public void testTemplate() { - StringConcatenation _builder = new StringConcatenation(); - _builder.append("ContentAssistResult ["); - _builder.newLine(); - _builder.append(" "); - _builder.append("stateId = \"-80000000\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("entries = ArrayList ("); - _builder.newLine(); - _builder.append(" "); - _builder.append("ContentAssistEntry ["); - _builder.newLine(); - _builder.append(" "); - _builder.append("prefix = \"\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("proposal = \"state name\\n\t\\nend\\n\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("label = \"state\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("description = \"Create a new state\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("escapePosition = 26"); - _builder.newLine(); - _builder.append(" "); - _builder.append("textReplacements = ArrayList ()"); - _builder.newLine(); - _builder.append(" "); - _builder.append("editPositions = ArrayList ("); - _builder.newLine(); - _builder.append(" "); - _builder.append("[20:4]"); - _builder.newLine(); - _builder.append(" "); - _builder.append(")"); - _builder.newLine(); - _builder.append(" "); - _builder.append("kind = \"UNKNOWN\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("]"); - _builder.newLine(); - _builder.append(" "); - _builder.append(")"); - _builder.newLine(); - _builder.append("]"); - this.assertContentAssistResult("state foo end |", _builder); - } - - @Test - public void testIndentedTemplate() { - StringConcatenation _builder = new StringConcatenation(); - _builder.append("state foo end"); - _builder.newLine(); - _builder.append("\t"); - _builder.append("|"); - _builder.newLine(); - StringConcatenation _builder_1 = new StringConcatenation(); - _builder_1.append("ContentAssistResult ["); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("stateId = \"-80000000\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("entries = ArrayList ("); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("ContentAssistEntry ["); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("prefix = \"\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("proposal = \"state name\\n\t\t\\n\tend\\n\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("label = \"state\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("description = \"Create a new state\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("escapePosition = 28"); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("textReplacements = ArrayList ()"); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("editPositions = ArrayList ("); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("[21:4]"); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append(")"); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("kind = \"UNKNOWN\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("]"); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append(")"); - _builder_1.newLine(); - _builder_1.append("]"); - this.assertContentAssistResult(_builder, _builder_1); - } - - @Test - public void testTerminal() { - StringConcatenation _builder = new StringConcatenation(); - _builder.append("ContentAssistResult ["); - _builder.newLine(); - _builder.append(" "); - _builder.append("stateId = \"-80000000\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("entries = ArrayList ("); - _builder.newLine(); - _builder.append(" "); - _builder.append("ContentAssistEntry ["); - _builder.newLine(); - _builder.append(" "); - _builder.append("prefix = \"\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("proposal = \"name\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("description = \"ID\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("textReplacements = ArrayList ()"); - _builder.newLine(); - _builder.append(" "); - _builder.append("editPositions = ArrayList ("); - _builder.newLine(); - _builder.append(" "); - _builder.append("[6:4]"); - _builder.newLine(); - _builder.append(" "); - _builder.append(")"); - _builder.newLine(); - _builder.append(" "); - _builder.append("kind = \"VALUE\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("]"); - _builder.newLine(); - _builder.append(" "); - _builder.append(")"); - _builder.newLine(); - _builder.append("]"); - this.assertContentAssistResult("state | end", _builder); - } - - @Test - public void testCrossref() { - StringConcatenation _builder = new StringConcatenation(); - _builder.append("input signal x"); - _builder.newLine(); - _builder.append("state foo"); - _builder.newLine(); - _builder.append("end"); - _builder.newLine(); - _builder.append("state bar"); - _builder.newLine(); - _builder.append("\t"); - _builder.append("if x == true goto |"); - _builder.newLine(); - _builder.append("end"); - _builder.newLine(); - StringConcatenation _builder_1 = new StringConcatenation(); - _builder_1.append("ContentAssistResult ["); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("stateId = \"-80000000\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("entries = ArrayList ("); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("ContentAssistEntry ["); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("prefix = \"\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("proposal = \"bar\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("description = \"State\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("textReplacements = ArrayList ()"); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("editPositions = ArrayList ()"); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("kind = \"UNKNOWN\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("],"); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("ContentAssistEntry ["); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("prefix = \"\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("proposal = \"foo\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("description = \"State\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("textReplacements = ArrayList ()"); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("editPositions = ArrayList ()"); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("kind = \"UNKNOWN\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("]"); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append(")"); - _builder_1.newLine(); - _builder_1.append("]"); - this.assertContentAssistResult(_builder, _builder_1); - } - - @Test - public void testFqnCrossref() { - StringConcatenation _builder = new StringConcatenation(); - _builder.append("input signal x"); - _builder.newLine(); - _builder.append("state foo"); - _builder.newLine(); - _builder.append("\t"); - _builder.append("state inner1 end"); - _builder.newLine(); - _builder.append("\t"); - _builder.append("state inner2 end"); - _builder.newLine(); - _builder.append("end"); - _builder.newLine(); - _builder.append("state bar"); - _builder.newLine(); - _builder.append("\t"); - _builder.append("if x == true goto |"); - _builder.newLine(); - _builder.append("end"); - _builder.newLine(); - StringConcatenation _builder_1 = new StringConcatenation(); - _builder_1.append("ContentAssistResult ["); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("stateId = \"-80000000\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("entries = ArrayList ("); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("ContentAssistEntry ["); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("prefix = \"\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("proposal = \"bar\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("description = \"State\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("textReplacements = ArrayList ()"); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("editPositions = ArrayList ()"); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("kind = \"UNKNOWN\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("],"); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("ContentAssistEntry ["); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("prefix = \"\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("proposal = \"foo\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("description = \"State\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("textReplacements = ArrayList ()"); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("editPositions = ArrayList ()"); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("kind = \"UNKNOWN\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("],"); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("ContentAssistEntry ["); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("prefix = \"\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("proposal = \"foo.inner1\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("description = \"State\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("textReplacements = ArrayList ()"); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("editPositions = ArrayList ()"); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("kind = \"UNKNOWN\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("],"); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("ContentAssistEntry ["); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("prefix = \"\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("proposal = \"foo.inner2\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("description = \"State\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("textReplacements = ArrayList ()"); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("editPositions = ArrayList ()"); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("kind = \"UNKNOWN\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("]"); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append(")"); - _builder_1.newLine(); - _builder_1.append("]"); - this.assertContentAssistResult(_builder, _builder_1); - } - - @Test - public void testCustomTerminal() { - StringConcatenation _builder = new StringConcatenation(); - _builder.append("output signal x"); - _builder.newLine(); - _builder.append("state foo"); - _builder.newLine(); - _builder.append("\t"); - _builder.append("set x = |"); - _builder.newLine(); - _builder.append("end"); - _builder.newLine(); - StringConcatenation _builder_1 = new StringConcatenation(); - _builder_1.append("ContentAssistResult ["); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("stateId = \"-80000000\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("entries = ArrayList ("); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("ContentAssistEntry ["); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("prefix = \"\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("proposal = \"false\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("textReplacements = ArrayList ()"); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("editPositions = ArrayList ()"); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("kind = \"UNKNOWN\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("],"); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("ContentAssistEntry ["); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("prefix = \"\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("proposal = \"true\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("textReplacements = ArrayList ()"); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("editPositions = ArrayList ()"); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("kind = \"UNKNOWN\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("]"); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append(")"); - _builder_1.newLine(); - _builder_1.append("]"); - this.assertContentAssistResult(_builder, _builder_1); - } - - @Test - public void testCustomCrossref() { - StringConcatenation _builder = new StringConcatenation(); - _builder.append("input signal x"); - _builder.newLine(); - _builder.append("output signal z"); - _builder.newLine(); - _builder.append("state foo"); - _builder.newLine(); - _builder.append("\t"); - _builder.append("if | == true goto foo"); - _builder.newLine(); - _builder.append("end"); - _builder.newLine(); - StringConcatenation _builder_1 = new StringConcatenation(); - _builder_1.append("ContentAssistResult ["); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("stateId = \"-80000000\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("entries = ArrayList ("); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("ContentAssistEntry ["); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("prefix = \"\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("proposal = \"x\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("description = \"input signal\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("textReplacements = ArrayList ()"); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("editPositions = ArrayList ()"); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("kind = \"UNKNOWN\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("]"); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append(")"); - _builder_1.newLine(); - _builder_1.append("]"); - this.assertContentAssistResult(_builder, _builder_1); - } - - @Test - public void testCrossrefWithPrefix1() { - StringConcatenation _builder = new StringConcatenation(); - _builder.append("input signal x"); - _builder.newLine(); - _builder.append("state foo"); - _builder.newLine(); - _builder.append("\t"); - _builder.append("if x == true goto fo|"); - _builder.newLine(); - _builder.append("end"); - _builder.newLine(); - _builder.append("state bar"); - _builder.newLine(); - _builder.append("end"); - _builder.newLine(); - StringConcatenation _builder_1 = new StringConcatenation(); - _builder_1.append("ContentAssistResult ["); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("stateId = \"-80000000\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("entries = ArrayList ("); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("ContentAssistEntry ["); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("prefix = \"fo\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("proposal = \"foo\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("description = \"State\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("textReplacements = ArrayList ()"); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("editPositions = ArrayList ()"); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("kind = \"UNKNOWN\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("]"); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append(")"); - _builder_1.newLine(); - _builder_1.append("]"); - this.assertContentAssistResult(_builder, _builder_1); - } - - @Test - public void testCrossrefWithPrefix2() { - StringConcatenation _builder = new StringConcatenation(); - _builder.append("input signal x"); - _builder.newLine(); - _builder.append("state Foooo"); - _builder.newLine(); - _builder.append("\t"); - _builder.append("if x == true goto fOoO|"); - _builder.newLine(); - _builder.append("end"); - _builder.newLine(); - _builder.append("state Baaar"); - _builder.newLine(); - _builder.append("end"); - _builder.newLine(); - StringConcatenation _builder_1 = new StringConcatenation(); - _builder_1.append("ContentAssistResult ["); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("stateId = \"-80000000\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("entries = ArrayList ("); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("ContentAssistEntry ["); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("prefix = \"fOoO\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("proposal = \"Foooo\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("description = \"State\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("textReplacements = ArrayList ()"); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("editPositions = ArrayList ()"); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("kind = \"UNKNOWN\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("]"); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append(")"); - _builder_1.newLine(); - _builder_1.append("]"); - this.assertContentAssistResult(_builder, _builder_1); - } - - @Test - public void testFqnCrossrefWithPrefix1() { - StringConcatenation _builder = new StringConcatenation(); - _builder.append("input signal x"); - _builder.newLine(); - _builder.append("state foo"); - _builder.newLine(); - _builder.append("\t"); - _builder.append("state inner1 end"); - _builder.newLine(); - _builder.append("\t"); - _builder.append("state inner2 end"); - _builder.newLine(); - _builder.append("end"); - _builder.newLine(); - _builder.append("state bar"); - _builder.newLine(); - _builder.append("\t"); - _builder.append("if x == true goto foo.|"); - _builder.newLine(); - _builder.append("end"); - _builder.newLine(); - StringConcatenation _builder_1 = new StringConcatenation(); - _builder_1.append("ContentAssistResult ["); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("stateId = \"-80000000\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("entries = ArrayList ("); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("ContentAssistEntry ["); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("prefix = \"foo.\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("proposal = \"foo.inner1\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("description = \"State\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("textReplacements = ArrayList ()"); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("editPositions = ArrayList ()"); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("kind = \"UNKNOWN\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("],"); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("ContentAssistEntry ["); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("prefix = \"foo.\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("proposal = \"foo.inner2\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("description = \"State\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("textReplacements = ArrayList ()"); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("editPositions = ArrayList ()"); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("kind = \"UNKNOWN\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("]"); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append(")"); - _builder_1.newLine(); - _builder_1.append("]"); - this.assertContentAssistResult(_builder, _builder_1); - } - - @Test - public void testFqnCrossrefWithPrefix2() { - StringConcatenation _builder = new StringConcatenation(); - _builder.append("input signal x"); - _builder.newLine(); - _builder.append("state foo"); - _builder.newLine(); - _builder.append("\t"); - _builder.append("state inner1 end"); - _builder.newLine(); - _builder.append("\t"); - _builder.append("state inner2 end"); - _builder.newLine(); - _builder.append("end"); - _builder.newLine(); - _builder.append("state bar"); - _builder.newLine(); - _builder.append("\t"); - _builder.append("if x == true goto inner|"); - _builder.newLine(); - _builder.append("end"); - _builder.newLine(); - StringConcatenation _builder_1 = new StringConcatenation(); - _builder_1.append("ContentAssistResult ["); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("stateId = \"-80000000\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("entries = ArrayList ("); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("ContentAssistEntry ["); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("prefix = \"inner\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("proposal = \"foo.inner1\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("description = \"State\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("textReplacements = ArrayList ()"); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("editPositions = ArrayList ()"); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("kind = \"UNKNOWN\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("],"); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("ContentAssistEntry ["); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("prefix = \"inner\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("proposal = \"foo.inner2\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("description = \"State\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("textReplacements = ArrayList ()"); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("editPositions = ArrayList ()"); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("kind = \"UNKNOWN\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("]"); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append(")"); - _builder_1.newLine(); - _builder_1.append("]"); - this.assertContentAssistResult(_builder, _builder_1); - } - - @Test - public void testFqnCrossrefWithPrefix3() { - StringConcatenation _builder = new StringConcatenation(); - _builder.append("input signal x"); - _builder.newLine(); - _builder.append("state foo"); - _builder.newLine(); - _builder.append("\t"); - _builder.append("state inner1"); - _builder.newLine(); - _builder.append("\t\t"); - _builder.append("state inner2 end"); - _builder.newLine(); - _builder.append("\t\t"); - _builder.append("state inner3 end"); - _builder.newLine(); - _builder.append("\t"); - _builder.append("end"); - _builder.newLine(); - _builder.append("end"); - _builder.newLine(); - _builder.append("state bar"); - _builder.newLine(); - _builder.append("\t"); - _builder.append("if x == true goto f.i.i|"); - _builder.newLine(); - _builder.append("end"); - _builder.newLine(); - StringConcatenation _builder_1 = new StringConcatenation(); - _builder_1.append("ContentAssistResult ["); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("stateId = \"-80000000\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("entries = ArrayList ("); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("ContentAssistEntry ["); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("prefix = \"f.i.i\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("proposal = \"foo.inner1.inner2\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("description = \"State\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("textReplacements = ArrayList ()"); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("editPositions = ArrayList ()"); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("kind = \"UNKNOWN\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("],"); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("ContentAssistEntry ["); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("prefix = \"f.i.i\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("proposal = \"foo.inner1.inner3\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("description = \"State\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("textReplacements = ArrayList ()"); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("editPositions = ArrayList ()"); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("kind = \"UNKNOWN\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("]"); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append(")"); - _builder_1.newLine(); - _builder_1.append("]"); - this.assertContentAssistResult(_builder, _builder_1); - } - - @Test - public void testTerminalWithPrefix() { - StringConcatenation _builder = new StringConcatenation(); - _builder.append("state foo|"); - _builder.newLine(); - StringConcatenation _builder_1 = new StringConcatenation(); - _builder_1.append("ContentAssistResult ["); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("stateId = \"-80000000\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("entries = ArrayList ()"); - _builder_1.newLine(); - _builder_1.append("]"); - this.assertContentAssistResult(_builder, _builder_1); - } - - @Test - public void testCustomTerminalWithPrefix() { - StringConcatenation _builder = new StringConcatenation(); - _builder.append("output signal x"); - _builder.newLine(); - _builder.append("state foo"); - _builder.newLine(); - _builder.append("\t"); - _builder.append("set x = f|"); - _builder.newLine(); - _builder.append("end"); - _builder.newLine(); - StringConcatenation _builder_1 = new StringConcatenation(); - _builder_1.append("ContentAssistResult ["); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("stateId = \"-80000000\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("entries = ArrayList ("); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("ContentAssistEntry ["); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("prefix = \"f\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("proposal = \"false\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("textReplacements = ArrayList ()"); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("editPositions = ArrayList ()"); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("kind = \"UNKNOWN\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("]"); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append(")"); - _builder_1.newLine(); - _builder_1.append("]"); - this.assertContentAssistResult(_builder, _builder_1); - } - - @Test - public void testIncorrectStateId() { - final File file = this.createFile("state foo end"); - Pair _mappedTo = Pair.of("serviceType", "assist"); - String _name = file.getName(); - Pair _mappedTo_1 = Pair.of("resource", _name); - Pair _mappedTo_2 = Pair.of("caretOffset", "3"); - Pair _mappedTo_3 = Pair.of("requiredStateId", "totalerquatsch"); - final XtextServiceDispatcher.ServiceDescriptor contentAssist = this.getService( - Collections.unmodifiableMap(CollectionLiterals.newHashMap(_mappedTo, _mappedTo_1, _mappedTo_2, _mappedTo_3))); - Assert.assertTrue(contentAssist.isHasConflict()); - final IServiceResult result = contentAssist.getService().apply(); - Assert.assertThat(result, IsInstanceOf.instanceOf(ServiceConflictResult.class)); - Assert.assertEquals(((ServiceConflictResult) result).getConflict(), "invalidStateId"); - } -} diff --git a/org.eclipse.xtext.web/src/test/xtend-gen/org/eclipse/xtext/web/server/test/Formatting1Test.java b/org.eclipse.xtext.web/src/test/xtend-gen/org/eclipse/xtext/web/server/test/Formatting1Test.java deleted file mode 100644 index 239565b38d2..00000000000 --- a/org.eclipse.xtext.web/src/test/xtend-gen/org/eclipse/xtext/web/server/test/Formatting1Test.java +++ /dev/null @@ -1,100 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.server.test; - -import com.google.inject.Module; -import java.io.File; -import java.util.Collections; -import org.eclipse.xtend2.lib.StringConcatenation; -import org.eclipse.xtext.formatting.IFormatter; -import org.eclipse.xtext.formatting2.IFormatter2; -import org.eclipse.xtext.web.example.statemachine.StatemachineRuntimeModule; -import org.eclipse.xtext.web.server.IServiceResult; -import org.eclipse.xtext.web.server.XtextServiceDispatcher; -import org.eclipse.xtext.web.server.formatting.FormattingResult; -import org.eclipse.xtext.web.server.test.AbstractWebServerTest; -import org.eclipse.xtext.web.server.test.languages.formatting.StatemachineFormatter; -import org.eclipse.xtext.xbase.lib.CollectionLiterals; -import org.eclipse.xtext.xbase.lib.Pair; -import org.junit.Assert; -import org.junit.Test; - -@SuppressWarnings("all") -public class Formatting1Test extends AbstractWebServerTest { - @Override - protected Module getRuntimeModule() { - return new StatemachineRuntimeModule() { - @Override - public Class bindIFormatter2() { - return null; - } - - @Override - public Class bindIFormatter() { - return StatemachineFormatter.class; - } - }; - } - - @Test - public void testFormatFile() { - final File file = this.createFile("/* bla */ output signal x state foo set x = true end"); - Pair _mappedTo = Pair.of("serviceType", "format"); - String _name = file.getName(); - Pair _mappedTo_1 = Pair.of("resource", _name); - final XtextServiceDispatcher.ServiceDescriptor format = this.getService(Collections.unmodifiableMap(CollectionLiterals.newHashMap(_mappedTo, _mappedTo_1))); - Assert.assertTrue(format.isHasSideEffects()); - IServiceResult _apply = format.getService().apply(); - final FormattingResult result = ((FormattingResult) _apply); - StringConcatenation _builder = new StringConcatenation(); - _builder.append("FormattingResult ["); - _builder.newLine(); - _builder.append(" "); - _builder.append("stateId = \"-7fffffff\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("formattedText = \"output signal x\\nstate foo\\n\tset x = true\\nend\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("replaceRegion = [10:42]"); - _builder.newLine(); - _builder.append("]"); - final String expectedResult = _builder.toString(); - Assert.assertEquals(expectedResult, result.toString()); - } - - @Test - public void testFormatSelection() { - final File file = this.createFile("/* bla */ output signal x state foo set x = true end"); - Pair _mappedTo = Pair.of("serviceType", "format"); - Pair _mappedTo_1 = Pair.of("selectionStart", "26"); - Pair _mappedTo_2 = Pair.of("selectionEnd", "52"); - String _name = file.getName(); - Pair _mappedTo_3 = Pair.of("resource", _name); - final XtextServiceDispatcher.ServiceDescriptor format = this.getService( - Collections.unmodifiableMap(CollectionLiterals.newHashMap(_mappedTo, _mappedTo_1, _mappedTo_2, _mappedTo_3))); - Assert.assertTrue(format.isHasSideEffects()); - IServiceResult _apply = format.getService().apply(); - final FormattingResult result = ((FormattingResult) _apply); - StringConcatenation _builder = new StringConcatenation(); - _builder.append("FormattingResult ["); - _builder.newLine(); - _builder.append(" "); - _builder.append("stateId = \"-7fffffff\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("formattedText = \"state foo\\n\tset x = true\\nend\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("replaceRegion = [26:26]"); - _builder.newLine(); - _builder.append("]"); - final String expectedResult = _builder.toString(); - Assert.assertEquals(expectedResult, result.toString()); - } -} diff --git a/org.eclipse.xtext.web/src/test/xtend-gen/org/eclipse/xtext/web/server/test/Formatting2Test.java b/org.eclipse.xtext.web/src/test/xtend-gen/org/eclipse/xtext/web/server/test/Formatting2Test.java deleted file mode 100644 index 2a8aa18c3f2..00000000000 --- a/org.eclipse.xtext.web/src/test/xtend-gen/org/eclipse/xtext/web/server/test/Formatting2Test.java +++ /dev/null @@ -1,77 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.server.test; - -import java.io.File; -import java.util.Collections; -import org.eclipse.xtend2.lib.StringConcatenation; -import org.eclipse.xtext.web.server.IServiceResult; -import org.eclipse.xtext.web.server.XtextServiceDispatcher; -import org.eclipse.xtext.web.server.formatting.FormattingResult; -import org.eclipse.xtext.web.server.test.AbstractWebServerTest; -import org.eclipse.xtext.xbase.lib.CollectionLiterals; -import org.eclipse.xtext.xbase.lib.Pair; -import org.junit.Assert; -import org.junit.Test; - -@SuppressWarnings("all") -public class Formatting2Test extends AbstractWebServerTest { - @Test - public void testFormatFile() { - final File file = this.createFile("/* bla */ output signal x state foo set x = true end"); - Pair _mappedTo = Pair.of("serviceType", "format"); - String _name = file.getName(); - Pair _mappedTo_1 = Pair.of("resource", _name); - final XtextServiceDispatcher.ServiceDescriptor format = this.getService(Collections.unmodifiableMap(CollectionLiterals.newHashMap(_mappedTo, _mappedTo_1))); - Assert.assertTrue(format.isHasSideEffects()); - IServiceResult _apply = format.getService().apply(); - final FormattingResult result = ((FormattingResult) _apply); - StringConcatenation _builder = new StringConcatenation(); - _builder.append("FormattingResult ["); - _builder.newLine(); - _builder.append(" "); - _builder.append("stateId = \"-7fffffff\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("formattedText = \"/* bla */ output signal x\\nstate foo\\n\tset x = true\\nend\\n\""); - _builder.newLine(); - _builder.append("]"); - final String expectedResult = _builder.toString(); - Assert.assertEquals(expectedResult, result.toString()); - } - - @Test - public void testFormatSelection() { - final File file = this.createFile("/* bla */ output signal x state foo set x = true end "); - Pair _mappedTo = Pair.of("serviceType", "format"); - Pair _mappedTo_1 = Pair.of("selectionStart", "26"); - Pair _mappedTo_2 = Pair.of("selectionEnd", "52"); - String _name = file.getName(); - Pair _mappedTo_3 = Pair.of("resource", _name); - final XtextServiceDispatcher.ServiceDescriptor format = this.getService( - Collections.unmodifiableMap(CollectionLiterals.newHashMap(_mappedTo, _mappedTo_1, _mappedTo_2, _mappedTo_3))); - Assert.assertTrue(format.isHasSideEffects()); - IServiceResult _apply = format.getService().apply(); - final FormattingResult result = ((FormattingResult) _apply); - StringConcatenation _builder = new StringConcatenation(); - _builder.append("FormattingResult ["); - _builder.newLine(); - _builder.append(" "); - _builder.append("stateId = \"-7fffffff\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("formattedText = \"state foo\\n\tset x = true\\nend\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("replaceRegion = [26:26]"); - _builder.newLine(); - _builder.append("]"); - final String expectedResult = _builder.toString(); - Assert.assertEquals(expectedResult, result.toString()); - } -} diff --git a/org.eclipse.xtext.web/src/test/xtend-gen/org/eclipse/xtext/web/server/test/GeneratorTest.java b/org.eclipse.xtext.web/src/test/xtend-gen/org/eclipse/xtext/web/server/test/GeneratorTest.java deleted file mode 100644 index 5de97d8e75f..00000000000 --- a/org.eclipse.xtext.web/src/test/xtend-gen/org/eclipse/xtext/web/server/test/GeneratorTest.java +++ /dev/null @@ -1,271 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.server.test; - -import com.google.common.collect.Iterables; -import com.google.inject.Module; -import java.io.File; -import java.util.Collections; -import org.eclipse.emf.common.util.EList; -import org.eclipse.emf.ecore.resource.Resource; -import org.eclipse.xtend2.lib.StringConcatenation; -import org.eclipse.xtext.generator.AbstractGenerator; -import org.eclipse.xtext.generator.IFileSystemAccess2; -import org.eclipse.xtext.generator.IGenerator2; -import org.eclipse.xtext.generator.IGeneratorContext; -import org.eclipse.xtext.web.example.statemachine.StatemachineRuntimeModule; -import org.eclipse.xtext.web.example.statemachine.statemachine.State; -import org.eclipse.xtext.web.example.statemachine.statemachine.Statemachine; -import org.eclipse.xtext.web.server.IServiceResult; -import org.eclipse.xtext.web.server.XtextServiceDispatcher; -import org.eclipse.xtext.web.server.generator.GeneratorResult; -import org.eclipse.xtext.web.server.generator.GeneratorService; -import org.eclipse.xtext.web.server.test.AbstractWebServerTest; -import org.eclipse.xtext.xbase.lib.CollectionLiterals; -import org.eclipse.xtext.xbase.lib.IterableExtensions; -import org.eclipse.xtext.xbase.lib.Pair; -import org.junit.Assert; -import org.junit.Test; - -@SuppressWarnings("all") -public class GeneratorTest extends AbstractWebServerTest { - public static class Generator extends AbstractGenerator { - private int invocationCount = 0; - - public Generator() { - GeneratorTest.generatorInstance = this; - } - - @Override - public void doGenerate(final Resource input, final IFileSystemAccess2 fsa, final IGeneratorContext ctx) { - this.invocationCount++; - final Statemachine statemachine = IterableExtensions.head(Iterables.filter(input.getContents(), Statemachine.class)); - StringConcatenation _builder = new StringConcatenation(); - { - EList _states = statemachine.getStates(); - boolean _hasElements = false; - for(final State state : _states) { - if (!_hasElements) { - _hasElements = true; - } else { - _builder.appendImmediate(",", ""); - } - String _name = state.getName(); - _builder.append(_name); - } - } - _builder.newLineIfNotEmpty(); - fsa.generateFile("/DEFAULT_ARTIFACT", _builder); - StringConcatenation _builder_1 = new StringConcatenation(); - _builder_1.append("hello, world!"); - fsa.generateFile("/test.txt", _builder_1); - } - } - - private static GeneratorTest.Generator generatorInstance; - - @Override - protected Module getRuntimeModule() { - return new StatemachineRuntimeModule() { - @Override - public Class bindIGenerator2() { - return GeneratorTest.Generator.class; - } - }; - } - - @Test - public void testGenerateText() { - final File file = this.createFile("state foo end state bar end"); - Pair _mappedTo = Pair.of("serviceType", "generate"); - String _name = file.getName(); - Pair _mappedTo_1 = Pair.of("resource", _name); - final XtextServiceDispatcher.ServiceDescriptor generate = this.getService(Collections.unmodifiableMap(CollectionLiterals.newHashMap(_mappedTo, _mappedTo_1))); - Assert.assertFalse(generate.isHasSideEffects()); - IServiceResult _apply = generate.getService().apply(); - final GeneratorResult result = ((GeneratorResult) _apply); - StringConcatenation _builder = new StringConcatenation(); - _builder.append("GeneratorResult ["); - _builder.newLine(); - _builder.append(" "); - _builder.append("name = \"DEFAULT_OUTPUT/DEFAULT_ARTIFACT\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("content = \"foo,bar\\n\""); - _builder.newLine(); - _builder.append("]"); - final String expectedResult = _builder.toString(); - Assert.assertEquals(expectedResult, result.toString()); - } - - @Test - public void testGenerateAdditionalText() { - final File file = this.createFile("state foo end state bar end"); - Pair _mappedTo = Pair.of("serviceType", "generate"); - String _name = file.getName(); - Pair _mappedTo_1 = Pair.of("resource", _name); - Pair _mappedTo_2 = Pair.of("artifact", "DEFAULT_OUTPUT/test.txt"); - final XtextServiceDispatcher.ServiceDescriptor generate = this.getService(Collections.unmodifiableMap(CollectionLiterals.newHashMap(_mappedTo, _mappedTo_1, _mappedTo_2))); - Assert.assertFalse(generate.isHasSideEffects()); - IServiceResult _apply = generate.getService().apply(); - final GeneratorResult result = ((GeneratorResult) _apply); - StringConcatenation _builder = new StringConcatenation(); - _builder.append("GeneratorResult ["); - _builder.newLine(); - _builder.append(" "); - _builder.append("name = \"DEFAULT_OUTPUT/test.txt\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("contentType = \"text/plain\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("content = \"hello, world!\""); - _builder.newLine(); - _builder.append("]"); - final String expectedResult = _builder.toString(); - Assert.assertEquals(expectedResult, result.toString()); - } - - @Test - public void testInvokedOnce() { - if ((GeneratorTest.generatorInstance != null)) { - GeneratorTest.generatorInstance.invocationCount = 0; - } - final File file = this.createFile("state foo end state bar end"); - Pair _mappedTo = Pair.of("serviceType", "generate"); - String _name = file.getName(); - Pair _mappedTo_1 = Pair.of("resource", _name); - final XtextServiceDispatcher.ServiceDescriptor generate = this.getService(Collections.unmodifiableMap(CollectionLiterals.newHashMap(_mappedTo, _mappedTo_1))); - generate.getService().apply(); - Assert.assertEquals(1, GeneratorTest.generatorInstance.invocationCount); - generate.getService().apply(); - Assert.assertEquals(1, GeneratorTest.generatorInstance.invocationCount); - } - - @Test - public void testGetResultWithoutContent() { - final File file = this.createFile("state foo end state bar end"); - Pair _mappedTo = Pair.of("serviceType", "generate"); - String _name = file.getName(); - Pair _mappedTo_1 = Pair.of("resource", _name); - Pair _mappedTo_2 = Pair.of("artifact", "DEFAULT_OUTPUT/test.txt"); - Pair _mappedTo_3 = Pair.of("includeContent", "false"); - final XtextServiceDispatcher.ServiceDescriptor generate = this.getService(Collections.unmodifiableMap(CollectionLiterals.newHashMap(_mappedTo, _mappedTo_1, _mappedTo_2, _mappedTo_3))); - IServiceResult _apply = generate.getService().apply(); - final GeneratorResult result = ((GeneratorResult) _apply); - StringConcatenation _builder = new StringConcatenation(); - _builder.append("GeneratorResult ["); - _builder.newLine(); - _builder.append(" "); - _builder.append("name = \"DEFAULT_OUTPUT/test.txt\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("contentType = \"text/plain\""); - _builder.newLine(); - _builder.append("]"); - final String expectedResult = _builder.toString(); - Assert.assertEquals(expectedResult, result.toString()); - } - - @Test - public void testGetAllResults() { - final File file = this.createFile("state foo end state bar end"); - Pair _mappedTo = Pair.of("serviceType", "generate"); - String _name = file.getName(); - Pair _mappedTo_1 = Pair.of("resource", _name); - Pair _mappedTo_2 = Pair.of("allArtifacts", "true"); - final XtextServiceDispatcher.ServiceDescriptor generate = this.getService(Collections.unmodifiableMap(CollectionLiterals.newHashMap(_mappedTo, _mappedTo_1, _mappedTo_2))); - IServiceResult _apply = generate.getService().apply(); - final GeneratorService.GeneratedArtifacts result = ((GeneratorService.GeneratedArtifacts) _apply); - StringConcatenation _builder = new StringConcatenation(); - _builder.append("GeneratedArtifacts ["); - _builder.newLine(); - _builder.append(" "); - _builder.append("artifacts = ArrayList ("); - _builder.newLine(); - _builder.append(" "); - _builder.append("GeneratorResult ["); - _builder.newLine(); - _builder.append(" "); - _builder.append("name = \"DEFAULT_OUTPUT/DEFAULT_ARTIFACT\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("content = \"foo,bar\\n\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("],"); - _builder.newLine(); - _builder.append(" "); - _builder.append("GeneratorResult ["); - _builder.newLine(); - _builder.append(" "); - _builder.append("name = \"DEFAULT_OUTPUT/test.txt\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("contentType = \"text/plain\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("content = \"hello, world!\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("]"); - _builder.newLine(); - _builder.append(" "); - _builder.append(")"); - _builder.newLine(); - _builder.append("]"); - final String expectedResult = _builder.toString(); - Assert.assertEquals(expectedResult, result.toString()); - } - - @Test - public void testGetAllResultsWithoutContent() { - final File file = this.createFile("state foo end state bar end"); - Pair _mappedTo = Pair.of("serviceType", "generate"); - String _name = file.getName(); - Pair _mappedTo_1 = Pair.of("resource", _name); - Pair _mappedTo_2 = Pair.of("allArtifacts", "true"); - Pair _mappedTo_3 = Pair.of("includeContent", "false"); - final XtextServiceDispatcher.ServiceDescriptor generate = this.getService(Collections.unmodifiableMap(CollectionLiterals.newHashMap(_mappedTo, _mappedTo_1, _mappedTo_2, _mappedTo_3))); - IServiceResult _apply = generate.getService().apply(); - final GeneratorService.GeneratedArtifacts result = ((GeneratorService.GeneratedArtifacts) _apply); - StringConcatenation _builder = new StringConcatenation(); - _builder.append("GeneratedArtifacts ["); - _builder.newLine(); - _builder.append(" "); - _builder.append("artifacts = ArrayList ("); - _builder.newLine(); - _builder.append(" "); - _builder.append("GeneratorResult ["); - _builder.newLine(); - _builder.append(" "); - _builder.append("name = \"DEFAULT_OUTPUT/DEFAULT_ARTIFACT\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("],"); - _builder.newLine(); - _builder.append(" "); - _builder.append("GeneratorResult ["); - _builder.newLine(); - _builder.append(" "); - _builder.append("name = \"DEFAULT_OUTPUT/test.txt\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("contentType = \"text/plain\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("]"); - _builder.newLine(); - _builder.append(" "); - _builder.append(")"); - _builder.newLine(); - _builder.append("]"); - final String expectedResult = _builder.toString(); - Assert.assertEquals(expectedResult, result.toString()); - } -} diff --git a/org.eclipse.xtext.web/src/test/xtend-gen/org/eclipse/xtext/web/server/test/HashMapSession.java b/org.eclipse.xtext.web/src/test/xtend-gen/org/eclipse/xtext/web/server/test/HashMapSession.java deleted file mode 100644 index f8f9bd45190..00000000000 --- a/org.eclipse.xtext.web/src/test/xtend-gen/org/eclipse/xtext/web/server/test/HashMapSession.java +++ /dev/null @@ -1,47 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.server.test; - -import java.util.HashMap; -import org.eclipse.xtext.web.server.ISession; -import org.eclipse.xtext.xbase.lib.Functions.Function0; - -@SuppressWarnings("all") -public class HashMapSession implements ISession { - private final HashMap map = new HashMap(); - - @Override - public T get(final Object key) { - Object _get = this.map.get(key); - return ((T) _get); - } - - @Override - public T get(final Object key, final Function0 factory) { - synchronized (this.map) { - final T sessionValue = this.get(key); - if ((sessionValue != null)) { - return sessionValue; - } else { - final T factoryValue = factory.apply(); - this.put(key, factoryValue); - return factoryValue; - } - } - } - - @Override - public void put(final Object key, final Object value) { - this.map.put(key, value); - } - - @Override - public void remove(final Object key) { - this.map.remove(key); - } -} diff --git a/org.eclipse.xtext.web/src/test/xtend-gen/org/eclipse/xtext/web/server/test/HighlightingTest.java b/org.eclipse.xtext.web/src/test/xtend-gen/org/eclipse/xtext/web/server/test/HighlightingTest.java deleted file mode 100644 index 9b78bfe052d..00000000000 --- a/org.eclipse.xtext.web/src/test/xtend-gen/org/eclipse/xtext/web/server/test/HighlightingTest.java +++ /dev/null @@ -1,139 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.server.test; - -import java.util.Collections; -import org.eclipse.xtend2.lib.StringConcatenation; -import org.eclipse.xtext.web.server.IServiceResult; -import org.eclipse.xtext.web.server.XtextServiceDispatcher; -import org.eclipse.xtext.web.server.hover.HoverResult; -import org.eclipse.xtext.web.server.syntaxcoloring.HighlightingResult; -import org.eclipse.xtext.web.server.test.AbstractWebServerTest; -import org.eclipse.xtext.xbase.lib.CollectionLiterals; -import org.eclipse.xtext.xbase.lib.Conversions; -import org.eclipse.xtext.xbase.lib.IterableExtensions; -import org.eclipse.xtext.xbase.lib.Pair; -import org.junit.Assert; -import org.junit.Test; - -@SuppressWarnings("all") -public class HighlightingTest extends AbstractWebServerTest { - protected void assertHighlighting(final CharSequence resourceContent, final String... styleClasses) { - final String content = resourceContent.toString(); - Pair _mappedTo = Pair.of("serviceType", "highlight"); - String _replace = content.replace("#", ""); - Pair _mappedTo_1 = Pair.of("fullText", _replace); - final XtextServiceDispatcher.ServiceDescriptor highlighting = this.getService( - Collections.unmodifiableMap(CollectionLiterals.newHashMap(_mappedTo, _mappedTo_1))); - IServiceResult _apply = highlighting.getService().apply(); - final HighlightingResult result = ((HighlightingResult) _apply); - Assert.assertEquals(styleClasses.length, result.getRegions().size()); - int offset = 0; - final String[] snippets = content.split("#"); - for (int i = 0; (i < styleClasses.length); i++) { - { - int _offset = offset; - int _length = snippets[(2 * i)].length(); - offset = (_offset + _length); - final int length = snippets[((2 * i) + 1)].length(); - final HighlightingResult.Region region = result.getRegions().get(i); - Assert.assertEquals(styleClasses[i], IterableExtensions.head(((Iterable)Conversions.doWrapArray(region.getStyleClasses())))); - Assert.assertEquals(offset, region.getOffset()); - Assert.assertEquals(length, region.getLength()); - int _offset_1 = offset; - offset = (_offset_1 + length); - } - } - } - - protected HoverResult assertTitle(final HoverResult result, final String expectedTitle) { - HoverResult _xblockexpression = null; - { - Assert.assertEquals(expectedTitle, result.getTitle()); - _xblockexpression = result; - } - return _xblockexpression; - } - - protected HoverResult assertContent(final HoverResult result, final String expectedContent) { - HoverResult _xblockexpression = null; - { - Assert.assertEquals(expectedContent, result.getContent()); - _xblockexpression = result; - } - return _xblockexpression; - } - - @Test - public void testNoHighlightingOnEmptyFile() { - this.assertHighlighting("#"); - } - - @Test - public void testNoSignal() { - StringConcatenation _builder = new StringConcatenation(); - _builder.append("state State"); - _builder.newLine(); - _builder.append("end"); - _builder.newLine(); - this.assertHighlighting(_builder); - } - - @Test - public void testInputSignal() { - StringConcatenation _builder = new StringConcatenation(); - _builder.append("input signal #in#"); - _builder.newLine(); - _builder.newLine(); - _builder.append("state State"); - _builder.newLine(); - _builder.append("\t"); - _builder.append("if #in# == true goto State"); - _builder.newLine(); - _builder.append("end"); - _builder.newLine(); - this.assertHighlighting(_builder, "InputSignal", "InputSignal"); - } - - @Test - public void testOutputSignal() { - StringConcatenation _builder = new StringConcatenation(); - _builder.append("output signal #out#"); - _builder.newLine(); - _builder.newLine(); - _builder.append("state State"); - _builder.newLine(); - _builder.append("\t"); - _builder.append("set #out# = false"); - _builder.newLine(); - _builder.append("end"); - _builder.newLine(); - this.assertHighlighting(_builder, "OutputSignal", "OutputSignal"); - } - - @Test - public void testMixed() { - StringConcatenation _builder = new StringConcatenation(); - _builder.append("input signal #in#"); - _builder.newLine(); - _builder.append("output signal #out#"); - _builder.newLine(); - _builder.newLine(); - _builder.append("state State"); - _builder.newLine(); - _builder.append("\t"); - _builder.append("set #out# = false"); - _builder.newLine(); - _builder.append("\t"); - _builder.append("if #in# == true goto State"); - _builder.newLine(); - _builder.append("end"); - _builder.newLine(); - this.assertHighlighting(_builder, "InputSignal", "OutputSignal", "OutputSignal", "InputSignal"); - } -} diff --git a/org.eclipse.xtext.web/src/test/xtend-gen/org/eclipse/xtext/web/server/test/HoverTest.java b/org.eclipse.xtext.web/src/test/xtend-gen/org/eclipse/xtext/web/server/test/HoverTest.java deleted file mode 100644 index a901b5ad24d..00000000000 --- a/org.eclipse.xtext.web/src/test/xtend-gen/org/eclipse/xtext/web/server/test/HoverTest.java +++ /dev/null @@ -1,355 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.server.test; - -import java.util.Collections; -import org.eclipse.xtend2.lib.StringConcatenation; -import org.eclipse.xtext.web.server.IServiceResult; -import org.eclipse.xtext.web.server.XtextServiceDispatcher; -import org.eclipse.xtext.web.server.hover.HoverResult; -import org.eclipse.xtext.web.server.test.AbstractWebServerTest; -import org.eclipse.xtext.xbase.lib.CollectionLiterals; -import org.eclipse.xtext.xbase.lib.Pair; -import org.junit.Assert; -import org.junit.Test; - -@SuppressWarnings("all") -public class HoverTest extends AbstractWebServerTest { - protected HoverResult getHover(final CharSequence resourceContent) { - HoverResult _xblockexpression = null; - { - final String content = resourceContent.toString(); - final int offset = content.indexOf("#"); - Pair _mappedTo = Pair.of("serviceType", "hover"); - String _replace = content.replace("#", ""); - Pair _mappedTo_1 = Pair.of("fullText", _replace); - String _string = Integer.valueOf(offset).toString(); - Pair _mappedTo_2 = Pair.of("caretOffset", _string); - final XtextServiceDispatcher.ServiceDescriptor hover = this.getService( - Collections.unmodifiableMap(CollectionLiterals.newHashMap(_mappedTo, _mappedTo_1, _mappedTo_2))); - IServiceResult _apply = hover.getService().apply(); - _xblockexpression = ((HoverResult) _apply); - } - return _xblockexpression; - } - - protected HoverResult getContentAssistHover(final CharSequence resourceContent, final String proposal) { - HoverResult _xblockexpression = null; - { - final String content = resourceContent.toString(); - final int offset = content.indexOf("|"); - Pair _mappedTo = Pair.of("serviceType", "hover"); - String _replace = content.replace("|", ""); - Pair _mappedTo_1 = Pair.of("fullText", _replace); - String _string = Integer.valueOf(offset).toString(); - Pair _mappedTo_2 = Pair.of("caretOffset", _string); - Pair _mappedTo_3 = Pair.of("proposal", proposal); - final XtextServiceDispatcher.ServiceDescriptor hover = this.getService( - Collections.unmodifiableMap(CollectionLiterals.newHashMap(_mappedTo, _mappedTo_1, _mappedTo_2, _mappedTo_3))); - IServiceResult _apply = hover.getService().apply(); - _xblockexpression = ((HoverResult) _apply); - } - return _xblockexpression; - } - - protected HoverResult assertTitle(final HoverResult result, final String expectedTitle) { - HoverResult _xblockexpression = null; - { - Assert.assertEquals(expectedTitle, result.getTitle()); - _xblockexpression = result; - } - return _xblockexpression; - } - - protected HoverResult assertContent(final HoverResult result, final String expectedContent) { - HoverResult _xblockexpression = null; - { - Assert.assertEquals(expectedContent, result.getContent()); - _xblockexpression = result; - } - return _xblockexpression; - } - - @Test - public void testNoHoverOnEmptyFile() { - Assert.assertNull(this.getHover("#").getContent()); - } - - @Test - public void testUndocumentedElement() { - StringConcatenation _builder = new StringConcatenation(); - _builder.append("state #foo"); - _builder.newLine(); - HoverResult _hover = this.getHover(_builder); - StringConcatenation _builder_1 = new StringConcatenation(); - HoverResult _assertContent = this.assertContent(_hover, _builder_1.toString()); - StringConcatenation _builder_2 = new StringConcatenation(); - _builder_2.append("
"); - _builder_2.newLine(); - _builder_2.append("\t"); - _builder_2.append("
"); - _builder_2.newLine(); - _builder_2.append("\t\t"); - _builder_2.append("
"); - _builder_2.newLine(); - _builder_2.append("\t\t\t"); - _builder_2.append("foo"); - _builder_2.newLine(); - _builder_2.append("\t\t"); - _builder_2.append("
"); - _builder_2.newLine(); - _builder_2.append("\t"); - _builder_2.append("
"); - _builder_2.newLine(); - _builder_2.append("
"); - _builder_2.newLine(); - this.assertTitle(_assertContent, _builder_2.toString()); - } - - @Test - public void testDocumentedElement() { - StringConcatenation _builder = new StringConcatenation(); - _builder.append("/**"); - _builder.newLine(); - _builder.append(" "); - _builder.append("* This is foo!"); - _builder.newLine(); - _builder.append(" "); - _builder.append("*/"); - _builder.newLine(); - _builder.append("state #foo"); - _builder.newLine(); - HoverResult _hover = this.getHover(_builder); - StringConcatenation _builder_1 = new StringConcatenation(); - _builder_1.append("
"); - _builder_1.newLine(); - _builder_1.append("\t"); - _builder_1.append("This is foo!"); - _builder_1.newLine(); - _builder_1.append("
"); - _builder_1.newLine(); - HoverResult _assertContent = this.assertContent(_hover, _builder_1.toString()); - StringConcatenation _builder_2 = new StringConcatenation(); - _builder_2.append("
"); - _builder_2.newLine(); - _builder_2.append("\t"); - _builder_2.append("
"); - _builder_2.newLine(); - _builder_2.append("\t\t"); - _builder_2.append("
"); - _builder_2.newLine(); - _builder_2.append("\t\t\t"); - _builder_2.append("foo"); - _builder_2.newLine(); - _builder_2.append("\t\t"); - _builder_2.append("
"); - _builder_2.newLine(); - _builder_2.append("\t"); - _builder_2.append("
"); - _builder_2.newLine(); - _builder_2.append("
"); - _builder_2.newLine(); - this.assertTitle(_assertContent, _builder_2.toString()); - } - - @Test - public void testKeyword() { - StringConcatenation _builder = new StringConcatenation(); - _builder.append("/**"); - _builder.newLine(); - _builder.append(" "); - _builder.append("* This is foo!"); - _builder.newLine(); - _builder.append(" "); - _builder.append("*/"); - _builder.newLine(); - _builder.append("#state foo"); - _builder.newLine(); - Assert.assertNull(this.getHover(_builder).getContent()); - } - - @Test - public void testSubClass() { - StringConcatenation _builder = new StringConcatenation(); - _builder.append("input signal #foo"); - _builder.newLine(); - HoverResult _hover = this.getHover(_builder); - StringConcatenation _builder_1 = new StringConcatenation(); - _builder_1.append("
"); - _builder_1.newLine(); - _builder_1.append("\t"); - _builder_1.append("
"); - _builder_1.newLine(); - _builder_1.append("\t\t"); - _builder_1.append("
"); - _builder_1.newLine(); - _builder_1.append("\t\t\t"); - _builder_1.append("foo"); - _builder_1.newLine(); - _builder_1.append("\t\t"); - _builder_1.append("
"); - _builder_1.newLine(); - _builder_1.append("\t"); - _builder_1.append("
"); - _builder_1.newLine(); - _builder_1.append("
"); - _builder_1.newLine(); - this.assertTitle(_hover, _builder_1.toString()); - } - - @Test - public void testDecoratedIcon() { - StringConcatenation _builder = new StringConcatenation(); - _builder.append("output signal #foo"); - _builder.newLine(); - HoverResult _hover = this.getHover(_builder); - StringConcatenation _builder_1 = new StringConcatenation(); - _builder_1.append("
"); - _builder_1.newLine(); - _builder_1.append("\t"); - _builder_1.append("
"); - _builder_1.newLine(); - _builder_1.append("\t\t"); - _builder_1.append("
"); - _builder_1.newLine(); - _builder_1.append("\t\t\t"); - _builder_1.append("
"); - _builder_1.newLine(); - _builder_1.append("\t\t\t\t"); - _builder_1.append("foo"); - _builder_1.newLine(); - _builder_1.append("\t\t\t"); - _builder_1.append("
"); - _builder_1.newLine(); - _builder_1.append("\t\t"); - _builder_1.append("
"); - _builder_1.newLine(); - _builder_1.append("\t"); - _builder_1.append("
"); - _builder_1.newLine(); - _builder_1.append("
"); - _builder_1.newLine(); - this.assertTitle(_hover, _builder_1.toString()); - } - - @Test - public void testNoHoverUnnamedElement() { - StringConcatenation _builder = new StringConcatenation(); - _builder.append("input signal x"); - _builder.newLine(); - _builder.newLine(); - _builder.append("state State1"); - _builder.newLine(); - _builder.append("\t"); - _builder.append("set z = fal#se"); - _builder.newLine(); - _builder.append("end"); - _builder.newLine(); - Assert.assertNull(this.getHover(_builder).getContent()); - } - - @Test - public void testContentAssistCrossref1() { - StringConcatenation _builder = new StringConcatenation(); - _builder.append("input signal x"); - _builder.newLine(); - _builder.append("/* my nice state */"); - _builder.newLine(); - _builder.append("state foo"); - _builder.newLine(); - _builder.append("end"); - _builder.newLine(); - _builder.append("state bar"); - _builder.newLine(); - _builder.append("\t"); - _builder.append("if x == true goto |"); - _builder.newLine(); - _builder.append("end"); - _builder.newLine(); - HoverResult _contentAssistHover = this.getContentAssistHover(_builder, "foo"); - StringConcatenation _builder_1 = new StringConcatenation(); - _builder_1.append("
"); - _builder_1.newLine(); - _builder_1.append("\t"); - _builder_1.append("
"); - _builder_1.newLine(); - _builder_1.append("\t\t"); - _builder_1.append("
"); - _builder_1.newLine(); - _builder_1.append("\t\t\t"); - _builder_1.append("foo"); - _builder_1.newLine(); - _builder_1.append("\t\t"); - _builder_1.append("
"); - _builder_1.newLine(); - _builder_1.append("\t"); - _builder_1.append("
"); - _builder_1.newLine(); - _builder_1.append("
"); - _builder_1.newLine(); - HoverResult _assertTitle = this.assertTitle(_contentAssistHover, _builder_1.toString()); - StringConcatenation _builder_2 = new StringConcatenation(); - _builder_2.append("
"); - _builder_2.newLine(); - _builder_2.append("\t"); - _builder_2.append("my nice state"); - _builder_2.newLine(); - _builder_2.append("
"); - _builder_2.newLine(); - this.assertContent(_assertTitle, _builder_2.toString()); - } - - @Test - public void testContentAssistCrossref2() { - StringConcatenation _builder = new StringConcatenation(); - _builder.append("input signal x"); - _builder.newLine(); - _builder.append("/* my nice signal */"); - _builder.newLine(); - _builder.append("input signal y"); - _builder.newLine(); - _builder.append("state foo"); - _builder.newLine(); - _builder.append("\t"); - _builder.append("if | == true goto foo"); - _builder.newLine(); - _builder.append("end"); - _builder.newLine(); - HoverResult _contentAssistHover = this.getContentAssistHover(_builder, "y"); - StringConcatenation _builder_1 = new StringConcatenation(); - _builder_1.append("
"); - _builder_1.newLine(); - _builder_1.append("\t"); - _builder_1.append("
"); - _builder_1.newLine(); - _builder_1.append("\t\t"); - _builder_1.append("
"); - _builder_1.newLine(); - _builder_1.append("\t\t\t"); - _builder_1.append("y"); - _builder_1.newLine(); - _builder_1.append("\t\t"); - _builder_1.append("
"); - _builder_1.newLine(); - _builder_1.append("\t"); - _builder_1.append("
"); - _builder_1.newLine(); - _builder_1.append("
"); - _builder_1.newLine(); - HoverResult _assertTitle = this.assertTitle(_contentAssistHover, _builder_1.toString()); - StringConcatenation _builder_2 = new StringConcatenation(); - _builder_2.append("
"); - _builder_2.newLine(); - _builder_2.append("\t"); - _builder_2.append("my nice signal"); - _builder_2.newLine(); - _builder_2.append("
"); - _builder_2.newLine(); - this.assertContent(_assertTitle, _builder_2.toString()); - } -} diff --git a/org.eclipse.xtext.web/src/test/xtend-gen/org/eclipse/xtext/web/server/test/MockServiceContext.java b/org.eclipse.xtext.web/src/test/xtend-gen/org/eclipse/xtext/web/server/test/MockServiceContext.java deleted file mode 100644 index 4f149a56809..00000000000 --- a/org.eclipse.xtext.web/src/test/xtend-gen/org/eclipse/xtext/web/server/test/MockServiceContext.java +++ /dev/null @@ -1,47 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.server.test; - -import java.util.Collections; -import java.util.Map; -import java.util.Set; -import org.eclipse.xtend.lib.annotations.Accessors; -import org.eclipse.xtend.lib.annotations.FinalFieldsConstructor; -import org.eclipse.xtext.web.server.IServiceContext; -import org.eclipse.xtext.web.server.ISession; -import org.eclipse.xtext.xbase.lib.Pure; - -@FinalFieldsConstructor -@SuppressWarnings("all") -public class MockServiceContext implements IServiceContext { - private final Map parameters; - - @Accessors - private final ISession session; - - @Override - public Set getParameterKeys() { - return Collections.unmodifiableSet(this.parameters.keySet()); - } - - @Override - public String getParameter(final String key) { - return this.parameters.get(key); - } - - public MockServiceContext(final Map parameters, final ISession session) { - super(); - this.parameters = parameters; - this.session = session; - } - - @Pure - public ISession getSession() { - return this.session; - } -} diff --git a/org.eclipse.xtext.web/src/test/xtend-gen/org/eclipse/xtext/web/server/test/OccurrenceTest.java b/org.eclipse.xtext.web/src/test/xtend-gen/org/eclipse/xtext/web/server/test/OccurrenceTest.java deleted file mode 100644 index 7ce93d90b6c..00000000000 --- a/org.eclipse.xtext.web/src/test/xtend-gen/org/eclipse/xtext/web/server/test/OccurrenceTest.java +++ /dev/null @@ -1,213 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.server.test; - -import java.util.Collections; -import org.eclipse.xtend2.lib.StringConcatenation; -import org.eclipse.xtext.web.server.IServiceResult; -import org.eclipse.xtext.web.server.XtextServiceDispatcher; -import org.eclipse.xtext.web.server.occurrences.OccurrencesResult; -import org.eclipse.xtext.web.server.test.AbstractWebServerTest; -import org.eclipse.xtext.xbase.lib.CollectionLiterals; -import org.eclipse.xtext.xbase.lib.Pair; -import org.junit.Assert; -import org.junit.Test; - -@SuppressWarnings("all") -public class OccurrenceTest extends AbstractWebServerTest { - protected OccurrencesResult getOccurrences(final CharSequence resourceContent) { - OccurrencesResult _xblockexpression = null; - { - final String content = resourceContent.toString(); - final int offset = content.indexOf("#"); - Pair _mappedTo = Pair.of("serviceType", "occurrences"); - String _replace = content.replace("#", ""); - Pair _mappedTo_1 = Pair.of("fullText", _replace); - String _string = Integer.valueOf(offset).toString(); - Pair _mappedTo_2 = Pair.of("caretOffset", _string); - final XtextServiceDispatcher.ServiceDescriptor occurrences = this.getService( - Collections.unmodifiableMap(CollectionLiterals.newHashMap(_mappedTo, _mappedTo_1, _mappedTo_2))); - IServiceResult _apply = occurrences.getService().apply(); - _xblockexpression = ((OccurrencesResult) _apply); - } - return _xblockexpression; - } - - protected void assertOccurrences(final CharSequence resourceContent, final CharSequence expectation) { - Assert.assertEquals(expectation.toString().trim(), this.getOccurrences(resourceContent).toString().trim()); - } - - @Test - public void testNoOccurrenceOnEmptyFile() { - final OccurrencesResult result = this.getOccurrences("#"); - Assert.assertTrue(result.getReadRegions().isEmpty()); - Assert.assertTrue(result.getWriteRegions().isEmpty()); - } - - @Test - public void testNoOccurrencesOnKeyword() { - StringConcatenation _builder = new StringConcatenation(); - _builder.append("#state foo"); - _builder.newLine(); - final OccurrencesResult result = this.getOccurrences(_builder); - Assert.assertTrue(result.getReadRegions().isEmpty()); - Assert.assertTrue(result.getWriteRegions().isEmpty()); - } - - @Test - public void testSingleWriteOccurrence() { - StringConcatenation _builder = new StringConcatenation(); - _builder.append("state #foo"); - _builder.newLine(); - StringConcatenation _builder_1 = new StringConcatenation(); - _builder_1.append("OccurrencesResult ["); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("stateId = \"-80000000\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("writeRegions = ArrayList ("); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("[6:3]"); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append(")"); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("readRegions = ArrayList ()"); - _builder_1.newLine(); - _builder_1.append("]"); - _builder_1.newLine(); - this.assertOccurrences(_builder, _builder_1); - } - - @Test - public void testReadAndWriteOccurrence() { - StringConcatenation _builder = new StringConcatenation(); - _builder.append("input signal #foo"); - _builder.newLine(); - _builder.append("state bar "); - _builder.newLine(); - _builder.append("\t"); - _builder.append("set foo == true"); - _builder.newLine(); - _builder.append("\t"); - _builder.append("set foo == true"); - _builder.newLine(); - _builder.append("end"); - _builder.newLine(); - StringConcatenation _builder_1 = new StringConcatenation(); - _builder_1.append("OccurrencesResult ["); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("stateId = \"-80000000\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("writeRegions = ArrayList ("); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("[13:3]"); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append(")"); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("readRegions = ArrayList ("); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("[33:3],"); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("[50:3]"); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append(")"); - _builder_1.newLine(); - _builder_1.append("]"); - _builder_1.newLine(); - this.assertOccurrences(_builder, _builder_1); - } - - @Test - public void testReadAndWriteOccurrence_2() { - StringConcatenation _builder = new StringConcatenation(); - _builder.append("input signal foo"); - _builder.newLine(); - _builder.append("state bar "); - _builder.newLine(); - _builder.append("\t"); - _builder.append("set #foo == true"); - _builder.newLine(); - _builder.append("\t"); - _builder.append("set foo == true"); - _builder.newLine(); - _builder.append("end"); - _builder.newLine(); - StringConcatenation _builder_1 = new StringConcatenation(); - _builder_1.append("OccurrencesResult ["); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("stateId = \"-80000000\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("writeRegions = ArrayList ("); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("[13:3]"); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append(")"); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("readRegions = ArrayList ("); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("[33:3],"); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("[50:3]"); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append(")"); - _builder_1.newLine(); - _builder_1.append("]"); - _builder_1.newLine(); - this.assertOccurrences(_builder, _builder_1); - } - - @Test - public void testSyntaxError() { - StringConcatenation _builder = new StringConcatenation(); - _builder.append("state foo"); - _builder.newLine(); - _builder.append("end"); - _builder.newLine(); - _builder.append("asdf#"); - _builder.newLine(); - _builder.append("state bar "); - _builder.newLine(); - _builder.append("end"); - _builder.newLine(); - StringConcatenation _builder_1 = new StringConcatenation(); - _builder_1.append("OccurrencesResult ["); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("stateId = \"-80000000\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("writeRegions = ArrayList ()"); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("readRegions = ArrayList ()"); - _builder_1.newLine(); - _builder_1.append("]"); - _builder_1.newLine(); - this.assertOccurrences(_builder, _builder_1); - } -} diff --git a/org.eclipse.xtext.web/src/test/xtend-gen/org/eclipse/xtext/web/server/test/ResourcePersistenceTest.java b/org.eclipse.xtext.web/src/test/xtend-gen/org/eclipse/xtext/web/server/test/ResourcePersistenceTest.java deleted file mode 100644 index 71aaf676584..00000000000 --- a/org.eclipse.xtext.web/src/test/xtend-gen/org/eclipse/xtext/web/server/test/ResourcePersistenceTest.java +++ /dev/null @@ -1,134 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.server.test; - -import com.google.common.base.Charsets; -import com.google.common.io.Files; -import java.io.File; -import java.util.Collections; -import org.eclipse.xtext.web.server.IServiceResult; -import org.eclipse.xtext.web.server.XtextServiceDispatcher; -import org.eclipse.xtext.web.server.persistence.ResourceContentResult; -import org.eclipse.xtext.web.server.test.AbstractWebServerTest; -import org.eclipse.xtext.web.server.test.HashMapSession; -import org.eclipse.xtext.xbase.lib.CollectionLiterals; -import org.eclipse.xtext.xbase.lib.Exceptions; -import org.eclipse.xtext.xbase.lib.Pair; -import org.junit.Assert; -import org.junit.Test; - -@SuppressWarnings("all") -public class ResourcePersistenceTest extends AbstractWebServerTest { - @Test - public void testLoadFile() { - final String resourceContent = "state foo end"; - final File file = this.createFile(resourceContent); - Pair _mappedTo = Pair.of("serviceType", "load"); - String _name = file.getName(); - Pair _mappedTo_1 = Pair.of("resource", _name); - final XtextServiceDispatcher.ServiceDescriptor load = this.getService(Collections.unmodifiableMap(CollectionLiterals.newHashMap(_mappedTo, _mappedTo_1))); - Assert.assertFalse(load.isHasSideEffects()); - IServiceResult _apply = load.getService().apply(); - final ResourceContentResult result = ((ResourceContentResult) _apply); - Assert.assertEquals(resourceContent, result.getFullText()); - Assert.assertFalse(result.isDirty()); - } - - @Test - public void testLoadDummy() { - final HashMapSession session = new HashMapSession(); - final String resourceContent = "state foo end"; - Pair _mappedTo = Pair.of("serviceType", "update"); - Pair _mappedTo_1 = Pair.of("resource", "dummy.statemachine"); - Pair _mappedTo_2 = Pair.of("fullText", resourceContent); - XtextServiceDispatcher.ServiceDescriptor update = this.getService( - Collections.unmodifiableMap(CollectionLiterals.newHashMap(_mappedTo, _mappedTo_1, _mappedTo_2)), session); - update.getService().apply(); - Pair _mappedTo_3 = Pair.of("serviceType", "load"); - Pair _mappedTo_4 = Pair.of("resource", "dummy.statemachine"); - XtextServiceDispatcher.ServiceDescriptor load = this.getService(Collections.unmodifiableMap(CollectionLiterals.newHashMap(_mappedTo_3, _mappedTo_4)), session); - IServiceResult _apply = load.getService().apply(); - ResourceContentResult result = ((ResourceContentResult) _apply); - Assert.assertEquals(resourceContent, result.getFullText()); - Pair _mappedTo_5 = Pair.of("serviceType", "update"); - Pair _mappedTo_6 = Pair.of("resource", "dummy.statemachine"); - Pair _mappedTo_7 = Pair.of("deltaText", "bar"); - Pair _mappedTo_8 = Pair.of("deltaOffset", "6"); - Pair _mappedTo_9 = Pair.of("deltaReplaceLength", "3"); - update = this.getService( - Collections.unmodifiableMap(CollectionLiterals.newHashMap(_mappedTo_5, _mappedTo_6, _mappedTo_7, _mappedTo_8, _mappedTo_9)), session); - update.getService().apply(); - Pair _mappedTo_10 = Pair.of("serviceType", "load"); - Pair _mappedTo_11 = Pair.of("resource", "dummy.statemachine"); - load = this.getService(Collections.unmodifiableMap(CollectionLiterals.newHashMap(_mappedTo_10, _mappedTo_11)), session); - IServiceResult _apply_1 = load.getService().apply(); - result = ((ResourceContentResult) _apply_1); - Assert.assertEquals("state bar end", result.getFullText()); - } - - @Test - public void testRevertFile() { - final String resourceContent = "state foo end"; - final File file = this.createFile(resourceContent); - final HashMapSession session = new HashMapSession(); - Pair _mappedTo = Pair.of("serviceType", "load"); - String _name = file.getName(); - Pair _mappedTo_1 = Pair.of("resource", _name); - final XtextServiceDispatcher.ServiceDescriptor load = this.getService(Collections.unmodifiableMap(CollectionLiterals.newHashMap(_mappedTo, _mappedTo_1)), session); - load.getService().apply(); - Pair _mappedTo_2 = Pair.of("serviceType", "update"); - String _name_1 = file.getName(); - Pair _mappedTo_3 = Pair.of("resource", _name_1); - Pair _mappedTo_4 = Pair.of("deltaText", "bar"); - Pair _mappedTo_5 = Pair.of("deltaOffset", "6"); - Pair _mappedTo_6 = Pair.of("deltaReplaceLength", "3"); - final XtextServiceDispatcher.ServiceDescriptor update = this.getService( - Collections.unmodifiableMap(CollectionLiterals.newHashMap(_mappedTo_2, _mappedTo_3, _mappedTo_4, _mappedTo_5, _mappedTo_6)), session); - update.getService().apply(); - Pair _mappedTo_7 = Pair.of("serviceType", "revert"); - String _name_2 = file.getName(); - Pair _mappedTo_8 = Pair.of("resource", _name_2); - final XtextServiceDispatcher.ServiceDescriptor revert = this.getService(Collections.unmodifiableMap(CollectionLiterals.newHashMap(_mappedTo_7, _mappedTo_8)), session); - Assert.assertTrue(revert.isHasSideEffects()); - IServiceResult _apply = revert.getService().apply(); - final ResourceContentResult result = ((ResourceContentResult) _apply); - Assert.assertEquals(resourceContent, result.getFullText()); - } - - @Test - public void testSaveFile() { - try { - final File file = this.createFile("state foo end"); - final HashMapSession session = new HashMapSession(); - Pair _mappedTo = Pair.of("serviceType", "load"); - String _name = file.getName(); - Pair _mappedTo_1 = Pair.of("resource", _name); - final XtextServiceDispatcher.ServiceDescriptor load = this.getService(Collections.unmodifiableMap(CollectionLiterals.newHashMap(_mappedTo, _mappedTo_1)), session); - load.getService().apply(); - Pair _mappedTo_2 = Pair.of("serviceType", "update"); - String _name_1 = file.getName(); - Pair _mappedTo_3 = Pair.of("resource", _name_1); - Pair _mappedTo_4 = Pair.of("deltaText", "bar"); - Pair _mappedTo_5 = Pair.of("deltaOffset", "6"); - Pair _mappedTo_6 = Pair.of("deltaReplaceLength", "3"); - final XtextServiceDispatcher.ServiceDescriptor update = this.getService( - Collections.unmodifiableMap(CollectionLiterals.newHashMap(_mappedTo_2, _mappedTo_3, _mappedTo_4, _mappedTo_5, _mappedTo_6)), session); - update.getService().apply(); - Pair _mappedTo_7 = Pair.of("serviceType", "save"); - String _name_2 = file.getName(); - Pair _mappedTo_8 = Pair.of("resource", _name_2); - final XtextServiceDispatcher.ServiceDescriptor save = this.getService(Collections.unmodifiableMap(CollectionLiterals.newHashMap(_mappedTo_7, _mappedTo_8)), session); - Assert.assertTrue(save.isHasSideEffects()); - save.getService().apply(); - final String resourceContent = Files.toString(file, Charsets.UTF_8); - Assert.assertEquals("state bar end", resourceContent); - } catch (Throwable _e) { - throw Exceptions.sneakyThrow(_e); - } - } -} diff --git a/org.eclipse.xtext.web/src/test/xtend-gen/org/eclipse/xtext/web/server/test/UpdateDocumentTest.java b/org.eclipse.xtext.web/src/test/xtend-gen/org/eclipse/xtext/web/server/test/UpdateDocumentTest.java deleted file mode 100644 index 90215c1dc9c..00000000000 --- a/org.eclipse.xtext.web/src/test/xtend-gen/org/eclipse/xtext/web/server/test/UpdateDocumentTest.java +++ /dev/null @@ -1,523 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.server.test; - -import com.google.inject.Inject; -import com.google.inject.Module; -import com.google.inject.Singleton; -import java.io.File; -import java.util.Collections; -import java.util.List; -import java.util.concurrent.Callable; -import java.util.concurrent.ExecutorService; -import org.eclipse.emf.ecore.resource.Resource; -import org.eclipse.xtend.lib.annotations.AccessorType; -import org.eclipse.xtend.lib.annotations.Accessors; -import org.eclipse.xtext.resource.XtextResource; -import org.eclipse.xtext.util.CancelIndicator; -import org.eclipse.xtext.validation.CheckMode; -import org.eclipse.xtext.validation.IResourceValidator; -import org.eclipse.xtext.validation.Issue; -import org.eclipse.xtext.validation.ResourceValidatorImpl; -import org.eclipse.xtext.web.example.statemachine.StatemachineRuntimeModule; -import org.eclipse.xtext.web.server.IServiceResult; -import org.eclipse.xtext.web.server.ServiceConflictResult; -import org.eclipse.xtext.web.server.XtextServiceDispatcher; -import org.eclipse.xtext.web.server.model.DocumentStateResult; -import org.eclipse.xtext.web.server.model.XtextWebDocument; -import org.eclipse.xtext.web.server.persistence.ResourceContentResult; -import org.eclipse.xtext.web.server.test.AbstractWebServerTest; -import org.eclipse.xtext.web.server.test.HashMapSession; -import org.eclipse.xtext.xbase.lib.CollectionLiterals; -import org.eclipse.xtext.xbase.lib.Exceptions; -import org.eclipse.xtext.xbase.lib.Functions.Function1; -import org.eclipse.xtext.xbase.lib.Pair; -import org.eclipse.xtext.xbase.lib.Pure; -import org.hamcrest.core.IsInstanceOf; -import org.junit.Assert; -import org.junit.Test; - -@SuppressWarnings("all") -public class UpdateDocumentTest extends AbstractWebServerTest { - /** - * The resource validator is applied asynchronously after each update. - */ - @Singleton - @Accessors(AccessorType.PUBLIC_GETTER) - public static class TestResourceValidator extends ResourceValidatorImpl { - private Thread workerThread; - - private long sleepTime; - - private volatile boolean canceled; - - private int entryCounter; - - private int exitCounter; - - @Override - public List validate(final Resource resource, final CheckMode mode, final CancelIndicator mon) { - try { - List _xblockexpression = null; - { - this.workerThread = Thread.currentThread(); - synchronized (this) { - this.entryCounter++; - this.notifyAll(); - } - final long startTime = System.currentTimeMillis(); - while (((((System.currentTimeMillis() - startTime) < this.sleepTime) && (!mon.isCanceled())) && (!this.workerThread.isInterrupted()))) { - Thread.sleep(30); - } - boolean _isCanceled = mon.isCanceled(); - if (_isCanceled) { - this.canceled = true; - } - synchronized (this) { - this.exitCounter++; - this.notifyAll(); - } - _xblockexpression = super.validate(resource, mode, mon); - } - return _xblockexpression; - } catch (Throwable _e) { - throw Exceptions.sneakyThrow(_e); - } - } - - public int reset(final long sleepTime) { - int _xblockexpression = (int) 0; - { - if ((this.workerThread != null)) { - this.workerThread.interrupt(); - } - this.workerThread = null; - this.sleepTime = sleepTime; - this.canceled = false; - this.entryCounter = 0; - _xblockexpression = this.exitCounter = 0; - } - return _xblockexpression; - } - - public synchronized void waitUntil(final Function1 condition) { - try { - final long startTime = System.currentTimeMillis(); - while ((!(condition.apply(this)).booleanValue())) { - { - long _currentTimeMillis = System.currentTimeMillis(); - long _minus = (_currentTimeMillis - startTime); - boolean _lessThan = (_minus < 8000); - Assert.assertTrue(_lessThan); - this.wait(3000); - } - } - } catch (Throwable _e) { - throw Exceptions.sneakyThrow(_e); - } - } - - @Pure - public Thread getWorkerThread() { - return this.workerThread; - } - - @Pure - public long getSleepTime() { - return this.sleepTime; - } - - @Pure - public boolean isCanceled() { - return this.canceled; - } - - @Pure - public int getEntryCounter() { - return this.entryCounter; - } - - @Pure - public int getExitCounter() { - return this.exitCounter; - } - } - - @Inject - private UpdateDocumentTest.TestResourceValidator resourceValidator; - - @Inject - private ExecutorService executorService; - - @Override - protected Module getRuntimeModule() { - abstract class __UpdateDocumentTest_1 extends StatemachineRuntimeModule { - public abstract Class bindIResourceValidator(); - } - - return new __UpdateDocumentTest_1() { - public Class bindIResourceValidator() { - return UpdateDocumentTest.TestResourceValidator.class; - } - }; - } - - @Test - public void testCorrectStateId() { - this.resourceValidator.reset(0); - final File file = this.createFile("input signal x state foo end"); - final HashMapSession session = new HashMapSession(); - Pair _mappedTo = Pair.of("serviceType", "update"); - String _name = file.getName(); - Pair _mappedTo_1 = Pair.of("resource", _name); - Pair _mappedTo_2 = Pair.of("deltaText", "bar"); - Pair _mappedTo_3 = Pair.of("deltaOffset", "21"); - Pair _mappedTo_4 = Pair.of("deltaReplaceLength", "3"); - XtextServiceDispatcher.ServiceDescriptor update = this.getService( - Collections.unmodifiableMap(CollectionLiterals.newHashMap(_mappedTo, _mappedTo_1, _mappedTo_2, _mappedTo_3, _mappedTo_4)), session); - Assert.assertTrue(update.isHasSideEffects()); - IServiceResult _apply = update.getService().apply(); - final DocumentStateResult updateResult = ((DocumentStateResult) _apply); - Pair _mappedTo_5 = Pair.of("serviceType", "update"); - String _name_1 = file.getName(); - Pair _mappedTo_6 = Pair.of("resource", _name_1); - Pair _mappedTo_7 = Pair.of("deltaText", " set x = true"); - Pair _mappedTo_8 = Pair.of("deltaOffset", "24"); - Pair _mappedTo_9 = Pair.of("deltaReplaceLength", "0"); - String _stateId = updateResult.getStateId(); - Pair _mappedTo_10 = Pair.of("requiredStateId", _stateId); - update = this.getService( - Collections.unmodifiableMap(CollectionLiterals.newHashMap(_mappedTo_5, _mappedTo_6, _mappedTo_7, _mappedTo_8, _mappedTo_9, _mappedTo_10)), session); - update.getService().apply(); - Pair _mappedTo_11 = Pair.of("serviceType", "load"); - String _name_2 = file.getName(); - Pair _mappedTo_12 = Pair.of("resource", _name_2); - final XtextServiceDispatcher.ServiceDescriptor load = this.getService(Collections.unmodifiableMap(CollectionLiterals.newHashMap(_mappedTo_11, _mappedTo_12)), session); - IServiceResult _apply_1 = load.getService().apply(); - final ResourceContentResult loadResult = ((ResourceContentResult) _apply_1); - Assert.assertEquals("input signal x state bar set x = true end", loadResult.getFullText()); - } - - @Test - public void testIncorrectStateId1() { - this.resourceValidator.reset(0); - final File file = this.createFile("state foo end"); - Pair _mappedTo = Pair.of("serviceType", "update"); - String _name = file.getName(); - Pair _mappedTo_1 = Pair.of("resource", _name); - Pair _mappedTo_2 = Pair.of("deltaText", " set x = true"); - Pair _mappedTo_3 = Pair.of("deltaOffset", "10"); - Pair _mappedTo_4 = Pair.of("deltaReplaceLength", "0"); - Pair _mappedTo_5 = Pair.of("requiredStateId", "totalerquatsch"); - final XtextServiceDispatcher.ServiceDescriptor update = this.getService( - Collections.unmodifiableMap(CollectionLiterals.newHashMap(_mappedTo, _mappedTo_1, _mappedTo_2, _mappedTo_3, _mappedTo_4, _mappedTo_5))); - Assert.assertTrue(update.isHasConflict()); - final IServiceResult result = update.getService().apply(); - Assert.assertThat(result, IsInstanceOf.instanceOf(ServiceConflictResult.class)); - Assert.assertEquals(((ServiceConflictResult) result).getConflict(), "invalidStateId"); - } - - @Test - public void testIncorrectStateId2() { - this.resourceValidator.reset(0); - final File file = this.createFile("input signal x state foo end"); - final HashMapSession session = new HashMapSession(); - Pair _mappedTo = Pair.of("serviceType", "update"); - String _name = file.getName(); - Pair _mappedTo_1 = Pair.of("resource", _name); - Pair _mappedTo_2 = Pair.of("deltaText", "bar"); - Pair _mappedTo_3 = Pair.of("deltaOffset", "21"); - Pair _mappedTo_4 = Pair.of("deltaReplaceLength", "3"); - final XtextServiceDispatcher.ServiceDescriptor update1 = this.getService( - Collections.unmodifiableMap(CollectionLiterals.newHashMap(_mappedTo, _mappedTo_1, _mappedTo_2, _mappedTo_3, _mappedTo_4)), session); - IServiceResult _apply = update1.getService().apply(); - final DocumentStateResult updateResult = ((DocumentStateResult) _apply); - Pair _mappedTo_5 = Pair.of("serviceType", "update"); - String _name_1 = file.getName(); - Pair _mappedTo_6 = Pair.of("resource", _name_1); - Pair _mappedTo_7 = Pair.of("deltaText", " set x = true"); - Pair _mappedTo_8 = Pair.of("deltaOffset", "24"); - Pair _mappedTo_9 = Pair.of("deltaReplaceLength", "0"); - String _stateId = updateResult.getStateId(); - Pair _mappedTo_10 = Pair.of("requiredStateId", _stateId); - final XtextServiceDispatcher.ServiceDescriptor update2 = this.getService( - Collections.unmodifiableMap(CollectionLiterals.newHashMap(_mappedTo_5, _mappedTo_6, _mappedTo_7, _mappedTo_8, _mappedTo_9, _mappedTo_10)), session); - Pair _mappedTo_11 = Pair.of("serviceType", "update"); - String _name_2 = file.getName(); - Pair _mappedTo_12 = Pair.of("resource", _name_2); - Pair _mappedTo_13 = Pair.of("deltaText", "y"); - Pair _mappedTo_14 = Pair.of("deltaOffset", "12"); - Pair _mappedTo_15 = Pair.of("deltaReplaceLength", "1"); - String _stateId_1 = updateResult.getStateId(); - Pair _mappedTo_16 = Pair.of("requiredStateId", _stateId_1); - final XtextServiceDispatcher.ServiceDescriptor update3 = this.getService( - Collections.unmodifiableMap(CollectionLiterals.newHashMap(_mappedTo_11, _mappedTo_12, _mappedTo_13, _mappedTo_14, _mappedTo_15, _mappedTo_16)), session); - update2.getService().apply(); - final IServiceResult result = update3.getService().apply(); - Assert.assertThat(result, IsInstanceOf.instanceOf(ServiceConflictResult.class)); - Assert.assertEquals(((ServiceConflictResult) result).getConflict(), "invalidStateId"); - } - - @Test - public void testNoBackgroundWorkWhenConflict() { - this.resourceValidator.reset(0); - final File file = this.createFile("input signal x state foo end"); - final HashMapSession session = new HashMapSession(); - Pair _mappedTo = Pair.of("serviceType", "update"); - String _name = file.getName(); - Pair _mappedTo_1 = Pair.of("resource", _name); - Pair _mappedTo_2 = Pair.of("deltaText", "bar"); - Pair _mappedTo_3 = Pair.of("deltaOffset", "21"); - Pair _mappedTo_4 = Pair.of("deltaReplaceLength", "3"); - XtextServiceDispatcher.ServiceDescriptor update = this.getService( - Collections.unmodifiableMap(CollectionLiterals.newHashMap(_mappedTo, _mappedTo_1, _mappedTo_2, _mappedTo_3, _mappedTo_4)), session); - Assert.assertTrue(update.isHasSideEffects()); - IServiceResult _apply = update.getService().apply(); - final DocumentStateResult updateResult = ((DocumentStateResult) _apply); - Pair _mappedTo_5 = Pair.of("serviceType", "update"); - String _name_1 = file.getName(); - Pair _mappedTo_6 = Pair.of("resource", _name_1); - Pair _mappedTo_7 = Pair.of("deltaText", " set x = true"); - Pair _mappedTo_8 = Pair.of("deltaOffset", "24"); - Pair _mappedTo_9 = Pair.of("deltaReplaceLength", "0"); - String _stateId = updateResult.getStateId(); - Pair _mappedTo_10 = Pair.of("requiredStateId", _stateId); - update = this.getService( - Collections.unmodifiableMap(CollectionLiterals.newHashMap(_mappedTo_5, _mappedTo_6, _mappedTo_7, _mappedTo_8, _mappedTo_9, _mappedTo_10)), session); - String _name_2 = file.getName(); - Pair, String> _mappedTo_11 = Pair., String>of(XtextWebDocument.class, _name_2); - final XtextWebDocument document = session.get(_mappedTo_11); - XtextResource _resource = document.getResource(); - _resource.setModificationStamp(1234); - final IServiceResult result = update.getService().apply(); - Assert.assertThat(result, IsInstanceOf.instanceOf(ServiceConflictResult.class)); - Pair _mappedTo_12 = Pair.of("serviceType", "load"); - String _name_3 = file.getName(); - Pair _mappedTo_13 = Pair.of("resource", _name_3); - final XtextServiceDispatcher.ServiceDescriptor load = this.getService(Collections.unmodifiableMap(CollectionLiterals.newHashMap(_mappedTo_12, _mappedTo_13)), session); - IServiceResult _apply_1 = load.getService().apply(); - final ResourceContentResult loadResult = ((ResourceContentResult) _apply_1); - Assert.assertEquals("input signal x state bar end", loadResult.getFullText()); - } - - @Test - public void testCancelBackgroundWork1() { - this.resourceValidator.reset(300); - final File file = this.createFile("input signal x state foo end"); - final HashMapSession session = new HashMapSession(); - Pair _mappedTo = Pair.of("serviceType", "update"); - String _name = file.getName(); - Pair _mappedTo_1 = Pair.of("resource", _name); - Pair _mappedTo_2 = Pair.of("deltaText", "bar"); - Pair _mappedTo_3 = Pair.of("deltaOffset", "21"); - Pair _mappedTo_4 = Pair.of("deltaReplaceLength", "3"); - final XtextServiceDispatcher.ServiceDescriptor update1 = this.getService( - Collections.unmodifiableMap(CollectionLiterals.newHashMap(_mappedTo, _mappedTo_1, _mappedTo_2, _mappedTo_3, _mappedTo_4)), session); - IServiceResult _apply = update1.getService().apply(); - final DocumentStateResult updateResult = ((DocumentStateResult) _apply); - Pair _mappedTo_5 = Pair.of("serviceType", "update"); - String _name_1 = file.getName(); - Pair _mappedTo_6 = Pair.of("resource", _name_1); - Pair _mappedTo_7 = Pair.of("deltaText", " set x = true"); - Pair _mappedTo_8 = Pair.of("deltaOffset", "24"); - Pair _mappedTo_9 = Pair.of("deltaReplaceLength", "0"); - String _stateId = updateResult.getStateId(); - Pair _mappedTo_10 = Pair.of("requiredStateId", _stateId); - final XtextServiceDispatcher.ServiceDescriptor update2 = this.getService( - Collections.unmodifiableMap(CollectionLiterals.newHashMap(_mappedTo_5, _mappedTo_6, _mappedTo_7, _mappedTo_8, _mappedTo_9, _mappedTo_10)), session); - final Function1 _function = (UpdateDocumentTest.TestResourceValidator it) -> { - return Boolean.valueOf((it.entryCounter == 1)); - }; - this.resourceValidator.waitUntil(_function); - final Callable _function_1 = () -> { - return update2.getService().apply(); - }; - this.executorService.submit(_function_1); - final Function1 _function_2 = (UpdateDocumentTest.TestResourceValidator it) -> { - return Boolean.valueOf((it.exitCounter == 1)); - }; - this.resourceValidator.waitUntil(_function_2); - Assert.assertTrue(this.resourceValidator.canceled); - final Function1 _function_3 = (UpdateDocumentTest.TestResourceValidator it) -> { - return Boolean.valueOf((it.entryCounter == 2)); - }; - this.resourceValidator.waitUntil(_function_3); - } - - @Test - public void testCancelBackgroundWork2() { - this.resourceValidator.reset(300); - final File file = this.createFile("input signal x state foo end"); - final HashMapSession session = new HashMapSession(); - Pair _mappedTo = Pair.of("serviceType", "update"); - String _name = file.getName(); - Pair _mappedTo_1 = Pair.of("resource", _name); - Pair _mappedTo_2 = Pair.of("deltaText", "bar"); - Pair _mappedTo_3 = Pair.of("deltaOffset", "21"); - Pair _mappedTo_4 = Pair.of("deltaReplaceLength", "3"); - final XtextServiceDispatcher.ServiceDescriptor update = this.getService( - Collections.unmodifiableMap(CollectionLiterals.newHashMap(_mappedTo, _mappedTo_1, _mappedTo_2, _mappedTo_3, _mappedTo_4)), session); - IServiceResult _apply = update.getService().apply(); - final DocumentStateResult updateResult = ((DocumentStateResult) _apply); - Pair _mappedTo_5 = Pair.of("serviceType", "assist"); - String _name_1 = file.getName(); - Pair _mappedTo_6 = Pair.of("resource", _name_1); - Pair _mappedTo_7 = Pair.of("caretOffset", "15"); - String _stateId = updateResult.getStateId(); - Pair _mappedTo_8 = Pair.of("requiredStateId", _stateId); - final XtextServiceDispatcher.ServiceDescriptor contentAssist = this.getService( - Collections.unmodifiableMap(CollectionLiterals.newHashMap(_mappedTo_5, _mappedTo_6, _mappedTo_7, _mappedTo_8)), session); - final Function1 _function = (UpdateDocumentTest.TestResourceValidator it) -> { - return Boolean.valueOf((it.entryCounter == 1)); - }; - this.resourceValidator.waitUntil(_function); - final Callable _function_1 = () -> { - return contentAssist.getService().apply(); - }; - this.executorService.submit(_function_1); - final Function1 _function_2 = (UpdateDocumentTest.TestResourceValidator it) -> { - return Boolean.valueOf((it.exitCounter == 1)); - }; - this.resourceValidator.waitUntil(_function_2); - Assert.assertTrue(this.resourceValidator.canceled); - final Function1 _function_3 = (UpdateDocumentTest.TestResourceValidator it) -> { - return Boolean.valueOf((it.entryCounter == 2)); - }; - this.resourceValidator.waitUntil(_function_3); - } - - @Test - public void testCancelLowPriorityService1() { - this.resourceValidator.reset(3000); - final File file = this.createFile("state foo end"); - final HashMapSession session = new HashMapSession(); - Pair _mappedTo = Pair.of("serviceType", "validate"); - String _name = file.getName(); - Pair _mappedTo_1 = Pair.of("resource", _name); - final XtextServiceDispatcher.ServiceDescriptor validate = this.getService(Collections.unmodifiableMap(CollectionLiterals.newHashMap(_mappedTo, _mappedTo_1)), session); - Pair _mappedTo_2 = Pair.of("serviceType", "update"); - String _name_1 = file.getName(); - Pair _mappedTo_3 = Pair.of("resource", _name_1); - Pair _mappedTo_4 = Pair.of("deltaText", "bar"); - Pair _mappedTo_5 = Pair.of("deltaOffset", "6"); - Pair _mappedTo_6 = Pair.of("deltaReplaceLength", "3"); - final XtextServiceDispatcher.ServiceDescriptor update = this.getService( - Collections.unmodifiableMap(CollectionLiterals.newHashMap(_mappedTo_2, _mappedTo_3, _mappedTo_4, _mappedTo_5, _mappedTo_6)), session); - final Callable _function = () -> { - return validate.getService().apply(); - }; - this.executorService.submit(_function); - final Function1 _function_1 = (UpdateDocumentTest.TestResourceValidator it) -> { - return Boolean.valueOf((it.entryCounter == 1)); - }; - this.resourceValidator.waitUntil(_function_1); - update.getService().apply(); - final Function1 _function_2 = (UpdateDocumentTest.TestResourceValidator it) -> { - return Boolean.valueOf((it.exitCounter == 1)); - }; - this.resourceValidator.waitUntil(_function_2); - Assert.assertTrue(this.resourceValidator.canceled); - final Function1 _function_3 = (UpdateDocumentTest.TestResourceValidator it) -> { - return Boolean.valueOf((it.entryCounter == 2)); - }; - this.resourceValidator.waitUntil(_function_3); - } - - @Test - public void testCancelLowPriorityService2() { - this.resourceValidator.reset(3000); - final File file = this.createFile("state foo end"); - final HashMapSession session = new HashMapSession(); - Pair _mappedTo = Pair.of("serviceType", "validate"); - String _name = file.getName(); - Pair _mappedTo_1 = Pair.of("resource", _name); - final XtextServiceDispatcher.ServiceDescriptor validate = this.getService(Collections.unmodifiableMap(CollectionLiterals.newHashMap(_mappedTo, _mappedTo_1)), session); - Pair _mappedTo_2 = Pair.of("serviceType", "assist"); - String _name_1 = file.getName(); - Pair _mappedTo_3 = Pair.of("resource", _name_1); - Pair _mappedTo_4 = Pair.of("caretOffset", "0"); - final XtextServiceDispatcher.ServiceDescriptor contentAssist = this.getService( - Collections.unmodifiableMap(CollectionLiterals.newHashMap(_mappedTo_2, _mappedTo_3, _mappedTo_4)), session); - final Callable _function = () -> { - return validate.getService().apply(); - }; - this.executorService.submit(_function); - final Function1 _function_1 = (UpdateDocumentTest.TestResourceValidator it) -> { - return Boolean.valueOf((it.entryCounter == 1)); - }; - this.resourceValidator.waitUntil(_function_1); - contentAssist.getService().apply(); - final Function1 _function_2 = (UpdateDocumentTest.TestResourceValidator it) -> { - return Boolean.valueOf((it.exitCounter == 1)); - }; - this.resourceValidator.waitUntil(_function_2); - Assert.assertTrue(this.resourceValidator.canceled); - final Function1 _function_3 = (UpdateDocumentTest.TestResourceValidator it) -> { - return Boolean.valueOf((it.entryCounter == 2)); - }; - this.resourceValidator.waitUntil(_function_3); - } - - @Test - public void testContentAssistWithUpdate() { - this.resourceValidator.reset(0); - final File file = this.createFile("input signal x state foo end"); - final HashMapSession session = new HashMapSession(); - Pair _mappedTo = Pair.of("serviceType", "update"); - String _name = file.getName(); - Pair _mappedTo_1 = Pair.of("resource", _name); - Pair _mappedTo_2 = Pair.of("deltaText", "bar"); - Pair _mappedTo_3 = Pair.of("deltaOffset", "21"); - Pair _mappedTo_4 = Pair.of("deltaReplaceLength", "3"); - XtextServiceDispatcher.ServiceDescriptor update = this.getService( - Collections.unmodifiableMap(CollectionLiterals.newHashMap(_mappedTo, _mappedTo_1, _mappedTo_2, _mappedTo_3, _mappedTo_4)), session); - IServiceResult _apply = update.getService().apply(); - final DocumentStateResult updateResult = ((DocumentStateResult) _apply); - Pair _mappedTo_5 = Pair.of("serviceType", "assist"); - String _name_1 = file.getName(); - Pair _mappedTo_6 = Pair.of("resource", _name_1); - Pair _mappedTo_7 = Pair.of("caretOffset", "34"); - Pair _mappedTo_8 = Pair.of("deltaText", " set x = "); - Pair _mappedTo_9 = Pair.of("deltaOffset", "24"); - Pair _mappedTo_10 = Pair.of("deltaReplaceLength", "0"); - String _stateId = updateResult.getStateId(); - Pair _mappedTo_11 = Pair.of("requiredStateId", _stateId); - final XtextServiceDispatcher.ServiceDescriptor contentAssist = this.getService( - Collections.unmodifiableMap(CollectionLiterals.newHashMap(_mappedTo_5, _mappedTo_6, _mappedTo_7, _mappedTo_8, _mappedTo_9, _mappedTo_10, _mappedTo_11)), session); - contentAssist.getService().apply(); - Pair _mappedTo_12 = Pair.of("serviceType", "load"); - String _name_2 = file.getName(); - Pair _mappedTo_13 = Pair.of("resource", _name_2); - final XtextServiceDispatcher.ServiceDescriptor load = this.getService(Collections.unmodifiableMap(CollectionLiterals.newHashMap(_mappedTo_12, _mappedTo_13)), session); - IServiceResult _apply_1 = load.getService().apply(); - final ResourceContentResult loadResult = ((ResourceContentResult) _apply_1); - Assert.assertEquals("input signal x state bar set x = end", loadResult.getFullText()); - } - - @Test - public void testNoPrecomputationInStatelessMode() { - this.resourceValidator.reset(0); - final File file = this.createFile(""); - final HashMapSession session = new HashMapSession(); - Pair _mappedTo = Pair.of("serviceType", "assist"); - String _name = file.getName(); - Pair _mappedTo_1 = Pair.of("resource", _name); - Pair _mappedTo_2 = Pair.of("caretOffset", "6"); - Pair _mappedTo_3 = Pair.of("fullText", "input signal x state foo end"); - this.getService( - Collections.unmodifiableMap(CollectionLiterals.newHashMap(_mappedTo, _mappedTo_1, _mappedTo_2, _mappedTo_3)), session).getService().apply(); - Pair _mappedTo_4 = Pair.of("serviceType", "assist"); - String _name_1 = file.getName(); - Pair _mappedTo_5 = Pair.of("resource", _name_1); - Pair _mappedTo_6 = Pair.of("caretOffset", "6"); - Pair _mappedTo_7 = Pair.of("fullText", "input signal x state foo end"); - this.getService( - Collections.unmodifiableMap(CollectionLiterals.newHashMap(_mappedTo_4, _mappedTo_5, _mappedTo_6, _mappedTo_7)), session).getService().apply(); - Assert.assertEquals(0, this.resourceValidator.entryCounter); - } -} diff --git a/org.eclipse.xtext.web/src/test/xtend-gen/org/eclipse/xtext/web/server/test/ValidationTest.java b/org.eclipse.xtext.web/src/test/xtend-gen/org/eclipse/xtext/web/server/test/ValidationTest.java deleted file mode 100644 index e3a20fa1331..00000000000 --- a/org.eclipse.xtext.web/src/test/xtend-gen/org/eclipse/xtext/web/server/test/ValidationTest.java +++ /dev/null @@ -1,215 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.server.test; - -import java.io.File; -import java.util.Collections; -import org.eclipse.xtend2.lib.StringConcatenation; -import org.eclipse.xtext.web.server.IServiceResult; -import org.eclipse.xtext.web.server.ServiceConflictResult; -import org.eclipse.xtext.web.server.XtextServiceDispatcher; -import org.eclipse.xtext.web.server.test.AbstractWebServerTest; -import org.eclipse.xtext.web.server.validation.ValidationResult; -import org.eclipse.xtext.xbase.lib.CollectionLiterals; -import org.eclipse.xtext.xbase.lib.Pair; -import org.hamcrest.core.IsInstanceOf; -import org.junit.Assert; -import org.junit.Test; - -@SuppressWarnings("all") -public class ValidationTest extends AbstractWebServerTest { - protected void assertValidationResult(final String resourceContent, final String expectedResult) { - Pair _mappedTo = Pair.of("serviceType", "validate"); - Pair _mappedTo_1 = Pair.of("fullText", resourceContent); - final XtextServiceDispatcher.ServiceDescriptor validate = this.getService(Collections.unmodifiableMap(CollectionLiterals.newHashMap(_mappedTo, _mappedTo_1))); - Assert.assertFalse(validate.isHasSideEffects()); - IServiceResult _apply = validate.getService().apply(); - final ValidationResult result = ((ValidationResult) _apply); - Assert.assertEquals(expectedResult, result.toString()); - } - - @Test - public void testSyntaxError() { - StringConcatenation _builder = new StringConcatenation(); - _builder.append("ValidationResult ["); - _builder.newLine(); - _builder.append(" "); - _builder.append("issues = ArrayList ("); - _builder.newLine(); - _builder.append(" "); - _builder.append("Issue ["); - _builder.newLine(); - _builder.append(" "); - _builder.append("description = \"missing EOF at \'stat\'\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("severity = \"error\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("line = 1"); - _builder.newLine(); - _builder.append(" "); - _builder.append("column = 1"); - _builder.newLine(); - _builder.append(" "); - _builder.append("offset = 0"); - _builder.newLine(); - _builder.append(" "); - _builder.append("length = 4"); - _builder.newLine(); - _builder.append(" "); - _builder.append("]"); - _builder.newLine(); - _builder.append(" "); - _builder.append(")"); - _builder.newLine(); - _builder.append("]"); - this.assertValidationResult("stat foo end", _builder.toString()); - } - - @Test - public void testCrossRefError() { - StringConcatenation _builder = new StringConcatenation(); - _builder.append("ValidationResult ["); - _builder.newLine(); - _builder.append(" "); - _builder.append("issues = ArrayList ("); - _builder.newLine(); - _builder.append(" "); - _builder.append("Issue ["); - _builder.newLine(); - _builder.append(" "); - _builder.append("description = \"Couldn\'t resolve reference to Signal \'x\'.\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("severity = \"error\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("line = 1"); - _builder.newLine(); - _builder.append(" "); - _builder.append("column = 15"); - _builder.newLine(); - _builder.append(" "); - _builder.append("offset = 14"); - _builder.newLine(); - _builder.append(" "); - _builder.append("length = 1"); - _builder.newLine(); - _builder.append(" "); - _builder.append("]"); - _builder.newLine(); - _builder.append(" "); - _builder.append(")"); - _builder.newLine(); - _builder.append("]"); - this.assertValidationResult("state foo set x = true end", _builder.toString()); - } - - @Test - public void testCustomValidationError() { - StringConcatenation _builder = new StringConcatenation(); - _builder.append("ValidationResult ["); - _builder.newLine(); - _builder.append(" "); - _builder.append("issues = ArrayList ("); - _builder.newLine(); - _builder.append(" "); - _builder.append("Issue ["); - _builder.newLine(); - _builder.append(" "); - _builder.append("description = \"Only output signals are allowed for write access.\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("severity = \"error\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("line = 1"); - _builder.newLine(); - _builder.append(" "); - _builder.append("column = 30"); - _builder.newLine(); - _builder.append(" "); - _builder.append("offset = 29"); - _builder.newLine(); - _builder.append(" "); - _builder.append("length = 1"); - _builder.newLine(); - _builder.append(" "); - _builder.append("]"); - _builder.newLine(); - _builder.append(" "); - _builder.append(")"); - _builder.newLine(); - _builder.append("]"); - this.assertValidationResult("input signal x state foo set x = true end", _builder.toString()); - } - - @Test - public void testValidateFile() { - final File file = this.createFile("stat foo end"); - Pair _mappedTo = Pair.of("serviceType", "validate"); - String _name = file.getName(); - Pair _mappedTo_1 = Pair.of("resource", _name); - final XtextServiceDispatcher.ServiceDescriptor validate = this.getService(Collections.unmodifiableMap(CollectionLiterals.newHashMap(_mappedTo, _mappedTo_1))); - Assert.assertFalse(validate.isHasSideEffects()); - IServiceResult _apply = validate.getService().apply(); - final ValidationResult result = ((ValidationResult) _apply); - StringConcatenation _builder = new StringConcatenation(); - _builder.append("ValidationResult ["); - _builder.newLine(); - _builder.append(" "); - _builder.append("issues = ArrayList ("); - _builder.newLine(); - _builder.append(" "); - _builder.append("Issue ["); - _builder.newLine(); - _builder.append(" "); - _builder.append("description = \"missing EOF at \'stat\'\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("severity = \"error\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("line = 1"); - _builder.newLine(); - _builder.append(" "); - _builder.append("column = 1"); - _builder.newLine(); - _builder.append(" "); - _builder.append("offset = 0"); - _builder.newLine(); - _builder.append(" "); - _builder.append("length = 4"); - _builder.newLine(); - _builder.append(" "); - _builder.append("]"); - _builder.newLine(); - _builder.append(" "); - _builder.append(")"); - _builder.newLine(); - _builder.append("]"); - final String expectedResult = _builder.toString(); - Assert.assertEquals(expectedResult, result.toString()); - } - - @Test - public void testIncorrectStateId() { - final File file = this.createFile("state foo end"); - Pair _mappedTo = Pair.of("serviceType", "validate"); - String _name = file.getName(); - Pair _mappedTo_1 = Pair.of("resource", _name); - Pair _mappedTo_2 = Pair.of("requiredStateId", "totalerquatsch"); - final XtextServiceDispatcher.ServiceDescriptor validate = this.getService( - Collections.unmodifiableMap(CollectionLiterals.newHashMap(_mappedTo, _mappedTo_1, _mappedTo_2))); - Assert.assertTrue(validate.isHasConflict()); - final IServiceResult result = validate.getService().apply(); - Assert.assertThat(result, IsInstanceOf.instanceOf(ServiceConflictResult.class)); - Assert.assertEquals(((ServiceConflictResult) result).getConflict(), "invalidStateId"); - } -} diff --git a/org.eclipse.xtext.web/src/test/xtend-gen/org/eclipse/xtext/web/server/test/languages/StatemachineWebModule.java b/org.eclipse.xtext.web/src/test/xtend-gen/org/eclipse/xtext/web/server/test/languages/StatemachineWebModule.java deleted file mode 100644 index 1b263742b38..00000000000 --- a/org.eclipse.xtext.web/src/test/xtend-gen/org/eclipse/xtext/web/server/test/languages/StatemachineWebModule.java +++ /dev/null @@ -1,41 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.server.test.languages; - -import com.google.inject.Binder; -import org.eclipse.xtend.lib.annotations.Accessors; -import org.eclipse.xtext.web.server.DefaultWebModule; -import org.eclipse.xtext.web.server.persistence.FileResourceHandler; -import org.eclipse.xtext.web.server.persistence.IResourceBaseProvider; -import org.eclipse.xtext.web.server.persistence.IServerResourceHandler; -import org.eclipse.xtext.xbase.lib.Pure; - -@Accessors -@SuppressWarnings("all") -public class StatemachineWebModule extends DefaultWebModule { - private IResourceBaseProvider resourceBaseProvider; - - public Class bindIServerResourceHandler() { - return FileResourceHandler.class; - } - - public void configureResourceBaseProvider(final Binder binder) { - if ((this.resourceBaseProvider != null)) { - binder.bind(IResourceBaseProvider.class).toInstance(this.resourceBaseProvider); - } - } - - @Pure - public IResourceBaseProvider getResourceBaseProvider() { - return this.resourceBaseProvider; - } - - public void setResourceBaseProvider(final IResourceBaseProvider resourceBaseProvider) { - this.resourceBaseProvider = resourceBaseProvider; - } -} diff --git a/org.eclipse.xtext.web/src/test/xtend-gen/org/eclipse/xtext/web/server/test/languages/formatting/StatemachineFormatter.java b/org.eclipse.xtext.web/src/test/xtend-gen/org/eclipse/xtext/web/server/test/languages/formatting/StatemachineFormatter.java deleted file mode 100644 index 2344018edb6..00000000000 --- a/org.eclipse.xtext.web/src/test/xtend-gen/org/eclipse/xtext/web/server/test/languages/formatting/StatemachineFormatter.java +++ /dev/null @@ -1,44 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.web.server.test.languages.formatting; - -import com.google.inject.Inject; -import org.eclipse.xtext.formatting.impl.AbstractDeclarativeFormatter; -import org.eclipse.xtext.formatting.impl.FormattingConfig; -import org.eclipse.xtext.web.example.statemachine.services.StatemachineGrammarAccess; -import org.eclipse.xtext.xbase.lib.Extension; - -/** - * This class contains custom formatting declarations. - * - * See https://www.eclipse.org/Xtext/documentation/303_runtime_concepts.html#formatting - * on how and when to use it. - * - * Also see {@link org.eclipse.xtext.xtext.XtextFormattingTokenSerializer} as an example - */ -@SuppressWarnings("all") -public class StatemachineFormatter extends AbstractDeclarativeFormatter { - @Inject - @Extension - private StatemachineGrammarAccess _statemachineGrammarAccess; - - @Override - protected void configureFormatting(final FormattingConfig c) { - c.setLinewrap(0, 1, 2).before(this._statemachineGrammarAccess.getSL_COMMENTRule()); - c.setLinewrap(0, 1, 2).before(this._statemachineGrammarAccess.getML_COMMENTRule()); - c.setLinewrap(0, 1, 1).after(this._statemachineGrammarAccess.getML_COMMENTRule()); - c.setLinewrap().before(this._statemachineGrammarAccess.getInputSignalAccess().getInputKeyword_1()); - c.setLinewrap().before(this._statemachineGrammarAccess.getOutputSignalAccess().getOutputKeyword_1()); - c.setLinewrap(1, 1, 2).before(this._statemachineGrammarAccess.getStateAccess().getStateKeyword_0()); - c.setIndentationIncrement().after(this._statemachineGrammarAccess.getStateAccess().getNameAssignment_1()); - c.setLinewrap().before(this._statemachineGrammarAccess.getCommandAccess().getSetKeyword_0()); - c.setLinewrap().before(this._statemachineGrammarAccess.getTransitionAccess().getIfKeyword_0()); - c.setLinewrap().before(this._statemachineGrammarAccess.getStateAccess().getEndKeyword_5()); - c.setIndentationDecrement().before(this._statemachineGrammarAccess.getStateAccess().getEndKeyword_5()); - } -} diff --git a/org.eclipse.xtext.xbase.web/src/main/xtend-gen/org/eclipse/xtext/xbase/web/DefaultXbaseWebModule.java b/org.eclipse.xtext.xbase.web/src/main/xtend-gen/org/eclipse/xtext/xbase/web/DefaultXbaseWebModule.java deleted file mode 100644 index 3b8ef16ccf8..00000000000 --- a/org.eclipse.xtext.xbase.web/src/main/xtend-gen/org/eclipse/xtext/xbase/web/DefaultXbaseWebModule.java +++ /dev/null @@ -1,17 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.xbase.web; - -import org.eclipse.xtext.web.server.DefaultWebModule; - -/** - * Default Guice bindings for the web integration of Xbase languages. - */ -@SuppressWarnings("all") -public class DefaultXbaseWebModule extends DefaultWebModule { -} diff --git a/org.eclipse.xtext.xbase.web/src/test/xtend-gen/org/eclipse/xtext/xbase/web/test/AbstractXbaseWebTest.java b/org.eclipse.xtext.xbase.web/src/test/xtend-gen/org/eclipse/xtext/xbase/web/test/AbstractXbaseWebTest.java deleted file mode 100644 index 2f9cfe26af3..00000000000 --- a/org.eclipse.xtext.xbase.web/src/test/xtend-gen/org/eclipse/xtext/xbase/web/test/AbstractXbaseWebTest.java +++ /dev/null @@ -1,116 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.xbase.web.test; - -import com.google.inject.Guice; -import com.google.inject.Inject; -import com.google.inject.Injector; -import com.google.inject.Module; -import java.io.File; -import java.io.FileWriter; -import java.util.HashMap; -import java.util.Map; -import org.eclipse.emf.common.util.URI; -import org.eclipse.xtext.util.DisposableRegistry; -import org.eclipse.xtext.util.Modules2; -import org.eclipse.xtext.web.example.entities.EntitiesRuntimeModule; -import org.eclipse.xtext.web.example.entities.EntitiesStandaloneSetup; -import org.eclipse.xtext.web.example.entities.ide.EntitiesIdeModule; -import org.eclipse.xtext.web.example.entities.tests.EntitiesInjectorProvider; -import org.eclipse.xtext.web.server.ISession; -import org.eclipse.xtext.web.server.XtextServiceDispatcher; -import org.eclipse.xtext.web.server.persistence.IResourceBaseProvider; -import org.eclipse.xtext.xbase.lib.Exceptions; -import org.eclipse.xtext.xbase.web.test.HashMapSession; -import org.eclipse.xtext.xbase.web.test.MockServiceContext; -import org.eclipse.xtext.xbase.web.test.languages.EntitiesWebModule; -import org.junit.After; -import org.junit.Before; - -@SuppressWarnings("all") -public abstract class AbstractXbaseWebTest { - public static class TestResourceBaseProvider implements IResourceBaseProvider { - private final HashMap testFiles = new HashMap(); - - @Override - public URI getFileURI(final String resourceId) { - return this.testFiles.get(resourceId); - } - } - - private final EntitiesInjectorProvider injectorProvider = new EntitiesInjectorProvider() { - @Override - protected Injector internalCreateInjector() { - return new EntitiesStandaloneSetup() { - @Override - public Injector createInjector() { - final EntitiesWebModule webModule = new EntitiesWebModule(); - final EntitiesIdeModule ideModule = new EntitiesIdeModule(); - webModule.setResourceBaseProvider(AbstractXbaseWebTest.this.resourceBaseProvider); - return Guice.createInjector(Modules2.mixin(AbstractXbaseWebTest.this.getRuntimeModule(), ideModule, webModule)); - } - }.createInjectorAndDoEMFRegistration(); - } - }; - - private AbstractXbaseWebTest.TestResourceBaseProvider resourceBaseProvider; - - @Inject - private DisposableRegistry disposableRegistry; - - @Inject - private XtextServiceDispatcher dispatcher; - - protected Module getRuntimeModule() { - return new EntitiesRuntimeModule(); - } - - @Before - public void setup() { - AbstractXbaseWebTest.TestResourceBaseProvider _testResourceBaseProvider = new AbstractXbaseWebTest.TestResourceBaseProvider(); - this.resourceBaseProvider = _testResourceBaseProvider; - final Injector injector = this.injectorProvider.getInjector(); - injector.injectMembers(this); - this.injectorProvider.setupRegistry(); - } - - @After - public void teardown() { - this.disposableRegistry.dispose(); - this.resourceBaseProvider.testFiles.clear(); - this.injectorProvider.restoreRegistry(); - } - - protected File createFile(final String content) { - try { - final File file = File.createTempFile("test", ".entities"); - this.resourceBaseProvider.testFiles.put(file.getName(), URI.createFileURI(file.getAbsolutePath())); - final FileWriter writer = new FileWriter(file); - writer.write(content); - writer.close(); - file.deleteOnExit(); - return file; - } catch (Throwable _e) { - throw Exceptions.sneakyThrow(_e); - } - } - - protected XtextServiceDispatcher.ServiceDescriptor getService(final Map parameters) { - HashMapSession _hashMapSession = new HashMapSession(); - return this.getService(parameters, _hashMapSession); - } - - protected XtextServiceDispatcher.ServiceDescriptor getService(final Map parameters, final ISession session) { - XtextServiceDispatcher.ServiceDescriptor _xblockexpression = null; - { - final MockServiceContext serviceContext = new MockServiceContext(parameters, session); - _xblockexpression = this.dispatcher.getService(serviceContext); - } - return _xblockexpression; - } -} diff --git a/org.eclipse.xtext.xbase.web/src/test/xtend-gen/org/eclipse/xtext/xbase/web/test/ContentAssistTest.java b/org.eclipse.xtext.xbase.web/src/test/xtend-gen/org/eclipse/xtext/xbase/web/test/ContentAssistTest.java deleted file mode 100644 index 4395f6b27c3..00000000000 --- a/org.eclipse.xtext.xbase.web/src/test/xtend-gen/org/eclipse/xtext/xbase/web/test/ContentAssistTest.java +++ /dev/null @@ -1,1018 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.xbase.web.test; - -import java.util.Collections; -import org.eclipse.xtend2.lib.StringConcatenation; -import org.eclipse.xtext.web.server.IServiceResult; -import org.eclipse.xtext.web.server.XtextServiceDispatcher; -import org.eclipse.xtext.web.server.contentassist.ContentAssistResult; -import org.eclipse.xtext.xbase.lib.CollectionLiterals; -import org.eclipse.xtext.xbase.lib.Pair; -import org.eclipse.xtext.xbase.web.test.AbstractXbaseWebTest; -import org.junit.Assert; -import org.junit.Test; - -@SuppressWarnings("all") -public class ContentAssistTest extends AbstractXbaseWebTest { - protected void assertContentAssistResult(final CharSequence resourceContent, final CharSequence expectedResult) { - String contentString = resourceContent.toString(); - final int cursorOffset = contentString.indexOf("|"); - if ((cursorOffset >= 0)) { - String _substring = contentString.substring(0, cursorOffset); - String _substring_1 = contentString.substring((cursorOffset + 1)); - String _plus = (_substring + _substring_1); - contentString = _plus; - this.assertContentAssistResult(contentString, cursorOffset, expectedResult); - } else { - this.assertContentAssistResult(resourceContent, 0, expectedResult); - } - } - - protected void assertContentAssistResult(final CharSequence resourceContent, final int offset, final CharSequence expectedResult) { - Pair _mappedTo = Pair.of("serviceType", "assist"); - String _string = resourceContent.toString(); - Pair _mappedTo_1 = Pair.of("fullText", _string); - String _string_1 = Integer.valueOf(offset).toString(); - Pair _mappedTo_2 = Pair.of("caretOffset", _string_1); - final XtextServiceDispatcher.ServiceDescriptor contentAssist = this.getService( - Collections.unmodifiableMap(CollectionLiterals.newHashMap(_mappedTo, _mappedTo_1, _mappedTo_2))); - IServiceResult _apply = contentAssist.getService().apply(); - final ContentAssistResult result = ((ContentAssistResult) _apply); - Assert.assertEquals(expectedResult.toString(), result.toString()); - } - - @Test - public void testExtendsType() { - StringConcatenation _builder = new StringConcatenation(); - _builder.append("ContentAssistResult ["); - _builder.newLine(); - _builder.append(" "); - _builder.append("stateId = \"-80000000\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("entries = ArrayList ("); - _builder.newLine(); - _builder.append(" "); - _builder.append("ContentAssistEntry ["); - _builder.newLine(); - _builder.append(" "); - _builder.append("prefix = \"AbstractQu\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("proposal = \"AbstractQueue\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("description = \"java.util.AbstractQueue\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("textReplacements = ArrayList ("); - _builder.newLine(); - _builder.append(" "); - _builder.append("replace region [0 / length: 0] \'"); - _builder.newLine(); - _builder.append(" "); - _builder.append("import java.util.AbstractQueue\'"); - _builder.newLine(); - _builder.append(" "); - _builder.append(")"); - _builder.newLine(); - _builder.append(" "); - _builder.append("editPositions = ArrayList ()"); - _builder.newLine(); - _builder.append(" "); - _builder.append("kind = \"UNKNOWN\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("],"); - _builder.newLine(); - _builder.append(" "); - _builder.append("ContentAssistEntry ["); - _builder.newLine(); - _builder.append(" "); - _builder.append("prefix = \"AbstractQu\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("proposal = \"AbstractQueuedLongSynchronizer\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("description = \"java.util.concurrent.locks.AbstractQueuedLongSynchronizer\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("textReplacements = ArrayList ("); - _builder.newLine(); - _builder.append(" "); - _builder.append("replace region [0 / length: 0] \'"); - _builder.newLine(); - _builder.append(" "); - _builder.append("import java.util.concurrent.locks.AbstractQueuedLongSynchronizer\'"); - _builder.newLine(); - _builder.append(" "); - _builder.append(")"); - _builder.newLine(); - _builder.append(" "); - _builder.append("editPositions = ArrayList ()"); - _builder.newLine(); - _builder.append(" "); - _builder.append("kind = \"UNKNOWN\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("],"); - _builder.newLine(); - _builder.append(" "); - _builder.append("ContentAssistEntry ["); - _builder.newLine(); - _builder.append(" "); - _builder.append("prefix = \"AbstractQu\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("proposal = \"AbstractQueuedSynchronizer\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("description = \"java.util.concurrent.locks.AbstractQueuedSynchronizer\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("textReplacements = ArrayList ("); - _builder.newLine(); - _builder.append(" "); - _builder.append("replace region [0 / length: 0] \'"); - _builder.newLine(); - _builder.append(" "); - _builder.append("import java.util.concurrent.locks.AbstractQueuedSynchronizer\'"); - _builder.newLine(); - _builder.append(" "); - _builder.append(")"); - _builder.newLine(); - _builder.append(" "); - _builder.append("editPositions = ArrayList ()"); - _builder.newLine(); - _builder.append(" "); - _builder.append("kind = \"UNKNOWN\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("]"); - _builder.newLine(); - _builder.append(" "); - _builder.append(")"); - _builder.newLine(); - _builder.append("]"); - this.assertContentAssistResult("entity Foo extends AbstractQu|", _builder); - } - - @Test - public void testPropertyType() { - StringConcatenation _builder = new StringConcatenation(); - _builder.append("ContentAssistResult ["); - _builder.newLine(); - _builder.append(" "); - _builder.append("stateId = \"-80000000\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("entries = ArrayList ("); - _builder.newLine(); - _builder.append(" "); - _builder.append("ContentAssistEntry ["); - _builder.newLine(); - _builder.append(" "); - _builder.append("prefix = \"AbstractQu\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("proposal = \"AbstractQueue\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("description = \"java.util.AbstractQueue\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("textReplacements = ArrayList ("); - _builder.newLine(); - _builder.append(" "); - _builder.append("replace region [0 / length: 0] \'"); - _builder.newLine(); - _builder.append(" "); - _builder.append("import java.util.AbstractQueue\'"); - _builder.newLine(); - _builder.append(" "); - _builder.append(")"); - _builder.newLine(); - _builder.append(" "); - _builder.append("editPositions = ArrayList ()"); - _builder.newLine(); - _builder.append(" "); - _builder.append("kind = \"UNKNOWN\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("],"); - _builder.newLine(); - _builder.append(" "); - _builder.append("ContentAssistEntry ["); - _builder.newLine(); - _builder.append(" "); - _builder.append("prefix = \"AbstractQu\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("proposal = \"AbstractQueuedLongSynchronizer\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("description = \"java.util.concurrent.locks.AbstractQueuedLongSynchronizer\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("textReplacements = ArrayList ("); - _builder.newLine(); - _builder.append(" "); - _builder.append("replace region [0 / length: 0] \'"); - _builder.newLine(); - _builder.append(" "); - _builder.append("import java.util.concurrent.locks.AbstractQueuedLongSynchronizer\'"); - _builder.newLine(); - _builder.append(" "); - _builder.append(")"); - _builder.newLine(); - _builder.append(" "); - _builder.append("editPositions = ArrayList ()"); - _builder.newLine(); - _builder.append(" "); - _builder.append("kind = \"UNKNOWN\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("],"); - _builder.newLine(); - _builder.append(" "); - _builder.append("ContentAssistEntry ["); - _builder.newLine(); - _builder.append(" "); - _builder.append("prefix = \"AbstractQu\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("proposal = \"AbstractQueuedSynchronizer\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("description = \"java.util.concurrent.locks.AbstractQueuedSynchronizer\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("textReplacements = ArrayList ("); - _builder.newLine(); - _builder.append(" "); - _builder.append("replace region [0 / length: 0] \'"); - _builder.newLine(); - _builder.append(" "); - _builder.append("import java.util.concurrent.locks.AbstractQueuedSynchronizer\'"); - _builder.newLine(); - _builder.append(" "); - _builder.append(")"); - _builder.newLine(); - _builder.append(" "); - _builder.append("editPositions = ArrayList ()"); - _builder.newLine(); - _builder.append(" "); - _builder.append("kind = \"UNKNOWN\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("]"); - _builder.newLine(); - _builder.append(" "); - _builder.append(")"); - _builder.newLine(); - _builder.append("]"); - this.assertContentAssistResult("entity Foo { bar: AbstractQu| }", _builder); - } - - @Test - public void testListMethods() { - StringConcatenation _builder = new StringConcatenation(); - _builder.append("ContentAssistResult ["); - _builder.newLine(); - _builder.append(" "); - _builder.append("stateId = \"-80000000\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("entries = ArrayList ("); - _builder.newLine(); - _builder.append(" "); - _builder.append("ContentAssistEntry ["); - _builder.newLine(); - _builder.append(" "); - _builder.append("prefix = \"add\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("proposal = \"add()\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("label = \"add(E arg0) : boolean\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("description = \"List\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("escapePosition = 45"); - _builder.newLine(); - _builder.append(" "); - _builder.append("textReplacements = ArrayList ()"); - _builder.newLine(); - _builder.append(" "); - _builder.append("editPositions = ArrayList ("); - _builder.newLine(); - _builder.append(" "); - _builder.append("[44:0]"); - _builder.newLine(); - _builder.append(" "); - _builder.append(")"); - _builder.newLine(); - _builder.append(" "); - _builder.append("kind = \"UNKNOWN\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("],"); - _builder.newLine(); - _builder.append(" "); - _builder.append("ContentAssistEntry ["); - _builder.newLine(); - _builder.append(" "); - _builder.append("prefix = \"add\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("proposal = \"add()\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("label = \"add(int arg0, E arg1) : void\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("description = \"List\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("escapePosition = 45"); - _builder.newLine(); - _builder.append(" "); - _builder.append("textReplacements = ArrayList ()"); - _builder.newLine(); - _builder.append(" "); - _builder.append("editPositions = ArrayList ("); - _builder.newLine(); - _builder.append(" "); - _builder.append("[44:0]"); - _builder.newLine(); - _builder.append(" "); - _builder.append(")"); - _builder.newLine(); - _builder.append(" "); - _builder.append("kind = \"UNKNOWN\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("],"); - _builder.newLine(); - _builder.append(" "); - _builder.append("ContentAssistEntry ["); - _builder.newLine(); - _builder.append(" "); - _builder.append("prefix = \"add\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("proposal = \"addAll()\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("label = \"addAll(Collection arg0) : boolean\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("description = \"List\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("escapePosition = 48"); - _builder.newLine(); - _builder.append(" "); - _builder.append("textReplacements = ArrayList ()"); - _builder.newLine(); - _builder.append(" "); - _builder.append("editPositions = ArrayList ("); - _builder.newLine(); - _builder.append(" "); - _builder.append("[47:0]"); - _builder.newLine(); - _builder.append(" "); - _builder.append(")"); - _builder.newLine(); - _builder.append(" "); - _builder.append("kind = \"UNKNOWN\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("],"); - _builder.newLine(); - _builder.append(" "); - _builder.append("ContentAssistEntry ["); - _builder.newLine(); - _builder.append(" "); - _builder.append("prefix = \"add\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("proposal = \"addAll()\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("label = \"addAll(Iterable arg1) : boolean\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("description = \"CollectionExtensions\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("escapePosition = 48"); - _builder.newLine(); - _builder.append(" "); - _builder.append("textReplacements = ArrayList ()"); - _builder.newLine(); - _builder.append(" "); - _builder.append("editPositions = ArrayList ("); - _builder.newLine(); - _builder.append(" "); - _builder.append("[47:0]"); - _builder.newLine(); - _builder.append(" "); - _builder.append(")"); - _builder.newLine(); - _builder.append(" "); - _builder.append("kind = \"UNKNOWN\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("],"); - _builder.newLine(); - _builder.append(" "); - _builder.append("ContentAssistEntry ["); - _builder.newLine(); - _builder.append(" "); - _builder.append("prefix = \"add\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("proposal = \"addAll()\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("label = \"addAll(T... arg1) : boolean\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("description = \"CollectionExtensions\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("escapePosition = 48"); - _builder.newLine(); - _builder.append(" "); - _builder.append("textReplacements = ArrayList ()"); - _builder.newLine(); - _builder.append(" "); - _builder.append("editPositions = ArrayList ("); - _builder.newLine(); - _builder.append(" "); - _builder.append("[47:0]"); - _builder.newLine(); - _builder.append(" "); - _builder.append(")"); - _builder.newLine(); - _builder.append(" "); - _builder.append("kind = \"UNKNOWN\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("],"); - _builder.newLine(); - _builder.append(" "); - _builder.append("ContentAssistEntry ["); - _builder.newLine(); - _builder.append(" "); - _builder.append("prefix = \"add\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("proposal = \"addAll()\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("label = \"addAll(int arg0, Collection arg1) : boolean\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("description = \"List\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("escapePosition = 48"); - _builder.newLine(); - _builder.append(" "); - _builder.append("textReplacements = ArrayList ()"); - _builder.newLine(); - _builder.append(" "); - _builder.append("editPositions = ArrayList ("); - _builder.newLine(); - _builder.append(" "); - _builder.append("[47:0]"); - _builder.newLine(); - _builder.append(" "); - _builder.append(")"); - _builder.newLine(); - _builder.append(" "); - _builder.append("kind = \"UNKNOWN\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("],"); - _builder.newLine(); - _builder.append(" "); - CharSequence _operators = this.operators(); - _builder.append(_operators, " "); - _builder.newLineIfNotEmpty(); - _builder.append(" "); - _builder.append(")"); - _builder.newLine(); - _builder.append("]"); - this.assertContentAssistResult("entity Foo { op bar(): void { #[\'blub\'].add| } }", _builder); - } - - @Test - public void testMembers() { - StringConcatenation _builder = new StringConcatenation(); - _builder.append("entity Foo {"); - _builder.newLine(); - _builder.append("\t"); - _builder.append("foobar1: String"); - _builder.newLine(); - _builder.append("\t"); - _builder.append("op foobar2(): String {}"); - _builder.newLine(); - _builder.append("\t"); - _builder.append("op baz(): void {"); - _builder.newLine(); - _builder.append("\t\t"); - _builder.append("println(foob|)"); - _builder.newLine(); - _builder.append("\t"); - _builder.append("}"); - _builder.newLine(); - _builder.append("}"); - _builder.newLine(); - StringConcatenation _builder_1 = new StringConcatenation(); - _builder_1.append("ContentAssistResult ["); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("stateId = \"-80000000\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("entries = ArrayList ("); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("ContentAssistEntry ["); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("prefix = \"foob\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("proposal = \"foobar1\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("label = \"foobar1 : String\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("description = \"Foo\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("escapePosition = 90"); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("textReplacements = ArrayList ()"); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("editPositions = ArrayList ()"); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("kind = \"UNKNOWN\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("],"); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("ContentAssistEntry ["); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("prefix = \"foob\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("proposal = \"foobar1 = value\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("label = \"foobar1 = value : void\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("description = \"Foo.setFoobar1()\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("escapePosition = 98"); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("textReplacements = ArrayList ()"); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("editPositions = ArrayList ("); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("[93:5]"); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append(")"); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("kind = \"UNKNOWN\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("],"); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("ContentAssistEntry ["); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("prefix = \"foob\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("proposal = \"foobar2\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("label = \"foobar2 : String\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("description = \"Foo.foobar2()\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("escapePosition = 90"); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("textReplacements = ArrayList ()"); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("editPositions = ArrayList ()"); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("kind = \"UNKNOWN\""); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append("]"); - _builder_1.newLine(); - _builder_1.append(" "); - _builder_1.append(")"); - _builder_1.newLine(); - _builder_1.append("]"); - this.assertContentAssistResult(_builder, _builder_1); - } - - private CharSequence operators() { - StringConcatenation _builder = new StringConcatenation(); - _builder.append("ContentAssistEntry ["); - _builder.newLine(); - _builder.append(" "); - _builder.append("prefix = \"\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("proposal = \"!=\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("description = \"JvmOperation\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("textReplacements = ArrayList ()"); - _builder.newLine(); - _builder.append(" "); - _builder.append("editPositions = ArrayList ()"); - _builder.newLine(); - _builder.append(" "); - _builder.append("kind = \"UNKNOWN\""); - _builder.newLine(); - _builder.append("],"); - _builder.newLine(); - _builder.append("ContentAssistEntry ["); - _builder.newLine(); - _builder.append(" "); - _builder.append("prefix = \"\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("proposal = \"!==\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("description = \"JvmOperation\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("textReplacements = ArrayList ()"); - _builder.newLine(); - _builder.append(" "); - _builder.append("editPositions = ArrayList ()"); - _builder.newLine(); - _builder.append(" "); - _builder.append("kind = \"UNKNOWN\""); - _builder.newLine(); - _builder.append("],"); - _builder.newLine(); - _builder.append("ContentAssistEntry ["); - _builder.newLine(); - _builder.append(" "); - _builder.append("prefix = \"\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("proposal = \"&&\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("description = \"JvmOperation\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("textReplacements = ArrayList ()"); - _builder.newLine(); - _builder.append(" "); - _builder.append("editPositions = ArrayList ()"); - _builder.newLine(); - _builder.append(" "); - _builder.append("kind = \"UNKNOWN\""); - _builder.newLine(); - _builder.append("],"); - _builder.newLine(); - _builder.append("ContentAssistEntry ["); - _builder.newLine(); - _builder.append(" "); - _builder.append("prefix = \"\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("proposal = \"+\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("description = \"JvmOperation\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("textReplacements = ArrayList ()"); - _builder.newLine(); - _builder.append(" "); - _builder.append("editPositions = ArrayList ()"); - _builder.newLine(); - _builder.append(" "); - _builder.append("kind = \"UNKNOWN\""); - _builder.newLine(); - _builder.append("],"); - _builder.newLine(); - _builder.append("ContentAssistEntry ["); - _builder.newLine(); - _builder.append(" "); - _builder.append("prefix = \"\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("proposal = \"->\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("description = \"JvmOperation\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("textReplacements = ArrayList ()"); - _builder.newLine(); - _builder.append(" "); - _builder.append("editPositions = ArrayList ()"); - _builder.newLine(); - _builder.append(" "); - _builder.append("kind = \"UNKNOWN\""); - _builder.newLine(); - _builder.append("],"); - _builder.newLine(); - _builder.append("ContentAssistEntry ["); - _builder.newLine(); - _builder.append(" "); - _builder.append("prefix = \"\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("proposal = \"<\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("description = \"JvmOperation\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("textReplacements = ArrayList ()"); - _builder.newLine(); - _builder.append(" "); - _builder.append("editPositions = ArrayList ()"); - _builder.newLine(); - _builder.append(" "); - _builder.append("kind = \"UNKNOWN\""); - _builder.newLine(); - _builder.append("],"); - _builder.newLine(); - _builder.append("ContentAssistEntry ["); - _builder.newLine(); - _builder.append(" "); - _builder.append("prefix = \"\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("proposal = \"<=\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("description = \"JvmOperation\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("textReplacements = ArrayList ()"); - _builder.newLine(); - _builder.append(" "); - _builder.append("editPositions = ArrayList ()"); - _builder.newLine(); - _builder.append(" "); - _builder.append("kind = \"UNKNOWN\""); - _builder.newLine(); - _builder.append("],"); - _builder.newLine(); - _builder.append("ContentAssistEntry ["); - _builder.newLine(); - _builder.append(" "); - _builder.append("prefix = \"\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("proposal = \"<=>\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("description = \"JvmOperation\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("textReplacements = ArrayList ()"); - _builder.newLine(); - _builder.append(" "); - _builder.append("editPositions = ArrayList ()"); - _builder.newLine(); - _builder.append(" "); - _builder.append("kind = \"UNKNOWN\""); - _builder.newLine(); - _builder.append("],"); - _builder.newLine(); - _builder.append("ContentAssistEntry ["); - _builder.newLine(); - _builder.append(" "); - _builder.append("prefix = \"\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("proposal = \"==\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("description = \"JvmOperation\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("textReplacements = ArrayList ()"); - _builder.newLine(); - _builder.append(" "); - _builder.append("editPositions = ArrayList ()"); - _builder.newLine(); - _builder.append(" "); - _builder.append("kind = \"UNKNOWN\""); - _builder.newLine(); - _builder.append("],"); - _builder.newLine(); - _builder.append("ContentAssistEntry ["); - _builder.newLine(); - _builder.append(" "); - _builder.append("prefix = \"\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("proposal = \"===\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("description = \"JvmOperation\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("textReplacements = ArrayList ()"); - _builder.newLine(); - _builder.append(" "); - _builder.append("editPositions = ArrayList ()"); - _builder.newLine(); - _builder.append(" "); - _builder.append("kind = \"UNKNOWN\""); - _builder.newLine(); - _builder.append("],"); - _builder.newLine(); - _builder.append("ContentAssistEntry ["); - _builder.newLine(); - _builder.append(" "); - _builder.append("prefix = \"\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("proposal = \"=>\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("description = \"JvmOperation\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("textReplacements = ArrayList ()"); - _builder.newLine(); - _builder.append(" "); - _builder.append("editPositions = ArrayList ()"); - _builder.newLine(); - _builder.append(" "); - _builder.append("kind = \"UNKNOWN\""); - _builder.newLine(); - _builder.append("],"); - _builder.newLine(); - _builder.append("ContentAssistEntry ["); - _builder.newLine(); - _builder.append(" "); - _builder.append("prefix = \"\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("proposal = \">\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("description = \"JvmOperation\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("textReplacements = ArrayList ()"); - _builder.newLine(); - _builder.append(" "); - _builder.append("editPositions = ArrayList ()"); - _builder.newLine(); - _builder.append(" "); - _builder.append("kind = \"UNKNOWN\""); - _builder.newLine(); - _builder.append("],"); - _builder.newLine(); - _builder.append("ContentAssistEntry ["); - _builder.newLine(); - _builder.append(" "); - _builder.append("prefix = \"\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("proposal = \">=\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("description = \"JvmOperation\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("textReplacements = ArrayList ()"); - _builder.newLine(); - _builder.append(" "); - _builder.append("editPositions = ArrayList ()"); - _builder.newLine(); - _builder.append(" "); - _builder.append("kind = \"UNKNOWN\""); - _builder.newLine(); - _builder.append("],"); - _builder.newLine(); - _builder.append("ContentAssistEntry ["); - _builder.newLine(); - _builder.append(" "); - _builder.append("prefix = \"\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("proposal = \"?:\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("description = \"JvmOperation\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("textReplacements = ArrayList ()"); - _builder.newLine(); - _builder.append(" "); - _builder.append("editPositions = ArrayList ()"); - _builder.newLine(); - _builder.append(" "); - _builder.append("kind = \"UNKNOWN\""); - _builder.newLine(); - _builder.append("],"); - _builder.newLine(); - _builder.append("ContentAssistEntry ["); - _builder.newLine(); - _builder.append(" "); - _builder.append("prefix = \"\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("proposal = \"||\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("description = \"JvmOperation\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("textReplacements = ArrayList ()"); - _builder.newLine(); - _builder.append(" "); - _builder.append("editPositions = ArrayList ()"); - _builder.newLine(); - _builder.append(" "); - _builder.append("kind = \"UNKNOWN\""); - _builder.newLine(); - _builder.append("],"); - _builder.newLine(); - _builder.append("ContentAssistEntry ["); - _builder.newLine(); - _builder.append(" "); - _builder.append("prefix = \"\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("proposal = \"\"value\"\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("description = \"STRING\""); - _builder.newLine(); - _builder.append(" "); - _builder.append("textReplacements = ArrayList ()"); - _builder.newLine(); - _builder.append(" "); - _builder.append("editPositions = ArrayList ("); - _builder.newLine(); - _builder.append(" "); - _builder.append("[44:5]"); - _builder.newLine(); - _builder.append(" "); - _builder.append(")"); - _builder.newLine(); - _builder.append(" "); - _builder.append("kind = \"TEXT\""); - _builder.newLine(); - _builder.append("]"); - _builder.newLine(); - return _builder; - } -} diff --git a/org.eclipse.xtext.xbase.web/src/test/xtend-gen/org/eclipse/xtext/xbase/web/test/HashMapSession.java b/org.eclipse.xtext.xbase.web/src/test/xtend-gen/org/eclipse/xtext/xbase/web/test/HashMapSession.java deleted file mode 100644 index 8a9037c45e8..00000000000 --- a/org.eclipse.xtext.xbase.web/src/test/xtend-gen/org/eclipse/xtext/xbase/web/test/HashMapSession.java +++ /dev/null @@ -1,47 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.xbase.web.test; - -import java.util.HashMap; -import org.eclipse.xtext.web.server.ISession; -import org.eclipse.xtext.xbase.lib.Functions.Function0; - -@SuppressWarnings("all") -public class HashMapSession implements ISession { - private final HashMap map = new HashMap(); - - @Override - public T get(final Object key) { - Object _get = this.map.get(key); - return ((T) _get); - } - - @Override - public T get(final Object key, final Function0 factory) { - synchronized (this.map) { - final T sessionValue = this.get(key); - if ((sessionValue != null)) { - return sessionValue; - } else { - final T factoryValue = factory.apply(); - this.put(key, factoryValue); - return factoryValue; - } - } - } - - @Override - public void put(final Object key, final Object value) { - this.map.put(key, value); - } - - @Override - public void remove(final Object key) { - this.map.remove(key); - } -} diff --git a/org.eclipse.xtext.xbase.web/src/test/xtend-gen/org/eclipse/xtext/xbase/web/test/MockServiceContext.java b/org.eclipse.xtext.xbase.web/src/test/xtend-gen/org/eclipse/xtext/xbase/web/test/MockServiceContext.java deleted file mode 100644 index c6e335709e1..00000000000 --- a/org.eclipse.xtext.xbase.web/src/test/xtend-gen/org/eclipse/xtext/xbase/web/test/MockServiceContext.java +++ /dev/null @@ -1,47 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.xbase.web.test; - -import java.util.Collections; -import java.util.Map; -import java.util.Set; -import org.eclipse.xtend.lib.annotations.Accessors; -import org.eclipse.xtend.lib.annotations.FinalFieldsConstructor; -import org.eclipse.xtext.web.server.IServiceContext; -import org.eclipse.xtext.web.server.ISession; -import org.eclipse.xtext.xbase.lib.Pure; - -@FinalFieldsConstructor -@SuppressWarnings("all") -public class MockServiceContext implements IServiceContext { - private final Map parameters; - - @Accessors - private final ISession session; - - @Override - public Set getParameterKeys() { - return Collections.unmodifiableSet(this.parameters.keySet()); - } - - @Override - public String getParameter(final String key) { - return this.parameters.get(key); - } - - public MockServiceContext(final Map parameters, final ISession session) { - super(); - this.parameters = parameters; - this.session = session; - } - - @Pure - public ISession getSession() { - return this.session; - } -} diff --git a/org.eclipse.xtext.xbase.web/src/test/xtend-gen/org/eclipse/xtext/xbase/web/test/languages/EntitiesWebModule.java b/org.eclipse.xtext.xbase.web/src/test/xtend-gen/org/eclipse/xtext/xbase/web/test/languages/EntitiesWebModule.java deleted file mode 100644 index 0d0c4dc3d15..00000000000 --- a/org.eclipse.xtext.xbase.web/src/test/xtend-gen/org/eclipse/xtext/xbase/web/test/languages/EntitiesWebModule.java +++ /dev/null @@ -1,41 +0,0 @@ -/** - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.xtext.xbase.web.test.languages; - -import com.google.inject.Binder; -import org.eclipse.xtend.lib.annotations.Accessors; -import org.eclipse.xtext.web.server.persistence.FileResourceHandler; -import org.eclipse.xtext.web.server.persistence.IResourceBaseProvider; -import org.eclipse.xtext.web.server.persistence.IServerResourceHandler; -import org.eclipse.xtext.xbase.lib.Pure; -import org.eclipse.xtext.xbase.web.DefaultXbaseWebModule; - -@Accessors -@SuppressWarnings("all") -public class EntitiesWebModule extends DefaultXbaseWebModule { - private IResourceBaseProvider resourceBaseProvider; - - public Class bindIServerResourceHandler() { - return FileResourceHandler.class; - } - - public void configureResourceBaseProvider(final Binder binder) { - if ((this.resourceBaseProvider != null)) { - binder.bind(IResourceBaseProvider.class).toInstance(this.resourceBaseProvider); - } - } - - @Pure - public IResourceBaseProvider getResourceBaseProvider() { - return this.resourceBaseProvider; - } - - public void setResourceBaseProvider(final IResourceBaseProvider resourceBaseProvider) { - this.resourceBaseProvider = resourceBaseProvider; - } -}