diff --git a/eclipse_workspaces/runtime-New_configuration/.metadata/.log b/eclipse_workspaces/runtime-New_configuration/.metadata/.log index 9d6c498d289313c171e8af80bf8ae653e7aa03cf..8bfa1e51473ca6c8dc16017fac1b29146dc3717b 100644 --- a/eclipse_workspaces/runtime-New_configuration/.metadata/.log +++ b/eclipse_workspaces/runtime-New_configuration/.metadata/.log @@ -4769,3 +4769,231 @@ This warning can be switched off on the Team > Git > Confirmations and Warnings !ENTRY org.eclipse.e4.ui.workbench 2 0 2024-07-09 09:52:39.673 !MESSAGE Removing PartDescriptorImpl with the "org.eclipse.m2e.core.views.MavenBuild" id and the "Maven Workspace Build" label.It points to the non available "bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView" class. Bundle might have been uninstalled +!SESSION 2024-07-17 21:22:03.799 ----------------------------------------------- +eclipse.buildId=4.31.0.20240307-1200 +java.version=17.0.10 +java.vendor=Eclipse Adoptium +BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=de_DE +Framework arguments: -product org.eclipse.epp.package.modeling.product +Command-line arguments: -product org.eclipse.epp.package.modeling.product -data C:\Users\Tom\Desktop\neuneunueBachelorarbeitCode\eclipse_workspaces\webservice/../runtime-New_configuration -dev file:C:/Users/Tom/Desktop/neuneunueBachelorarbeitCode/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/dev.properties -os win32 -ws win32 -arch x86_64 -consoleLog + +!ENTRY org.eclipse.core.resources 2 10035 2024-07-17 21:22:09.353 +!MESSAGE The workspace exited with unsaved changes in the previous session; refreshing workspace to recover changes. + +!ENTRY org.eclipse.core.resources 4 567 2024-07-17 21:22:09.390 +!MESSAGE Workspace restored, but some problems occurred. +!SUBENTRY 1 org.eclipse.core.resources 4 567 2024-07-17 21:22:09.390 +!MESSAGE Could not read metadata for '.org.eclipse.egit.core.cmp'. +!STACK 1 +org.eclipse.core.internal.resources.ResourceException(/.org.eclipse.egit.core.cmp)[567]: java.lang.Exception: The project description file (.project) for '.org.eclipse.egit.core.cmp' is missing. This file contains important information about the project. The project will not function properly until this file is restored. + at org.eclipse.core.internal.resources.ResourceException.provideStackTrace(ResourceException.java:42) + at org.eclipse.core.internal.resources.ResourceException.<init>(ResourceException.java:38) + at org.eclipse.core.internal.localstore.FileSystemResourceManager.read(FileSystemResourceManager.java:951) + at org.eclipse.core.internal.resources.SaveManager.restoreMetaInfo(SaveManager.java:953) + at org.eclipse.core.internal.resources.SaveManager.restoreMetaInfo(SaveManager.java:933) + at org.eclipse.core.internal.resources.SaveManager.restore(SaveManager.java:789) + at org.eclipse.core.internal.resources.SaveManager.startup(SaveManager.java:1615) + at org.eclipse.core.internal.resources.Workspace.startup(Workspace.java:2615) + at org.eclipse.core.internal.resources.Workspace.open(Workspace.java:2319) + at org.eclipse.core.resources.ResourcesPlugin$WorkspaceInitCustomizer.addingService(ResourcesPlugin.java:571) + at org.eclipse.core.resources.ResourcesPlugin$WorkspaceInitCustomizer.addingService(ResourcesPlugin.java:1) + at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:947) + at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:1) + at org.osgi.util.tracker.AbstractTracked.trackAdding(AbstractTracked.java:257) + at org.osgi.util.tracker.AbstractTracked.trackInitial(AbstractTracked.java:184) + at org.osgi.util.tracker.ServiceTracker.open(ServiceTracker.java:324) + at org.osgi.util.tracker.ServiceTracker.open(ServiceTracker.java:267) + at org.eclipse.core.resources.ResourcesPlugin.start(ResourcesPlugin.java:545) + at org.eclipse.osgi.internal.framework.BundleContextImpl$2.run(BundleContextImpl.java:833) + at org.eclipse.osgi.internal.framework.BundleContextImpl$2.run(BundleContextImpl.java:1) + at java.base/java.security.AccessController.doPrivileged(AccessController.java:569) + at org.eclipse.osgi.internal.framework.BundleContextImpl.startActivator(BundleContextImpl.java:825) + at org.eclipse.osgi.internal.framework.BundleContextImpl.start(BundleContextImpl.java:775) + at org.eclipse.osgi.internal.framework.EquinoxBundle.startWorker0(EquinoxBundle.java:1057) + at org.eclipse.osgi.internal.framework.EquinoxBundle$EquinoxModule.startWorker(EquinoxBundle.java:387) + at org.eclipse.osgi.container.Module.doStart(Module.java:639) + at org.eclipse.osgi.container.Module.start(Module.java:498) + at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:528) + at org.eclipse.osgi.internal.hooks.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:122) + at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClass(ClasspathManager.java:620) + at org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalClass(ModuleClassLoader.java:348) + at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:414) + at org.eclipse.osgi.internal.loader.sources.SingleSourcePackage.loadClass(SingleSourcePackage.java:41) + at org.eclipse.osgi.internal.loader.BundleLoader.findClass0(BundleLoader.java:516) + at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:434) + at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:174) + at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525) + at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:153) + at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:208) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:143) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:109) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:439) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:271) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) + at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + at java.base/java.lang.reflect.Method.invoke(Method.java:568) + at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:651) + at org.eclipse.equinox.launcher.Main.basicRun(Main.java:588) + at org.eclipse.equinox.launcher.Main.run(Main.java:1459) + at org.eclipse.equinox.launcher.Main.main(Main.java:1432) +!SUBENTRY 2 org.eclipse.core.resources 4 567 2024-07-17 21:22:09.393 +!MESSAGE The project description file (.project) for '.org.eclipse.egit.core.cmp' is missing. This file contains important information about the project. The project will not function properly until this file is restored. +!STACK 0 +java.lang.Exception: The project description file (.project) for '.org.eclipse.egit.core.cmp' is missing. This file contains important information about the project. The project will not function properly until this file is restored. + at org.eclipse.core.internal.resources.ResourceException.provideStackTrace(ResourceException.java:42) + at org.eclipse.core.internal.resources.ResourceException.<init>(ResourceException.java:38) + at org.eclipse.core.internal.localstore.FileSystemResourceManager.read(FileSystemResourceManager.java:951) + at org.eclipse.core.internal.resources.SaveManager.restoreMetaInfo(SaveManager.java:953) + at org.eclipse.core.internal.resources.SaveManager.restoreMetaInfo(SaveManager.java:933) + at org.eclipse.core.internal.resources.SaveManager.restore(SaveManager.java:789) + at org.eclipse.core.internal.resources.SaveManager.startup(SaveManager.java:1615) + at org.eclipse.core.internal.resources.Workspace.startup(Workspace.java:2615) + at org.eclipse.core.internal.resources.Workspace.open(Workspace.java:2319) + at org.eclipse.core.resources.ResourcesPlugin$WorkspaceInitCustomizer.addingService(ResourcesPlugin.java:571) + at org.eclipse.core.resources.ResourcesPlugin$WorkspaceInitCustomizer.addingService(ResourcesPlugin.java:1) + at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:947) + at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:1) + at org.osgi.util.tracker.AbstractTracked.trackAdding(AbstractTracked.java:257) + at org.osgi.util.tracker.AbstractTracked.trackInitial(AbstractTracked.java:184) + at org.osgi.util.tracker.ServiceTracker.open(ServiceTracker.java:324) + at org.osgi.util.tracker.ServiceTracker.open(ServiceTracker.java:267) + at org.eclipse.core.resources.ResourcesPlugin.start(ResourcesPlugin.java:545) + at org.eclipse.osgi.internal.framework.BundleContextImpl$2.run(BundleContextImpl.java:833) + at org.eclipse.osgi.internal.framework.BundleContextImpl$2.run(BundleContextImpl.java:1) + at java.base/java.security.AccessController.doPrivileged(AccessController.java:569) + at org.eclipse.osgi.internal.framework.BundleContextImpl.startActivator(BundleContextImpl.java:825) + at org.eclipse.osgi.internal.framework.BundleContextImpl.start(BundleContextImpl.java:775) + at org.eclipse.osgi.internal.framework.EquinoxBundle.startWorker0(EquinoxBundle.java:1057) + at org.eclipse.osgi.internal.framework.EquinoxBundle$EquinoxModule.startWorker(EquinoxBundle.java:387) + at org.eclipse.osgi.container.Module.doStart(Module.java:639) + at org.eclipse.osgi.container.Module.start(Module.java:498) + at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:528) + at org.eclipse.osgi.internal.hooks.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:122) + at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClass(ClasspathManager.java:620) + at org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalClass(ModuleClassLoader.java:348) + at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:414) + at org.eclipse.osgi.internal.loader.sources.SingleSourcePackage.loadClass(SingleSourcePackage.java:41) + at org.eclipse.osgi.internal.loader.BundleLoader.findClass0(BundleLoader.java:516) + at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:434) + at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:174) + at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525) + at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:153) + at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:208) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:143) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:109) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:439) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:271) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) + at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + at java.base/java.lang.reflect.Method.invoke(Method.java:568) + at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:651) + at org.eclipse.equinox.launcher.Main.basicRun(Main.java:588) + at org.eclipse.equinox.launcher.Main.run(Main.java:1459) + at org.eclipse.equinox.launcher.Main.main(Main.java:1432) + +!ENTRY org.eclipse.egit.ui 2 0 2024-07-17 21:22:14.737 +!MESSAGE Warning: The environment variable HOME is not set. The following directory will be used to store the Git +user global configuration and to define the default location to store repositories: 'C:\Users\Tom'. If this is +not correct please set the HOME environment variable and restart Eclipse. Otherwise Git for Windows and +EGit might behave differently since they see different configuration options. +This warning can be switched off on the Team > Git > Confirmations and Warnings preference page. +!SESSION 2024-07-17 21:43:29.346 ----------------------------------------------- +eclipse.buildId=4.31.0.20240307-1200 +java.version=17.0.10 +java.vendor=Eclipse Adoptium +BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=de_DE +Framework arguments: -product org.eclipse.epp.package.modeling.product +Command-line arguments: -product org.eclipse.epp.package.modeling.product -data C:\Users\Tom\Desktop\neuneunueBachelorarbeitCode\eclipse_workspaces\webservice/../runtime-New_configuration -dev file:C:/Users/Tom/Desktop/neuneunueBachelorarbeitCode/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/dev.properties -os win32 -ws win32 -arch x86_64 -consoleLog + +!ENTRY org.eclipse.egit.ui 2 0 2024-07-17 21:43:39.746 +!MESSAGE Warning: The environment variable HOME is not set. The following directory will be used to store the Git +user global configuration and to define the default location to store repositories: 'C:\Users\Tom'. If this is +not correct please set the HOME environment variable and restart Eclipse. Otherwise Git for Windows and +EGit might behave differently since they see different configuration options. +This warning can be switched off on the Team > Git > Confirmations and Warnings preference page. +!SESSION 2024-07-17 21:48:36.647 ----------------------------------------------- +eclipse.buildId=4.31.0.20240307-1200 +java.version=17.0.10 +java.vendor=Eclipse Adoptium +BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=de_DE +Framework arguments: -product org.eclipse.epp.package.modeling.product +Command-line arguments: -product org.eclipse.epp.package.modeling.product -data C:\Users\Tom\Desktop\neuneunueBachelorarbeitCode\eclipse_workspaces\webservice/../runtime-New_configuration -dev file:C:/Users/Tom/Desktop/neuneunueBachelorarbeitCode/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/dev.properties -os win32 -ws win32 -arch x86_64 -consoleLog + +!ENTRY org.eclipse.egit.ui 2 0 2024-07-17 21:48:46.473 +!MESSAGE Warning: The environment variable HOME is not set. The following directory will be used to store the Git +user global configuration and to define the default location to store repositories: 'C:\Users\Tom'. If this is +not correct please set the HOME environment variable and restart Eclipse. Otherwise Git for Windows and +EGit might behave differently since they see different configuration options. +This warning can be switched off on the Team > Git > Confirmations and Warnings preference page. +!SESSION 2024-07-17 21:50:21.860 ----------------------------------------------- +eclipse.buildId=4.31.0.20240307-1200 +java.version=17.0.10 +java.vendor=Eclipse Adoptium +BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=de_DE +Framework arguments: -product org.eclipse.epp.package.modeling.product +Command-line arguments: -product org.eclipse.epp.package.modeling.product -data C:\Users\Tom\Desktop\neuneunueBachelorarbeitCode\eclipse_workspaces\webservice/../runtime-New_configuration -dev file:C:/Users/Tom/Desktop/neuneunueBachelorarbeitCode/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/dev.properties -os win32 -ws win32 -arch x86_64 -consoleLog + +!ENTRY org.eclipse.egit.ui 2 0 2024-07-17 21:50:31.492 +!MESSAGE Warning: The environment variable HOME is not set. The following directory will be used to store the Git +user global configuration and to define the default location to store repositories: 'C:\Users\Tom'. If this is +not correct please set the HOME environment variable and restart Eclipse. Otherwise Git for Windows and +EGit might behave differently since they see different configuration options. +This warning can be switched off on the Team > Git > Confirmations and Warnings preference page. +!SESSION 2024-07-17 22:06:58.389 ----------------------------------------------- +eclipse.buildId=4.31.0.20240307-1200 +java.version=17.0.10 +java.vendor=Eclipse Adoptium +BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=de_DE +Framework arguments: -product org.eclipse.epp.package.modeling.product +Command-line arguments: -product org.eclipse.epp.package.modeling.product -data C:\Users\Tom\Desktop\neuneunueBachelorarbeitCode\eclipse_workspaces\webservice/../runtime-New_configuration -dev file:C:/Users/Tom/Desktop/neuneunueBachelorarbeitCode/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/dev.properties -os win32 -ws win32 -arch x86_64 -consoleLog + +!ENTRY org.eclipse.egit.ui 2 0 2024-07-17 22:07:08.655 +!MESSAGE Warning: The environment variable HOME is not set. The following directory will be used to store the Git +user global configuration and to define the default location to store repositories: 'C:\Users\Tom'. If this is +not correct please set the HOME environment variable and restart Eclipse. Otherwise Git for Windows and +EGit might behave differently since they see different configuration options. +This warning can be switched off on the Team > Git > Confirmations and Warnings preference page. +!SESSION 2024-07-17 22:43:57.878 ----------------------------------------------- +eclipse.buildId=4.31.0.20240307-1200 +java.version=17.0.10 +java.vendor=Eclipse Adoptium +BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=de_DE +Framework arguments: -product org.eclipse.epp.package.modeling.product +Command-line arguments: -product org.eclipse.epp.package.modeling.product -data C:\Users\Tom\Desktop\GitLabBachelorarbeit\bachelorarbeit\eclipse_workspaces\webservice/../runtime-New_configuration -dev file:C:/Users/Tom/Desktop/GitLabBachelorarbeit/bachelorarbeit/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/dev.properties -os win32 -ws win32 -arch x86_64 -consoleLog + +!ENTRY org.eclipse.egit.ui 2 0 2024-07-17 22:44:08.992 +!MESSAGE Warning: The environment variable HOME is not set. The following directory will be used to store the Git +user global configuration and to define the default location to store repositories: 'C:\Users\Tom'. If this is +not correct please set the HOME environment variable and restart Eclipse. Otherwise Git for Windows and +EGit might behave differently since they see different configuration options. +This warning can be switched off on the Team > Git > Confirmations and Warnings preference page. + +!ENTRY org.eclipse.wst.sse.ui 4 4 2024-07-17 22:45:02.336 +!MESSAGE null +!STACK 0 +java.lang.IllegalArgumentException + at org.eclipse.ui.part.FileEditorInput.<init>(FileEditorInput.java:92) + at org.eclipse.wst.xsl.ui.internal.validation.DelegatingSourceValidatorForXSL.validate(DelegatingSourceValidatorForXSL.java:94) + at org.eclipse.wst.sse.ui.internal.reconcile.validator.ReconcileStepForValidator.validate(ReconcileStepForValidator.java:252) + at org.eclipse.wst.sse.ui.internal.reconcile.validator.ReconcileStepForValidator.reconcileModel(ReconcileStepForValidator.java:210) + at org.eclipse.jface.text.reconciler.AbstractReconcileStep.reconcile(AbstractReconcileStep.java:92) + at org.eclipse.wst.sse.ui.internal.reconcile.validator.ValidatorStrategy.reconcile(ValidatorStrategy.java:270) + at org.eclipse.wst.sse.ui.internal.reconcile.DocumentRegionProcessor.process(DocumentRegionProcessor.java:323) + at org.eclipse.wst.sse.ui.internal.reconcile.StructuredRegionProcessor.process(StructuredRegionProcessor.java:260) + at org.eclipse.wst.sse.ui.internal.reconcile.DirtyRegionProcessor$BackgroundThread.run(DirtyRegionProcessor.java:694) +!SESSION 2024-07-17 22:46:15.847 ----------------------------------------------- +eclipse.buildId=4.31.0.20240307-1200 +java.version=17.0.10 +java.vendor=Eclipse Adoptium +BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=de_DE +Framework arguments: -product org.eclipse.epp.package.modeling.product +Command-line arguments: -product org.eclipse.epp.package.modeling.product -data C:\Users\Tom\Desktop\GitLabBachelorarbeit\bachelorarbeit\eclipse_workspaces\webservice/../runtime-New_configuration -dev file:C:/Users/Tom/Desktop/GitLabBachelorarbeit/bachelorarbeit/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/dev.properties -os win32 -ws win32 -arch x86_64 -consoleLog + +!ENTRY org.eclipse.egit.ui 2 0 2024-07-17 22:46:26.466 +!MESSAGE Warning: The environment variable HOME is not set. The following directory will be used to store the Git +user global configuration and to define the default location to store repositories: 'C:\Users\Tom'. If this is +not correct please set the HOME environment variable and restart Eclipse. Otherwise Git for Windows and +EGit might behave differently since they see different configuration options. +This warning can be switched off on the Team > Git > Confirmations and Warnings preference page. diff --git a/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.core.resources/.history/31/d0376aa17544001f1034ce7677f2cd24 b/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.core.resources/.history/31/d0376aa17544001f1034ce7677f2cd24 new file mode 100644 index 0000000000000000000000000000000000000000..fd77850ea937b2e1ed2e5e458667c9f5582a84c5 --- /dev/null +++ b/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.core.resources/.history/31/d0376aa17544001f1034ce7677f2cd24 @@ -0,0 +1,41 @@ +API SwaggerPetstore { + + description "This is a sample Pet Store Server based on the OpenAPI 3.0 specification." + url "https://petstore3.swagger.io/api/v3" + + datatypes { + required ObjectDataType Pet { + datatypes (petId, name, friends) + }, + required IntegerData petId, + required StringData name, + CollectionDataType friends { + listItem Pet + } + } + + operations { + CreateOperation addPet { + description "Add a new pet to the store" + urlSuffix "/pet" + response Pet + parameters { + required Parameter { + description "The pet data to ad." + datatype Pet + } + } + }, + ReadOperation getPetById { + description "Find pet by ID" + urlSuffix "/pet/{petId}" + response Pet + parameters { + required Parameter { + description "ID of pet to return" + datatype petId + } + } + } + } +} diff --git a/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.core.resources/.history/57/c0e323e27544001f1956fa9eaa9faec0 b/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.core.resources/.history/57/c0e323e27544001f1956fa9eaa9faec0 new file mode 100644 index 0000000000000000000000000000000000000000..fd77850ea937b2e1ed2e5e458667c9f5582a84c5 --- /dev/null +++ b/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.core.resources/.history/57/c0e323e27544001f1956fa9eaa9faec0 @@ -0,0 +1,41 @@ +API SwaggerPetstore { + + description "This is a sample Pet Store Server based on the OpenAPI 3.0 specification." + url "https://petstore3.swagger.io/api/v3" + + datatypes { + required ObjectDataType Pet { + datatypes (petId, name, friends) + }, + required IntegerData petId, + required StringData name, + CollectionDataType friends { + listItem Pet + } + } + + operations { + CreateOperation addPet { + description "Add a new pet to the store" + urlSuffix "/pet" + response Pet + parameters { + required Parameter { + description "The pet data to ad." + datatype Pet + } + } + }, + ReadOperation getPetById { + description "Find pet by ID" + urlSuffix "/pet/{petId}" + response Pet + parameters { + required Parameter { + description "ID of pet to return" + datatype petId + } + } + } + } +} diff --git a/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.core.resources/.history/5d/50d4a5aa7d44001f1691cbf2f0bffd23 b/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.core.resources/.history/5d/50d4a5aa7d44001f1691cbf2f0bffd23 new file mode 100644 index 0000000000000000000000000000000000000000..d86f11dc297d8c4c2bfec613040f03ae19eea3bf --- /dev/null +++ b/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.core.resources/.history/5d/50d4a5aa7d44001f1691cbf2f0bffd23 @@ -0,0 +1,41 @@ +API SwaggerPetstore { + + description "This is a sample Pet Store Server based on the OpenAPI 3.0 specification." + url "https://petstore3.swagger.io/api/v3" + + datatypes { + required ObjectDataType Pet { + datatypes (petId, name, friends) + }, + required IntegerData petId, + required StringData name, + CollectionDataType friends { + listItem Pet + } + } + + operations { + CreateOperation addPet { + description "Add a new pet to the storee" + urlSuffix "/pet" + response Pet + parameters { + required Parameter { + description "The pet data to add." + datatype Pet + } + } + }, + ReadOperation getPetById { + description "Find pet by ID" + urlSuffix "/pet/{petId}" + response Pet + parameters { + required Parameter { + description "ID of pet to return" + datatype petId + } + } + } + } +} diff --git a/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.core.resources/.history/6/60cd12a87d44001f1691cbf2f0bffd23 b/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.core.resources/.history/6/60cd12a87d44001f1691cbf2f0bffd23 new file mode 100644 index 0000000000000000000000000000000000000000..9cd9dbfd780e988ad68f68073680dbc0c4965570 --- /dev/null +++ b/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.core.resources/.history/6/60cd12a87d44001f1691cbf2f0bffd23 @@ -0,0 +1,41 @@ +API SwaggerPetstore { + + description "This is a sample Pet Store Server based on the OpenAPI 3.0 specification." + url "https://petstore3.swagger.io/api/v3" + + datatypes { + required ObjectDataType Pet { + datatypes (petId, name, friends) + }, + required IntegerData petId, + required StringData name, + CollectionDataType friends { + listItem Pet + } + } + + operations { + CreateOperation addPet { + description "Add a new pet to the store" + urlSuffix "/pet" + response Pet + parameters { + required Parameter { + description "The pet data to add." + datatype Pet + } + } + }, + ReadOperation getPetById { + description "Find pet by ID" + urlSuffix "/pet/{petId}" + response Pet + parameters { + required Parameter { + description "ID of pet to return" + datatype petId + } + } + } + } +} diff --git a/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.core.resources/.history/68/0080d8357844001f117ec614449d714d b/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.core.resources/.history/68/0080d8357844001f117ec614449d714d new file mode 100644 index 0000000000000000000000000000000000000000..7ed2d66d4d629913b796f6feaec99be0dc62ef89 --- /dev/null +++ b/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.core.resources/.history/68/0080d8357844001f117ec614449d714d @@ -0,0 +1,41 @@ +API SwaggerPetstore { + + description "This is a sample Pet Store Server based on the OpenAPI 3.0 specification." + url "https://petstore3.swagger.io/api/v3" + + datatypes { + required ObjectDataType Pet { + datatypes (petId, name, friends) + }, + required IntegerData petId, + required StringData name, + CollectionDataType friends { + listItem Pet + } + } + + operations { + CreateOperation addPet { + description "Add a new pet to the store" + urlSuffix "/pet" + response Pet + parameters { + required Parameter { + description "The pet data to addd." + datatype Pet + } + } + }, + ReadOperation getPetById { + description "Find pet by ID" + urlSuffix "/pet/{petId}" + response Pet + parameters { + required Parameter { + description "ID of pet to return" + datatype petId + } + } + } + } +} diff --git a/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.core.resources/.history/aa/707bb9347844001f117ec614449d714d b/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.core.resources/.history/aa/707bb9347844001f117ec614449d714d new file mode 100644 index 0000000000000000000000000000000000000000..9cd9dbfd780e988ad68f68073680dbc0c4965570 --- /dev/null +++ b/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.core.resources/.history/aa/707bb9347844001f117ec614449d714d @@ -0,0 +1,41 @@ +API SwaggerPetstore { + + description "This is a sample Pet Store Server based on the OpenAPI 3.0 specification." + url "https://petstore3.swagger.io/api/v3" + + datatypes { + required ObjectDataType Pet { + datatypes (petId, name, friends) + }, + required IntegerData petId, + required StringData name, + CollectionDataType friends { + listItem Pet + } + } + + operations { + CreateOperation addPet { + description "Add a new pet to the store" + urlSuffix "/pet" + response Pet + parameters { + required Parameter { + description "The pet data to add." + datatype Pet + } + } + }, + ReadOperation getPetById { + description "Find pet by ID" + urlSuffix "/pet/{petId}" + response Pet + parameters { + required Parameter { + description "ID of pet to return" + datatype petId + } + } + } + } +} diff --git a/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.core.resources/.history/bd/c0b845e17544001f1956fa9eaa9faec0 b/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.core.resources/.history/bd/c0b845e17544001f1956fa9eaa9faec0 new file mode 100644 index 0000000000000000000000000000000000000000..9cd9dbfd780e988ad68f68073680dbc0c4965570 --- /dev/null +++ b/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.core.resources/.history/bd/c0b845e17544001f1956fa9eaa9faec0 @@ -0,0 +1,41 @@ +API SwaggerPetstore { + + description "This is a sample Pet Store Server based on the OpenAPI 3.0 specification." + url "https://petstore3.swagger.io/api/v3" + + datatypes { + required ObjectDataType Pet { + datatypes (petId, name, friends) + }, + required IntegerData petId, + required StringData name, + CollectionDataType friends { + listItem Pet + } + } + + operations { + CreateOperation addPet { + description "Add a new pet to the store" + urlSuffix "/pet" + response Pet + parameters { + required Parameter { + description "The pet data to add." + datatype Pet + } + } + }, + ReadOperation getPetById { + description "Find pet by ID" + urlSuffix "/pet/{petId}" + response Pet + parameters { + required Parameter { + description "ID of pet to return" + datatype petId + } + } + } + } +} diff --git a/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.core.resources/.projects/.org.eclipse.egit.core.cmp/.location b/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.core.resources/.projects/.org.eclipse.egit.core.cmp/.location index a790f01b71e5fdcd448b7027add962ecea4428cf..0c95a6c6aa2514f854f946bb55cd374376159148 100644 Binary files a/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.core.resources/.projects/.org.eclipse.egit.core.cmp/.location and b/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.core.resources/.projects/.org.eclipse.egit.core.cmp/.location differ diff --git a/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.core.resources/.projects/.org.eclipse.egit.core.cmp/.markers.snap b/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.core.resources/.projects/.org.eclipse.egit.core.cmp/.markers.snap deleted file mode 100644 index 91d6c541512db06197e1b732473d567ce4b92d6a..0000000000000000000000000000000000000000 Binary files a/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.core.resources/.projects/.org.eclipse.egit.core.cmp/.markers.snap and /dev/null differ diff --git a/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.core.resources/.projects/.org.eclipse.egit.core.cmp/.syncinfo.snap b/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.core.resources/.projects/.org.eclipse.egit.core.cmp/.syncinfo.snap deleted file mode 100644 index 91d6c541512db06197e1b732473d567ce4b92d6a..0000000000000000000000000000000000000000 Binary files a/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.core.resources/.projects/.org.eclipse.egit.core.cmp/.syncinfo.snap and /dev/null differ diff --git a/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.core.resources/.projects/sample/.indexes/e4/history.index b/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.core.resources/.projects/sample/.indexes/e4/history.index index 317458e256841307ad39409e1e1c8f164ac59f40..94e4460e79ebc41276cf8de7cca7f5cb07bc2626 100644 Binary files a/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.core.resources/.projects/sample/.indexes/e4/history.index and b/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.core.resources/.projects/sample/.indexes/e4/history.index differ diff --git a/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.core.resources/.projects/sample/.markers b/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.core.resources/.projects/sample/.markers index b984f861b2af0e21c582f9fe41b434f87949dc87..8998f1ec860d429a722ed56ffb8edf0b4c85fdb0 100644 Binary files a/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.core.resources/.projects/sample/.markers and b/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.core.resources/.projects/sample/.markers differ diff --git a/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.core.resources/.projects/sample/.markers.snap b/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.core.resources/.projects/sample/.markers.snap deleted file mode 100644 index a5ca7ed647b99e48fbbae0133bbb88b90c0922a1..0000000000000000000000000000000000000000 Binary files a/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.core.resources/.projects/sample/.markers.snap and /dev/null differ diff --git a/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.core.resources/.projects/sample/.syncinfo.snap b/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.core.resources/.projects/sample/.syncinfo.snap deleted file mode 100644 index 1253ec8ad8c6db053a75de6169f668d2efcd4ee5..0000000000000000000000000000000000000000 Binary files a/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.core.resources/.projects/sample/.syncinfo.snap and /dev/null differ diff --git a/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.index b/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.index index 7dcfc9927b3ae6dd58e02c4ea2155be89fb8f86c..4360ff320b34a076667969e6818fb839fb5f2120 100644 Binary files a/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.index and b/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.index differ diff --git a/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.core.resources/.root/.markers.snap b/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.core.resources/.root/.markers.snap deleted file mode 100644 index 1253ec8ad8c6db053a75de6169f668d2efcd4ee5..0000000000000000000000000000000000000000 Binary files a/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.core.resources/.root/.markers.snap and /dev/null differ diff --git a/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.core.resources/.root/55.tree b/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.core.resources/.root/55.tree deleted file mode 100644 index 9d2902327f0b5cc51cfa7e46113dfc564ee53657..0000000000000000000000000000000000000000 Binary files a/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.core.resources/.root/55.tree and /dev/null differ diff --git a/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.core.resources/.root/62.tree b/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.core.resources/.root/62.tree new file mode 100644 index 0000000000000000000000000000000000000000..1081b4f1f0da42bb0550d5f092a12c779386079f Binary files /dev/null and b/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.core.resources/.root/62.tree differ diff --git a/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources b/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources index 9eacb07fa9f878ac22ce16442eb89b3d973e38be..330ce21e92ce0aafc693193445185704dfa1872c 100644 Binary files a/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources and b/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources differ diff --git a/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.core.resources/55.snap b/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.core.resources/55.snap deleted file mode 100644 index 1751d0d3ce2f8d98f69e84e39ceabeaa638c59d1..0000000000000000000000000000000000000000 Binary files a/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.core.resources/55.snap and /dev/null differ diff --git a/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.debug.ui.prefs b/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.debug.ui.prefs index 3ca378b0dcf68762cc67ab27b6414b0127dd1cc8..8ab469c599871c5549239e76853577b43d0db859 100644 --- a/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.debug.ui.prefs +++ b/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.debug.ui.prefs @@ -1,2 +1,3 @@ eclipse.preferences.version=1 org.eclipse.debug.ui.PREF_LAUNCH_PERSPECTIVES=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?>\r\n<launchPerspectives/>\r\n +preferredTargets=default\:default| diff --git a/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.launching.prefs b/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.launching.prefs index dc64b1814682980bb94d46c07bbd70d4f064f402..ef6ccb35c2bb6f1fb44855e7d790d3b55811fed5 100644 --- a/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.launching.prefs +++ b/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.launching.prefs @@ -1,2 +1,2 @@ eclipse.preferences.version=1 -org.eclipse.jdt.launching.PREF_VM_XML=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?>\r\n<vmSettings defaultVM\="57,org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType13,1720511560272" defaultVMConnector\="">\r\n <vmType id\="org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType">\r\n <vm id\="1718202601076" name\="jre" path\="C\:\\Tom\\Studium\\Bachelorarbeit\\eclipse\\plugins\\org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_17.0.10.v20240120-1143\\jre"/>\r\n <vm id\="C\:\\Tom\\Eclipse\\JDK\\jdk11" name\="jdk11" path\="C\:\\Tom\\Eclipse\\JDK\\jdk11"/>\r\n <vm id\="1720511560272" javadocURL\="https\://docs.oracle.com/en/java/javase/17/docs/api/" name\="jre" path\="C\:\\Program Files\\eclipse\\plugins\\org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_17.0.10.v20240120-1143\\jre"/>\r\n </vmType>\r\n</vmSettings>\r\n +org.eclipse.jdt.launching.PREF_VM_XML=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?>\r\n<vmSettings defaultVM\="57,org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType13,1720511560272" defaultVMConnector\="">\r\n <vmType id\="org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType">\r\n <vm id\="1720511560272" name\="jre" path\="C\:\\Program Files\\eclipse\\plugins\\org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_17.0.10.v20240120-1143\\jre"/>\r\n <vm id\="C\:\\Program Files\\Java\\jdk-18.0.2.1" name\="jdk-18.0.2.1" path\="C\:\\Program Files\\Java\\jdk-18.0.2.1"/>\r\n </vmType>\r\n</vmSettings>\r\n diff --git a/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.ide.prefs b/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.ide.prefs index 49d28b53839bf0aa029913320f68664288410a2b..bcec4cd71190698867966a2b945206795f833ee6 100644 --- a/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.ide.prefs +++ b/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.ide.prefs @@ -1,4 +1,4 @@ eclipse.preferences.version=1 -platformState=1943620262987140 +platformState=1965666560026147 quickStart=false tipsAndTricks=true diff --git a/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.workbench.prefs b/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.workbench.prefs index e026d547d57b3609dafe944e9b83fecf94d78a4f..d453f963033c41a06047e8003e065db7e1f5873c 100644 --- a/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.workbench.prefs +++ b/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.workbench.prefs @@ -1,4 +1,5 @@ //org.eclipse.ui.commands/state/org.eclipse.ui.navigator.resources.nested.changeProjectPresentation/org.eclipse.ui.commands.radioState=false +//org.eclipse.ui.commands/state/org.eclipse.wst.xml.views.XPathView.processor.xpathprocessor/org.eclipse.ui.commands.radioState=xpath10 PLUGINS_NOT_ACTIVATED_ON_STARTUP=;org.eclipse.m2e.discovery; eclipse.preferences.version=1 editors=<?xml version\="1.0" encoding\="UTF-8"?>\r\n<editors>\r\n<descriptor class\="org.eclipse.xtext.ui.codetemplates.ui.SingleCodetemplateExecutableExtensionFactory\:org.eclipse.xtext.ui.editor.XtextEditor" id\="org.eclipse.xtext.ui.codetemplates.SingleCodetemplate" internal\="true" label\="SingleCodetemplate Editor" openMode\="1" open_in_place\="false" plugin\="org.eclipse.xtext.ui.codetemplates.ui"/>\r\n<descriptor class\="org.eclipse.sirius.diagram.ui.tools.internal.editor.DDiagramEditorImpl" id\="org.eclipse.sirius.diagram.ui.part.SiriusDiagramEditorID" image\="icons/DDiagram.gif" internal\="true" label\="Sirius Diagram Editing" openMode\="1" open_in_place\="false" plugin\="org.eclipse.sirius.diagram.ui"/>\r\n<descriptor class\="org.eclipse.sirius.tree.ui.tools.internal.editor.DTreeEditor" id\="org.eclipse.sirius.tree.ui.EditorID" image\="icons/full/obj16/TreeDescription.gif" internal\="true" label\="DTree editor" openMode\="1" open_in_place\="false" plugin\="org.eclipse.sirius.tree.ui"/>\r\n<descriptor class\="org.eclipse.emfforms.internal.editor.ecore.EcoreEditor" id\="EcoreEditor" image\="icons/EcoreModelFile.gif" internal\="true" label\="Ecore Editor" openMode\="1" open_in_place\="false" plugin\="org.eclipse.emfforms.editor.ecore"/>\r\n<descriptor class\="org.eclipse.emf.ecp.ide.editor.view.ViewEditorPart" id\="org.eclipse.emf.ecp.ide.editor.view.editor" image\="icons/view.png" internal\="true" label\="View Model Editor" openMode\="1" open_in_place\="false" plugin\="org.eclipse.emf.ecp.ide.editor.view"/>\r\n<descriptor class\="org.eclipse.emf.cdo.ui.jdt.CDOPropertiesFileEditor" id\="org.eclipse.emf.cdo.ui.jdt.CDOPropertiesFileEditor" image\="icons/full/obj16/CDOPropertiesFile.gif" internal\="true" label\="CDO Properties File Editor" openMode\="1" open_in_place\="false" plugin\="org.eclipse.emf.cdo.ui.jdt"/>\r\n<descriptor class\="org.eclipse.emf.parsley.dsl.ui.EmfParsleyDslExecutableExtensionFactory\:org.eclipse.xtext.ui.editor.XtextEditor" id\="org.eclipse.emf.parsley.dsl.EmfParsleyDsl" internal\="true" label\="EmfParsleyDsl Editor" openMode\="1" open_in_place\="false" plugin\="org.eclipse.emf.parsley.dsl.ui"/>\r\n<descriptor class\="org.eclipse.xtext.purexbase.ui.PureXbaseExecutableExtensionFactory\:org.eclipse.xtext.ui.editor.XtextEditor" id\="org.eclipse.xtext.purexbase.PureXbase" internal\="true" label\="PureXbase Editor" openMode\="1" open_in_place\="false" plugin\="org.eclipse.xtext.purexbase.ui"/>\r\n<descriptor id\="org.eclipse.ui.browser.editorSupport" image\="$nl$/icons/obj16/internal_browser.png" internal\="false" label\="Web Browser" launcher\="org.eclipse.ui.internal.browser.BrowserLauncher" openMode\="4" open_in_place\="false" plugin\="org.eclipse.ui.browser"/>\r\n<descriptor class\="org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor" id\="org.eclipse.jdt.ui.ModuleInfoEditor" image\="$nl$/icons/full/obj16/jcu_obj.png" internal\="true" label\="Module-Info Editor" openMode\="1" open_in_place\="false" plugin\="org.eclipse.jdt.ui"/>\r\n<descriptor class\="org.eclipse.xtext.builder.trace.TraceEditor" id\="org.eclipse.xtext.builder.trace.TraceEditorID" image\="platform\:/plugin/org.eclipse.emf.edit/icons/full/obj16/ModelFile.gif" internal\="true" label\="Trace file viewer" openMode\="1" open_in_place\="false" plugin\="org.eclipse.xtext.builder"/>\r\n<descriptor class\="org.eclipse.xtend.ide.XtendExecutableExtensionFactory\:org.eclipse.xtext.ui.editor.XtextEditor" id\="org.eclipse.xtend.core.Xtend" image\="icons/xtend_file.png" internal\="true" label\="Xtend Editor" openMode\="1" open_in_place\="false" plugin\="org.eclipse.xtend.ide"/>\r\n<descriptor class\="org.eclipse.gmf.examples.runtime.diagram.logic.semantic.presentation.SemanticEditor" id\="org.eclipse.gmf.examples.runtime.diagram.logic.semantic.presentation.SemanticEditorID" image\="icons/full/obj16/SemanticModelFile.gif" internal\="true" label\="Semantic Model Editor" openMode\="1" open_in_place\="false" plugin\="org.eclipse.gmf.examples.runtime.diagram.logic.model.editor"/>\r\n<descriptor class\="org.eclipse.xtext.ui.codetemplates.ui.CodetemplatesExecutableExtensionFactory\:org.eclipse.xtext.ui.editor.XtextEditor" id\="org.eclipse.xtext.ui.codetemplates.Codetemplates" internal\="true" label\="Codetemplates Editor" openMode\="1" open_in_place\="false" plugin\="org.eclipse.xtext.ui.codetemplates.ui"/>\r\n<descriptor class\="org.eclipse.oomph.workingsets.presentation.WorkingSetsEditor" id\="org.eclipse.oomph.workingsets.presentation.WorkingSetsEditorID" image\="icons/full/obj16/WorkingSetsModelFile.gif" internal\="true" label\="Working Sets Editor" openMode\="1" open_in_place\="false" plugin\="org.eclipse.oomph.workingsets.editor"/>\r\n<descriptor class\="org.eclipse.jdt.internal.ui.javaeditor.ClassFileEditor" id\="org.eclipse.jdt.ui.ModuleInfoClassFileEditor" image\="$nl$/icons/full/obj16/classf_obj.png" internal\="true" label\="Module-Info Class File Viewer" openMode\="1" open_in_place\="false" plugin\="org.eclipse.jdt.ui"/>\r\n<descriptor class\="org.eclipse.xtext.xtext.ui.XtextExecutableExtensionFactory\:org.eclipse.xtext.ui.editor.XtextEditor" id\="org.eclipse.xtext.Xtext" image\="icons/editor.gif" internal\="true" label\="Xtext Editor" openMode\="1" open_in_place\="false" plugin\="org.eclipse.xtext.xtext.ui"/>\r\n<descriptor class\="org.tfranke.webservice.dsl.ui.WebserviceDSLExecutableExtensionFactory\:org.eclipse.xtext.ui.editor.XtextEditor" id\="org.tfranke.webservice.dsl.WebserviceDSL" internal\="true" label\="WebserviceDSL Editor" openMode\="1" open_in_place\="false" plugin\="org.tfranke.webservice.dsl.ui"/>\r\n<descriptor class\="org.eclipse.gef.dot.internal.ui.language.DotExecutableExtensionFactory\:org.eclipse.xtext.ui.editor.XtextEditor" id\="org.eclipse.gef.dot.internal.language.Dot" internal\="true" label\="DOT Editor" openMode\="1" open_in_place\="false" plugin\="org.eclipse.gef.dot.ui"/>\r\n<descriptor class\="org.eclipse.emf.cdo.internal.ui.editor.CDOEditor" id\="org.eclipse.emf.cdo.ui.CDOEditor" image\="platform\:/plugin/org.eclipse.emf.cdo.ui.shared/icons/full/obj16/cdo_editor.gif" internal\="true" label\="CDO Editor" openMode\="1" open_in_place\="false" plugin\="org.eclipse.emf.cdo.ui"/>\r\n<descriptor id\="org.eclipse.jdt.ui.JARDescEditor" image\="$nl$/icons/full/obj16/jar_desc_obj.png" internal\="false" label\="JAR Export Wizard" launcher\="org.eclipse.jdt.internal.ui.jarpackager.OpenJarExportWizardEditorLauncher" openMode\="4" open_in_place\="false" plugin\="org.eclipse.jdt.ui"/>\r\n<descriptor class\="org.eclipse.sirius.table.ui.tools.internal.editor.DTableEditionEditor" id\="org.eclipse.sirius.table.ui.EditionTableEditorID" image\="icons/full/obj16/EditionTableDescription.gif" internal\="true" label\="EditionTable editor" openMode\="1" open_in_place\="false" plugin\="org.eclipse.sirius.table.ui"/>\r\n<descriptor class\="org.eclipse.sirius.table.ui.tools.internal.editor.DTableCrossEditor" id\="org.eclipse.sirius.table.ui.CrossTableEditorID" image\="icons/full/obj16/CrossTableDescription.gif" internal\="true" label\="CrossTable editor" openMode\="1" open_in_place\="false" plugin\="org.eclipse.sirius.table.ui"/>\r\n<descriptor class\="org.eclipse.gmf.runtime.diagram.ui.resources.editor.ide.editor.FileDiagramEditorWithFlyoutPalette" id\="GeoshapeEditor" image\="icons/geoshape.gif" internal\="true" label\="Geoshape editor" openMode\="1" open_in_place\="false" plugin\="org.eclipse.gmf.examples.runtime.diagram.geoshapes"/>\r\n<descriptor class\="org.eclipse.e4.tools.emf.editor3x.E4WorkbenchModelEditor" id\="org.eclipse.e4.tools.emf.editor3x.e4wbm" image\="icons/full/obj16/application_view_tile.png" internal\="true" label\="Eclipse Model Editor" openMode\="1" open_in_place\="false" plugin\="org.eclipse.e4.tools.emf.editor3x"/>\r\n<descriptor class\="org.eclipse.emf.ecp.view.template.tooling.editor.TemplateModelEditorPart" id\="org.eclipse.emf.ecp.view.template.tooling.editor" image\="icons/template.gif" internal\="true" label\="Template Model Editor" openMode\="1" open_in_place\="false" plugin\="org.eclipse.emf.ecp.view.template.tooling"/>\r\n<descriptor class\="org.eclipse.oomph.setup.presentation.SetupEditor" id\="org.eclipse.oomph.setup.presentation.SetupEditorID" image\="icons/full/obj16/SetupModelFile.gif" internal\="true" label\="Setup Editor" openMode\="1" open_in_place\="false" plugin\="org.eclipse.oomph.setup.editor"/>\r\n<descriptor class\="org.eclipse.emfforms.internal.editor.genmodel.GenModelEditor" id\="GenmodelEditor" image\="icons/GenModelModelFile.gif" internal\="true" label\="Genmodel Editor" openMode\="1" open_in_place\="false" plugin\="org.eclipse.emfforms.editor.genmodel"/>\r\n<descriptor class\="org.eclipse.jdt.internal.ui.javaeditor.ClassFileEditor" id\="org.eclipse.jdt.ui.ClassFileEditorNoSource" image\="$nl$/icons/full/obj16/classf_obj.png" internal\="true" label\="Class File Viewer" openMode\="1" open_in_place\="false" plugin\="org.eclipse.jdt.ui"/>\r\n<descriptor class\="org.eclipse.jdt.internal.ui.javaeditor.ClassFileEditor" id\="org.eclipse.jdt.ui.ModuleInfoClassFileEditorNoSource" image\="$nl$/icons/full/obj16/classf_obj.png" internal\="true" label\="Module-Info Class File Viewer" openMode\="1" open_in_place\="false" plugin\="org.eclipse.jdt.ui"/>\r\n<descriptor class\="org.eclipse.jdt.internal.debug.ui.snippeteditor.JavaSnippetEditor" id\="org.eclipse.jdt.debug.ui.SnippetEditor" image\="$nl$/icons/full/obj16/jsbook_obj.png" internal\="true" label\="Scrapbook" openMode\="1" open_in_place\="false" plugin\="org.eclipse.jdt.debug.ui"/>\r\n<descriptor class\="org.eclipse.emf.mwe2.language.ui.Mwe2ExecutableExtensionFactory\:org.eclipse.xtext.ui.editor.XtextEditor" id\="org.eclipse.emf.mwe2.language.Mwe2" image\="icons/workflowfile.gif" internal\="true" label\="Mwe2 Editor" openMode\="1" open_in_place\="false" plugin\="org.eclipse.emf.mwe2.language.ui"/>\r\n<descriptor class\="org.eclipse.pde.internal.ui.samples.SampleEditor" id\="org.eclipse.pde.ui.sampleEditor" image\="$nl$/icons/obj16/build_exec.png" internal\="true" label\="Code Sample Editor" openMode\="1" open_in_place\="false" plugin\="org.eclipse.pde.ui"/>\r\n<descriptor class\="org.eclipse.sirius.ui.editor.SessionEditor" id\="org.eclipse.sirius.ui.editor.session" image\="icons/SiriusFile.gif" internal\="true" label\="Aird Editor" openMode\="1" open_in_place\="false" plugin\="org.eclipse.sirius.ui.editor"/>\r\n<descriptor class\="org.eclipse.ui.editors.text.TextEditor" id\="org.eclipse.sirius.ui.fakeeditoronlyforicon" image\="icons/obj16/SiriusFile.gif" internal\="true" label\="Text editor" openMode\="1" open_in_place\="false" plugin\="org.eclipse.sirius.ui"/>\r\n<descriptor class\="org.eclipse.gmf.examples.runtime.diagram.logic.internal.ui.parts.LogicNotationEditor" id\="LogicEditor" image\="icons/logic.gif" internal\="true" label\="Logic editor" openMode\="1" open_in_place\="false" plugin\="org.eclipse.gmf.examples.runtime.diagram.logic"/>\r\n</editors> diff --git a/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.wst.sse.ui.prefs b/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.wst.sse.ui.prefs new file mode 100644 index 0000000000000000000000000000000000000000..de4590e3e2020dafa18a8eb8c85d7c4c3d06a18e --- /dev/null +++ b/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.wst.sse.ui.prefs @@ -0,0 +1,4 @@ +content_assist_number_of_computers=2 +eclipse.preferences.version=1 +useAnnotationsPrefPage=true +useQuickDiffPrefPage=true diff --git a/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.wst.xml.ui.prefs b/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.wst.xml.ui.prefs new file mode 100644 index 0000000000000000000000000000000000000000..15f9dd330d724937315cc7c9b590372945b8a197 --- /dev/null +++ b/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.wst.xml.ui.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +org.eclipse.wst.xml.ui.internal.tabletree.XMLMultiPageEditorPart.lastActivePage=1 diff --git a/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi b/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi index a4005123cfe6eea441d22866249e8ac41800ae6c..c8655f459c02e24af1e291c0de56502850fd1c3a 100644 --- a/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi +++ b/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="ASCII"?> <application:Application xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:advanced="http://www.eclipse.org/ui/2010/UIModel/application/ui/advanced" xmlns:application="http://www.eclipse.org/ui/2010/UIModel/application" xmlns:basic="http://www.eclipse.org/ui/2010/UIModel/application/ui/basic" xmlns:menu="http://www.eclipse.org/ui/2010/UIModel/application/ui/menu" xmi:id="_-7x9AD4EEe-DFKIE1vEhrQ" elementId="org.eclipse.e4.legacy.ide.application" contributorURI="platform:/plugin/org.eclipse.platform" selectedElement="_-7x9AT4EEe-DFKIE1vEhrQ" bindingContexts="_-7zLkD4EEe-DFKIE1vEhrQ"> - <persistedState key="memento" value="<?xml version="1.0" encoding="UTF-8"?>
<workbench>
<mruList>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.ui.genericeditor.GenericEditor" name="SwaggerPetstore.json" tooltip="sample/src-gen/openAPI/SwaggerPetstore.json">
<persistable path="/sample/src-gen/openAPI/SwaggerPetstore.json"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.tfranke.webservice.dsl.WebserviceDSL" name="petstore.dsl" tooltip="sample/src/petstore.dsl">
<persistable path="/sample/src/petstore.dsl"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.tfranke.webservice.dsl.WebserviceDSL" name="userdata.dsl" tooltip="sample/src/userdata.dsl">
<persistable path="/sample/src/userdata.dsl"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.ui.genericeditor.GenericEditor" name="MyWebService.json" tooltip="sample/src-gen/openAPI/MyWebService.json">
<persistable path="/sample/src-gen/openAPI/MyWebService.json"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.tfranke.webservice.dsl.WebserviceDSL" name="chatgpt.dsl" tooltip="sample/src/chatgpt.dsl">
<persistable path="/sample/src/chatgpt.dsl"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.tfranke.webservice.dsl.WebserviceDSL" name="dslimpl.dsl" tooltip="sample/src/dslimpl.dsl">
<persistable path="/sample/src/dslimpl.dsl"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.ui.genericeditor.GenericEditor" name="BlogServiceTest.json" tooltip="sample/src-gen/openAPI/BlogServiceTest.json">
<persistable path="/sample/src-gen/openAPI/BlogServiceTest.json"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.tfranke.webservice.dsl.WebserviceDSL" name="dslimpl.dsl" tooltip="sample/dslimpl.dsl">
<persistable path="/sample/dslimpl.dsl"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.ui.DefaultTextEditor" name="testdslimpl.dsl" tooltip="sample/testdslimpl.dsl">
<persistable path="/sample/testdslimpl.dsl"/>
</file>
</mruList>
</workbench>"/> + <persistedState key="memento" value="<?xml version="1.0" encoding="UTF-8"?>
<workbench>
<mruList>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.wst.xml.ui.internal.tabletree.XMLMultiPageEditorPart" name="repository.xml" tooltip="sample/src-gen/repositories/SwaggerPetstore/repository.xml">
<persistable path="/sample/src-gen/repositories/SwaggerPetstore/repository.xml"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.wst.xsl.ui.XSLEditor" name="POST addPet.xsl" tooltip="sample/src-gen/repositories/SwaggerPetstore/resources/SwaggerPetstore/POST addPet.xsl">
<persistable path="/sample/src-gen/repositories/SwaggerPetstore/resources/SwaggerPetstore/POST addPet.xsl"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.wst.xsl.ui.XSLEditor" name="GET getPetById.xsl" tooltip="sample/src-gen/repositories/SwaggerPetstore/resources/SwaggerPetstore/GET getPetById.xsl">
<persistable path="/sample/src-gen/repositories/SwaggerPetstore/resources/SwaggerPetstore/GET getPetById.xsl"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.tfranke.webservice.dsl.WebserviceDSL" name="petstore.dsl" tooltip="sample/src/petstore.dsl">
<persistable path="/sample/src/petstore.dsl"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.wst.xsl.ui.XSLEditor" name="POST addPet.xsl" tooltip="sample/src-gen/repositories/SwaggerPetstore/resources/POST addPet.xsl">
<persistable path="/sample/src-gen/repositories/SwaggerPetstore/resources/POST addPet.xsl"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.wst.xsl.ui.XSLEditor" name="GET getPetById.xsl" tooltip="sample/src-gen/repositories/SwaggerPetstore/resources/GET getPetById.xsl">
<persistable path="/sample/src-gen/repositories/SwaggerPetstore/resources/GET getPetById.xsl"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.ui.genericeditor.GenericEditor" name="SwaggerPetstore.json" tooltip="sample/src-gen/openAPI/SwaggerPetstore.json">
<persistable path="/sample/src-gen/openAPI/SwaggerPetstore.json"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.tfranke.webservice.dsl.WebserviceDSL" name="userdata.dsl" tooltip="sample/src/userdata.dsl">
<persistable path="/sample/src/userdata.dsl"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.ui.genericeditor.GenericEditor" name="MyWebService.json" tooltip="sample/src-gen/openAPI/MyWebService.json">
<persistable path="/sample/src-gen/openAPI/MyWebService.json"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.tfranke.webservice.dsl.WebserviceDSL" name="chatgpt.dsl" tooltip="sample/src/chatgpt.dsl">
<persistable path="/sample/src/chatgpt.dsl"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.tfranke.webservice.dsl.WebserviceDSL" name="dslimpl.dsl" tooltip="sample/src/dslimpl.dsl">
<persistable path="/sample/src/dslimpl.dsl"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.ui.genericeditor.GenericEditor" name="BlogServiceTest.json" tooltip="sample/src-gen/openAPI/BlogServiceTest.json">
<persistable path="/sample/src-gen/openAPI/BlogServiceTest.json"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.tfranke.webservice.dsl.WebserviceDSL" name="dslimpl.dsl" tooltip="sample/dslimpl.dsl">
<persistable path="/sample/dslimpl.dsl"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.ui.DefaultTextEditor" name="testdslimpl.dsl" tooltip="sample/testdslimpl.dsl">
<persistable path="/sample/testdslimpl.dsl"/>
</file>
</mruList>
</workbench>"/> <tags>activeSchemeId:org.eclipse.ui.defaultAcceleratorConfiguration</tags> <children xsi:type="basic:TrimmedWindow" xmi:id="_-7x9AT4EEe-DFKIE1vEhrQ" elementId="IDEWindow" contributorURI="platform:/plugin/org.eclipse.platform" selectedElement="_-7x9Aj4EEe-DFKIE1vEhrQ" label="%trimmedwindow.label.eclipseSDK" x="0" y="0" width="817" height="613"> <persistedState key="coolBarVisible" value="true"/> @@ -132,9 +132,10 @@ <tags>persp.editorOnboardingText:Open a file or drop files here to open them.</tags> <tags>persp.editorOnboardingCommand:Find Actions$$$Ctrl+3</tags> <tags>persp.editorOnboardingCommand:Open Type$$$Ctrl+Shift+T</tags> - <children xsi:type="basic:PartSashContainer" xmi:id="_-7x9Ej4EEe-DFKIE1vEhrQ" selectedElement="_-7x9GD4EEe-DFKIE1vEhrQ" horizontal="true"> + <children xsi:type="basic:PartSashContainer" xmi:id="_-7x9Ej4EEe-DFKIE1vEhrQ" selectedElement="_-7x9Ez4EEe-DFKIE1vEhrQ" horizontal="true"> <children xsi:type="basic:PartStack" xmi:id="_-7x9Ez4EEe-DFKIE1vEhrQ" elementId="topLeft" containerData="1164" selectedElement="_-7x9FD4EEe-DFKIE1vEhrQ"> <tags>org.eclipse.e4.primaryNavigationStack</tags> + <tags>active</tags> <children xsi:type="advanced:Placeholder" xmi:id="_-7x9FD4EEe-DFKIE1vEhrQ" elementId="org.eclipse.ui.navigator.ProjectExplorer" ref="_-7ykgD4EEe-DFKIE1vEhrQ" closeable="true"> <tags>View</tags> <tags>categoryTag:General</tags> @@ -237,24 +238,9 @@ <tags>categoryTag:Help</tags> </sharedElements> <sharedElements xsi:type="advanced:Area" xmi:id="_-7ykUz4EEe-DFKIE1vEhrQ" elementId="org.eclipse.ui.editorss" selectedElement="_-7ykVD4EEe-DFKIE1vEhrQ"> - <children xsi:type="basic:PartStack" xmi:id="_-7ykVD4EEe-DFKIE1vEhrQ" elementId="org.eclipse.e4.primaryDataStack" selectedElement="_-7ykWT4EEe-DFKIE1vEhrQ"> + <children xsi:type="basic:PartStack" xmi:id="_-7ykVD4EEe-DFKIE1vEhrQ" elementId="org.eclipse.e4.primaryDataStack"> <tags>org.eclipse.e4.primaryDataStack</tags> <tags>EditorStack</tags> - <tags>active</tags> - <tags>noFocus</tags> - <children xsi:type="basic:Part" xmi:id="_-7ykVT4EEe-DFKIE1vEhrQ" elementId="org.eclipse.e4.ui.compatibility.editor" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityEditor" label="MyWebService.json" iconURI="platform:/plugin/org.eclipse.ui.genericeditor/icons/full/obj16/generic_editor.png" closeable="true"> - <persistedState key="memento" value="<?xml version="1.0" encoding="UTF-8"?>
<editor id="org.eclipse.ui.genericeditor.GenericEditor" name="MyWebService.json" partName="MyWebService.json" title="MyWebService.json" tooltip="sample/src-gen/openAPI/MyWebService.json">
<input factoryID="org.eclipse.ui.part.FileEditorInputFactory" path="/sample/src-gen/openAPI/MyWebService.json"/>
<editorState selectionHorizontalPixel="0" selectionLength="0" selectionOffset="0" selectionTopPixel="0"/>
</editor>"/> - <tags>Editor</tags> - <tags>removeOnHide</tags> - <tags>org.eclipse.ui.genericeditor.GenericEditor</tags> - </children> - <children xsi:type="basic:Part" xmi:id="_-7ykWT4EEe-DFKIE1vEhrQ" elementId="org.eclipse.e4.ui.compatibility.editor" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityEditor" label="petstore.dsl" closeable="true"> - <persistedState key="memento" value="<?xml version="1.0" encoding="UTF-8"?>
<editor id="org.tfranke.webservice.dsl.WebserviceDSL" name="petstore.dsl" partName="petstore.dsl" title="petstore.dsl" tooltip="sample/src/petstore.dsl">
<input factoryID="org.eclipse.ui.part.FileEditorInputFactory" path="/sample/src/petstore.dsl"/>
<editorState selectionHorizontalPixel="0" selectionLength="0" selectionOffset="598" selectionTopPixel="0"/>
</editor>"/> - <tags>Editor</tags> - <tags>removeOnHide</tags> - <tags>org.tfranke.webservice.dsl.WebserviceDSL</tags> - <tags>active</tags> - </children> </children> </sharedElements> <sharedElements xsi:type="basic:Part" xmi:id="_-7ykXT4EEe-DFKIE1vEhrQ" elementId="org.eclipse.sirius.ui.tools.views.model.explorer" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView" label="Model Explorer" iconURI="platform:/plugin/org.eclipse.sirius.ui.ext/icons/full/others/ModelExplorer.gif" tooltip="" closeable="true"> @@ -278,7 +264,7 @@ <tags>ViewMenu</tags> <tags>menuContribution:menu</tags> </menus> - <toolbar xmi:id="_-7ykZT4EEe-DFKIE1vEhrQ" elementId="org.eclipse.ui.views.ContentOutline"/> + <toolbar xmi:id="_-7ykZT4EEe-DFKIE1vEhrQ" elementId="org.eclipse.ui.views.ContentOutline" visible="false"/> </sharedElements> <sharedElements xsi:type="basic:Part" xmi:id="_-7ykaj4EEe-DFKIE1vEhrQ" elementId="org.eclipse.ui.views.PropertySheet" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView" label="Properties" iconURI="platform:/plugin/org.eclipse.ui.views/icons/full/eview16/prop_ps.png" tooltip="" closeable="true"> <persistedState key="originalCompatibilityViewClass" value="org.eclipse.ui.views.properties.PropertySheet"/> @@ -294,14 +280,14 @@ <sharedElements xsi:type="basic:Part" xmi:id="_-7ykbT4EEe-DFKIE1vEhrQ" elementId="org.eclipse.ui.views.ProblemView" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView" label="Problems" iconURI="platform:/plugin/org.eclipse.ui.ide/icons/full/eview16/problems_view.png" tooltip="" closeable="true"> <persistedState key="originalCompatibilityViewClass" value="org.eclipse.ui.internal.views.markers.ProblemsView"/> <persistedState key="originalCompatibilityViewBundle" value="org.eclipse.ui.ide"/> - <persistedState key="memento" value="<?xml version="1.0" encoding="UTF-8"?>
<view PRIMARY_SORT_FIELD="org.eclipse.ui.ide.severityAndDescriptionField" categoryGroup="org.eclipse.ui.ide.severity" markerContentGenerator="org.eclipse.ui.ide.problemsGenerator">
<expanded>
<category IMemento.internal.id="Errors (3 items)"/>
</expanded>
<columnWidths org.eclipse.ui.ide.locationField="120" org.eclipse.ui.ide.markerType="120" org.eclipse.ui.ide.pathField="160" org.eclipse.ui.ide.resourceField="120" org.eclipse.ui.ide.severityAndDescriptionField="400"/>
<visible IMemento.internal.id="org.eclipse.ui.ide.severityAndDescriptionField"/>
<visible IMemento.internal.id="org.eclipse.ui.ide.resourceField"/>
<visible IMemento.internal.id="org.eclipse.ui.ide.pathField"/>
<visible IMemento.internal.id="org.eclipse.ui.ide.locationField"/>
<visible IMemento.internal.id="org.eclipse.ui.ide.markerType"/>
</view>"/> + <persistedState key="memento" value="<?xml version="1.0" encoding="UTF-8"?>
<view PRIMARY_SORT_FIELD="org.eclipse.ui.ide.severityAndDescriptionField" categoryGroup="org.eclipse.ui.ide.severity" markerContentGenerator="org.eclipse.ui.ide.problemsGenerator">
<expanded>
<category IMemento.internal.id="Errors"/>
</expanded>
<columnWidths org.eclipse.ui.ide.locationField="120" org.eclipse.ui.ide.markerType="120" org.eclipse.ui.ide.pathField="160" org.eclipse.ui.ide.resourceField="120" org.eclipse.ui.ide.severityAndDescriptionField="400"/>
<visible IMemento.internal.id="org.eclipse.ui.ide.severityAndDescriptionField"/>
<visible IMemento.internal.id="org.eclipse.ui.ide.resourceField"/>
<visible IMemento.internal.id="org.eclipse.ui.ide.pathField"/>
<visible IMemento.internal.id="org.eclipse.ui.ide.locationField"/>
<visible IMemento.internal.id="org.eclipse.ui.ide.markerType"/>
</view>"/> <tags>View</tags> <tags>categoryTag:General</tags> <menus xmi:id="_-7ykbj4EEe-DFKIE1vEhrQ" elementId="org.eclipse.ui.views.ProblemView"> <tags>ViewMenu</tags> <tags>menuContribution:menu</tags> </menus> - <toolbar xmi:id="_-7ykej4EEe-DFKIE1vEhrQ" elementId="org.eclipse.ui.views.ProblemView"/> + <toolbar xmi:id="_-7ykej4EEe-DFKIE1vEhrQ" elementId="org.eclipse.ui.views.ProblemView" visible="false"/> </sharedElements> <sharedElements xsi:type="basic:Part" xmi:id="_-7ykfz4EEe-DFKIE1vEhrQ" elementId="org.eclipse.ui.views.minimap.MinimapView" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView" label="Minimap" iconURI="platform:/plugin/org.eclipse.ui.workbench.texteditor/icons/full/eview16/minimap.png" tooltip="" closeable="true"> <persistedState key="originalCompatibilityViewClass" value="org.eclipse.ui.internal.views.minimap.MinimapView"/> @@ -315,11 +301,13 @@ <persistedState key="memento" value="<?xml version="1.0" encoding="UTF-8"?>
<view CommonNavigator.LINKING_ENABLED="0" currentWorkingSetName="Aggregate for window 1718202284019" org.eclipse.ui.navigator.resources.workingSets.showTopLevelWorkingSets="0">
<lastRecentlyUsedFilters/>
</view>"/> <tags>View</tags> <tags>categoryTag:General</tags> + <tags>active</tags> + <tags>activeOnClose</tags> <menus xmi:id="_-7ykgT4EEe-DFKIE1vEhrQ" elementId="org.eclipse.ui.navigator.ProjectExplorer"> <tags>ViewMenu</tags> <tags>menuContribution:menu</tags> </menus> - <toolbar xmi:id="_-7yklT4EEe-DFKIE1vEhrQ" elementId="org.eclipse.ui.navigator.ProjectExplorer"/> + <toolbar xmi:id="_-7yklT4EEe-DFKIE1vEhrQ" elementId="org.eclipse.ui.navigator.ProjectExplorer" visible="false"/> </sharedElements> <sharedElements xsi:type="basic:Part" xmi:id="_-7yknD4EEe-DFKIE1vEhrQ" elementId="org.eclipse.jdt.ui.TypeHierarchy" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView" label="Type Hierarchy" iconURI="platform:/plugin/org.eclipse.jdt.ui/icons/full/eview16/class_hi.png" tooltip="" closeable="true"> <persistedState key="originalCompatibilityViewClass" value="org.eclipse.jdt.internal.ui.typehierarchy.TypeHierarchyViewPart"/> @@ -370,7 +358,7 @@ </children> <children xsi:type="menu:ToolBar" xmi:id="_-7ykpz4EEe-DFKIE1vEhrQ" elementId="org.eclipse.ui.workbench.file"> <tags>Draggable</tags> - <children xsi:type="menu:HandledToolItem" xmi:id="_-7ykrz4EEe-DFKIE1vEhrQ" elementId="print" visible="false" iconURI="platform:/plugin/org.eclipse.ui/icons/full/etool16/print_edit.png" tooltip="Print" command="_-71Dnj4EEe-DFKIE1vEhrQ"/> + <children xsi:type="menu:HandledToolItem" xmi:id="_oLwj4ER9Ee-m9K7ZsUo_9A" elementId="print" visible="false" iconURI="platform:/plugin/org.eclipse.ui/icons/full/etool16/print_edit.png" tooltip="Print" command="_-71Dnj4EEe-DFKIE1vEhrQ"/> </children> <children xsi:type="menu:ToolBar" xmi:id="_-7yktD4EEe-DFKIE1vEhrQ" elementId="group.edit" toBeRendered="false"> <tags>toolbarSeparator</tags> @@ -378,8 +366,8 @@ </children> <children xsi:type="menu:ToolBar" xmi:id="_-7yktj4EEe-DFKIE1vEhrQ" elementId="org.eclipse.ui.workbench.edit"> <tags>Draggable</tags> - <children xsi:type="menu:HandledToolItem" xmi:id="_-7ykuD4EEe-DFKIE1vEhrQ" elementId="undo" iconURI="platform:/plugin/org.eclipse.ui/icons/full/etool16/undo_edit.png" tooltip="Undo" command="_-71B0T4EEe-DFKIE1vEhrQ"/> - <children xsi:type="menu:HandledToolItem" xmi:id="_-7ykuT4EEe-DFKIE1vEhrQ" elementId="redo" iconURI="platform:/plugin/org.eclipse.ui/icons/full/etool16/redo_edit.png" tooltip="Redo" enabled="false" command="_-71CXT4EEe-DFKIE1vEhrQ"/> + <children xsi:type="menu:HandledToolItem" xmi:id="_oLzAIER9Ee-m9K7ZsUo_9A" elementId="undo" iconURI="platform:/plugin/org.eclipse.ui/icons/full/etool16/undo_edit.png" tooltip="Undo" enabled="false" command="_-71B0T4EEe-DFKIE1vEhrQ"/> + <children xsi:type="menu:HandledToolItem" xmi:id="_oLzAIUR9Ee-m9K7ZsUo_9A" elementId="redo" iconURI="platform:/plugin/org.eclipse.ui/icons/full/etool16/redo_edit.png" tooltip="Redo" enabled="false" command="_-71CXT4EEe-DFKIE1vEhrQ"/> </children> <children xsi:type="menu:ToolBar" xmi:id="_-7ykuj4EEe-DFKIE1vEhrQ" elementId="additions" toBeRendered="false"> <tags>toolbarSeparator</tags> @@ -403,13 +391,7 @@ </children> <children xsi:type="menu:ToolBar" xmi:id="_-7ylBD4EEe-DFKIE1vEhrQ" elementId="org.eclipse.ui.workbench.navigate"> <tags>Draggable</tags> - <children xsi:type="menu:HandledToolItem" xmi:id="_-7ylCj4EEe-DFKIE1vEhrQ" elementId="org.eclipse.ui.window.pinEditor" iconURI="platform:/plugin/org.eclipse.ui/icons/full/etool16/pin_editor.png" tooltip="Pin Editor" type="Check" command="_-71DTD4EEe-DFKIE1vEhrQ"/> - </children> - <children xsi:type="menu:ToolBar" xmi:id="_-7ylDz4EEe-DFKIE1vEhrQ" elementId="org.tfranke.webservice.dsl.WebserviceDSL"> - <tags>Draggable</tags> - </children> - <children xsi:type="menu:ToolBar" xmi:id="_-7ylET4EEe-DFKIE1vEhrQ" elementId="org.eclipse.ui.genericeditor.GenericEditor" visible="false"> - <tags>Draggable</tags> + <children xsi:type="menu:HandledToolItem" xmi:id="_oLznMkR9Ee-m9K7ZsUo_9A" elementId="org.eclipse.ui.window.pinEditor" iconURI="platform:/plugin/org.eclipse.ui/icons/full/etool16/pin_editor.png" tooltip="Pin Editor" enabled="false" type="Check" command="_-71DTD4EEe-DFKIE1vEhrQ"/> </children> <children xsi:type="menu:ToolBar" xmi:id="_-7ylEj4EEe-DFKIE1vEhrQ" elementId="group.editor" toBeRendered="false"> <tags>toolbarSeparator</tags> @@ -1168,28 +1150,28 @@ <rootContext xmi:id="_-7zL8j4EEe-DFKIE1vEhrQ" elementId="org.eclipse.ui.edit.text.actionSet.presentation" name="Auto::org.eclipse.ui.edit.text.actionSet.presentation"/> <rootContext xmi:id="_-7zL8z4EEe-DFKIE1vEhrQ" elementId="org.eclipse.wst.xsd.ui.editor.sourceView" name="XSD Editor Source View" description="XSD Editor Source View"/> <rootContext xmi:id="_-7zL9D4EEe-DFKIE1vEhrQ" elementId="org.eclipse.wst.xsd.ui.editor.designView" name="XSD Editor Design View" description="XSD Editor Design View"/> - <descriptors xmi:id="_-7zL9T4EEe-DFKIE1vEhrQ" elementId="org.eclipse.pde.spy.preferences.parts.PreferenceSpyPart" contributorURI="platform:/plugin/org.eclipse.pde.spy.preferences" label="Preference Spy" iconURI="platform:/plugin/org.eclipse.pde.spy.preferences/$nl$/icons/preference_spy.png" closeable="true" contributionURI="bundleclass://org.eclipse.pde.spy.preferences/org.eclipse.pde.spy.preferences.parts.PreferenceSpyPart" description="Spy to display preferences"> + <descriptors xmi:id="_oC14cER9Ee-m9K7ZsUo_9A" elementId="org.eclipse.pde.spy.preferences.parts.PreferenceSpyPart" contributorURI="platform:/plugin/org.eclipse.pde.spy.preferences" label="Preference Spy" iconURI="platform:/plugin/org.eclipse.pde.spy.preferences/$nl$/icons/preference_spy.png" closeable="true" contributionURI="bundleclass://org.eclipse.pde.spy.preferences/org.eclipse.pde.spy.preferences.parts.PreferenceSpyPart" description="Spy to display preferences"> <persistedState key="perstistState" value="false"/> <tags>Spy</tags> - <toolbar xmi:id="_-7zL-z4EEe-DFKIE1vEhrQ" elementId="org.eclipse.pde.spy.preferences.toolbar" contributorURI="platform:/plugin/org.eclipse.pde.spy.preferences"> - <children xsi:type="menu:ToolControl" xmi:id="_-7zL_D4EEe-DFKIE1vEhrQ" elementId="org.eclipse.pde.spy.preferences.toolcontrol.layout" contributorURI="platform:/plugin/org.eclipse.pde.spy.preferences" contributionURI="bundleclass://org.eclipse.pde.spy.preferences/org.eclipse.pde.spy.preferences.handler.ToggleLayoutControl"/> - <children xsi:type="menu:ToolBarSeparator" xmi:id="_-7zL_T4EEe-DFKIE1vEhrQ" elementId="org.eclipse.pde.spy.preferences.toolbarseparator.0" contributorURI="platform:/plugin/org.eclipse.pde.spy.preferences"/> - <children xsi:type="menu:HandledToolItem" xmi:id="_-7zL_j4EEe-DFKIE1vEhrQ" elementId="org.eclipse.pde.spy.preferences.handledtoolitem.showall" contributorURI="platform:/plugin/org.eclipse.pde.spy.preferences" iconURI="platform:/plugin/org.eclipse.pde.spy.preferences/icons/show_all_preferences.png"> + <toolbar xmi:id="_oC14dkR9Ee-m9K7ZsUo_9A" elementId="org.eclipse.pde.spy.preferences.toolbar" contributorURI="platform:/plugin/org.eclipse.pde.spy.preferences"> + <children xsi:type="menu:ToolControl" xmi:id="_oC14d0R9Ee-m9K7ZsUo_9A" elementId="org.eclipse.pde.spy.preferences.toolcontrol.layout" contributorURI="platform:/plugin/org.eclipse.pde.spy.preferences" contributionURI="bundleclass://org.eclipse.pde.spy.preferences/org.eclipse.pde.spy.preferences.handler.ToggleLayoutControl"/> + <children xsi:type="menu:ToolBarSeparator" xmi:id="_oC14eER9Ee-m9K7ZsUo_9A" elementId="org.eclipse.pde.spy.preferences.toolbarseparator.0" contributorURI="platform:/plugin/org.eclipse.pde.spy.preferences"/> + <children xsi:type="menu:HandledToolItem" xmi:id="_oC14eUR9Ee-m9K7ZsUo_9A" elementId="org.eclipse.pde.spy.preferences.handledtoolitem.showall" contributorURI="platform:/plugin/org.eclipse.pde.spy.preferences" iconURI="platform:/plugin/org.eclipse.pde.spy.preferences/icons/show_all_preferences.png"> <command href="platform:/plugin/org.eclipse.pde.spy.preferences/fragment.e4xmi#_ufxRsHY2EeSuTdKDH5hMwg"/> </children> - <children xsi:type="menu:ToolControl" xmi:id="_-7zL_z4EEe-DFKIE1vEhrQ" elementId="org.eclipse.pde.spy.preferences.toolcontrol.trace" contributorURI="platform:/plugin/org.eclipse.pde.spy.preferences" contributionURI="bundleclass://org.eclipse.pde.spy.preferences/org.eclipse.pde.spy.preferences.handler.TogglePreferenceTraceControl"/> - <children xsi:type="menu:ToolBarSeparator" xmi:id="_-7zMAD4EEe-DFKIE1vEhrQ" elementId="org.eclipse.pde.spy.preferences.toolbarseparator.1" contributorURI="platform:/plugin/org.eclipse.pde.spy.preferences"/> - <children xsi:type="menu:HandledToolItem" xmi:id="_-7zMAT4EEe-DFKIE1vEhrQ" elementId="org.eclipse.pde.spy.preferences.handledtoolitem.expandall" contributorURI="platform:/plugin/org.eclipse.pde.spy.preferences" iconURI="platform:/plugin/org.eclipse.pde.spy.preferences/icons/expandall.png"> + <children xsi:type="menu:ToolControl" xmi:id="_oC14ekR9Ee-m9K7ZsUo_9A" elementId="org.eclipse.pde.spy.preferences.toolcontrol.trace" contributorURI="platform:/plugin/org.eclipse.pde.spy.preferences" contributionURI="bundleclass://org.eclipse.pde.spy.preferences/org.eclipse.pde.spy.preferences.handler.TogglePreferenceTraceControl"/> + <children xsi:type="menu:ToolBarSeparator" xmi:id="_oC14e0R9Ee-m9K7ZsUo_9A" elementId="org.eclipse.pde.spy.preferences.toolbarseparator.1" contributorURI="platform:/plugin/org.eclipse.pde.spy.preferences"/> + <children xsi:type="menu:HandledToolItem" xmi:id="_oC14fER9Ee-m9K7ZsUo_9A" elementId="org.eclipse.pde.spy.preferences.handledtoolitem.expandall" contributorURI="platform:/plugin/org.eclipse.pde.spy.preferences" iconURI="platform:/plugin/org.eclipse.pde.spy.preferences/icons/expandall.png"> <command href="platform:/plugin/org.eclipse.pde.spy.preferences/fragment.e4xmi#_4NM_IH_gEeSk-4v3KnNHPw"/> </children> - <children xsi:type="menu:HandledToolItem" xmi:id="_-7zMAj4EEe-DFKIE1vEhrQ" elementId="org.eclipse.pde.spy.preferences.handledtoolitem.collapseall" contributorURI="platform:/plugin/org.eclipse.pde.spy.preferences" iconURI="platform:/plugin/org.eclipse.pde.spy.preferences/icons/collapseall.png"> + <children xsi:type="menu:HandledToolItem" xmi:id="_oC14fUR9Ee-m9K7ZsUo_9A" elementId="org.eclipse.pde.spy.preferences.handledtoolitem.collapseall" contributorURI="platform:/plugin/org.eclipse.pde.spy.preferences" iconURI="platform:/plugin/org.eclipse.pde.spy.preferences/icons/collapseall.png"> <command href="platform:/plugin/org.eclipse.pde.spy.preferences/fragment.e4xmi#_68UQwH_gEeSk-4v3KnNHPw"/> </children> - <children xsi:type="menu:ToolBarSeparator" xmi:id="_-7zMAz4EEe-DFKIE1vEhrQ" elementId="org.eclipse.pde.spy.preferences.toolbarseparator.2" contributorURI="platform:/plugin/org.eclipse.pde.spy.preferences"/> - <children xsi:type="menu:HandledToolItem" xmi:id="_-7zMBD4EEe-DFKIE1vEhrQ" elementId="org.eclipse.pde.spy.preferences.handledtoolitem.removeentry" contributorURI="platform:/plugin/org.eclipse.pde.spy.preferences" iconURI="platform:/plugin/org.eclipse.pde.spy.preferences/icons/remove_co.png"> + <children xsi:type="menu:ToolBarSeparator" xmi:id="_oC14fkR9Ee-m9K7ZsUo_9A" elementId="org.eclipse.pde.spy.preferences.toolbarseparator.2" contributorURI="platform:/plugin/org.eclipse.pde.spy.preferences"/> + <children xsi:type="menu:HandledToolItem" xmi:id="_oC14f0R9Ee-m9K7ZsUo_9A" elementId="org.eclipse.pde.spy.preferences.handledtoolitem.removeentry" contributorURI="platform:/plugin/org.eclipse.pde.spy.preferences" iconURI="platform:/plugin/org.eclipse.pde.spy.preferences/icons/remove_co.png"> <command href="platform:/plugin/org.eclipse.pde.spy.preferences/fragment.e4xmi#_iGEkYGxiEeSQ7v0akw7aRA"/> </children> - <children xsi:type="menu:HandledToolItem" xmi:id="_-7zMBT4EEe-DFKIE1vEhrQ" elementId="org.eclipse.pde.spy.preferences.handledtoolitem.removeall" contributorURI="platform:/plugin/org.eclipse.pde.spy.preferences" iconURI="platform:/plugin/org.eclipse.pde.spy.preferences/icons/removeall_co.png"> + <children xsi:type="menu:HandledToolItem" xmi:id="_oC14gER9Ee-m9K7ZsUo_9A" elementId="org.eclipse.pde.spy.preferences.handledtoolitem.removeall" contributorURI="platform:/plugin/org.eclipse.pde.spy.preferences" iconURI="platform:/plugin/org.eclipse.pde.spy.preferences/icons/removeall_co.png"> <command href="platform:/plugin/org.eclipse.pde.spy.preferences/fragment.e4xmi#_eBGTEGxiEeSQ7v0akw7aRA"/> </children> </toolbar> @@ -1796,18 +1778,18 @@ <tags>View</tags> <tags>categoryTag:XML</tags> </descriptors> - <trimContributions xmi:id="_-71Ajz4EEe-DFKIE1vEhrQ" elementId="org.eclipse.ui.ide.application.trimcontribution.QuickAccess" contributorURI="platform:/plugin/org.eclipse.ui.ide.application" toBeRendered="false" parentId="org.eclipse.ui.main.toolbar" positionInParent="last"> - <children xsi:type="menu:ToolControl" xmi:id="_-71AkD4EEe-DFKIE1vEhrQ" elementId="Spacer Glue" contributorURI="platform:/plugin/org.eclipse.ui.ide.application" contributionURI="bundleclass://org.eclipse.e4.ui.workbench.renderers.swt/org.eclipse.e4.ui.workbench.renderers.swt.LayoutModifierToolControl"> + <trimContributions xmi:id="_2r10UF9tEeO-yojH_y4TJA" elementId="org.eclipse.ui.ide.application.trimcontribution.QuickAccess" contributorURI="platform:/plugin/org.eclipse.ui.ide.application" toBeRendered="false" parentId="org.eclipse.ui.main.toolbar" positionInParent="last"> + <children xsi:type="menu:ToolControl" xmi:id="_76uUAF9tEeO-yojH_y4TJA" elementId="Spacer Glue" contributorURI="platform:/plugin/org.eclipse.ui.ide.application" contributionURI="bundleclass://org.eclipse.e4.ui.workbench.renderers.swt/org.eclipse.e4.ui.workbench.renderers.swt.LayoutModifierToolControl"> <tags>glue</tags> <tags>move_after:PerspectiveSpacer</tags> <tags>SHOW_RESTORE_MENU</tags> </children> - <children xsi:type="menu:ToolControl" xmi:id="_-71AkT4EEe-DFKIE1vEhrQ" elementId="SearchField" contributorURI="platform:/plugin/org.eclipse.ui.ide.application" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.quickaccess.SearchField"> + <children xsi:type="menu:ToolControl" xmi:id="_8tJPcF9tEeO-yojH_y4TJA" elementId="SearchField" contributorURI="platform:/plugin/org.eclipse.ui.ide.application" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.quickaccess.SearchField"> <tags>move_after:Spacer Glue</tags> <tags>HIDEABLE</tags> <tags>SHOW_RESTORE_MENU</tags> </children> - <children xsi:type="menu:ToolControl" xmi:id="_-71Akj4EEe-DFKIE1vEhrQ" elementId="Search-PS Glue" contributorURI="platform:/plugin/org.eclipse.ui.ide.application" contributionURI="bundleclass://org.eclipse.e4.ui.workbench.renderers.swt/org.eclipse.e4.ui.workbench.renderers.swt.LayoutModifierToolControl"> + <children xsi:type="menu:ToolControl" xmi:id="_9LgmcF9tEeO-yojH_y4TJA" elementId="Search-PS Glue" contributorURI="platform:/plugin/org.eclipse.ui.ide.application" contributionURI="bundleclass://org.eclipse.e4.ui.workbench.renderers.swt/org.eclipse.e4.ui.workbench.renderers.swt.LayoutModifierToolControl"> <tags>glue</tags> <tags>move_after:SearchField</tags> <tags>SHOW_RESTORE_MENU</tags> diff --git a/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.pde.core/.cache/clean-cache.properties b/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.pde.core/.cache/clean-cache.properties index 6e595047faf43a904648781e06ea189010559523..4dffbc891197dd7897fc4c585adc570eaeffcf7f 100644 --- a/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.pde.core/.cache/clean-cache.properties +++ b/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.pde.core/.cache/clean-cache.properties @@ -1,2 +1,2 @@ #Cached timestamps -#Thu Jun 13 22:30:54 CEST 2024 +#Wed Jul 17 21:43:24 CEST 2024 diff --git a/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.wst.internet.cache/cache.xml b/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.wst.internet.cache/cache.xml new file mode 100644 index 0000000000000000000000000000000000000000..65740332480f0f2e443498d8904f11bf5429a051 --- /dev/null +++ b/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.wst.internet.cache/cache.xml @@ -0,0 +1 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?><cache/> \ No newline at end of file diff --git a/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.wst.sse.core/task-tags.properties b/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.wst.sse.core/task-tags.properties new file mode 100644 index 0000000000000000000000000000000000000000..06836604a45e4d2a46f8f17cf8632cbf4be55284 --- /dev/null +++ b/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.wst.sse.core/task-tags.properties @@ -0,0 +1,3 @@ +# +#Wed Jul 17 21:22:26 CEST 2024 +task-tag-projects-already-scanned=sample diff --git a/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.wst.sse.ui/dialog_settings.xml b/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.wst.sse.ui/dialog_settings.xml new file mode 100644 index 0000000000000000000000000000000000000000..e153bf9c4fa3c4d0b27dd0436674730142fda192 --- /dev/null +++ b/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.wst.sse.ui/dialog_settings.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="UTF-8"?> +<section name="Workbench"> + <section name="contentassistsize"> + </section> +</section> diff --git a/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.wst.xml.core/default_catalog.xml b/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.wst.xml.core/default_catalog.xml new file mode 100644 index 0000000000000000000000000000000000000000..ef0de5db205b5aee8dd7bf35a2a45964e76472e7 --- /dev/null +++ b/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.wst.xml.core/default_catalog.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog"> + <nextCatalog catalog="user_catalog.xml" id="user_catalog"/> + <nextCatalog catalog="system_catalog.xml" id="system_catalog"/> +</catalog> diff --git a/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.wst.xml.core/system_catalog.xml b/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.wst.xml.core/system_catalog.xml new file mode 100644 index 0000000000000000000000000000000000000000..a8d47c39143feaf0430debfccd8e06ae1392533b --- /dev/null +++ b/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.wst.xml.core/system_catalog.xml @@ -0,0 +1,32 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog"> + <public publicId="-//WAPFORUM//DTD WML 1.1//EN" uri="jar:file:/C:/Program Files/eclipse/plugins/org.eclipse.wst.standard.schemas_1.0.800.v201901071922.jar!/dtds/wml11.dtd"/> + <public publicId="-//W3C//DTD XHTML 1.0 Strict//EN" uri="jar:file:/C:/Program Files/eclipse/plugins/org.eclipse.wst.standard.schemas_1.0.800.v201901071922.jar!/dtds/xhtml1-strict.dtd" webURL="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"/> + <public publicId="-//W3C//DTD XHTML 1.0 Transitional//EN" uri="jar:file:/C:/Program Files/eclipse/plugins/org.eclipse.wst.standard.schemas_1.0.800.v201901071922.jar!/dtds/xhtml1-transitional.dtd" webURL="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/> + <public publicId="-//W3C//DTD XHTML 1.0 Frameset//EN" uri="jar:file:/C:/Program Files/eclipse/plugins/org.eclipse.wst.standard.schemas_1.0.800.v201901071922.jar!/dtds/xhtml1-frameset.dtd" webURL="http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"/> + <public publicId="-//W3C//DTD XHTML Basic 1.0//EN" uri="jar:file:/C:/Program Files/eclipse/plugins/org.eclipse.wst.standard.schemas_1.0.800.v201901071922.jar!/dtds/xhtml-basic10-f.dtd" webURL="http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd"/> + <public publicId="-//W3C//DTD XHTML 1.1//EN" uri="jar:file:/C:/Program Files/eclipse/plugins/org.eclipse.wst.standard.schemas_1.0.800.v201901071922.jar!/dtds/xhtml11-flat.dtd" webURL="http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"/> + <public publicId="-//WAPFORUM//DTD XHTML Mobile 1.0//EN" uri="jar:file:/C:/Program Files/eclipse/plugins/org.eclipse.wst.standard.schemas_1.0.800.v201901071922.jar!/dtds/xhtml-mobile10-flat.dtd" webURL="http://www.wapforum.org/DTD/xhtml-mobile10.dtd"/> + <public publicId="-//WAPFORUM//DTD WML 1.3//EN" uri="jar:file:/C:/Program Files/eclipse/plugins/org.eclipse.wst.standard.schemas_1.0.800.v201901071922.jar!/dtds/wml13.dtd" webURL="http://www.wapforum.org/DTD/wml13.dtd"/> + <public publicId="-//W3C//DTD HTML 4.01 Frameset//EN" uri="jar:file:/C:/Program Files/eclipse/plugins/org.eclipse.wst.standard.schemas_1.0.800.v201901071922.jar!/dtds/frameset.dtd" webURL="http://www.w3.org/TR/html4/frameset.dtd"/> + <public publicId="-//W3C//ENTITIES Latin 1//EN//HTML" uri="jar:file:/C:/Program Files/eclipse/plugins/org.eclipse.wst.standard.schemas_1.0.800.v201901071922.jar!/dtds/HTMLlat1.ent" webURL="HTMLlat1.ent"/> + <public publicId="-//W3C//ENTITIES Special//EN//HTM" uri="jar:file:/C:/Program Files/eclipse/plugins/org.eclipse.wst.standard.schemas_1.0.800.v201901071922.jar!/dtds/HTMLspecial.ent" webURL="HTMLspecial.ent"/> + <public publicId="-//W3C//ENTITIES Symbols//EN//HTML" uri="jar:file:/C:/Program Files/eclipse/plugins/org.eclipse.wst.standard.schemas_1.0.800.v201901071922.jar!/dtds/HTMLsymbol.ent" webURL="HTMLsymbol.ent"/> + <public publicId="-//W3C//DTD HTML 4.01 Transitional//EN" uri="jar:file:/C:/Program Files/eclipse/plugins/org.eclipse.wst.standard.schemas_1.0.800.v201901071922.jar!/dtds/loose.dtd" webURL="http://www.w3.org/TR/html4/loose.dtd"/> + <public publicId="-//W3C//DTD HTML 4.01//EN" uri="jar:file:/C:/Program Files/eclipse/plugins/org.eclipse.wst.standard.schemas_1.0.800.v201901071922.jar!/dtds/strict.dtd" webURL="http://www.w3.org/TR/html4/strict.dtd"/> + <uri name="http://schemas.xmlsoap.org/wsdl/" uri="jar:file:/C:/Program Files/eclipse/plugins/org.eclipse.wst.standard.schemas_1.0.800.v201901071922.jar!/xsd/wsdl.xsd"/> + <uri name="http://schemas.xmlsoap.org/wsdl/soap/" uri="jar:file:/C:/Program Files/eclipse/plugins/org.eclipse.wst.standard.schemas_1.0.800.v201901071922.jar!/xsd/soap.xsd"/> + <uri name="http://schemas.xmlsoap.org/wsdl/http/" uri="jar:file:/C:/Program Files/eclipse/plugins/org.eclipse.wst.standard.schemas_1.0.800.v201901071922.jar!/xsd/http.xsd"/> + <uri name="http://schemas.xmlsoap.org/wsdl/mime/" uri="jar:file:/C:/Program Files/eclipse/plugins/org.eclipse.wst.standard.schemas_1.0.800.v201901071922.jar!/xsd/wsdl-mime.xsd"/> + <uri name="http://schemas.xmlsoap.org/soap/encoding/" uri="jar:file:/C:/Program Files/eclipse/plugins/org.eclipse.wst.standard.schemas_1.0.800.v201901071922.jar!/xsd/soapenc.xsd"/> + <uri name="http://schemas.xmlsoap.org/soap/envelope/" uri="jar:file:/C:/Program Files/eclipse/plugins/org.eclipse.wst.standard.schemas_1.0.800.v201901071922.jar!/xsd/soapenv.xsd"/> + <uri name="urn:oasis:names:tc:entity:xmlns:xml:catalog" uri="jar:file:/C:/Program Files/eclipse/plugins/org.eclipse.wst.standard.schemas_1.0.800.v201901071922.jar!/xsd/xmlcatalog11.xsd"/> + <uri name="http://www.w3.org/TR/html4/loose.dtd" uri="jar:file:/C:/Program Files/eclipse/plugins/org.eclipse.wst.standard.schemas_1.0.800.v201901071922.jar!/dtds/loose.dtd"/> + <uri name="http://www.w3.org/TR/html4/strict.dtd" uri="jar:file:/C:/Program Files/eclipse/plugins/org.eclipse.wst.standard.schemas_1.0.800.v201901071922.jar!/dtds/strict.dtd"/> + <uri name="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702" uri="jar:file:/C:/Program Files/eclipse/plugins/org.eclipse.wst.standard.schemas_1.0.800.v201901071922.jar!/xsd/ws-securitypolicy-1.2.xsd"/> + <uri name="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200802" uri="jar:file:/C:/Program Files/eclipse/plugins/org.eclipse.wst.standard.schemas_1.0.800.v201901071922.jar!/xsd/ws-securitypolicy.xsd"/> + <uri name="http://www.w3.org/TR/xmldsig-core/xmldsig-core-schema.xsd" uri="jar:file:/C:/Program Files/eclipse/plugins/org.eclipse.wst.standard.schemas_1.0.800.v201901071922.jar!/xsd/xmldsig-core-schema.xsd"/> + <system systemId="http://www.w3.org/2001/xml.xsd" uri="jar:file:/C:/Program Files/eclipse/plugins/org.eclipse.xsd_2.19.0.v20231205-1420.jar!/cache/www.w3.org/2001/xml.xsd"/> + <uri name="http://www.w3.org/2001/XMLSchema" uri="jar:file:/C:/Program Files/eclipse/plugins/org.eclipse.xsd_2.19.0.v20231205-1420.jar!/cache/www.w3.org/2001/XMLSchema.xsd"/> + <uri id="org.w3c.xinclude" name="http://www.w3.org/2001/XInclude" uri="jar:file:/C:/Program Files/eclipse/plugins/org.eclipse.wst.xsl.core_1.2.200.v202302070714.jar!/xslt-schemas/xinclude.xsd"/> +</catalog> diff --git a/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.xtext.builder/builder.state b/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.xtext.builder/builder.state new file mode 100644 index 0000000000000000000000000000000000000000..6ddbbff1be1c9e7add84062ba3a87641841fd162 Binary files /dev/null and b/eclipse_workspaces/runtime-New_configuration/.metadata/.plugins/org.eclipse.xtext.builder/builder.state differ diff --git a/eclipse_workspaces/runtime-New_configuration/.metadata/version.ini b/eclipse_workspaces/runtime-New_configuration/.metadata/version.ini index 5fccc53e53fc8ac3ce638944800a610dc9778763..d1cc9f2310b649e34124adf36b53a4d74cc0e85c 100644 --- a/eclipse_workspaces/runtime-New_configuration/.metadata/version.ini +++ b/eclipse_workspaces/runtime-New_configuration/.metadata/version.ini @@ -1,3 +1,3 @@ -#Tue Jul 09 09:52:34 CEST 2024 +#Wed Jul 17 22:46:21 CEST 2024 org.eclipse.core.runtime=2 org.eclipse.platform=4.31.100.v20240229-0520 diff --git a/eclipse_workspaces/runtime-New_configuration/sample/src-gen/repositories/SwaggerPetstore/repository.xml b/eclipse_workspaces/runtime-New_configuration/sample/src-gen/repositories/SwaggerPetstore/repository.xml new file mode 100644 index 0000000000000000000000000000000000000000..23f16ba13be850f0efab97d8b67d40ef65bb8280 --- /dev/null +++ b/eclipse_workspaces/runtime-New_configuration/sample/src-gen/repositories/SwaggerPetstore/repository.xml @@ -0,0 +1,36 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<REPOSITORY> + <RESOURCES> + <RESOURCE EMPTYFOLDER="true" FILENAME="SwaggerPetstore" ID="100" IMPORT="true" NAME="SwaggerPetstore"> + <DESCRIPTION/> + </RESOURCE> + <RESOURCE FILENAME="SwaggerPetstore/POST addPet.xsl" ID="101" IMPORT="true" LASTMODIFIED="17.07.2024 22:46:39" NAME="POST addPet.xsl" TYPE="XsltDocument"> + <DESCRIPTION/> + </RESOURCE> + <RESOURCE FILENAME="SwaggerPetstore/GET getPetById.xsl" ID="102" IMPORT="true" LASTMODIFIED="17.07.2024 22:46:39" NAME="GET getPetById.xsl" TYPE="XsltDocument"> + <DESCRIPTION/> + </RESOURCE> + </RESOURCES> + + <ADAPTERTYPES> + <ADAPTERTYPE FACTORY="com.sqlgmbh.tc.adapter.http.AdapterFactory" ID="30" IMPORT="false"/> + </ADAPTERTYPES> + + <ADAPTERS> + <ADAPTER FACTORY="com.sqlgmbh.tc.adapter.http.AdapterFactory" ID="80" IMPORT="true" NAME="SwaggerPetstore" OUTBOUND="true" SUBTYPE="Default" TYPE_ID="30"> + <DESCRIPTION/> + <PROPERTIES> + <PROPERTY NAME="connection.maxIdle">10</PROPERTY> + <PROPERTY NAME="failed.request.content.length">100</PROPERTY> + <PROPERTY NAME="http.statuscode.check">false</PROPERTY> + <PROPERTY NAME="lib.log.verbose">false</PROPERTY> + <PROPERTY NAME="requestEncoding">UTF-8</PROPERTY> + <PROPERTY NAME="responseEncoding">ISO-8859-1</PROPERTY> + <PROPERTY NAME="trust.selfsigned">false</PROPERTY> + <PROPERTY NAME="url.outbound">https://petstore3.swagger.io/api/v3</PROPERTY> + <PROPERTY NAME="xml.invalidChars">Error</PROPERTY> + </PROPERTIES> + </ADAPTER> + </ADAPTERS> +</REPOSITORY> + diff --git a/eclipse_workspaces/runtime-New_configuration/sample/src-gen/repositories/SwaggerPetstore/resources/SwaggerPetstore/GET getPetById.xsl b/eclipse_workspaces/runtime-New_configuration/sample/src-gen/repositories/SwaggerPetstore/resources/SwaggerPetstore/GET getPetById.xsl new file mode 100644 index 0000000000000000000000000000000000000000..75fe493fa532ecd1db0d611b56b06e3435c7335e --- /dev/null +++ b/eclipse_workspaces/runtime-New_configuration/sample/src-gen/repositories/SwaggerPetstore/resources/SwaggerPetstore/GET getPetById.xsl @@ -0,0 +1,14 @@ +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> + <xsl:template match="/"> + <ROOT> + <REQUEST CONTENT-TYPE="application/json" EMBED="true" NAME="getPetById" OPERATION="GET" URL="/pet/{petId}"> + <PARAMS> + <!-- required --> + <PARAM NAME="petId">integer</PARAM> + + </PARAMS> + </REQUEST> + </ROOT> + </xsl:template> +</xsl:stylesheet> + diff --git a/eclipse_workspaces/runtime-New_configuration/sample/src-gen/repositories/SwaggerPetstore/resources/SwaggerPetstore/POST addPet.xsl b/eclipse_workspaces/runtime-New_configuration/sample/src-gen/repositories/SwaggerPetstore/resources/SwaggerPetstore/POST addPet.xsl new file mode 100644 index 0000000000000000000000000000000000000000..cda04e756e862cf626c7e2e728a8ac02c3e137af --- /dev/null +++ b/eclipse_workspaces/runtime-New_configuration/sample/src-gen/repositories/SwaggerPetstore/resources/SwaggerPetstore/POST addPet.xsl @@ -0,0 +1,20 @@ +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> + <xsl:template match="/"> + <ROOT> + <REQUEST CONTENT-TYPE="application/json" EMBED="true" NAME="addPet" OPERATION="POST" URL="/pet"> + <PARAMS> + </PARAMS> + <CONTENT> + { + "petId" : "integer", + "name" : "string", + "friends" : "list of: Pet" + } + <!-- required content: petId, name, --> + </CONTENT> + + </REQUEST> + </ROOT> + </xsl:template> +</xsl:stylesheet> + diff --git a/eclipse_workspaces/webservice/.metadata/.log b/eclipse_workspaces/webservice/.metadata/.log index e50fcdae9d7c028cfa634a6cded1829a80e09fd8..3d868515b1ee6bcc654170eeacff2027c24b4a3f 100644 --- a/eclipse_workspaces/webservice/.metadata/.log +++ b/eclipse_workspaces/webservice/.metadata/.log @@ -9995,3 +9995,198 @@ user global configuration and to define the default location to store repositori not correct please set the HOME environment variable and restart Eclipse. Otherwise Git for Windows and EGit might behave differently since they see different configuration options. This warning can be switched off on the Team > Git > Confirmations and Warnings preference page. +!SESSION 2024-07-11 08:27:38.298 ----------------------------------------------- +eclipse.buildId=4.31.0.20240307-1200 +java.version=17.0.10 +java.vendor=Eclipse Adoptium +BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=de_DE +Framework arguments: -product org.eclipse.epp.package.modeling.product +Command-line arguments: -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.modeling.product + +!ENTRY org.eclipse.core.resources 4 567 2024-07-11 08:28:04.079 +!MESSAGE Workspace restored, but some problems occurred. +!SUBENTRY 1 org.eclipse.core.resources 4 567 2024-07-11 08:28:04.079 +!MESSAGE Could not read metadata for '.org.eclipse.egit.core.cmp'. +!STACK 1 +org.eclipse.core.internal.resources.ResourceException(/.org.eclipse.egit.core.cmp)[567]: java.lang.Exception: The project description file (.project) for '.org.eclipse.egit.core.cmp' is missing. This file contains important information about the project. The project will not function properly until this file is restored. + at org.eclipse.core.internal.resources.ResourceException.provideStackTrace(ResourceException.java:42) + at org.eclipse.core.internal.resources.ResourceException.<init>(ResourceException.java:38) + at org.eclipse.core.internal.localstore.FileSystemResourceManager.read(FileSystemResourceManager.java:951) + at org.eclipse.core.internal.resources.SaveManager.restoreMetaInfo(SaveManager.java:953) + at org.eclipse.core.internal.resources.SaveManager.restoreMetaInfo(SaveManager.java:933) + at org.eclipse.core.internal.resources.SaveManager.restore(SaveManager.java:789) + at org.eclipse.core.internal.resources.SaveManager.startup(SaveManager.java:1615) + at org.eclipse.core.internal.resources.Workspace.startup(Workspace.java:2615) + at org.eclipse.core.internal.resources.Workspace.open(Workspace.java:2319) + at org.eclipse.core.resources.ResourcesPlugin$WorkspaceInitCustomizer.addingService(ResourcesPlugin.java:571) + at org.eclipse.core.resources.ResourcesPlugin$WorkspaceInitCustomizer.addingService(ResourcesPlugin.java:1) + at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:947) + at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:1) + at org.osgi.util.tracker.AbstractTracked.trackAdding(AbstractTracked.java:257) + at org.osgi.util.tracker.AbstractTracked.trackInitial(AbstractTracked.java:184) + at org.osgi.util.tracker.ServiceTracker.open(ServiceTracker.java:324) + at org.osgi.util.tracker.ServiceTracker.open(ServiceTracker.java:267) + at org.eclipse.core.resources.ResourcesPlugin.start(ResourcesPlugin.java:545) + at org.eclipse.osgi.internal.framework.BundleContextImpl$2.run(BundleContextImpl.java:833) + at org.eclipse.osgi.internal.framework.BundleContextImpl$2.run(BundleContextImpl.java:1) + at java.base/java.security.AccessController.doPrivileged(AccessController.java:569) + at org.eclipse.osgi.internal.framework.BundleContextImpl.startActivator(BundleContextImpl.java:825) + at org.eclipse.osgi.internal.framework.BundleContextImpl.start(BundleContextImpl.java:775) + at org.eclipse.osgi.internal.framework.EquinoxBundle.startWorker0(EquinoxBundle.java:1057) + at org.eclipse.osgi.internal.framework.EquinoxBundle$EquinoxModule.startWorker(EquinoxBundle.java:387) + at org.eclipse.osgi.container.Module.doStart(Module.java:639) + at org.eclipse.osgi.container.Module.start(Module.java:498) + at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:528) + at org.eclipse.osgi.internal.hooks.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:122) + at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClass(ClasspathManager.java:620) + at org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalClass(ModuleClassLoader.java:348) + at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:414) + at org.eclipse.osgi.internal.loader.sources.SingleSourcePackage.loadClass(SingleSourcePackage.java:41) + at org.eclipse.osgi.internal.loader.BundleLoader.findClass0(BundleLoader.java:516) + at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:434) + at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:174) + at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525) + at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:153) + at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:208) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:143) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:109) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:439) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:271) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) + at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + at java.base/java.lang.reflect.Method.invoke(Method.java:568) + at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:651) + at org.eclipse.equinox.launcher.Main.basicRun(Main.java:588) + at org.eclipse.equinox.launcher.Main.run(Main.java:1459) +!SUBENTRY 2 org.eclipse.core.resources 4 567 2024-07-11 08:28:04.079 +!MESSAGE The project description file (.project) for '.org.eclipse.egit.core.cmp' is missing. This file contains important information about the project. The project will not function properly until this file is restored. +!STACK 0 +java.lang.Exception: The project description file (.project) for '.org.eclipse.egit.core.cmp' is missing. This file contains important information about the project. The project will not function properly until this file is restored. + at org.eclipse.core.internal.resources.ResourceException.provideStackTrace(ResourceException.java:42) + at org.eclipse.core.internal.resources.ResourceException.<init>(ResourceException.java:38) + at org.eclipse.core.internal.localstore.FileSystemResourceManager.read(FileSystemResourceManager.java:951) + at org.eclipse.core.internal.resources.SaveManager.restoreMetaInfo(SaveManager.java:953) + at org.eclipse.core.internal.resources.SaveManager.restoreMetaInfo(SaveManager.java:933) + at org.eclipse.core.internal.resources.SaveManager.restore(SaveManager.java:789) + at org.eclipse.core.internal.resources.SaveManager.startup(SaveManager.java:1615) + at org.eclipse.core.internal.resources.Workspace.startup(Workspace.java:2615) + at org.eclipse.core.internal.resources.Workspace.open(Workspace.java:2319) + at org.eclipse.core.resources.ResourcesPlugin$WorkspaceInitCustomizer.addingService(ResourcesPlugin.java:571) + at org.eclipse.core.resources.ResourcesPlugin$WorkspaceInitCustomizer.addingService(ResourcesPlugin.java:1) + at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:947) + at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:1) + at org.osgi.util.tracker.AbstractTracked.trackAdding(AbstractTracked.java:257) + at org.osgi.util.tracker.AbstractTracked.trackInitial(AbstractTracked.java:184) + at org.osgi.util.tracker.ServiceTracker.open(ServiceTracker.java:324) + at org.osgi.util.tracker.ServiceTracker.open(ServiceTracker.java:267) + at org.eclipse.core.resources.ResourcesPlugin.start(ResourcesPlugin.java:545) + at org.eclipse.osgi.internal.framework.BundleContextImpl$2.run(BundleContextImpl.java:833) + at org.eclipse.osgi.internal.framework.BundleContextImpl$2.run(BundleContextImpl.java:1) + at java.base/java.security.AccessController.doPrivileged(AccessController.java:569) + at org.eclipse.osgi.internal.framework.BundleContextImpl.startActivator(BundleContextImpl.java:825) + at org.eclipse.osgi.internal.framework.BundleContextImpl.start(BundleContextImpl.java:775) + at org.eclipse.osgi.internal.framework.EquinoxBundle.startWorker0(EquinoxBundle.java:1057) + at org.eclipse.osgi.internal.framework.EquinoxBundle$EquinoxModule.startWorker(EquinoxBundle.java:387) + at org.eclipse.osgi.container.Module.doStart(Module.java:639) + at org.eclipse.osgi.container.Module.start(Module.java:498) + at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:528) + at org.eclipse.osgi.internal.hooks.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:122) + at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClass(ClasspathManager.java:620) + at org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalClass(ModuleClassLoader.java:348) + at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:414) + at org.eclipse.osgi.internal.loader.sources.SingleSourcePackage.loadClass(SingleSourcePackage.java:41) + at org.eclipse.osgi.internal.loader.BundleLoader.findClass0(BundleLoader.java:516) + at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:434) + at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:174) + at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525) + at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:153) + at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:208) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:143) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:109) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:439) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:271) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) + at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + at java.base/java.lang.reflect.Method.invoke(Method.java:568) + at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:651) + at org.eclipse.equinox.launcher.Main.basicRun(Main.java:588) + at org.eclipse.equinox.launcher.Main.run(Main.java:1459) + +!ENTRY org.eclipse.egit.ui 2 0 2024-07-11 08:28:13.360 +!MESSAGE Warning: The environment variable HOME is not set. The following directory will be used to store the Git +user global configuration and to define the default location to store repositories: 'C:\Users\Tom'. If this is +not correct please set the HOME environment variable and restart Eclipse. Otherwise Git for Windows and +EGit might behave differently since they see different configuration options. +This warning can be switched off on the Team > Git > Confirmations and Warnings preference page. +!SESSION 2024-07-12 15:23:45.219 ----------------------------------------------- +eclipse.buildId=4.31.0.20240307-1200 +java.version=17.0.10 +java.vendor=Eclipse Adoptium +BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=de_DE +Framework arguments: -product org.eclipse.epp.package.modeling.product +Command-line arguments: -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.modeling.product + +!ENTRY org.eclipse.egit.ui 2 0 2024-07-12 15:24:01.401 +!MESSAGE Warning: The environment variable HOME is not set. The following directory will be used to store the Git +user global configuration and to define the default location to store repositories: 'C:\Users\Tom'. If this is +not correct please set the HOME environment variable and restart Eclipse. Otherwise Git for Windows and +EGit might behave differently since they see different configuration options. +This warning can be switched off on the Team > Git > Confirmations and Warnings preference page. +!SESSION 2024-07-15 09:08:51.424 ----------------------------------------------- +eclipse.buildId=4.31.0.20240307-1200 +java.version=17.0.10 +java.vendor=Eclipse Adoptium +BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=de_DE +Framework arguments: -product org.eclipse.epp.package.modeling.product +Command-line arguments: -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.modeling.product + +!ENTRY org.eclipse.egit.ui 2 0 2024-07-15 09:10:23.581 +!MESSAGE Warning: The environment variable HOME is not set. The following directory will be used to store the Git +user global configuration and to define the default location to store repositories: 'C:\Users\Tom'. If this is +not correct please set the HOME environment variable and restart Eclipse. Otherwise Git for Windows and +EGit might behave differently since they see different configuration options. +This warning can be switched off on the Team > Git > Confirmations and Warnings preference page. +!SESSION 2024-07-15 14:33:05.705 ----------------------------------------------- +eclipse.buildId=4.31.0.20240307-1200 +java.version=17.0.10 +java.vendor=Eclipse Adoptium +BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=de_DE +Framework arguments: -product org.eclipse.epp.package.modeling.product +Command-line arguments: -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.modeling.product + +!ENTRY org.eclipse.egit.ui 2 0 2024-07-15 14:33:18.066 +!MESSAGE Warning: The environment variable HOME is not set. The following directory will be used to store the Git +user global configuration and to define the default location to store repositories: 'C:\Users\Tom'. If this is +not correct please set the HOME environment variable and restart Eclipse. Otherwise Git for Windows and +EGit might behave differently since they see different configuration options. +This warning can be switched off on the Team > Git > Confirmations and Warnings preference page. +!SESSION 2024-07-17 20:15:27.973 ----------------------------------------------- +eclipse.buildId=4.31.0.20240307-1200 +java.version=17.0.10 +java.vendor=Eclipse Adoptium +BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=de_DE +Framework arguments: -product org.eclipse.epp.package.modeling.product +Command-line arguments: -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.modeling.product + +!ENTRY org.eclipse.egit.ui 2 0 2024-07-17 20:15:49.106 +!MESSAGE Warning: The environment variable HOME is not set. The following directory will be used to store the Git +user global configuration and to define the default location to store repositories: 'C:\Users\Tom'. If this is +not correct please set the HOME environment variable and restart Eclipse. Otherwise Git for Windows and +EGit might behave differently since they see different configuration options. +This warning can be switched off on the Team > Git > Confirmations and Warnings preference page. +!SESSION 2024-07-17 22:43:31.298 ----------------------------------------------- +eclipse.buildId=4.31.0.20240307-1200 +java.version=17.0.10 +java.vendor=Eclipse Adoptium +BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=de_DE +Framework arguments: -product org.eclipse.epp.package.modeling.product +Command-line arguments: -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.modeling.product + +!ENTRY org.eclipse.egit.ui 2 0 2024-07-17 22:43:45.097 +!MESSAGE Warning: The environment variable HOME is not set. The following directory will be used to store the Git +user global configuration and to define the default location to store repositories: 'C:\Users\Tom'. If this is +not correct please set the HOME environment variable and restart Eclipse. Otherwise Git for Windows and +EGit might behave differently since they see different configuration options. +This warning can be switched off on the Team > Git > Confirmations and Warnings preference page. diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/20/10400dcc6944001f1c4da34d94bbd8c4 b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/20/10400dcc6944001f1c4da34d94bbd8c4 new file mode 100644 index 0000000000000000000000000000000000000000..8fe51367f8c714c11a6bddd2b98be083fd17c9b6 --- /dev/null +++ b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/20/10400dcc6944001f1c4da34d94bbd8c4 @@ -0,0 +1,38 @@ +package org.tfranke.webservice.dsl.generator + +import org.eclipse.emf.ecore.resource.Resource +import org.eclipse.xtext.generator.AbstractGenerator +import org.eclipse.xtext.generator.IFileSystemAccess2 +import org.eclipse.xtext.generator.IGeneratorContext +import webservice.API +import webservice.Operation +import webservice.ReadOperation +import java.util.Map +import java.util.List +import java.util.HashMap +import webservice.Parameter +import webservice.CreateOperation +import webservice.UpdateOperation +import webservice.DeleteOperation +import webservice.DataType +import webservice.StringData +import webservice.IntegerData +import webservice.BooleanData +import webservice.FloatData +import webservice.CollectionDataType +import webservice.ObjectDataType +import com.fasterxml.jackson.databind.ObjectMapper +import java.util.ArrayList +import java.util.regex.Pattern +import java.util.regex.Matcher + +class TransconnectRepositoryCreator { + + def static createRepository(API api) { + + } + + + + +} \ No newline at end of file diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/3/9004370e583c001f1c52ebe51cacd316 b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/3/9004370e583c001f1c52ebe51cacd316 deleted file mode 100644 index caeb04ceefd381c353377b668cdc01baac1866a6..0000000000000000000000000000000000000000 --- a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/3/9004370e583c001f1c52ebe51cacd316 +++ /dev/null @@ -1,135 +0,0 @@ -// automatically generated by Xtext -grammar org.tfranke.webservice.dsl.WebserviceDSL with org.eclipse.xtext.common.Terminals - -import "http://www.tfranke.org/webservice" -import "http://www.eclipse.org/emf/2002/Ecore" as ecore - -API returns API: - 'API' - name=EString - '{' - ('description' description=EString)? - 'url' url=EString - 'datatypes' '{' datatypes+=DataType ( "," datatypes+=DataType)* '}' - 'operations' '{' operations+=Operation ( "," operations+=Operation)* '}' - '}'; - - -DataType returns DataType: - ObjectDataType | CollectionDataType | StringData | IntegerData | FloatData | BooleanData | ByteData; - -Operation returns Operation: - ReadOperation | CreateOperation | UpdateOperation | DeleteOperation | otherOperation; - - -EString returns ecore::EString: - STRING | ID; - - -Parameter returns Parameter: - (required?='required')? - 'Parameter' - '{' - ('description' description=EString)? - 'datatype' datatype=[DataType|EString] - '}'; - -ReadOperation returns ReadOperation: - 'ReadOperation' - name=EString - '{' - ('description' description=EString)? - ('urlSuffix' urlSuffix=EString)? - ('response' response=[DataType|EString])? - ('parameters' '{' parameters+=Parameter ( "," parameters+=Parameter)* '}')? - '}'; - -CreateOperation returns CreateOperation: - 'CreateOperation' - name=EString - '{' - ('description' description=EString)? - ('urlSuffix' urlSuffix=EString)? - ('response' response=[DataType|EString])? - ('parameters' '{' parameters+=Parameter ( "," parameters+=Parameter)* '}')? - '}'; - -UpdateOperation returns UpdateOperation: - 'UpdateOperation' - name=EString - '{' - ('description' description=EString)? - ('urlSuffix' urlSuffix=EString)? - ('response' response=[DataType|EString])? - ('parameters' '{' parameters+=Parameter ( "," parameters+=Parameter)* '}')? - '}'; - -DeleteOperation returns DeleteOperation: - 'DeleteOperation' - name=EString - '{' - ('description' description=EString)? - ('urlSuffix' urlSuffix=EString)? - ('response' response=[DataType|EString])? - ('parameters' '{' parameters+=Parameter ( "," parameters+=Parameter)* '}')? - '}'; - -otherOperation returns otherOperation: - 'otherOperation' - name=EString - '{' - ('description' description=EString)? - ('urlSuffix' urlSuffix=EString)? - ('operation' operation=EString)? - ('response' response=[DataType|EString])? - ('parameters' '{' parameters+=Parameter ( "," parameters+=Parameter)* '}') - '}'; - -EBoolean returns ecore::EBoolean: - 'true' | 'false'; - -ObjectDataType returns ObjectDataType: - (required?='required')? - 'ObjectDataType' - name=EString - '{' - 'datatypes' '(' datatypes+=[DataType|EString] ( "," datatypes+=[DataType|EString])* ')' - '}'; - -CollectionDataType returns CollectionDataType: - (required?='required')? - 'CollectionDataType' - name=EString - '{' - 'listItem' listItem=[DataType|EString] - '}'; - -StringData returns StringData: - {StringData} - (required?='required')? - 'StringData' - name=EString; - -IntegerData returns IntegerData: - {IntegerData} - (required?='required')? - 'IntegerData' - name=EString; - -FloatData returns FloatData: - {FloatData} - (required?='required')? - 'FloatData' - name=EString; - -BooleanData returns BooleanData: - {BooleanData} - (required?='required')? - 'BooleanData' - name=EString; - -ByteData returns ByteData: - {ByteData} - (required?='required')? - 'ByteData' - name=EString; diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/33/f09b9ac97544001f1c4da34d94bbd8c4 b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/33/f09b9ac97544001f1c4da34d94bbd8c4 new file mode 100644 index 0000000000000000000000000000000000000000..fe203d9e7696ee8428efe89febddcdba1e605513 --- /dev/null +++ b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/33/f09b9ac97544001f1c4da34d94bbd8c4 @@ -0,0 +1,198 @@ +package org.tfranke.webservice.dsl.generator + +import org.eclipse.emf.ecore.resource.Resource +import org.eclipse.xtext.generator.AbstractGenerator +import org.eclipse.xtext.generator.IFileSystemAccess2 +import webservice.API +import webservice.Operation +import webservice.ReadOperation +import java.util.Map +import java.util.List +import java.util.HashMap +import webservice.Parameter +import webservice.CreateOperation +import webservice.UpdateOperation +import webservice.DeleteOperation +import webservice.DataType +import webservice.StringData +import webservice.IntegerData +import webservice.BooleanData +import webservice.FloatData +import webservice.CollectionDataType +import webservice.ObjectDataType +import com.fasterxml.jackson.databind.ObjectMapper +import java.util.ArrayList +import java.util.LinkedHashMap +import java.time.LocalDateTime +import java.time.format.DateTimeFormatter + +class TransconnectRepositoryCreator { + + def static createRepository(API api, IFileSystemAccess2 fsa) { + var List<String> fileNames = new ArrayList() + var folderName = api.name + //create resource file for each operation + for (Operation operation : api.operations) { + var fileName = getHttpMethodFromOperation(operation) + " " + operation.name + ".xsl"; + fileNames.add(fileName) + fsa.generateFile( "repositories/" + folderName + "/resources/" + fileName , createResourceFile(operation, api)); + } + //create repositoryXML file + fsa.generateFile( "repositories/" + folderName + "/repository.xml", createRepositoryXML(api, fileNames, folderName)); + } + + + def static createResourceFile(Operation operation, API api) { + + var List<ObjectDataType> contentObjects = new ArrayList(); + var List<Parameter> queryParams = new ArrayList(); + + for (Parameter param : operation.parameters) { + var DataType datatype = param.datatype + if (datatype instanceof ObjectDataType) { + contentObjects.add(datatype) + } else { + queryParams.add(param) + } + } + + ''' + <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> + <xsl:template match="/"> + <ROOT> + <REQUEST CONTENT-TYPE="application/json" EMBED="true" NAME="«operation.name»" OPERATION="«getHttpMethodFromOperation(operation)»" URL="«operation.urlSuffix»"> + <PARAMS> + «FOR Parameter param : queryParams» + «IF param.required» + <!-- required --> + «ENDIF» + <PARAM NAME="«param.datatype.name»">«getTypeOfData(param.datatype)»</PARAM> + + «ENDFOR» + </PARAMS> + «IF !contentObjects.empty» + <CONTENT> + «FOR ObjectDataType object : contentObjects SEPARATOR ","» + «resolveObjectDatatypeToJson(object)» + <!-- required content: «FOR DataType datatype : object.datatypes SEPARATOR ","»«IF datatype.required»«datatype.name» «ENDIF»«ENDFOR» --> + «ENDFOR» + </CONTENT> + + «ENDIF» + </REQUEST> + </ROOT> + </xsl:template> + </xsl:stylesheet> + + ''' + } + + + def static createRepositoryXML(API api, List<String> fileNames, String folderName) { + + var int id = 100 + var LocalDateTime dateTimeNow = LocalDateTime.now() + var DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm:ss") + var String dateTimeNowFormatted = dateTimeNow.format(formatter) + + ''' + <?xml version="1.0" encoding="UTF-8" standalone="no"?> + <REPOSITORY> + <RESOURCES> + <RESOURCE EMPTYFOLDER="true" FILENAME="«folderName»" ID="«id»" IMPORT="true" NAME="SwaggerPetstore"> + <DESCRIPTION/> + </RESOURCE> + «FOR String fileName : fileNames» + <RESOURCE FILENAME="«folderName»/«fileName»" ID="«id += 1»" IMPORT="true" LASTMODIFIED="«dateTimeNowFormatted»" NAME="«fileName»" TYPE="XsltDocument"> + <DESCRIPTION/> + «ENDFOR» + </RESOURCES> + + <ADAPTERTYPES> + <ADAPTERTYPE FACTORY="com.sqlgmbh.tc.adapter.http.AdapterFactory" ID="30" IMPORT="false"/> + </ADAPTERTYPES> + + <ADAPTERS> + <ADAPTER FACTORY="com.sqlgmbh.tc.adapter.http.AdapterFactory" ID="80" IMPORT="true" NAME="«api.name»" OUTBOUND="true" SUBTYPE="Default" TYPE_ID="30"> + <DESCRIPTION/> + <PROPERTIES> + <PROPERTY NAME="connection.maxIdle">10</PROPERTY> + <PROPERTY NAME="failed.request.content.length">100</PROPERTY> + <PROPERTY NAME="http.statuscode.check">false</PROPERTY> + <PROPERTY NAME="lib.log.verbose">false</PROPERTY> + <PROPERTY NAME="requestEncoding">UTF-8</PROPERTY> + <PROPERTY NAME="responseEncoding">ISO-8859-1</PROPERTY> + <PROPERTY NAME="trust.selfsigned">false</PROPERTY> + <PROPERTY NAME="url.outbound">«api.url»</PROPERTY> + <PROPERTY NAME="xml.invalidChars">Error</PROPERTY> + </PROPERTIES> + </ADAPTER> + </ADAPTERS> + </REPOSITORY> + + ''' + } + + + def static String resolveObjectDatatypeToJson(ObjectDataType object) { + var ObjectMapper mapper = new ObjectMapper(); + var Map<String, String> mapOfJsonRepresenation = new LinkedHashMap(); + + for (DataType datatype : object.datatypes) { + mapOfJsonRepresenation.put(datatype.name , getTypeOfData(datatype)) + } + + //return json + return mapper.writerWithDefaultPrettyPrinter().writeValueAsString(mapOfJsonRepresenation) + + } + + + /** + * This method returns the associated HTTP-Method for an Operation object. + */ + def static String getHttpMethodFromOperation(Operation operation){ + if(operation instanceof ReadOperation) { + return "GET" + } + if(operation instanceof CreateOperation) { + return "POST" + } + if(operation instanceof UpdateOperation) { + return "PUT" + } + if(operation instanceof DeleteOperation) { + return "DELETE" + } + return "other" // + } + + /** + * This methods returns type of the given data. + */ + def static String getTypeOfData(DataType datatype) { + if (datatype instanceof StringData) { + return "string" + } + if (datatype instanceof IntegerData) { + return "integer" + } + if (datatype instanceof BooleanData) { + return "boolean" + } + if (datatype instanceof FloatData) { + return "float" + } + if (datatype instanceof ObjectDataType) { + return "object: " + datatype.name + } + if (datatype instanceof CollectionDataType) { + return "list of: " + datatype.listItem + } + } + +} + + + + diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/35/f09201857544001f1c4da34d94bbd8c4 b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/35/f09201857544001f1c4da34d94bbd8c4 new file mode 100644 index 0000000000000000000000000000000000000000..b50e0be00fc4c16b714424bd7e9a36605862d1b4 --- /dev/null +++ b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/35/f09201857544001f1c4da34d94bbd8c4 @@ -0,0 +1,193 @@ +package org.tfranke.webservice.dsl.generator + +import org.eclipse.emf.ecore.resource.Resource +import org.eclipse.xtext.generator.AbstractGenerator +import org.eclipse.xtext.generator.IFileSystemAccess2 +import webservice.API +import webservice.Operation +import webservice.ReadOperation +import java.util.Map +import java.util.List +import java.util.HashMap +import webservice.Parameter +import webservice.CreateOperation +import webservice.UpdateOperation +import webservice.DeleteOperation +import webservice.DataType +import webservice.StringData +import webservice.IntegerData +import webservice.BooleanData +import webservice.FloatData +import webservice.CollectionDataType +import webservice.ObjectDataType +import com.fasterxml.jackson.databind.ObjectMapper +import java.util.ArrayList +import java.util.LinkedHashMap + +class TransconnectRepositoryCreator { + + def static createRepository(API api, IFileSystemAccess2 fsa) { + var List<String> fileNames = new ArrayList() + var folderName = api.name + //create resource file for each operation + for (Operation operation : api.operations) { + var fileName = getHttpMethodFromOperation(operation) + " " + operation.name + ".xsl"; + fileNames.add(fileName) + fsa.generateFile( "repositories/" + folderName + "/resources/" + fileName , createResourceFile(operation, api)); + } + //create repositoryXML file + fsa.generateFile( "repositories/" + folderName + "/repository.xml", createRepositoryXML(api, fileNames, folderName)); + } + + + def static createResourceFile(Operation operation, API api) { + + var List<ObjectDataType> contentObjects = new ArrayList(); + var List<Parameter> queryParams = new ArrayList(); + + for (Parameter param : operation.parameters) { + var DataType datatype = param.datatype + if (datatype instanceof ObjectDataType) { + contentObjects.add(datatype) + } else { + queryParams.add(param) + } + } + + ''' + <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> + <xsl:template match="/"> + <ROOT> + <REQUEST CONTENT-TYPE="application/json" EMBED="true" NAME="«operation.name»" OPERATION="«getHttpMethodFromOperation(operation)»" URL="«operation.urlSuffix»"> + <PARAMS> + «FOR Parameter param : queryParams» + «IF param.required» + <!-- required --> + «ENDIF» + <PARAM NAME="«param.datatype.name»">«getTypeOfData(param.datatype)»</PARAM> + + «ENDFOR» + </PARAMS> + «IF !contentObjects.empty» + <CONTENT> + «FOR ObjectDataType object : contentObjects SEPARATOR ","» + «resolveObjectDatatypeToJson(object)» + <!-- required content: «FOR DataType datatype : object.datatypes SEPARATOR ","»«IF datatype.required»«datatype.name» «ENDIF»«ENDFOR» --> + «ENDFOR» + </CONTENT> + + «ENDIF» + </REQUEST> + </ROOT> + </xsl:template> + </xsl:stylesheet> + + ''' + } + + + def static createRepositoryXML(API api, List<String> fileNames, String folderName) { + + var int id = 100 + + ''' + <?xml version="1.0" encoding="UTF-8" standalone="no"?> + <REPOSITORY> + <RESOURCES> + <RESOURCE EMPTYFOLDER="true" FILENAME="«folderName»" ID="«id»" IMPORT="true" NAME="SwaggerPetstore"> + <DESCRIPTION/> + </RESOURCE> + «FOR String fileName : fileNames» + <RESOURCE FILENAME="«folderName»/«fileName»" ID="«id += 1»" IMPORT="true" LASTMODIFIED="01.04.2024 23:59:59" NAME="«fileName»" TYPE="XsltDocument"> + <DESCRIPTION/> + «ENDFOR» + </RESOURCES> + + <ADAPTERTYPES> + <ADAPTERTYPE FACTORY="com.sqlgmbh.tc.adapter.http.AdapterFactory" ID="30" IMPORT="false"/> + </ADAPTERTYPES> + + <ADAPTERS> + <ADAPTER FACTORY="com.sqlgmbh.tc.adapter.http.AdapterFactory" ID="80" IMPORT="true" NAME="«api.name»" OUTBOUND="true" SUBTYPE="Default" TYPE_ID="30"> + <DESCRIPTION/> + <PROPERTIES> + <PROPERTY NAME="connection.maxIdle">10</PROPERTY> + <PROPERTY NAME="failed.request.content.length">100</PROPERTY> + <PROPERTY NAME="http.statuscode.check">false</PROPERTY> + <PROPERTY NAME="lib.log.verbose">false</PROPERTY> + <PROPERTY NAME="requestEncoding">UTF-8</PROPERTY> + <PROPERTY NAME="responseEncoding">ISO-8859-1</PROPERTY> + <PROPERTY NAME="trust.selfsigned">false</PROPERTY> + <PROPERTY NAME="url.outbound">«api.url»</PROPERTY> + <PROPERTY NAME="xml.invalidChars">Error</PROPERTY> + </PROPERTIES> + </ADAPTER> + </ADAPTERS> + </REPOSITORY> + + ''' + } + + + def static String resolveObjectDatatypeToJson(ObjectDataType object) { + var ObjectMapper mapper = new ObjectMapper(); + var Map<String, String> mapOfJsonRepresenation = new LinkedHashMap(); + + for (DataType datatype : object.datatypes) { + mapOfJsonRepresenation.put(datatype.name , getTypeOfData(datatype)) + } + + //return json + return mapper.writerWithDefaultPrettyPrinter().writeValueAsString(mapOfJsonRepresenation) + + } + + + /** + * This method returns the associated HTTP-Method for an Operation object. + */ + def static String getHttpMethodFromOperation(Operation operation){ + if(operation instanceof ReadOperation) { + return "GET" + } + if(operation instanceof CreateOperation) { + return "POST" + } + if(operation instanceof UpdateOperation) { + return "PUT" + } + if(operation instanceof DeleteOperation) { + return "DELETE" + } + return "other" // + } + + /** + * This methods returns type of the given data. + */ + def static String getTypeOfData(DataType datatype) { + if (datatype instanceof StringData) { + return "string" + } + if (datatype instanceof IntegerData) { + return "integer" + } + if (datatype instanceof BooleanData) { + return "boolean" + } + if (datatype instanceof FloatData) { + return "float" + } + if (datatype instanceof ObjectDataType) { + return "object: " + datatype.name + } + if (datatype instanceof CollectionDataType) { + return "list of: " + datatype.listItem + } + } + +} + + + + diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/43/d05cb8aa7b44001f1c4da34d94bbd8c4 b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/43/d05cb8aa7b44001f1c4da34d94bbd8c4 new file mode 100644 index 0000000000000000000000000000000000000000..9a2416533fcb10b2ee7b31084466f3cd371e70ef --- /dev/null +++ b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/43/d05cb8aa7b44001f1c4da34d94bbd8c4 @@ -0,0 +1,207 @@ +package org.tfranke.webservice.dsl.generator + +import org.eclipse.xtext.generator.IFileSystemAccess2 +import webservice.API +import webservice.Operation +import webservice.ReadOperation +import java.util.Map +import java.util.List +import webservice.Parameter +import webservice.CreateOperation +import webservice.UpdateOperation +import webservice.DeleteOperation +import webservice.DataType +import webservice.StringData +import webservice.IntegerData +import webservice.BooleanData +import webservice.FloatData +import webservice.CollectionDataType +import webservice.ObjectDataType +import com.fasterxml.jackson.databind.ObjectMapper +import java.util.ArrayList +import java.util.LinkedHashMap +import java.time.LocalDateTime +import java.time.format.DateTimeFormatter + +/** + * This class contains methods to create a Transconnect repository from a Webservice Model. + */ +class TransconnectRepositoryCreator { + + /** + * Creates a Transconnect repository for the given Webservice Model. + */ + def static createRepository(API api, IFileSystemAccess2 fsa) { + var List<String> fileNames = new ArrayList() + var folderName = api.name + //create resource file for each operation + for (Operation operation : api.operations) { + var fileName = getHttpMethodFromOperation(operation) + " " + operation.name + ".xsl"; + fileNames.add(fileName) + fsa.generateFile( "repositories/" + folderName + "/resources/" + folderName + "/" + fileName , createResourceFile(operation, api)); + } + //create repositoryXML file + fsa.generateFile( "repositories/" + folderName + "/repository.xml", createRepositoryXML(api, fileNames, folderName)); + } + + /** + * Creates the contents of a resource file for the given Operation. + */ + def static createResourceFile(Operation operation, API api) { + + var List<ObjectDataType> contentObjects = new ArrayList(); + var List<Parameter> queryParams = new ArrayList(); + + for (Parameter param : operation.parameters) { + var DataType datatype = param.datatype + if (datatype instanceof ObjectDataType) { + contentObjects.add(datatype) + } else { + queryParams.add(param) + } + } + + ''' + <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> + <xsl:template match="/"> + <ROOT> + <REQUEST CONTENT-TYPE="application/json" EMBED="true" NAME="«operation.name»" OPERATION="«getHttpMethodFromOperation(operation)»" URL="«operation.urlSuffix»"> + <PARAMS> + «FOR Parameter param : queryParams» + «IF param.required» + <!-- required --> + «ENDIF» + <PARAM NAME="«param.datatype.name»">«getTypeOfData(param.datatype)»</PARAM> + + «ENDFOR» + </PARAMS> + «IF !contentObjects.empty» + <CONTENT> + «FOR ObjectDataType object : contentObjects SEPARATOR ","» + «resolveObjectDatatypeToJson(object)» + <!-- required content: «FOR DataType datatype : object.datatypes SEPARATOR ","»«IF datatype.required»«datatype.name» «ENDIF»«ENDFOR» --> + «ENDFOR» + </CONTENT> + + «ENDIF» + </REQUEST> + </ROOT> + </xsl:template> + </xsl:stylesheet> + + ''' + } + + /** + * Creates the contents of the repository.xml file for the given API. + */ + def static createRepositoryXML(API api, List<String> fileNames, String folderName) { + + var int id = 100 + var LocalDateTime dateTimeNow = LocalDateTime.now() + var DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm:ss") + var String dateTimeNowFormatted = dateTimeNow.format(formatter) + + ''' + <?xml version="1.0" encoding="UTF-8" standalone="no"?> + <REPOSITORY> + <RESOURCES> + <RESOURCE EMPTYFOLDER="true" FILENAME="«folderName»" ID="«id»" IMPORT="true" NAME="SwaggerPetstore"> + <DESCRIPTION/> + </RESOURCE> + «FOR String fileName : fileNames» + <RESOURCE FILENAME="«folderName»/«fileName»" ID="«id += 1»" IMPORT="true" LASTMODIFIED="«dateTimeNowFormatted»" NAME="«fileName»" TYPE="XsltDocument"> + <DESCRIPTION/> + </RESOURCE> + «ENDFOR» + </RESOURCES> + + <ADAPTERTYPES> + <ADAPTERTYPE FACTORY="com.sqlgmbh.tc.adapter.http.AdapterFactory" ID="30" IMPORT="false"/> + </ADAPTERTYPES> + + <ADAPTERS> + <ADAPTER FACTORY="com.sqlgmbh.tc.adapter.http.AdapterFactory" ID="80" IMPORT="true" NAME="«api.name»" OUTBOUND="true" SUBTYPE="Default" TYPE_ID="30"> + <DESCRIPTION/> + <PROPERTIES> + <PROPERTY NAME="connection.maxIdle">10</PROPERTY> + <PROPERTY NAME="failed.request.content.length">100</PROPERTY> + <PROPERTY NAME="http.statuscode.check">false</PROPERTY> + <PROPERTY NAME="lib.log.verbose">false</PROPERTY> + <PROPERTY NAME="requestEncoding">UTF-8</PROPERTY> + <PROPERTY NAME="responseEncoding">ISO-8859-1</PROPERTY> + <PROPERTY NAME="trust.selfsigned">false</PROPERTY> + <PROPERTY NAME="url.outbound">«api.url»</PROPERTY> + <PROPERTY NAME="xml.invalidChars">Error</PROPERTY> + </PROPERTIES> + </ADAPTER> + </ADAPTERS> + </REPOSITORY> + + ''' + } + + /** + * Creates the JSON representation of an ObjectDataType from the API Model. + */ + def static String resolveObjectDatatypeToJson(ObjectDataType object) { + var ObjectMapper mapper = new ObjectMapper(); + var Map<String, String> mapOfJsonRepresenation = new LinkedHashMap(); + + for (DataType datatype : object.datatypes) { + mapOfJsonRepresenation.put(datatype.name , getTypeOfData(datatype)) + } + + //return json + return mapper.writerWithDefaultPrettyPrinter().writeValueAsString(mapOfJsonRepresenation) + + } + + + /** + * This method returns the associated HTTP-Method for an Operation object. + */ + def static String getHttpMethodFromOperation(Operation operation){ + if(operation instanceof ReadOperation) { + return "GET" + } + if(operation instanceof CreateOperation) { + return "POST" + } + if(operation instanceof UpdateOperation) { + return "PUT" + } + if(operation instanceof DeleteOperation) { + return "DELETE" + } + } + + /** + * This methods returns type of the given data. + */ + def static String getTypeOfData(DataType datatype) { + if (datatype instanceof StringData) { + return "string" + } + if (datatype instanceof IntegerData) { + return "integer" + } + if (datatype instanceof BooleanData) { + return "boolean" + } + if (datatype instanceof FloatData) { + return "float" + } + if (datatype instanceof ObjectDataType) { + return "object: " + datatype.name + } + if (datatype instanceof CollectionDataType) { + return "list of: " + datatype.listItem.name + } + } + +} + + + + diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/46/f00f39f67244001f1c4da34d94bbd8c4 b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/46/f00f39f67244001f1c4da34d94bbd8c4 new file mode 100644 index 0000000000000000000000000000000000000000..bf623ad7b5855a0cf423b8f62044a27917ac7889 --- /dev/null +++ b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/46/f00f39f67244001f1c4da34d94bbd8c4 @@ -0,0 +1,156 @@ +package org.tfranke.webservice.dsl.generator + +import org.eclipse.emf.ecore.resource.Resource +import org.eclipse.xtext.generator.AbstractGenerator +import org.eclipse.xtext.generator.IFileSystemAccess2 +import org.eclipse.xtext.generator.IGeneratorContext +import webservice.API +import webservice.Operation +import webservice.ReadOperation +import java.util.Map +import java.util.List +import java.util.HashMap +import webservice.Parameter +import webservice.CreateOperation +import webservice.UpdateOperation +import webservice.DeleteOperation +import webservice.DataType +import webservice.StringData +import webservice.IntegerData +import webservice.BooleanData +import webservice.FloatData +import webservice.CollectionDataType +import webservice.ObjectDataType +import com.fasterxml.jackson.databind.ObjectMapper +import java.util.ArrayList +import java.util.regex.Pattern +import java.util.regex.Matcher +import java.util.LinkedHashMap + +class TransconnectRepositoryCreator { + + + def static createRepository(API api, IFileSystemAccess2 fsa) { + for (Operation operation : api.operations) { + var fileName = getHttpMethodFromOperation(operation) + " " + operation.name; + fsa.generateFile( "repositories/" + api.name + "/resources/" + fileName + ".xsl" , createResourceFile(operation, api)); + } + + //fsa.generateFile( "repositories/" + api.name + "/repository.xml", createRepositoryXML(api)); + } + + + def static createResourceFile(Operation operation, API api) { + + var List<ObjectDataType> contentObjects = new ArrayList(); + var List<Parameter> queryParams = new ArrayList(); + + for (Parameter param : operation.parameters) { + var DataType datatype = param.datatype + if (datatype instanceof ObjectDataType) { + contentObjects.add(datatype) + } else { + queryParams.add(param) + } + } + + ''' + <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> + <xsl:template match="/"> + <ROOT> + <REQUEST CONTENT-TYPE="application/json" EMBED="true" NAME="«operation.name»" OPERATION="«getHttpMethodFromOperation(operation)»" URL="«operation.urlSuffix»"> + <PARAMS> + «FOR Parameter param : queryParams» + «IF param.required» + <!-- required --> + «ENDIF» + <PARAM NAME="«param.datatype.name»">«getTypeOfData(param.datatype)»</PARAM> + + «ENDFOR» + </PARAMS> + «IF !contentObjects.empty» + <CONTENT> + «FOR ObjectDataType object : contentObjects SEPARATOR ","» + «resolveObjectDatatypeToJson(object)» + <!-- required content: «FOR DataType datatype : object.datatypes SEPARATOR ","»«IF datatype.required»«datatype.name» «ENDIF»«ENDFOR» --> + «ENDFOR» + </CONTENT> + + «ENDIF» + </REQUEST> + </ROOT> + </xsl:template> + </xsl:stylesheet> + + ''' + } + + + def static createRepositoryXML(API api) { + throw new UnsupportedOperationException("TODO: auto-generated method stub") + + } + + + def static String resolveObjectDatatypeToJson(ObjectDataType object) { + var ObjectMapper mapper = new ObjectMapper(); + var Map<String, String> mapOfJsonRepresenation = new LinkedHashMap(); + + for (DataType datatype : object.datatypes) { + mapOfJsonRepresenation.put(datatype.name , getTypeOfData(datatype)) + } + + //return json + return mapper.writerWithDefaultPrettyPrinter().writeValueAsString(mapOfJsonRepresenation) + + } + + + /** + * This method returns the associated HTTP-Method for an Operation object. + */ + def static String getHttpMethodFromOperation(Operation operation){ + if(operation instanceof ReadOperation) { + return "GET" + } + if(operation instanceof CreateOperation) { + return "POST" + } + if(operation instanceof UpdateOperation) { + return "PUT" + } + if(operation instanceof DeleteOperation) { + return "DELETE" + } + return "other" // + } + + /** + * This methods returns type of the given data. + */ + def static String getTypeOfData(DataType datatype) { + if (datatype instanceof StringData) { + return "string" + } + if (datatype instanceof IntegerData) { + return "integer" + } + if (datatype instanceof BooleanData) { + return "boolean" + } + if (datatype instanceof FloatData) { + return "float" + } + if (datatype instanceof ObjectDataType) { + return "object: " + datatype.name + } + if (datatype instanceof CollectionDataType) { + return "list of: " + datatype.listItem + } + } + +} + + + + diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/5e/40c2a1be7144001f1c4da34d94bbd8c4 b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/5e/40c2a1be7144001f1c4da34d94bbd8c4 new file mode 100644 index 0000000000000000000000000000000000000000..ff5a405dad4856799226981d9cbec534e6fde6ee --- /dev/null +++ b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/5e/40c2a1be7144001f1c4da34d94bbd8c4 @@ -0,0 +1,158 @@ +package org.tfranke.webservice.dsl.generator + +import org.eclipse.emf.ecore.resource.Resource +import org.eclipse.xtext.generator.AbstractGenerator +import org.eclipse.xtext.generator.IFileSystemAccess2 +import org.eclipse.xtext.generator.IGeneratorContext +import webservice.API +import webservice.Operation +import webservice.ReadOperation +import java.util.Map +import java.util.List +import java.util.HashMap +import webservice.Parameter +import webservice.CreateOperation +import webservice.UpdateOperation +import webservice.DeleteOperation +import webservice.DataType +import webservice.StringData +import webservice.IntegerData +import webservice.BooleanData +import webservice.FloatData +import webservice.CollectionDataType +import webservice.ObjectDataType +import com.fasterxml.jackson.databind.ObjectMapper +import java.util.ArrayList +import java.util.regex.Pattern +import java.util.regex.Matcher +import java.util.LinkedHashMap + +class TransconnectRepositoryCreator { + + + def static createRepository(API api, IFileSystemAccess2 fsa) { + for (Operation operation : api.operations) { + var fileName = getHttpMethodFromOperation(operation) + " " + operation.name; + fsa.generateFile( "repositories/" + api.name + "/resources/" + fileName + ".xsl" , createResourceFile(operation, api)); + } + + fsa.generateFile( "repositories/" + api.name + "/repository.xml", createRepositoryXML(api)); + } + + + def static createRepositoryXML(API api) { + throw new UnsupportedOperationException("TODO: auto-generated method stub") + + } + + + def static createResourceFile(Operation operation, API api) { + + var List<ObjectDataType> contentObjects = new ArrayList(); + var List<Parameter> queryParams = new ArrayList(); + + for (Parameter param : operation.parameters) { + var DataType datatype = param.datatype + if (datatype instanceof ObjectDataType) { + contentObjects.add(datatype) + } else { + queryParams.add(param) + } + } + + //erstmal alle query parameter rausfiltern -> dann durchloopen. Parameter in path ignorieren! Und auch keine Body Parameter + //Content nur objects, keine arrays + ''' + <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> + <xsl:template match="/"> + <ROOT> + <REQUEST CONTENT-TYPE="application/json" EMBED="true" NAME="«operation.name»" OPERATION="«getHttpMethodFromOperation(operation)»" URL="«operation.urlSuffix»"> + <PARAMS> + «FOR Parameter param : queryParams» + «IF param.required» + <!-- required --> + «ENDIF» + <PARAM NAME="«param.datatype.name»">«getTypeOfData(param.datatype)»</PARAM> + + «ENDFOR» + </PARAMS> + «IF !contentObjects.empty» + <CONTENT> + «FOR ObjectDataType object : contentObjects SEPARATOR ","» + «resolveObjectDatatypeToJson(object)» + <!-- required content: «FOR DataType datatype : object.datatypes SEPARATOR ","»«IF datatype.required»«datatype.name» «ENDIF»«ENDFOR» --> + «ENDFOR» + </CONTENT> + + «ENDIF» + </REQUEST> + </ROOT> + </xsl:template> + </xsl:stylesheet> + + ''' + } + + + def static String resolveObjectDatatypeToJson(ObjectDataType object) { + var ObjectMapper mapper = new ObjectMapper(); + var Map<String, String> mapOfJsonRepresenation = new LinkedHashMap(); + + for (DataType datatype : object.datatypes) { + mapOfJsonRepresenation.put(datatype.name , getTypeOfData(datatype)) + } + + //return json + return mapper.writerWithDefaultPrettyPrinter().writeValueAsString(mapOfJsonRepresenation) + + } + + + /** + * This method returns the associated HTTP-Method for an Operation object. + */ + def static String getHttpMethodFromOperation(Operation operation){ + if(operation instanceof ReadOperation) { + return "GET" + } + if(operation instanceof CreateOperation) { + return "POST" + } + if(operation instanceof UpdateOperation) { + return "PUT" + } + if(operation instanceof DeleteOperation) { + return "DELETE" + } + return "other" // + } + + /** + * This methods returns the openApi json representation of different types of data. + */ + def static String getTypeOfData(DataType datatype) { + if (datatype instanceof StringData) { + return "string" + } + if (datatype instanceof IntegerData) { + return "integer" + } + if (datatype instanceof BooleanData) { + return "boolean" + } + if (datatype instanceof FloatData) { + return "float" + } + if (datatype instanceof ObjectDataType) { + return "object: " + datatype.name + } + if (datatype instanceof CollectionDataType) { + return "list: " + datatype.name + } + } + +} + + + + diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/6/60109c726944001f1c4da34d94bbd8c4 b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/6/60109c726944001f1c4da34d94bbd8c4 new file mode 100644 index 0000000000000000000000000000000000000000..8cf8d63261ae44967d1d6b2956fedac0178927aa --- /dev/null +++ b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/6/60109c726944001f1c4da34d94bbd8c4 @@ -0,0 +1,328 @@ +/* + * generated by Xtext 2.35.0 + */ +package org.tfranke.webservice.dsl.generator + +import org.eclipse.emf.ecore.resource.Resource +import org.eclipse.xtext.generator.AbstractGenerator +import org.eclipse.xtext.generator.IFileSystemAccess2 +import org.eclipse.xtext.generator.IGeneratorContext +import webservice.API +import webservice.Operation +import webservice.ReadOperation +import java.util.Map +import java.util.List +import java.util.HashMap +import webservice.Parameter +import webservice.CreateOperation +import webservice.UpdateOperation +import webservice.DeleteOperation +import webservice.DataType +import webservice.StringData +import webservice.IntegerData +import webservice.BooleanData +import webservice.FloatData +import webservice.CollectionDataType +import webservice.ObjectDataType +import com.fasterxml.jackson.databind.ObjectMapper +import java.util.ArrayList +import java.util.regex.Pattern +import java.util.regex.Matcher + +/** + * Generates code from your model files on save. + * + * See https://www.eclipse.org/Xtext/documentation/303_runtime_concepts.html#code-generation + */ +class WebserviceDSLGenerator extends AbstractGenerator { + + override void doGenerate(Resource res, IFileSystemAccess2 fsa, IGeneratorContext context ) { + for (API api : res.allContents.toIterable.filter(API)){ + fsa.generateFile( "openAPI/" + api.name + ".json", formatJson(generateOpenApi(api))) + TransconnectRepositoryCreator.createRepository(api) + } + } + + + /** + * This methods creates an openApi specification in Json form from an API Object. + */ + def String generateOpenApi(API api) { + val List<DataType> complexTypes = new ArrayList() + for (DataType datatype : api.datatypes) { + if (datatype instanceof ObjectDataType || datatype instanceof CollectionDataType) { + complexTypes.add(datatype) + } + } + + ''' + { + "openapi": "3.0.0", + "info": { + "title": "«api.name»", + "description": "«api.description»", + "version": "1.0.0" + }, + "servers": [ + { + "url": "«api.url»", + "description": "«api.description»" + } + ], + "paths": { + «createEndpoints(api)» + }«IF !complexTypes.isEmpty», + "components" : { + "schemas": { + «FOR DataType datatype : complexTypes SEPARATOR ','» + «IF datatype instanceof ObjectDataType» + «constructObjectDataTypeSchema(datatype)» + «ELSEIF datatype instanceof CollectionDataType» + «constructArrayDataTypeSchema(datatype)» + «ENDIF» + «ENDFOR» + } + } + «ENDIF» + } + ''' + } + + + /** + * This method creates the openApi Json representation of a schema of an object datatype. + */ + def String constructObjectDataTypeSchema(ObjectDataType object) { + val properties = object.datatypes + val List<DataType> requiredProperties = new ArrayList() + for(property : properties) { + if (property.required) { + requiredProperties.add(property) + } + } + + ''' + "«object.name»": { + "type": "object", + "properties": { + «FOR DataType property : properties SEPARATOR ','» + "«property.name»": { + «getTypeOfData(property)» + } + «ENDFOR» + }«IF !requiredProperties.isEmpty», + "required": [ + «FOR DataType property : requiredProperties SEPARATOR ','» + "«property.name»" + «ENDFOR» + ] + «ENDIF» + } + ''' + } + + /** + * This method creates the openApi Json representation of a schema of an array datatype. + */ + def constructArrayDataTypeSchema(CollectionDataType datatype) { + ''' + "«datatype.name»": { + "type": "array", + "items": { + «getTypeOfData(datatype.listItem)» + } + } + ''' + } + + /** + * This method creates the openApi Json representation of an endpoint. + */ + def createEndpoints(API api) { + val urlToOperation = mapUrlToOperations(api) + + ''' + «FOR String url : urlToOperation.keySet SEPARATOR ','» + "«url»": { + «FOR Operation operation : urlToOperation.get(url) SEPARATOR ','» + "«getHttpMethodFromOperation(operation)»": { + "summary": "«operation.description»", + "operationId": "«operation.name»", + «handleOperationParameters(operation, url)» + «IF operation.response !== null », + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + «getTypeOfData(operation.response)» + } + } + } + } + } + «ENDIF» + } + «ENDFOR» + } + «ENDFOR» + ''' + } + + /** + * Handles all request parameters for the given operation. Evaluates if: parameters belong to url path, + * if they are query parameters, or if they belong to the "requestBody". If there are multiple "requestBody" parameters they + * will be included in a "anyOf" tag. + */ + def String handleOperationParameters(Operation operation, String url) { + //typically objects and arrays belong to the request body in post, put, delete + val List<Parameter> requestBodyData = new ArrayList() + val List<Parameter> parameterData = new ArrayList() + + //check if operation is http get or delete method + if(operation instanceof ReadOperation || operation instanceof DeleteOperation) { + parameterData.addAll(operation.parameters) + } + //if post, put or delete: distinguish between request body and normal parameters + else { + for (Parameter parameter : operation.parameters) { + val DataType datatype = parameter.datatype + if (datatype instanceof ObjectDataType || datatype instanceof CollectionDataType) { + requestBodyData.add(parameter) + } + else { + parameterData.add(parameter) + } + } + } + + ''' + «IF !requestBodyData.isEmpty» + "requestBody": { + "content": { + "*/*": { + "schema": { + «IF requestBodyData.size > 1» + "anyOf": [ + «FOR Parameter parameter : requestBodyData SEPARATOR ','» + {«getTypeOfData(parameter.datatype)»} + «ENDFOR» + ] + «ELSE» + «getTypeOfData(requestBodyData.get(0).datatype)» + «ENDIF» + } + } + } + } + «ENDIF» + «IF !parameterData.isEmpty»«IF !requestBodyData.isEmpty»,«ENDIF» + "parameters": [ + «FOR Parameter parameter : parameterData SEPARATOR ','» + { + "name": "«parameter.datatype.name»", + "in": "«getParameterType(parameter, url)»", + "description": "«parameter.description»", + "required": «parameter.required», + "schema": { + «getTypeOfData(parameter.datatype)» + } + } + «ENDFOR» + ] + «ENDIF» + ''' + } + + /** + * This method returns a map that contains all urls as keys and a list of Operations belonging to that url. + */ + def Map<String, List<Operation>> mapUrlToOperations(API api) { + val Map<String, List<Operation>> urlToOperationsMap = new HashMap<String, List<Operation>>() + + for (operation : api.operations) { + val url = operation.urlSuffix + //if url already in map -> add operation to the list in map + if (urlToOperationsMap.containsKey(url)) { + urlToOperationsMap.get(url).add(operation) + } else { + //if url not in map -> add url and create new list + urlToOperationsMap.put(url, newArrayList(operation)) + } + } + + return urlToOperationsMap + } + + + /** + * This method evaluates whether the given parameter is a path or query parameter. + */ + def String getParameterType(Parameter parameter, String url) { + val List<String> urlParameter = new ArrayList() + val Pattern pattern = Pattern.compile("\\{([^}]*)\\}"); + val Matcher matcher = pattern.matcher(url); + + while (matcher.find()) { + urlParameter.add(matcher.group(1).toLowerCase); + } + + if (urlParameter.contains(parameter.datatype.name.toLowerCase)) { + return "path" + } + + return "query" + } + + /** + * This method returns the associated HTTP-Method for an Operation object. + */ + def String getHttpMethodFromOperation(Operation operation){ + if(operation instanceof ReadOperation) { + return "get" + } + if(operation instanceof CreateOperation) { + return "post" + } + if(operation instanceof UpdateOperation) { + return "put" + } + if(operation instanceof DeleteOperation) { + return "delete" + } + return "other" // + } + + /** + * This methods returns the openApi json representation of different types of data. + */ + def String getTypeOfData(DataType datatype) { + if (datatype instanceof StringData) { + return "\"type\": \"string\"" + } + if (datatype instanceof IntegerData) { + return "\"type\": \"integer\"" + } + if (datatype instanceof BooleanData) { + return "\"type\": \"boolean\"" + } + if (datatype instanceof FloatData) { + return "\"type\": \"float\"" + } + if (datatype instanceof ObjectDataType || datatype instanceof CollectionDataType) { + return "\"$ref\" : \"#/components/schemas/" + datatype.name + "\"" + } + } + + /** + * This methods formats the given Json string. + */ + def String formatJson(String unformattedString) { + val objectMapper = new ObjectMapper + val jsonObject = objectMapper.readValue(unformattedString, Object) + val prettyJson = objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(jsonObject); + return prettyJson; + } + +} diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/60/5059ac997b44001f1c4da34d94bbd8c4 b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/60/5059ac997b44001f1c4da34d94bbd8c4 new file mode 100644 index 0000000000000000000000000000000000000000..da9c22aec379bce2d5620aeb208a03cd3e829bc8 --- /dev/null +++ b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/60/5059ac997b44001f1c4da34d94bbd8c4 @@ -0,0 +1,207 @@ +package org.tfranke.webservice.dsl.generator + +import org.eclipse.xtext.generator.IFileSystemAccess2 +import webservice.API +import webservice.Operation +import webservice.ReadOperation +import java.util.Map +import java.util.List +import webservice.Parameter +import webservice.CreateOperation +import webservice.UpdateOperation +import webservice.DeleteOperation +import webservice.DataType +import webservice.StringData +import webservice.IntegerData +import webservice.BooleanData +import webservice.FloatData +import webservice.CollectionDataType +import webservice.ObjectDataType +import com.fasterxml.jackson.databind.ObjectMapper +import java.util.ArrayList +import java.util.LinkedHashMap +import java.time.LocalDateTime +import java.time.format.DateTimeFormatter + +/** + * This class contains methods to create a Transconnect repository from + */ +class TransconnectRepositoryCreator { + + /** + * Creates a Transconnect repository for the given API Model. + */ + def static createRepository(API api, IFileSystemAccess2 fsa) { + var List<String> fileNames = new ArrayList() + var folderName = api.name + //create resource file for each operation + for (Operation operation : api.operations) { + var fileName = getHttpMethodFromOperation(operation) + " " + operation.name + ".xsl"; + fileNames.add(fileName) + fsa.generateFile( "repositories/" + folderName + "/resources/" + folderName + "/" + fileName , createResourceFile(operation, api)); + } + //create repositoryXML file + fsa.generateFile( "repositories/" + folderName + "/repository.xml", createRepositoryXML(api, fileNames, folderName)); + } + + /** + * Creates the contents of a resource file for the given Operation. + */ + def static createResourceFile(Operation operation, API api) { + + var List<ObjectDataType> contentObjects = new ArrayList(); + var List<Parameter> queryParams = new ArrayList(); + + for (Parameter param : operation.parameters) { + var DataType datatype = param.datatype + if (datatype instanceof ObjectDataType) { + contentObjects.add(datatype) + } else { + queryParams.add(param) + } + } + + ''' + <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> + <xsl:template match="/"> + <ROOT> + <REQUEST CONTENT-TYPE="application/json" EMBED="true" NAME="«operation.name»" OPERATION="«getHttpMethodFromOperation(operation)»" URL="«operation.urlSuffix»"> + <PARAMS> + «FOR Parameter param : queryParams» + «IF param.required» + <!-- required --> + «ENDIF» + <PARAM NAME="«param.datatype.name»">«getTypeOfData(param.datatype)»</PARAM> + + «ENDFOR» + </PARAMS> + «IF !contentObjects.empty» + <CONTENT> + «FOR ObjectDataType object : contentObjects SEPARATOR ","» + «resolveObjectDatatypeToJson(object)» + <!-- required content: «FOR DataType datatype : object.datatypes SEPARATOR ","»«IF datatype.required»«datatype.name» «ENDIF»«ENDFOR» --> + «ENDFOR» + </CONTENT> + + «ENDIF» + </REQUEST> + </ROOT> + </xsl:template> + </xsl:stylesheet> + + ''' + } + + /** + * Creates the contents of the repository.xml file for the given API. + */ + def static createRepositoryXML(API api, List<String> fileNames, String folderName) { + + var int id = 100 + var LocalDateTime dateTimeNow = LocalDateTime.now() + var DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm:ss") + var String dateTimeNowFormatted = dateTimeNow.format(formatter) + + ''' + <?xml version="1.0" encoding="UTF-8" standalone="no"?> + <REPOSITORY> + <RESOURCES> + <RESOURCE EMPTYFOLDER="true" FILENAME="«folderName»" ID="«id»" IMPORT="true" NAME="SwaggerPetstore"> + <DESCRIPTION/> + </RESOURCE> + «FOR String fileName : fileNames» + <RESOURCE FILENAME="«folderName»/«fileName»" ID="«id += 1»" IMPORT="true" LASTMODIFIED="«dateTimeNowFormatted»" NAME="«fileName»" TYPE="XsltDocument"> + <DESCRIPTION/> + </RESOURCE> + «ENDFOR» + </RESOURCES> + + <ADAPTERTYPES> + <ADAPTERTYPE FACTORY="com.sqlgmbh.tc.adapter.http.AdapterFactory" ID="30" IMPORT="false"/> + </ADAPTERTYPES> + + <ADAPTERS> + <ADAPTER FACTORY="com.sqlgmbh.tc.adapter.http.AdapterFactory" ID="80" IMPORT="true" NAME="«api.name»" OUTBOUND="true" SUBTYPE="Default" TYPE_ID="30"> + <DESCRIPTION/> + <PROPERTIES> + <PROPERTY NAME="connection.maxIdle">10</PROPERTY> + <PROPERTY NAME="failed.request.content.length">100</PROPERTY> + <PROPERTY NAME="http.statuscode.check">false</PROPERTY> + <PROPERTY NAME="lib.log.verbose">false</PROPERTY> + <PROPERTY NAME="requestEncoding">UTF-8</PROPERTY> + <PROPERTY NAME="responseEncoding">ISO-8859-1</PROPERTY> + <PROPERTY NAME="trust.selfsigned">false</PROPERTY> + <PROPERTY NAME="url.outbound">«api.url»</PROPERTY> + <PROPERTY NAME="xml.invalidChars">Error</PROPERTY> + </PROPERTIES> + </ADAPTER> + </ADAPTERS> + </REPOSITORY> + + ''' + } + + /** + * Creates the JSON representation of an ObjectDataType from the API Model. + */ + def static String resolveObjectDatatypeToJson(ObjectDataType object) { + var ObjectMapper mapper = new ObjectMapper(); + var Map<String, String> mapOfJsonRepresenation = new LinkedHashMap(); + + for (DataType datatype : object.datatypes) { + mapOfJsonRepresenation.put(datatype.name , getTypeOfData(datatype)) + } + + //return json + return mapper.writerWithDefaultPrettyPrinter().writeValueAsString(mapOfJsonRepresenation) + + } + + + /** + * This method returns the associated HTTP-Method for an Operation object. + */ + def static String getHttpMethodFromOperation(Operation operation){ + if(operation instanceof ReadOperation) { + return "GET" + } + if(operation instanceof CreateOperation) { + return "POST" + } + if(operation instanceof UpdateOperation) { + return "PUT" + } + if(operation instanceof DeleteOperation) { + return "DELETE" + } + } + + /** + * This methods returns type of the given data. + */ + def static String getTypeOfData(DataType datatype) { + if (datatype instanceof StringData) { + return "string" + } + if (datatype instanceof IntegerData) { + return "integer" + } + if (datatype instanceof BooleanData) { + return "boolean" + } + if (datatype instanceof FloatData) { + return "float" + } + if (datatype instanceof ObjectDataType) { + return "object: " + datatype.name + } + if (datatype instanceof CollectionDataType) { + return "list of: " + datatype.listItem.name + } + } + +} + + + + diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/6f/507682bb7044001f1c4da34d94bbd8c4 b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/6f/507682bb7044001f1c4da34d94bbd8c4 new file mode 100644 index 0000000000000000000000000000000000000000..b4b5dae88aa112039f7ae579760b935b7b4589c3 --- /dev/null +++ b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/6f/507682bb7044001f1c4da34d94bbd8c4 @@ -0,0 +1,120 @@ +package org.tfranke.webservice.dsl.generator + +import org.eclipse.emf.ecore.resource.Resource +import org.eclipse.xtext.generator.AbstractGenerator +import org.eclipse.xtext.generator.IFileSystemAccess2 +import org.eclipse.xtext.generator.IGeneratorContext +import webservice.API +import webservice.Operation +import webservice.ReadOperation +import java.util.Map +import java.util.List +import java.util.HashMap +import webservice.Parameter +import webservice.CreateOperation +import webservice.UpdateOperation +import webservice.DeleteOperation +import webservice.DataType +import webservice.StringData +import webservice.IntegerData +import webservice.BooleanData +import webservice.FloatData +import webservice.CollectionDataType +import webservice.ObjectDataType +import com.fasterxml.jackson.databind.ObjectMapper +import java.util.ArrayList +import java.util.regex.Pattern +import java.util.regex.Matcher + +class TransconnectRepositoryCreator { + + + def static createRepository(API api, IFileSystemAccess2 fsa) { + for (Operation operation : api.operations) { + var fileName = getHttpMethodFromOperation(operation) + " " + operation.name; + fsa.generateFile( "repositories/" + api.name + "/resources/" + fileName + ".xsl" , createResourceFile(operation, api)); + } + + fsa.generateFile( "repositories/" + api.name + "/repository.xml", createRepositoryXML(api)); + } + + + def static createRepositoryXML(API api) { + throw new UnsupportedOperationException("TODO: auto-generated method stub") + } + + + def static createResourceFile(Operation operation, API api) { + + //erstmal alle query parameter rausfiltern -> dann durchloopen. Parameter in path ignorieren! Und auch keine Body Parameter + ''' + <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> + <xsl:template match="/"> + <ROOT> + <REQUEST CONTENT-TYPE="application/json" EMBED="true" NAME="«operation.name»" OPERATION="«getHttpMethodFromOperation(operation)»" URL="«operation.urlSuffix»"> + <PARAMS> + «FOR Parameter param : operation.parameters» + «IF param.required» + <!-- required --> + «ENDIF» + <PARAM NAME="«param.datatype.name»">«getTypeOfData(param.datatype)»</PARAM> + + «ENDFOR» + </PARAMS> + <CONTENT/> + <HEADER/> + </REQUEST> + </ROOT> + </xsl:template> + </xsl:stylesheet> + + ''' + + } + + + /** + * This method returns the associated HTTP-Method for an Operation object. + */ + def static String getHttpMethodFromOperation(Operation operation){ + if(operation instanceof ReadOperation) { + return "GET" + } + if(operation instanceof CreateOperation) { + return "POST" + } + if(operation instanceof UpdateOperation) { + return "PUT" + } + if(operation instanceof DeleteOperation) { + return "DELETE" + } + return "other" // + } + + /** + * This methods returns the openApi json representation of different types of data. + */ + def static String getTypeOfData(DataType datatype) { + if (datatype instanceof StringData) { + return "\"type\": \"string\"" + } + if (datatype instanceof IntegerData) { + return "\"type\": \"integer\"" + } + if (datatype instanceof BooleanData) { + return "\"type\": \"boolean\"" + } + if (datatype instanceof FloatData) { + return "\"type\": \"float\"" + } + if (datatype instanceof ObjectDataType || datatype instanceof CollectionDataType) { + return "\"$ref\" : \"#/components/schemas/" + datatype.name + "\"" + } + } + +} + + + + diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/6f/803264d37b44001f1c4da34d94bbd8c4 b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/6f/803264d37b44001f1c4da34d94bbd8c4 new file mode 100644 index 0000000000000000000000000000000000000000..08ecc92938080fb0e95ef88df27bfc971bc7bf39 --- /dev/null +++ b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/6f/803264d37b44001f1c4da34d94bbd8c4 @@ -0,0 +1,328 @@ +/* + * generated by Xtext 2.35.0 + */ +package org.tfranke.webservice.dsl.generator + +import org.eclipse.emf.ecore.resource.Resource +import org.eclipse.xtext.generator.AbstractGenerator +import org.eclipse.xtext.generator.IFileSystemAccess2 +import org.eclipse.xtext.generator.IGeneratorContext +import webservice.API +import webservice.Operation +import webservice.ReadOperation +import java.util.Map +import java.util.List +import java.util.HashMap +import webservice.Parameter +import webservice.CreateOperation +import webservice.UpdateOperation +import webservice.DeleteOperation +import webservice.DataType +import webservice.StringData +import webservice.IntegerData +import webservice.BooleanData +import webservice.FloatData +import webservice.CollectionDataType +import webservice.ObjectDataType +import com.fasterxml.jackson.databind.ObjectMapper +import java.util.ArrayList +import java.util.regex.Pattern +import java.util.regex.Matcher + +/** + * Generates code from your model files on save. + * + * See https://www.eclipse.org/Xtext/documentation/303_runtime_concepts.html#code-generation + */ +class WebserviceDSLGenerator extends AbstractGenerator { + + override void doGenerate(Resource res, IFileSystemAccess2 fsa, IGeneratorContext context ) { + for (API api : res.allContents.toIterable.filter(API)){ + fsa.generateFile( "openAPI/" + api.name + ".json", formatJson(generateOpenApi(api))) + TransconnectRepositoryCreator.createRepository(api, fsa) + } + } + + + /** + * This methods creates an openApi specification in Json form from an API Object. + */ + def String generateOpenApi(API api) { + val List<DataType> complexTypes = new ArrayList() + for (DataType datatype : api.datatypes) { + if (datatype instanceof ObjectDataType || datatype instanceof CollectionDataType) { + complexTypes.add(datatype) + } + } + + ''' + { + "openapi": "3.0.0", + "info": { + "title": "«api.name»", + "description": "«api.description»", + "version": "1.0.0" + }, + "servers": [ + { + "url": "«api.url»", + "description": "«api.description»" + } + ], + "paths": { + «createEndpoints(api)» + }«IF !complexTypes.isEmpty», + "components" : { + "schemas": { + «FOR DataType datatype : complexTypes SEPARATOR ','» + «IF datatype instanceof ObjectDataType» + «constructObjectDataTypeSchema(datatype)» + «ELSEIF datatype instanceof CollectionDataType» + «constructArrayDataTypeSchema(datatype)» + «ENDIF» + «ENDFOR» + } + } + «ENDIF» + } + ''' + } + + + /** + * This method creates the openApi Json representation of a schema of an object datatype. + */ + def String constructObjectDataTypeSchema(ObjectDataType object) { + val properties = object.datatypes + val List<DataType> requiredProperties = new ArrayList() + for(property : properties) { + if (property.required) { + requiredProperties.add(property) + } + } + + ''' + "«object.name»": { + "type": "object", + "properties": { + «FOR DataType property : properties SEPARATOR ','» + "«property.name»": { + «getTypeOfData(property)» + } + «ENDFOR» + }«IF !requiredProperties.isEmpty», + "required": [ + «FOR DataType property : requiredProperties SEPARATOR ','» + "«property.name»" + «ENDFOR» + ] + «ENDIF» + } + ''' + } + + /** + * This method creates the openApi Json representation of a schema of an array datatype. + */ + def constructArrayDataTypeSchema(CollectionDataType datatype) { + ''' + "«datatype.name»": { + "type": "array", + "items": { + «getTypeOfData(datatype.listItem)» + } + } + ''' + } + + /** + * This method creates the openApi Json representation of an endpoint. + */ + def createEndpoints(API api) { + val urlToOperation = mapUrlToOperations(api) + + ''' + «FOR String url : urlToOperation.keySet SEPARATOR ','» + "«url»": { + «FOR Operation operation : urlToOperation.get(url) SEPARATOR ','» + "«getHttpMethodFromOperation(operation)»": { + "summary": "«operation.description»", + "operationId": "«operation.name»", + «handleOperationParameters(operation, url)» + «IF operation.response !== null », + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + «getTypeOfData(operation.response)» + } + } + } + } + } + «ENDIF» + } + «ENDFOR» + } + «ENDFOR» + ''' + } + + /** + * Handles all request parameters for the given operation. Evaluates if: parameters belong to url path, + * if they are query parameters, or if they belong to the "requestBody". If there are multiple "requestBody" parameters they + * will be included in a "anyOf" tag. + */ + def String handleOperationParameters(Operation operation, String url) { + //typically objects and arrays belong to the request body in post, put, delete + val List<Parameter> requestBodyData = new ArrayList() + val List<Parameter> parameterData = new ArrayList() + + //check if operation is http get or delete method + if(operation instanceof ReadOperation || operation instanceof DeleteOperation) { + parameterData.addAll(operation.parameters) + } + //if post, put or delete: distinguish between request body and normal parameters + else { + for (Parameter parameter : operation.parameters) { + val DataType datatype = parameter.datatype + if (datatype instanceof ObjectDataType || datatype instanceof CollectionDataType) { + requestBodyData.add(parameter) + } + else { + parameterData.add(parameter) + } + } + } + + ''' + «IF !requestBodyData.isEmpty» + "requestBody": { + "content": { + "*/*": { + "schema": { + «IF requestBodyData.size > 1» + "anyOf": [ + «FOR Parameter parameter : requestBodyData SEPARATOR ','» + {«getTypeOfData(parameter.datatype)»} + «ENDFOR» + ] + «ELSE» + «getTypeOfData(requestBodyData.get(0).datatype)» + «ENDIF» + } + } + } + } + «ENDIF» + «IF !parameterData.isEmpty»«IF !requestBodyData.isEmpty»,«ENDIF» + "parameters": [ + «FOR Parameter parameter : parameterData SEPARATOR ','» + { + "name": "«parameter.datatype.name»", + "in": "«getParameterType(parameter, url)»", + "description": "«parameter.description»", + "required": «parameter.required», + "schema": { + «getTypeOfData(parameter.datatype)» + } + } + «ENDFOR» + ] + «ENDIF» + ''' + } + + /** + * This method returns a map that contains all urls as keys and a list of Operations belonging to that url. + */ + def Map<String, List<Operation>> mapUrlToOperations(API api) { + val Map<String, List<Operation>> urlToOperationsMap = new HashMap<String, List<Operation>>() + + for (operation : api.operations) { + val url = operation.urlSuffix + //if url already in map -> add operation to the list in map + if (urlToOperationsMap.containsKey(url)) { + urlToOperationsMap.get(url).add(operation) + } else { + //if url not in map -> add url and create new list + urlToOperationsMap.put(url, newArrayList(operation)) + } + } + + return urlToOperationsMap + } + + + /** + * This method evaluates whether the given parameter is a path or query parameter. + */ + def String getParameterType(Parameter parameter, String url) { + val List<String> urlParameter = new ArrayList() + val Pattern pattern = Pattern.compile("\\{([^}]*)\\}"); + val Matcher matcher = pattern.matcher(url); + + while (matcher.find()) { + urlParameter.add(matcher.group(1).toLowerCase); + } + + if (urlParameter.contains(parameter.datatype.name.toLowerCase)) { + return "path" + } + + return "query" + } + + /** + * This method returns the associated HTTP-Method for an Operation object. + */ + def String getHttpMethodFromOperation(Operation operation){ + if(operation instanceof ReadOperation) { + return "get" + } + if(operation instanceof CreateOperation) { + return "post" + } + if(operation instanceof UpdateOperation) { + return "put" + } + if(operation instanceof DeleteOperation) { + return "delete" + } + return "other" // + } + + /** + * This methods returns the openApi json representation of different types of data. + */ + def String getTypeOfData(DataType datatype) { + if (datatype instanceof StringData) { + return "\"type\": \"string\"" + } + if (datatype instanceof IntegerData) { + return "\"type\": \"integer\"" + } + if (datatype instanceof BooleanData) { + return "\"type\": \"boolean\"" + } + if (datatype instanceof FloatData) { + return "\"type\": \"float\"" + } + if (datatype instanceof ObjectDataType || datatype instanceof CollectionDataType) { + return "\"$ref\" : \"#/components/schemas/" + datatype.name + "\"" + } + } + + /** + * This methods formats the given Json string. + */ + def String formatJson(String unformattedString) { + val objectMapper = new ObjectMapper + val jsonObject = objectMapper.readValue(unformattedString, Object) + val prettyJson = objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(jsonObject); + return prettyJson; + } + +} diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/74/803228dd7b44001f1c4da34d94bbd8c4 b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/74/803228dd7b44001f1c4da34d94bbd8c4 new file mode 100644 index 0000000000000000000000000000000000000000..25fee149a5c3a31cff9211688c2ddd5bdc5ffe1e --- /dev/null +++ b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/74/803228dd7b44001f1c4da34d94bbd8c4 @@ -0,0 +1,327 @@ +/* + * generated by Xtext 2.35.0 + */ +package org.tfranke.webservice.dsl.generator + +import org.eclipse.emf.ecore.resource.Resource +import org.eclipse.xtext.generator.AbstractGenerator +import org.eclipse.xtext.generator.IFileSystemAccess2 +import org.eclipse.xtext.generator.IGeneratorContext +import webservice.API +import webservice.Operation +import webservice.ReadOperation +import java.util.Map +import java.util.List +import java.util.HashMap +import webservice.Parameter +import webservice.CreateOperation +import webservice.UpdateOperation +import webservice.DeleteOperation +import webservice.DataType +import webservice.StringData +import webservice.IntegerData +import webservice.BooleanData +import webservice.FloatData +import webservice.CollectionDataType +import webservice.ObjectDataType +import com.fasterxml.jackson.databind.ObjectMapper +import java.util.ArrayList +import java.util.regex.Pattern +import java.util.regex.Matcher + +/** + * Generates code from your model files on save. + * + * See https://www.eclipse.org/Xtext/documentation/303_runtime_concepts.html#code-generation + */ +class WebserviceDSLGenerator extends AbstractGenerator { + + override void doGenerate(Resource res, IFileSystemAccess2 fsa, IGeneratorContext context ) { + for (API api : res.allContents.toIterable.filter(API)){ + fsa.generateFile( "openAPI/" + api.name + ".json", formatJson(generateOpenApi(api))) + TransconnectRepositoryCreator.createRepository(api, fsa) + } + } + + /** + * This methods creates an openApi specification in Json form from an API Object. + */ + def String generateOpenApi(API api) { + val List<DataType> complexTypes = new ArrayList() + for (DataType datatype : api.datatypes) { + if (datatype instanceof ObjectDataType || datatype instanceof CollectionDataType) { + complexTypes.add(datatype) + } + } + + ''' + { + "openapi": "3.0.0", + "info": { + "title": "«api.name»", + "description": "«api.description»", + "version": "1.0.0" + }, + "servers": [ + { + "url": "«api.url»", + "description": "«api.description»" + } + ], + "paths": { + «createEndpoints(api)» + }«IF !complexTypes.isEmpty», + "components" : { + "schemas": { + «FOR DataType datatype : complexTypes SEPARATOR ','» + «IF datatype instanceof ObjectDataType» + «constructObjectDataTypeSchema(datatype)» + «ELSEIF datatype instanceof CollectionDataType» + «constructArrayDataTypeSchema(datatype)» + «ENDIF» + «ENDFOR» + } + } + «ENDIF» + } + ''' + } + + + /** + * This method creates the openApi Json representation of a schema of an object datatype. + */ + def String constructObjectDataTypeSchema(ObjectDataType object) { + val properties = object.datatypes + val List<DataType> requiredProperties = new ArrayList() + for(property : properties) { + if (property.required) { + requiredProperties.add(property) + } + } + + ''' + "«object.name»": { + "type": "object", + "properties": { + «FOR DataType property : properties SEPARATOR ','» + "«property.name»": { + «getTypeOfData(property)» + } + «ENDFOR» + }«IF !requiredProperties.isEmpty», + "required": [ + «FOR DataType property : requiredProperties SEPARATOR ','» + "«property.name»" + «ENDFOR» + ] + «ENDIF» + } + ''' + } + + /** + * This method creates the openApi Json representation of a schema of an array datatype. + */ + def constructArrayDataTypeSchema(CollectionDataType datatype) { + ''' + "«datatype.name»": { + "type": "array", + "items": { + «getTypeOfData(datatype.listItem)» + } + } + ''' + } + + /** + * This method creates the openApi Json representation of an endpoint. + */ + def createEndpoints(API api) { + val urlToOperation = mapUrlToOperations(api) + + ''' + «FOR String url : urlToOperation.keySet SEPARATOR ','» + "«url»": { + «FOR Operation operation : urlToOperation.get(url) SEPARATOR ','» + "«getHttpMethodFromOperation(operation)»": { + "summary": "«operation.description»", + "operationId": "«operation.name»", + «handleOperationParameters(operation, url)» + «IF operation.response !== null », + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + «getTypeOfData(operation.response)» + } + } + } + } + } + «ENDIF» + } + «ENDFOR» + } + «ENDFOR» + ''' + } + + /** + * Handles all request parameters for the given operation. Evaluates if: parameters belong to url path, + * if they are query parameters, or if they belong to the "requestBody". If there are multiple "requestBody" parameters they + * will be included in a "anyOf" tag. + */ + def String handleOperationParameters(Operation operation, String url) { + //typically objects and arrays belong to the request body in post, put, delete + val List<Parameter> requestBodyData = new ArrayList() + val List<Parameter> parameterData = new ArrayList() + + //check if operation is http get or delete method + if(operation instanceof ReadOperation || operation instanceof DeleteOperation) { + parameterData.addAll(operation.parameters) + } + //if post, put or delete: distinguish between request body and normal parameters + else { + for (Parameter parameter : operation.parameters) { + val DataType datatype = parameter.datatype + if (datatype instanceof ObjectDataType || datatype instanceof CollectionDataType) { + requestBodyData.add(parameter) + } + else { + parameterData.add(parameter) + } + } + } + + ''' + «IF !requestBodyData.isEmpty» + "requestBody": { + "content": { + "*/*": { + "schema": { + «IF requestBodyData.size > 1» + "anyOf": [ + «FOR Parameter parameter : requestBodyData SEPARATOR ','» + {«getTypeOfData(parameter.datatype)»} + «ENDFOR» + ] + «ELSE» + «getTypeOfData(requestBodyData.get(0).datatype)» + «ENDIF» + } + } + } + } + «ENDIF» + «IF !parameterData.isEmpty»«IF !requestBodyData.isEmpty»,«ENDIF» + "parameters": [ + «FOR Parameter parameter : parameterData SEPARATOR ','» + { + "name": "«parameter.datatype.name»", + "in": "«getParameterType(parameter, url)»", + "description": "«parameter.description»", + "required": «parameter.required», + "schema": { + «getTypeOfData(parameter.datatype)» + } + } + «ENDFOR» + ] + «ENDIF» + ''' + } + + /** + * This method returns a map that contains all urls as keys and a list of Operations belonging to that url. + */ + def Map<String, List<Operation>> mapUrlToOperations(API api) { + val Map<String, List<Operation>> urlToOperationsMap = new HashMap<String, List<Operation>>() + + for (operation : api.operations) { + val url = operation.urlSuffix + //if url already in map -> add operation to the list in map + if (urlToOperationsMap.containsKey(url)) { + urlToOperationsMap.get(url).add(operation) + } else { + //if url not in map -> add url and create new list + urlToOperationsMap.put(url, newArrayList(operation)) + } + } + + return urlToOperationsMap + } + + + /** + * This method evaluates whether the given parameter is a path or query parameter. + */ + def String getParameterType(Parameter parameter, String url) { + val List<String> urlParameter = new ArrayList() + val Pattern pattern = Pattern.compile("\\{([^}]*)\\}"); + val Matcher matcher = pattern.matcher(url); + + while (matcher.find()) { + urlParameter.add(matcher.group(1).toLowerCase); + } + + if (urlParameter.contains(parameter.datatype.name.toLowerCase)) { + return "path" + } + + return "query" + } + + /** + * This method returns the associated HTTP-Method for an Operation object. + */ + def String getHttpMethodFromOperation(Operation operation){ + if(operation instanceof ReadOperation) { + return "get" + } + if(operation instanceof CreateOperation) { + return "post" + } + if(operation instanceof UpdateOperation) { + return "put" + } + if(operation instanceof DeleteOperation) { + return "delete" + } + return "other" // + } + + /** + * This methods returns the openApi json representation of different types of data. + */ + def String getTypeOfData(DataType datatype) { + if (datatype instanceof StringData) { + return "\"type\": \"string\"" + } + if (datatype instanceof IntegerData) { + return "\"type\": \"integer\"" + } + if (datatype instanceof BooleanData) { + return "\"type\": \"boolean\"" + } + if (datatype instanceof FloatData) { + return "\"type\": \"float\"" + } + if (datatype instanceof ObjectDataType || datatype instanceof CollectionDataType) { + return "\"$ref\" : \"#/components/schemas/" + datatype.name + "\"" + } + } + + /** + * This methods formats the given Json string. + */ + def String formatJson(String unformattedString) { + val objectMapper = new ObjectMapper + val jsonObject = objectMapper.readValue(unformattedString, Object) + val prettyJson = objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(jsonObject); + return prettyJson; + } + +} diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/78/90e8ae1d7144001f1c4da34d94bbd8c4 b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/78/90e8ae1d7144001f1c4da34d94bbd8c4 new file mode 100644 index 0000000000000000000000000000000000000000..6f03eca5508b8326bd11ab8a4a65596c454ed0f1 --- /dev/null +++ b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/78/90e8ae1d7144001f1c4da34d94bbd8c4 @@ -0,0 +1,147 @@ +package org.tfranke.webservice.dsl.generator + +import org.eclipse.emf.ecore.resource.Resource +import org.eclipse.xtext.generator.AbstractGenerator +import org.eclipse.xtext.generator.IFileSystemAccess2 +import org.eclipse.xtext.generator.IGeneratorContext +import webservice.API +import webservice.Operation +import webservice.ReadOperation +import java.util.Map +import java.util.List +import java.util.HashMap +import webservice.Parameter +import webservice.CreateOperation +import webservice.UpdateOperation +import webservice.DeleteOperation +import webservice.DataType +import webservice.StringData +import webservice.IntegerData +import webservice.BooleanData +import webservice.FloatData +import webservice.CollectionDataType +import webservice.ObjectDataType +import com.fasterxml.jackson.databind.ObjectMapper +import java.util.ArrayList +import java.util.regex.Pattern +import java.util.regex.Matcher +import java.util.LinkedHashMap + +class TransconnectRepositoryCreator { + + + def static createRepository(API api, IFileSystemAccess2 fsa) { + for (Operation operation : api.operations) { + var fileName = getHttpMethodFromOperation(operation) + " " + operation.name; + fsa.generateFile( "repositories/" + api.name + "/resources/" + fileName + ".xsl" , createResourceFile(operation, api)); + } + + fsa.generateFile( "repositories/" + api.name + "/repository.xml", createRepositoryXML(api)); + } + + + def static createRepositoryXML(API api) { + throw new UnsupportedOperationException("TODO: auto-generated method stub") + } + + + def static createResourceFile(Operation operation, API api) { + + var List<ObjectDataType> contentObjects = new ArrayList(); + + //erstmal alle query parameter rausfiltern -> dann durchloopen. Parameter in path ignorieren! Und auch keine Body Parameter + //Content nur objects, keine arrays + ''' + <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> + <xsl:template match="/"> + <ROOT> + <REQUEST CONTENT-TYPE="application/json" EMBED="true" NAME="«operation.name»" OPERATION="«getHttpMethodFromOperation(operation)»" URL="«operation.urlSuffix»"> + <PARAMS> + «FOR Parameter param : operation.parameters» + «IF param.required» + <!-- required --> + «ENDIF» + <PARAM NAME="«param.datatype.name»">«getTypeOfData(param.datatype)»</PARAM> + + «ENDFOR» + </PARAMS> + «IF !contentObjects.empty» + <CONTENT> + «FOR ObjectDataType object : contentObjects SEPARATOR ","» + «resolveObjectDatatypeToJson(object)» + <!-- required content: «FOR DataType datatype : object.datatypes SEPARATOR ","»«IF datatype.required»«datatype.name» «ENDIF»«ENDFOR» --> + «ENDFOR» + </CONTENT> + + «ENDIF» + </REQUEST> + </ROOT> + </xsl:template> + </xsl:stylesheet> + + ''' + } + + + def static String resolveObjectDatatypeToJson(ObjectDataType object) { + var ObjectMapper mapper = new ObjectMapper(); + var Map<String, String> mapOfJsonRepresenation = new LinkedHashMap(); + + for (DataType datatype : object.datatypes) { + mapOfJsonRepresenation.put(datatype.name , getTypeOfData(datatype)) + } + + //return json + return mapper.writerWithDefaultPrettyPrinter().writeValueAsString(mapOfJsonRepresenation) + + } + + + /** + * This method returns the associated HTTP-Method for an Operation object. + */ + def static String getHttpMethodFromOperation(Operation operation){ + if(operation instanceof ReadOperation) { + return "GET" + } + if(operation instanceof CreateOperation) { + return "POST" + } + if(operation instanceof UpdateOperation) { + return "PUT" + } + if(operation instanceof DeleteOperation) { + return "DELETE" + } + return "other" // + } + + /** + * This methods returns the openApi json representation of different types of data. + */ + def static String getTypeOfData(DataType datatype) { + if (datatype instanceof StringData) { + return "string" + } + if (datatype instanceof IntegerData) { + return "integer" + } + if (datatype instanceof BooleanData) { + return "boolean" + } + if (datatype instanceof FloatData) { + return "float" + } + if (datatype instanceof ObjectDataType) { + return "object: " + datatype.name + } + if (datatype instanceof CollectionDataType) { + return "list: " + datatype.name + } + } + +} + + + + diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/80/8090d96e7144001f1c4da34d94bbd8c4 b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/80/8090d96e7144001f1c4da34d94bbd8c4 new file mode 100644 index 0000000000000000000000000000000000000000..dc8412ed09c0fd17c90249fa96eea2d5bfc5f6da --- /dev/null +++ b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/80/8090d96e7144001f1c4da34d94bbd8c4 @@ -0,0 +1,154 @@ +package org.tfranke.webservice.dsl.generator + +import org.eclipse.emf.ecore.resource.Resource +import org.eclipse.xtext.generator.AbstractGenerator +import org.eclipse.xtext.generator.IFileSystemAccess2 +import org.eclipse.xtext.generator.IGeneratorContext +import webservice.API +import webservice.Operation +import webservice.ReadOperation +import java.util.Map +import java.util.List +import java.util.HashMap +import webservice.Parameter +import webservice.CreateOperation +import webservice.UpdateOperation +import webservice.DeleteOperation +import webservice.DataType +import webservice.StringData +import webservice.IntegerData +import webservice.BooleanData +import webservice.FloatData +import webservice.CollectionDataType +import webservice.ObjectDataType +import com.fasterxml.jackson.databind.ObjectMapper +import java.util.ArrayList +import java.util.regex.Pattern +import java.util.regex.Matcher +import java.util.LinkedHashMap + +class TransconnectRepositoryCreator { + + + def static createRepository(API api, IFileSystemAccess2 fsa) { + for (Operation operation : api.operations) { + var fileName = getHttpMethodFromOperation(operation) + " " + operation.name; + fsa.generateFile( "repositories/" + api.name + "/resources/" + fileName + ".xsl" , createResourceFile(operation, api)); + } + + fsa.generateFile( "repositories/" + api.name + "/repository.xml", createRepositoryXML(api)); + } + + + def static createRepositoryXML(API api) { + throw new UnsupportedOperationException("TODO: auto-generated method stub") + } + + + def static createResourceFile(Operation operation, API api) { + + var List<ObjectDataType> contentObjects = new ArrayList(); + var List<Parameter> params = new ArrayList(); + + for (Parameter param : operation.parameters) { + if (param.datatype instanceof ObjectDataType) { + contentObjects.add(param) + } + } + + //erstmal alle query parameter rausfiltern -> dann durchloopen. Parameter in path ignorieren! Und auch keine Body Parameter + //Content nur objects, keine arrays + ''' + <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> + <xsl:template match="/"> + <ROOT> + <REQUEST CONTENT-TYPE="application/json" EMBED="true" NAME="«operation.name»" OPERATION="«getHttpMethodFromOperation(operation)»" URL="«operation.urlSuffix»"> + <PARAMS> + «FOR Parameter param : params» + «IF param.required» + <!-- required --> + «ENDIF» + <PARAM NAME="«param.datatype.name»">«getTypeOfData(param.datatype)»</PARAM> + + «ENDFOR» + </PARAMS> + «IF !contentObjects.empty» + <CONTENT> + «FOR ObjectDataType object : contentObjects SEPARATOR ","» + «resolveObjectDatatypeToJson(object)» + <!-- required content: «FOR DataType datatype : object.datatypes SEPARATOR ","»«IF datatype.required»«datatype.name» «ENDIF»«ENDFOR» --> + «ENDFOR» + </CONTENT> + + «ENDIF» + </REQUEST> + </ROOT> + </xsl:template> + </xsl:stylesheet> + + ''' + } + + + def static String resolveObjectDatatypeToJson(ObjectDataType object) { + var ObjectMapper mapper = new ObjectMapper(); + var Map<String, String> mapOfJsonRepresenation = new LinkedHashMap(); + + for (DataType datatype : object.datatypes) { + mapOfJsonRepresenation.put(datatype.name , getTypeOfData(datatype)) + } + + //return json + return mapper.writerWithDefaultPrettyPrinter().writeValueAsString(mapOfJsonRepresenation) + + } + + + /** + * This method returns the associated HTTP-Method for an Operation object. + */ + def static String getHttpMethodFromOperation(Operation operation){ + if(operation instanceof ReadOperation) { + return "GET" + } + if(operation instanceof CreateOperation) { + return "POST" + } + if(operation instanceof UpdateOperation) { + return "PUT" + } + if(operation instanceof DeleteOperation) { + return "DELETE" + } + return "other" // + } + + /** + * This methods returns the openApi json representation of different types of data. + */ + def static String getTypeOfData(DataType datatype) { + if (datatype instanceof StringData) { + return "string" + } + if (datatype instanceof IntegerData) { + return "integer" + } + if (datatype instanceof BooleanData) { + return "boolean" + } + if (datatype instanceof FloatData) { + return "float" + } + if (datatype instanceof ObjectDataType) { + return "object: " + datatype.name + } + if (datatype instanceof CollectionDataType) { + return "list: " + datatype.name + } + } + +} + + + + diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/81/c076bb9d6c44001f1c4da34d94bbd8c4 b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/81/c076bb9d6c44001f1c4da34d94bbd8c4 new file mode 100644 index 0000000000000000000000000000000000000000..ca17c89616de50d56781ff8d2ea7c1d4edc2d49d --- /dev/null +++ b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/81/c076bb9d6c44001f1c4da34d94bbd8c4 @@ -0,0 +1,100 @@ +package org.tfranke.webservice.dsl.generator + +import org.eclipse.emf.ecore.resource.Resource +import org.eclipse.xtext.generator.AbstractGenerator +import org.eclipse.xtext.generator.IFileSystemAccess2 +import org.eclipse.xtext.generator.IGeneratorContext +import webservice.API +import webservice.Operation +import webservice.ReadOperation +import java.util.Map +import java.util.List +import java.util.HashMap +import webservice.Parameter +import webservice.CreateOperation +import webservice.UpdateOperation +import webservice.DeleteOperation +import webservice.DataType +import webservice.StringData +import webservice.IntegerData +import webservice.BooleanData +import webservice.FloatData +import webservice.CollectionDataType +import webservice.ObjectDataType +import com.fasterxml.jackson.databind.ObjectMapper +import java.util.ArrayList +import java.util.regex.Pattern +import java.util.regex.Matcher + +class TransconnectRepositoryCreator { + + + def static createRepository(API api, IFileSystemAccess2 fsa) { + for (Operation operation : api.operations) { + var fileName = getHttpMethodFromOperation(operation) + " " + operation.name; + fsa.generateFile( "repositories/" + api.name + "/resources/" + fileName + ".xsl" , createResourceFile(operation, api)); + } + + fsa.generateFile( "repositories/" + api.name + "/repository.xml", createRepositoryXML(api)); + } + + + def static createRepositoryXML(API api) { + throw new UnsupportedOperationException("TODO: auto-generated method stub") + } + + + def static createResourceFile(Operation operation, API api) { + + + ''' + <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> + <xsl:template match="/"> + <ROOT> + <REQUEST CONTENT-TYPE="application/json" EMBED="true" NAME="«operation.name»" OPERATION="«getHttpMethodFromOperation(operation)»" URL="«operation.urlSuffix»"> + <PARAMS> + «FOR Parameter param : operation.parameters» + <!-- required --> + <PARAM NAME="q">string</PARAM> + + <PARAM NAME="dt">string</PARAM> + + <PARAM NAME="lang">string</PARAM> + «ENDFOR» + </PARAMS> + <CONTENT/> + <HEADER/> + </REQUEST> + </ROOT> + </xsl:template> + </xsl:stylesheet> + + ''' + + } + + + /** + * This method returns the associated HTTP-Method for an Operation object. + */ + def static String getHttpMethodFromOperation(Operation operation){ + if(operation instanceof ReadOperation) { + return "GET" + } + if(operation instanceof CreateOperation) { + return "POST" + } + if(operation instanceof UpdateOperation) { + return "PUT" + } + if(operation instanceof DeleteOperation) { + return "DELETE" + } + return "other" // + } + +} + + + + diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/90/d01ec31d583c001f1c52ebe51cacd316 b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/90/d01ec31d583c001f1c52ebe51cacd316 deleted file mode 100644 index da1c6cb66c92c0a6179bcd6e9a665b9ee556ec57..0000000000000000000000000000000000000000 --- a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/90/d01ec31d583c001f1c52ebe51cacd316 +++ /dev/null @@ -1,135 +0,0 @@ -// automatically generated by Xtext -grammar org.tfranke.webservice.dsl.WebserviceDSL with org.eclipse.xtext.common.Terminals - -import "http://www.tfranke.org/webservice" -import "http://www.eclipse.org/emf/2002/Ecore" as ecore - -API returns API: - 'API' - name=EString - '{' - ('description' description=EString)? - 'url' url=EString - 'datatypes' '{' datatypes+=DataType ( "," datatypes+=DataType)* '}' - 'operations' '{' operations+=Operation ( "," operations+=Operation)* '}' - '}'; - - -DataType returns DataType: - ObjectDataType | CollectionDataType | StringData | IntegerData | FloatData | BooleanData | ByteData; - -Operation returns Operation: - ReadOperation | CreateOperation | UpdateOperation | DeleteOperation | OtherOperation; - - -EString returns ecore::EString: - STRING | ID; - - -Parameter returns Parameter: - (required?='required')? - 'Parameter' - '{' - ('description' description=EString)? - 'datatype' datatype=[DataType|EString] - '}'; - -ReadOperation returns ReadOperation: - 'ReadOperation' - name=EString - '{' - ('description' description=EString)? - ('urlSuffix' urlSuffix=EString)? - ('response' response=[DataType|EString])? - ('parameters' '{' parameters+=Parameter ( "," parameters+=Parameter)* '}')? - '}'; - -CreateOperation returns CreateOperation: - 'CreateOperation' - name=EString - '{' - ('description' description=EString)? - ('urlSuffix' urlSuffix=EString)? - ('response' response=[DataType|EString])? - ('parameters' '{' parameters+=Parameter ( "," parameters+=Parameter)* '}')? - '}'; - -UpdateOperation returns UpdateOperation: - 'UpdateOperation' - name=EString - '{' - ('description' description=EString)? - ('urlSuffix' urlSuffix=EString)? - ('response' response=[DataType|EString])? - ('parameters' '{' parameters+=Parameter ( "," parameters+=Parameter)* '}')? - '}'; - -DeleteOperation returns DeleteOperation: - 'DeleteOperation' - name=EString - '{' - ('description' description=EString)? - ('urlSuffix' urlSuffix=EString)? - ('response' response=[DataType|EString])? - ('parameters' '{' parameters+=Parameter ( "," parameters+=Parameter)* '}')? - '}'; - -otherOperation returns otherOperation: - 'otherOperation' - name=EString - '{' - ('description' description=EString)? - ('urlSuffix' urlSuffix=EString)? - ('operation' operation=EString)? - ('response' response=[DataType|EString])? - ('parameters' '{' parameters+=Parameter ( "," parameters+=Parameter)* '}') - '}'; - -EBoolean returns ecore::EBoolean: - 'true' | 'false'; - -ObjectDataType returns ObjectDataType: - (required?='required')? - 'ObjectDataType' - name=EString - '{' - 'datatypes' '(' datatypes+=[DataType|EString] ( "," datatypes+=[DataType|EString])* ')' - '}'; - -CollectionDataType returns CollectionDataType: - (required?='required')? - 'CollectionDataType' - name=EString - '{' - 'listItem' listItem=[DataType|EString] - '}'; - -StringData returns StringData: - {StringData} - (required?='required')? - 'StringData' - name=EString; - -IntegerData returns IntegerData: - {IntegerData} - (required?='required')? - 'IntegerData' - name=EString; - -FloatData returns FloatData: - {FloatData} - (required?='required')? - 'FloatData' - name=EString; - -BooleanData returns BooleanData: - {BooleanData} - (required?='required')? - 'BooleanData' - name=EString; - -ByteData returns ByteData: - {ByteData} - (required?='required')? - 'ByteData' - name=EString; diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/a1/00e048c26b44001f1c4da34d94bbd8c4 b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/a1/00e048c26b44001f1c4da34d94bbd8c4 new file mode 100644 index 0000000000000000000000000000000000000000..7b1ada1f2bc2f6f96fe7a5b10723104d955fd30e --- /dev/null +++ b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/a1/00e048c26b44001f1c4da34d94bbd8c4 @@ -0,0 +1,46 @@ +package org.tfranke.webservice.dsl.generator + +import org.eclipse.emf.ecore.resource.Resource +import org.eclipse.xtext.generator.AbstractGenerator +import org.eclipse.xtext.generator.IFileSystemAccess2 +import org.eclipse.xtext.generator.IGeneratorContext +import webservice.API +import webservice.Operation +import webservice.ReadOperation +import java.util.Map +import java.util.List +import java.util.HashMap +import webservice.Parameter +import webservice.CreateOperation +import webservice.UpdateOperation +import webservice.DeleteOperation +import webservice.DataType +import webservice.StringData +import webservice.IntegerData +import webservice.BooleanData +import webservice.FloatData +import webservice.CollectionDataType +import webservice.ObjectDataType +import com.fasterxml.jackson.databind.ObjectMapper +import java.util.ArrayList +import java.util.regex.Pattern +import java.util.regex.Matcher + +class TransconnectRepositoryCreator { + + + def static createRepository(API api, IFileSystemAccess2 fsa) { + fsa.generateFile( "repositories/" + api.name + "/repository.xml", createRepositoryXML(api)); + } + + + def static createRepositoryXML(API api) { + throw new UnsupportedOperationException("TODO: auto-generated method stub") + } + + } + + + + +} \ No newline at end of file diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/a3/50814f147244001f1c4da34d94bbd8c4 b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/a3/50814f147244001f1c4da34d94bbd8c4 new file mode 100644 index 0000000000000000000000000000000000000000..46ef3ad29a05b43fd20d569b3d7abeb347a65e2d --- /dev/null +++ b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/a3/50814f147244001f1c4da34d94bbd8c4 @@ -0,0 +1,156 @@ +package org.tfranke.webservice.dsl.generator + +import org.eclipse.emf.ecore.resource.Resource +import org.eclipse.xtext.generator.AbstractGenerator +import org.eclipse.xtext.generator.IFileSystemAccess2 +import org.eclipse.xtext.generator.IGeneratorContext +import webservice.API +import webservice.Operation +import webservice.ReadOperation +import java.util.Map +import java.util.List +import java.util.HashMap +import webservice.Parameter +import webservice.CreateOperation +import webservice.UpdateOperation +import webservice.DeleteOperation +import webservice.DataType +import webservice.StringData +import webservice.IntegerData +import webservice.BooleanData +import webservice.FloatData +import webservice.CollectionDataType +import webservice.ObjectDataType +import com.fasterxml.jackson.databind.ObjectMapper +import java.util.ArrayList +import java.util.regex.Pattern +import java.util.regex.Matcher +import java.util.LinkedHashMap + +class TransconnectRepositoryCreator { + + + def static createRepository(API api, IFileSystemAccess2 fsa) { + for (Operation operation : api.operations) { + var fileName = getHttpMethodFromOperation(operation) + " " + operation.name; + fsa.generateFile( "repositories/" + api.name + "/resources/" + fileName + ".xsl" , createResourceFile(operation, api)); + } + + //fsa.generateFile( "repositories/" + api.name + "/repository.xml", createRepositoryXML(api)); + } + + + def static createResourceFile(Operation operation, API api) { + + var List<ObjectDataType> contentObjects = new ArrayList(); + var List<Parameter> queryParams = new ArrayList(); + + for (Parameter param : operation.parameters) { + var DataType datatype = param.datatype + if (datatype instanceof ObjectDataType) { + contentObjects.add(datatype) + } else { + queryParams.add(param) + } + } + + ''' + <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> + <xsl:template match="/"> + <ROOT> + <REQUEST CONTENT-TYPE="application/json" EMBED="true" NAME="«operation.name»" OPERATION="«getHttpMethodFromOperation(operation)»" URL="«operation.urlSuffix»"> + <PARAMS> + «FOR Parameter param : queryParams» + «IF param.required» + <!-- required --> + «ENDIF» + <PARAM NAME="«param.datatype.name»">«getTypeOfData(param.datatype)»</PARAM> + + «ENDFOR» + </PARAMS> + «IF !contentObjects.empty» + <CONTENT> + «FOR ObjectDataType object : contentObjects SEPARATOR ","» + «resolveObjectDatatypeToJson(object)» + <!-- required content: «FOR DataType datatype : object.datatypes SEPARATOR ","»«IF datatype.required»«datatype.name» «ENDIF»«ENDFOR» --> + «ENDFOR» + </CONTENT> + + «ENDIF» + </REQUEST> + </ROOT> + </xsl:template> + </xsl:stylesheet> + + ''' + } + + + def static createRepositoryXML(API api) { + throw new UnsupportedOperationException("TODO: auto-generated method stub") + + } + + + def static String resolveObjectDatatypeToJson(ObjectDataType object) { + var ObjectMapper mapper = new ObjectMapper(); + var Map<String, String> mapOfJsonRepresenation = new LinkedHashMap(); + + for (DataType datatype : object.datatypes) { + mapOfJsonRepresenation.put(datatype.name , getTypeOfData(datatype)) + } + + //return json + return mapper.writerWithDefaultPrettyPrinter().writeValueAsString(mapOfJsonRepresenation) + + } + + + /** + * This method returns the associated HTTP-Method for an Operation object. + */ + def static String getHttpMethodFromOperation(Operation operation){ + if(operation instanceof ReadOperation) { + return "GET" + } + if(operation instanceof CreateOperation) { + return "POST" + } + if(operation instanceof UpdateOperation) { + return "PUT" + } + if(operation instanceof DeleteOperation) { + return "DELETE" + } + return "other" // + } + + /** + * This methods returns the openApi json representation of different types of data. + */ + def static String getTypeOfData(DataType datatype) { + if (datatype instanceof StringData) { + return "string" + } + if (datatype instanceof IntegerData) { + return "integer" + } + if (datatype instanceof BooleanData) { + return "boolean" + } + if (datatype instanceof FloatData) { + return "float" + } + if (datatype instanceof ObjectDataType) { + return "object: " + datatype.name + } + if (datatype instanceof CollectionDataType) { + return "list: " + datatype.name + } + } + +} + + + + diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/a7/70a1e72b6944001f1c4da34d94bbd8c4 b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/a7/70a1e72b6944001f1c4da34d94bbd8c4 new file mode 100644 index 0000000000000000000000000000000000000000..0e9317bf5e0f860f558394d2398f47cdb06e2f15 --- /dev/null +++ b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/a7/70a1e72b6944001f1c4da34d94bbd8c4 @@ -0,0 +1,11 @@ +package org.tfranke.webservice.dsl.generator + +class TransconnectRepositoryCreator { + + def createRepository() { + + } + + + +} \ No newline at end of file diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/ae/c01877a46c44001f1c4da34d94bbd8c4 b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/ae/c01877a46c44001f1c4da34d94bbd8c4 new file mode 100644 index 0000000000000000000000000000000000000000..1607c162329658bf474c289b6a539154802493ef --- /dev/null +++ b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/ae/c01877a46c44001f1c4da34d94bbd8c4 @@ -0,0 +1,123 @@ +package org.tfranke.webservice.dsl.generator + +import org.eclipse.emf.ecore.resource.Resource +import org.eclipse.xtext.generator.AbstractGenerator +import org.eclipse.xtext.generator.IFileSystemAccess2 +import org.eclipse.xtext.generator.IGeneratorContext +import webservice.API +import webservice.Operation +import webservice.ReadOperation +import java.util.Map +import java.util.List +import java.util.HashMap +import webservice.Parameter +import webservice.CreateOperation +import webservice.UpdateOperation +import webservice.DeleteOperation +import webservice.DataType +import webservice.StringData +import webservice.IntegerData +import webservice.BooleanData +import webservice.FloatData +import webservice.CollectionDataType +import webservice.ObjectDataType +import com.fasterxml.jackson.databind.ObjectMapper +import java.util.ArrayList +import java.util.regex.Pattern +import java.util.regex.Matcher + +class TransconnectRepositoryCreator { + + + def static createRepository(API api, IFileSystemAccess2 fsa) { + for (Operation operation : api.operations) { + var fileName = getHttpMethodFromOperation(operation) + " " + operation.name; + fsa.generateFile( "repositories/" + api.name + "/resources/" + fileName + ".xsl" , createResourceFile(operation, api)); + } + + fsa.generateFile( "repositories/" + api.name + "/repository.xml", createRepositoryXML(api)); + } + + + def static createRepositoryXML(API api) { + throw new UnsupportedOperationException("TODO: auto-generated method stub") + } + + + def static createResourceFile(Operation operation, API api) { + + //erstmal alle query parameter rausfiltern -> dann durchloopen. Parameter in path ignorieren! Und auch keine Body Parameter + ''' + <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> + <xsl:template match="/"> + <ROOT> + <REQUEST CONTENT-TYPE="application/json" EMBED="true" NAME="«operation.name»" OPERATION="«getHttpMethodFromOperation(operation)»" URL="«operation.urlSuffix»"> + <PARAMS> + «FOR Parameter param : operation.parameters» + «IF param.required» + <!-- required --> + «ENDIF» + <PARAM NAME="«param.datatype.name»">«getTypeOfData(param.datatype)»</PARAM> + + <PARAM NAME="dt">string</PARAM> + + <PARAM NAME="lang">string</PARAM> + «ENDFOR» + </PARAMS> + <CONTENT/> + <HEADER/> + </REQUEST> + </ROOT> + </xsl:template> + </xsl:stylesheet> + + ''' + + } + + + /** + * This method returns the associated HTTP-Method for an Operation object. + */ + def static String getHttpMethodFromOperation(Operation operation){ + if(operation instanceof ReadOperation) { + return "GET" + } + if(operation instanceof CreateOperation) { + return "POST" + } + if(operation instanceof UpdateOperation) { + return "PUT" + } + if(operation instanceof DeleteOperation) { + return "DELETE" + } + return "other" // + } + + /** + * This methods returns the openApi json representation of different types of data. + */ + def static String getTypeOfData(DataType datatype) { + if (datatype instanceof StringData) { + return "\"type\": \"string\"" + } + if (datatype instanceof IntegerData) { + return "\"type\": \"integer\"" + } + if (datatype instanceof BooleanData) { + return "\"type\": \"boolean\"" + } + if (datatype instanceof FloatData) { + return "\"type\": \"float\"" + } + if (datatype instanceof ObjectDataType || datatype instanceof CollectionDataType) { + return "\"$ref\" : \"#/components/schemas/" + datatype.name + "\"" + } + } + +} + + + + diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/b0/d045699d7144001f1c4da34d94bbd8c4 b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/b0/d045699d7144001f1c4da34d94bbd8c4 new file mode 100644 index 0000000000000000000000000000000000000000..8f8a44bf8d24661102cf34fad0517b66b63e6c99 --- /dev/null +++ b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/b0/d045699d7144001f1c4da34d94bbd8c4 @@ -0,0 +1,157 @@ +package org.tfranke.webservice.dsl.generator + +import org.eclipse.emf.ecore.resource.Resource +import org.eclipse.xtext.generator.AbstractGenerator +import org.eclipse.xtext.generator.IFileSystemAccess2 +import org.eclipse.xtext.generator.IGeneratorContext +import webservice.API +import webservice.Operation +import webservice.ReadOperation +import java.util.Map +import java.util.List +import java.util.HashMap +import webservice.Parameter +import webservice.CreateOperation +import webservice.UpdateOperation +import webservice.DeleteOperation +import webservice.DataType +import webservice.StringData +import webservice.IntegerData +import webservice.BooleanData +import webservice.FloatData +import webservice.CollectionDataType +import webservice.ObjectDataType +import com.fasterxml.jackson.databind.ObjectMapper +import java.util.ArrayList +import java.util.regex.Pattern +import java.util.regex.Matcher +import java.util.LinkedHashMap + +class TransconnectRepositoryCreator { + + + def static createRepository(API api, IFileSystemAccess2 fsa) { + for (Operation operation : api.operations) { + var fileName = getHttpMethodFromOperation(operation) + " " + operation.name; + fsa.generateFile( "repositories/" + api.name + "/resources/" + fileName + ".xsl" , createResourceFile(operation, api)); + } + + fsa.generateFile( "repositories/" + api.name + "/repository.xml", createRepositoryXML(api)); + } + + + def static createRepositoryXML(API api) { + throw new UnsupportedOperationException("TODO: auto-generated method stub") + + } + + + def static createResourceFile(Operation operation, API api) { + + var List<ObjectDataType> contentObjects = new ArrayList(); + var List<Parameter> queryParams = new ArrayList(); + + for (Parameter param : operation.parameters) { + if (param.datatype instanceof ObjectDataType) { + contentObjects.add(param.datatype) + } else { + queryParams.add(param) + } + } + + //erstmal alle query parameter rausfiltern -> dann durchloopen. Parameter in path ignorieren! Und auch keine Body Parameter + //Content nur objects, keine arrays + ''' + <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> + <xsl:template match="/"> + <ROOT> + <REQUEST CONTENT-TYPE="application/json" EMBED="true" NAME="«operation.name»" OPERATION="«getHttpMethodFromOperation(operation)»" URL="«operation.urlSuffix»"> + <PARAMS> + «FOR Parameter param : queryParams» + «IF param.required» + <!-- required --> + «ENDIF» + <PARAM NAME="«param.datatype.name»">«getTypeOfData(param.datatype)»</PARAM> + + «ENDFOR» + </PARAMS> + «IF !contentObjects.empty» + <CONTENT> + «FOR ObjectDataType object : contentObjects SEPARATOR ","» + «resolveObjectDatatypeToJson(object)» + <!-- required content: «FOR DataType datatype : object.datatypes SEPARATOR ","»«IF datatype.required»«datatype.name» «ENDIF»«ENDFOR» --> + «ENDFOR» + </CONTENT> + + «ENDIF» + </REQUEST> + </ROOT> + </xsl:template> + </xsl:stylesheet> + + ''' + } + + + def static String resolveObjectDatatypeToJson(ObjectDataType object) { + var ObjectMapper mapper = new ObjectMapper(); + var Map<String, String> mapOfJsonRepresenation = new LinkedHashMap(); + + for (DataType datatype : object.datatypes) { + mapOfJsonRepresenation.put(datatype.name , getTypeOfData(datatype)) + } + + //return json + return mapper.writerWithDefaultPrettyPrinter().writeValueAsString(mapOfJsonRepresenation) + + } + + + /** + * This method returns the associated HTTP-Method for an Operation object. + */ + def static String getHttpMethodFromOperation(Operation operation){ + if(operation instanceof ReadOperation) { + return "GET" + } + if(operation instanceof CreateOperation) { + return "POST" + } + if(operation instanceof UpdateOperation) { + return "PUT" + } + if(operation instanceof DeleteOperation) { + return "DELETE" + } + return "other" // + } + + /** + * This methods returns the openApi json representation of different types of data. + */ + def static String getTypeOfData(DataType datatype) { + if (datatype instanceof StringData) { + return "string" + } + if (datatype instanceof IntegerData) { + return "integer" + } + if (datatype instanceof BooleanData) { + return "boolean" + } + if (datatype instanceof FloatData) { + return "float" + } + if (datatype instanceof ObjectDataType) { + return "object: " + datatype.name + } + if (datatype instanceof CollectionDataType) { + return "list: " + datatype.name + } + } + +} + + + + diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/b3/1021acca7744001f1c4da34d94bbd8c4 b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/b3/1021acca7744001f1c4da34d94bbd8c4 new file mode 100644 index 0000000000000000000000000000000000000000..0b6b52798598f8c452d6c4a880a8a6c6db69a603 --- /dev/null +++ b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/b3/1021acca7744001f1c4da34d94bbd8c4 @@ -0,0 +1,198 @@ +package org.tfranke.webservice.dsl.generator + +import org.eclipse.emf.ecore.resource.Resource +import org.eclipse.xtext.generator.AbstractGenerator +import org.eclipse.xtext.generator.IFileSystemAccess2 +import webservice.API +import webservice.Operation +import webservice.ReadOperation +import java.util.Map +import java.util.List +import java.util.HashMap +import webservice.Parameter +import webservice.CreateOperation +import webservice.UpdateOperation +import webservice.DeleteOperation +import webservice.DataType +import webservice.StringData +import webservice.IntegerData +import webservice.BooleanData +import webservice.FloatData +import webservice.CollectionDataType +import webservice.ObjectDataType +import com.fasterxml.jackson.databind.ObjectMapper +import java.util.ArrayList +import java.util.LinkedHashMap +import java.time.LocalDateTime +import java.time.format.DateTimeFormatter + +class TransconnectRepositoryCreator { + + def static createRepository(API api, IFileSystemAccess2 fsa) { + var List<String> fileNames = new ArrayList() + var folderName = api.name + //create resource file for each operation + for (Operation operation : api.operations) { + var fileName = getHttpMethodFromOperation(operation) + " " + operation.name + ".xsl"; + fileNames.add(fileName) + fsa.generateFile( "repositories/" + folderName + "/resources/" + fileName , createResourceFile(operation, api)); + } + //create repositoryXML file + fsa.generateFile( "repositories/" + folderName + "/repository.xml", createRepositoryXML(api, fileNames, folderName)); + } + + + def static createResourceFile(Operation operation, API api) { + + var List<ObjectDataType> contentObjects = new ArrayList(); + var List<Parameter> queryParams = new ArrayList(); + + for (Parameter param : operation.parameters) { + var DataType datatype = param.datatype + if (datatype instanceof ObjectDataType) { + contentObjects.add(datatype) + } else { + queryParams.add(param) + } + } + + ''' + <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> + <xsl:template match="/"> + <ROOT> + <REQUEST CONTENT-TYPE="application/json" EMBED="true" NAME="«operation.name»" OPERATION="«getHttpMethodFromOperation(operation)»" URL="«operation.urlSuffix»"> + <PARAMS> + «FOR Parameter param : queryParams» + «IF param.required» + <!-- required --> + «ENDIF» + <PARAM NAME="«param.datatype.name»">«getTypeOfData(param.datatype)»</PARAM> + + «ENDFOR» + </PARAMS> + «IF !contentObjects.empty» + <CONTENT> + «FOR ObjectDataType object : contentObjects SEPARATOR ","» + «resolveObjectDatatypeToJson(object)» + <!-- required content: «FOR DataType datatype : object.datatypes SEPARATOR ","»«IF datatype.required»«datatype.name» «ENDIF»«ENDFOR» --> + «ENDFOR» + </CONTENT> + + «ENDIF» + </REQUEST> + </ROOT> + </xsl:template> + </xsl:stylesheet> + + ''' + } + + + def static createRepositoryXML(API api, List<String> fileNames, String folderName) { + + var int id = 100 + var LocalDateTime dateTimeNow = LocalDateTime.now() + var DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm:ss") + var String dateTimeNowFormatted = dateTimeNow.format(formatter) + + ''' + <?xml version="1.0" encoding="UTF-8" standalone="no"?> + <REPOSITORY> + <RESOURCES> + <RESOURCE EMPTYFOLDER="true" FILENAME="«folderName»" ID="«id»" IMPORT="true" NAME="SwaggerPetstore"> + <DESCRIPTION/> + </RESOURCE> + «FOR String fileName : fileNames» + <RESOURCE FILENAME="«folderName»/«fileName»" ID="«id += 1»" IMPORT="true" LASTMODIFIED="«dateTimeNowFormatted»" NAME="«fileName»" TYPE="XsltDocument"> + <DESCRIPTION/> + «ENDFOR» + </RESOURCES> + + <ADAPTERTYPES> + <ADAPTERTYPE FACTORY="com.sqlgmbh.tc.adapter.http.AdapterFactory" ID="30" IMPORT="false"/> + </ADAPTERTYPES> + + <ADAPTERS> + <ADAPTER FACTORY="com.sqlgmbh.tc.adapter.http.AdapterFactory" ID="80" IMPORT="true" NAME="«api.name»" OUTBOUND="true" SUBTYPE="Default" TYPE_ID="30"> + <DESCRIPTION/> + <PROPERTIES> + <PROPERTY NAME="connection.maxIdle">10</PROPERTY> + <PROPERTY NAME="failed.request.content.length">100</PROPERTY> + <PROPERTY NAME="http.statuscode.check">false</PROPERTY> + <PROPERTY NAME="lib.log.verbose">false</PROPERTY> + <PROPERTY NAME="requestEncoding">UTF-8</PROPERTY> + <PROPERTY NAME="responseEncoding">ISO-8859-1</PROPERTY> + <PROPERTY NAME="trust.selfsigned">false</PROPERTY> + <PROPERTY NAME="url.outbound">«api.url»</PROPERTY> + <PROPERTY NAME="xml.invalidChars">Error</PROPERTY> + </PROPERTIES> + </ADAPTER> + </ADAPTERS> + </REPOSITORY> + + ''' + } + + + def static String resolveObjectDatatypeToJson(ObjectDataType object) { + var ObjectMapper mapper = new ObjectMapper(); + var Map<String, String> mapOfJsonRepresenation = new LinkedHashMap(); + + for (DataType datatype : object.datatypes) { + mapOfJsonRepresenation.put(datatype.name , getTypeOfData(datatype)) + } + + //return json + return mapper.writerWithDefaultPrettyPrinter().writeValueAsString(mapOfJsonRepresenation) + + } + + + /** + * This method returns the associated HTTP-Method for an Operation object. + */ + def static String getHttpMethodFromOperation(Operation operation){ + if(operation instanceof ReadOperation) { + return "GET" + } + if(operation instanceof CreateOperation) { + return "POST" + } + if(operation instanceof UpdateOperation) { + return "PUT" + } + if(operation instanceof DeleteOperation) { + return "DELETE" + } + return "other" // + } + + /** + * This methods returns type of the given data. + */ + def static String getTypeOfData(DataType datatype) { + if (datatype instanceof StringData) { + return "string" + } + if (datatype instanceof IntegerData) { + return "integer" + } + if (datatype instanceof BooleanData) { + return "boolean" + } + if (datatype instanceof FloatData) { + return "float" + } + if (datatype instanceof ObjectDataType) { + return "object: " + datatype.name + } + if (datatype instanceof CollectionDataType) { + return "list of: " + datatype.listItem.name + } + } + +} + + + + diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/c/3002fed27144001f1c4da34d94bbd8c4 b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/c/3002fed27144001f1c4da34d94bbd8c4 new file mode 100644 index 0000000000000000000000000000000000000000..c55b30f9506815ba701add8837c685bfe1a15833 --- /dev/null +++ b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/c/3002fed27144001f1c4da34d94bbd8c4 @@ -0,0 +1,156 @@ +package org.tfranke.webservice.dsl.generator + +import org.eclipse.emf.ecore.resource.Resource +import org.eclipse.xtext.generator.AbstractGenerator +import org.eclipse.xtext.generator.IFileSystemAccess2 +import org.eclipse.xtext.generator.IGeneratorContext +import webservice.API +import webservice.Operation +import webservice.ReadOperation +import java.util.Map +import java.util.List +import java.util.HashMap +import webservice.Parameter +import webservice.CreateOperation +import webservice.UpdateOperation +import webservice.DeleteOperation +import webservice.DataType +import webservice.StringData +import webservice.IntegerData +import webservice.BooleanData +import webservice.FloatData +import webservice.CollectionDataType +import webservice.ObjectDataType +import com.fasterxml.jackson.databind.ObjectMapper +import java.util.ArrayList +import java.util.regex.Pattern +import java.util.regex.Matcher +import java.util.LinkedHashMap + +class TransconnectRepositoryCreator { + + + def static createRepository(API api, IFileSystemAccess2 fsa) { + for (Operation operation : api.operations) { + var fileName = getHttpMethodFromOperation(operation) + " " + operation.name; + fsa.generateFile( "repositories/" + api.name + "/resources/" + fileName + ".xsl" , createResourceFile(operation, api)); + } + + fsa.generateFile( "repositories/" + api.name + "/repository.xml", createRepositoryXML(api)); + } + + + def static createRepositoryXML(API api) { + throw new UnsupportedOperationException("TODO: auto-generated method stub") + + } + + + def static createResourceFile(Operation operation, API api) { + + var List<ObjectDataType> contentObjects = new ArrayList(); + var List<Parameter> queryParams = new ArrayList(); + + for (Parameter param : operation.parameters) { + var DataType datatype = param.datatype + if (datatype instanceof ObjectDataType) { + contentObjects.add(datatype) + } else { + queryParams.add(param) + } + } + + ''' + <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> + <xsl:template match="/"> + <ROOT> + <REQUEST CONTENT-TYPE="application/json" EMBED="true" NAME="«operation.name»" OPERATION="«getHttpMethodFromOperation(operation)»" URL="«operation.urlSuffix»"> + <PARAMS> + «FOR Parameter param : queryParams» + «IF param.required» + <!-- required --> + «ENDIF» + <PARAM NAME="«param.datatype.name»">«getTypeOfData(param.datatype)»</PARAM> + + «ENDFOR» + </PARAMS> + «IF !contentObjects.empty» + <CONTENT> + «FOR ObjectDataType object : contentObjects SEPARATOR ","» + «resolveObjectDatatypeToJson(object)» + <!-- required content: «FOR DataType datatype : object.datatypes SEPARATOR ","»«IF datatype.required»«datatype.name» «ENDIF»«ENDFOR» --> + «ENDFOR» + </CONTENT> + + «ENDIF» + </REQUEST> + </ROOT> + </xsl:template> + </xsl:stylesheet> + + ''' + } + + + def static String resolveObjectDatatypeToJson(ObjectDataType object) { + var ObjectMapper mapper = new ObjectMapper(); + var Map<String, String> mapOfJsonRepresenation = new LinkedHashMap(); + + for (DataType datatype : object.datatypes) { + mapOfJsonRepresenation.put(datatype.name , getTypeOfData(datatype)) + } + + //return json + return mapper.writerWithDefaultPrettyPrinter().writeValueAsString(mapOfJsonRepresenation) + + } + + + /** + * This method returns the associated HTTP-Method for an Operation object. + */ + def static String getHttpMethodFromOperation(Operation operation){ + if(operation instanceof ReadOperation) { + return "GET" + } + if(operation instanceof CreateOperation) { + return "POST" + } + if(operation instanceof UpdateOperation) { + return "PUT" + } + if(operation instanceof DeleteOperation) { + return "DELETE" + } + return "other" // + } + + /** + * This methods returns the openApi json representation of different types of data. + */ + def static String getTypeOfData(DataType datatype) { + if (datatype instanceof StringData) { + return "string" + } + if (datatype instanceof IntegerData) { + return "integer" + } + if (datatype instanceof BooleanData) { + return "boolean" + } + if (datatype instanceof FloatData) { + return "float" + } + if (datatype instanceof ObjectDataType) { + return "object: " + datatype.name + } + if (datatype instanceof CollectionDataType) { + return "list: " + datatype.name + } + } + +} + + + + diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/c1/c0be8a8e7344001f1c4da34d94bbd8c4 b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/c1/c0be8a8e7344001f1c4da34d94bbd8c4 new file mode 100644 index 0000000000000000000000000000000000000000..8612d7f8b2062abf58a1ec9d5ecd7532b717a1c6 --- /dev/null +++ b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/c1/c0be8a8e7344001f1c4da34d94bbd8c4 @@ -0,0 +1,152 @@ +package org.tfranke.webservice.dsl.generator + +import org.eclipse.emf.ecore.resource.Resource +import org.eclipse.xtext.generator.AbstractGenerator +import org.eclipse.xtext.generator.IFileSystemAccess2 +import webservice.API +import webservice.Operation +import webservice.ReadOperation +import java.util.Map +import java.util.List +import java.util.HashMap +import webservice.Parameter +import webservice.CreateOperation +import webservice.UpdateOperation +import webservice.DeleteOperation +import webservice.DataType +import webservice.StringData +import webservice.IntegerData +import webservice.BooleanData +import webservice.FloatData +import webservice.CollectionDataType +import webservice.ObjectDataType +import com.fasterxml.jackson.databind.ObjectMapper +import java.util.ArrayList +import java.util.LinkedHashMap + +class TransconnectRepositoryCreator { + + def static createRepository(API api, IFileSystemAccess2 fsa) { + for (Operation operation : api.operations) { + var fileName = getHttpMethodFromOperation(operation) + " " + operation.name; + fsa.generateFile( "repositories/" + api.name + "/resources/" + fileName + ".xsl" , createResourceFile(operation, api)); + } + + //fsa.generateFile( "repositories/" + api.name + "/repository.xml", createRepositoryXML(api)); + } + + + def static createResourceFile(Operation operation, API api) { + + var List<ObjectDataType> contentObjects = new ArrayList(); + var List<Parameter> queryParams = new ArrayList(); + + for (Parameter param : operation.parameters) { + var DataType datatype = param.datatype + if (datatype instanceof ObjectDataType) { + contentObjects.add(datatype) + } else { + queryParams.add(param) + } + } + + ''' + <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> + <xsl:template match="/"> + <ROOT> + <REQUEST CONTENT-TYPE="application/json" EMBED="true" NAME="«operation.name»" OPERATION="«getHttpMethodFromOperation(operation)»" URL="«operation.urlSuffix»"> + <PARAMS> + «FOR Parameter param : queryParams» + «IF param.required» + <!-- required --> + «ENDIF» + <PARAM NAME="«param.datatype.name»">«getTypeOfData(param.datatype)»</PARAM> + + «ENDFOR» + </PARAMS> + «IF !contentObjects.empty» + <CONTENT> + «FOR ObjectDataType object : contentObjects SEPARATOR ","» + «resolveObjectDatatypeToJson(object)» + <!-- required content: «FOR DataType datatype : object.datatypes SEPARATOR ","»«IF datatype.required»«datatype.name» «ENDIF»«ENDFOR» --> + «ENDFOR» + </CONTENT> + + «ENDIF» + </REQUEST> + </ROOT> + </xsl:template> + </xsl:stylesheet> + + ''' + } + + + def static createRepositoryXML(API api) { + throw new UnsupportedOperationException("TODO: auto-generated method stub") + + } + + + def static String resolveObjectDatatypeToJson(ObjectDataType object) { + var ObjectMapper mapper = new ObjectMapper(); + var Map<String, String> mapOfJsonRepresenation = new LinkedHashMap(); + + for (DataType datatype : object.datatypes) { + mapOfJsonRepresenation.put(datatype.name , getTypeOfData(datatype)) + } + + //return json + return mapper.writerWithDefaultPrettyPrinter().writeValueAsString(mapOfJsonRepresenation) + + } + + + /** + * This method returns the associated HTTP-Method for an Operation object. + */ + def static String getHttpMethodFromOperation(Operation operation){ + if(operation instanceof ReadOperation) { + return "GET" + } + if(operation instanceof CreateOperation) { + return "POST" + } + if(operation instanceof UpdateOperation) { + return "PUT" + } + if(operation instanceof DeleteOperation) { + return "DELETE" + } + return "other" // + } + + /** + * This methods returns type of the given data. + */ + def static String getTypeOfData(DataType datatype) { + if (datatype instanceof StringData) { + return "string" + } + if (datatype instanceof IntegerData) { + return "integer" + } + if (datatype instanceof BooleanData) { + return "boolean" + } + if (datatype instanceof FloatData) { + return "float" + } + if (datatype instanceof ObjectDataType) { + return "object: " + datatype.name + } + if (datatype instanceof CollectionDataType) { + return "list of: " + datatype.listItem + } + } + +} + + + + diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/c3/c0722ea77b44001f1c4da34d94bbd8c4 b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/c3/c0722ea77b44001f1c4da34d94bbd8c4 new file mode 100644 index 0000000000000000000000000000000000000000..81b962f1f68842a30e712ce58df883c48679d082 --- /dev/null +++ b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/c3/c0722ea77b44001f1c4da34d94bbd8c4 @@ -0,0 +1,207 @@ +package org.tfranke.webservice.dsl.generator + +import org.eclipse.xtext.generator.IFileSystemAccess2 +import webservice.API +import webservice.Operation +import webservice.ReadOperation +import java.util.Map +import java.util.List +import webservice.Parameter +import webservice.CreateOperation +import webservice.UpdateOperation +import webservice.DeleteOperation +import webservice.DataType +import webservice.StringData +import webservice.IntegerData +import webservice.BooleanData +import webservice.FloatData +import webservice.CollectionDataType +import webservice.ObjectDataType +import com.fasterxml.jackson.databind.ObjectMapper +import java.util.ArrayList +import java.util.LinkedHashMap +import java.time.LocalDateTime +import java.time.format.DateTimeFormatter + +/** + * This class contains methods to create a Transconnect repository from an API Model. + */ +class TransconnectRepositoryCreator { + + /** + * Creates a Transconnect repository for the given API Model. + */ + def static createRepository(API api, IFileSystemAccess2 fsa) { + var List<String> fileNames = new ArrayList() + var folderName = api.name + //create resource file for each operation + for (Operation operation : api.operations) { + var fileName = getHttpMethodFromOperation(operation) + " " + operation.name + ".xsl"; + fileNames.add(fileName) + fsa.generateFile( "repositories/" + folderName + "/resources/" + folderName + "/" + fileName , createResourceFile(operation, api)); + } + //create repositoryXML file + fsa.generateFile( "repositories/" + folderName + "/repository.xml", createRepositoryXML(api, fileNames, folderName)); + } + + /** + * Creates the contents of a resource file for the given Operation. + */ + def static createResourceFile(Operation operation, API api) { + + var List<ObjectDataType> contentObjects = new ArrayList(); + var List<Parameter> queryParams = new ArrayList(); + + for (Parameter param : operation.parameters) { + var DataType datatype = param.datatype + if (datatype instanceof ObjectDataType) { + contentObjects.add(datatype) + } else { + queryParams.add(param) + } + } + + ''' + <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> + <xsl:template match="/"> + <ROOT> + <REQUEST CONTENT-TYPE="application/json" EMBED="true" NAME="«operation.name»" OPERATION="«getHttpMethodFromOperation(operation)»" URL="«operation.urlSuffix»"> + <PARAMS> + «FOR Parameter param : queryParams» + «IF param.required» + <!-- required --> + «ENDIF» + <PARAM NAME="«param.datatype.name»">«getTypeOfData(param.datatype)»</PARAM> + + «ENDFOR» + </PARAMS> + «IF !contentObjects.empty» + <CONTENT> + «FOR ObjectDataType object : contentObjects SEPARATOR ","» + «resolveObjectDatatypeToJson(object)» + <!-- required content: «FOR DataType datatype : object.datatypes SEPARATOR ","»«IF datatype.required»«datatype.name» «ENDIF»«ENDFOR» --> + «ENDFOR» + </CONTENT> + + «ENDIF» + </REQUEST> + </ROOT> + </xsl:template> + </xsl:stylesheet> + + ''' + } + + /** + * Creates the contents of the repository.xml file for the given API. + */ + def static createRepositoryXML(API api, List<String> fileNames, String folderName) { + + var int id = 100 + var LocalDateTime dateTimeNow = LocalDateTime.now() + var DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm:ss") + var String dateTimeNowFormatted = dateTimeNow.format(formatter) + + ''' + <?xml version="1.0" encoding="UTF-8" standalone="no"?> + <REPOSITORY> + <RESOURCES> + <RESOURCE EMPTYFOLDER="true" FILENAME="«folderName»" ID="«id»" IMPORT="true" NAME="SwaggerPetstore"> + <DESCRIPTION/> + </RESOURCE> + «FOR String fileName : fileNames» + <RESOURCE FILENAME="«folderName»/«fileName»" ID="«id += 1»" IMPORT="true" LASTMODIFIED="«dateTimeNowFormatted»" NAME="«fileName»" TYPE="XsltDocument"> + <DESCRIPTION/> + </RESOURCE> + «ENDFOR» + </RESOURCES> + + <ADAPTERTYPES> + <ADAPTERTYPE FACTORY="com.sqlgmbh.tc.adapter.http.AdapterFactory" ID="30" IMPORT="false"/> + </ADAPTERTYPES> + + <ADAPTERS> + <ADAPTER FACTORY="com.sqlgmbh.tc.adapter.http.AdapterFactory" ID="80" IMPORT="true" NAME="«api.name»" OUTBOUND="true" SUBTYPE="Default" TYPE_ID="30"> + <DESCRIPTION/> + <PROPERTIES> + <PROPERTY NAME="connection.maxIdle">10</PROPERTY> + <PROPERTY NAME="failed.request.content.length">100</PROPERTY> + <PROPERTY NAME="http.statuscode.check">false</PROPERTY> + <PROPERTY NAME="lib.log.verbose">false</PROPERTY> + <PROPERTY NAME="requestEncoding">UTF-8</PROPERTY> + <PROPERTY NAME="responseEncoding">ISO-8859-1</PROPERTY> + <PROPERTY NAME="trust.selfsigned">false</PROPERTY> + <PROPERTY NAME="url.outbound">«api.url»</PROPERTY> + <PROPERTY NAME="xml.invalidChars">Error</PROPERTY> + </PROPERTIES> + </ADAPTER> + </ADAPTERS> + </REPOSITORY> + + ''' + } + + /** + * Creates the JSON representation of an ObjectDataType from the API Model. + */ + def static String resolveObjectDatatypeToJson(ObjectDataType object) { + var ObjectMapper mapper = new ObjectMapper(); + var Map<String, String> mapOfJsonRepresenation = new LinkedHashMap(); + + for (DataType datatype : object.datatypes) { + mapOfJsonRepresenation.put(datatype.name , getTypeOfData(datatype)) + } + + //return json + return mapper.writerWithDefaultPrettyPrinter().writeValueAsString(mapOfJsonRepresenation) + + } + + + /** + * This method returns the associated HTTP-Method for an Operation object. + */ + def static String getHttpMethodFromOperation(Operation operation){ + if(operation instanceof ReadOperation) { + return "GET" + } + if(operation instanceof CreateOperation) { + return "POST" + } + if(operation instanceof UpdateOperation) { + return "PUT" + } + if(operation instanceof DeleteOperation) { + return "DELETE" + } + } + + /** + * This methods returns type of the given data. + */ + def static String getTypeOfData(DataType datatype) { + if (datatype instanceof StringData) { + return "string" + } + if (datatype instanceof IntegerData) { + return "integer" + } + if (datatype instanceof BooleanData) { + return "boolean" + } + if (datatype instanceof FloatData) { + return "float" + } + if (datatype instanceof ObjectDataType) { + return "object: " + datatype.name + } + if (datatype instanceof CollectionDataType) { + return "list of: " + datatype.listItem.name + } + } + +} + + + + diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/d/902384566944001f1c4da34d94bbd8c4 b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/d/902384566944001f1c4da34d94bbd8c4 new file mode 100644 index 0000000000000000000000000000000000000000..71436d3887136c78d26e62dc25e8ffa0588dcc27 --- /dev/null +++ b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/d/902384566944001f1c4da34d94bbd8c4 @@ -0,0 +1,37 @@ +package org.tfranke.webservice.dsl.generator + +import org.eclipse.emf.ecore.resource.Resource +import org.eclipse.xtext.generator.AbstractGenerator +import org.eclipse.xtext.generator.IFileSystemAccess2 +import org.eclipse.xtext.generator.IGeneratorContext +import webservice.API +import webservice.Operation +import webservice.ReadOperation +import java.util.Map +import java.util.List +import java.util.HashMap +import webservice.Parameter +import webservice.CreateOperation +import webservice.UpdateOperation +import webservice.DeleteOperation +import webservice.DataType +import webservice.StringData +import webservice.IntegerData +import webservice.BooleanData +import webservice.FloatData +import webservice.CollectionDataType +import webservice.ObjectDataType +import com.fasterxml.jackson.databind.ObjectMapper +import java.util.ArrayList +import java.util.regex.Pattern +import java.util.regex.Matcher + +class TransconnectRepositoryCreator { + + def createRepository(API api) { + + } + + + +} \ No newline at end of file diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/e7/40f1509e7244001f1c4da34d94bbd8c4 b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/e7/40f1509e7244001f1c4da34d94bbd8c4 new file mode 100644 index 0000000000000000000000000000000000000000..12072c660d0fa965d3c5cfc106a4aa6d5a61b90d --- /dev/null +++ b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/e7/40f1509e7244001f1c4da34d94bbd8c4 @@ -0,0 +1,156 @@ +package org.tfranke.webservice.dsl.generator + +import org.eclipse.emf.ecore.resource.Resource +import org.eclipse.xtext.generator.AbstractGenerator +import org.eclipse.xtext.generator.IFileSystemAccess2 +import org.eclipse.xtext.generator.IGeneratorContext +import webservice.API +import webservice.Operation +import webservice.ReadOperation +import java.util.Map +import java.util.List +import java.util.HashMap +import webservice.Parameter +import webservice.CreateOperation +import webservice.UpdateOperation +import webservice.DeleteOperation +import webservice.DataType +import webservice.StringData +import webservice.IntegerData +import webservice.BooleanData +import webservice.FloatData +import webservice.CollectionDataType +import webservice.ObjectDataType +import com.fasterxml.jackson.databind.ObjectMapper +import java.util.ArrayList +import java.util.regex.Pattern +import java.util.regex.Matcher +import java.util.LinkedHashMap + +class TransconnectRepositoryCreator { + + + def static createRepository(API api, IFileSystemAccess2 fsa) { + for (Operation operation : api.operations) { + var fileName = getHttpMethodFromOperation(operation) + " " + operation.name; + fsa.generateFile( "repositories/" + api.name + "/resources/" + fileName + ".xsl" , createResourceFile(operation, api)); + } + + //fsa.generateFile( "repositories/" + api.name + "/repository.xml", createRepositoryXML(api)); + } + + + def static createResourceFile(Operation operation, API api) { + + var List<ObjectDataType> contentObjects = new ArrayList(); + var List<Parameter> queryParams = new ArrayList(); + + for (Parameter param : operation.parameters) { + var DataType datatype = param.datatype + if (datatype instanceof ObjectDataType) { + contentObjects.add(datatype) + } else { + queryParams.add(param) + } + } + + ''' + <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> + <xsl:template match="/"> + <ROOT> + <REQUEST CONTENT-TYPE="application/json" EMBED="true" NAME="«operation.name»" OPERATION="«getHttpMethodFromOperation(operation)»" URL="«operation.urlSuffix»"> + <PARAMS> + «FOR Parameter param : queryParams» + «IF param.required» + <!-- required --> + «ENDIF» + <PARAM NAME="«param.datatype.name»">«getTypeOfData(param.datatype)»</PARAM> + + «ENDFOR» + </PARAMS> + «IF !contentObjects.empty» + <CONTENT> + «FOR ObjectDataType object : contentObjects SEPARATOR ","» + «resolveObjectDatatypeToJson(object)» + <!-- required content: «FOR DataType datatype : object.datatypes SEPARATOR ","»«IF datatype.required»«datatype.name» «ENDIF»«ENDFOR» --> + «ENDFOR» + </CONTENT> + + «ENDIF» + </REQUEST> + </ROOT> + </xsl:template> + </xsl:stylesheet> + + ''' + } + + + def static createRepositoryXML(API api) { + throw new UnsupportedOperationException("TODO: auto-generated method stub") + + } + + + def static String resolveObjectDatatypeToJson(ObjectDataType object) { + var ObjectMapper mapper = new ObjectMapper(); + var Map<String, String> mapOfJsonRepresenation = new LinkedHashMap(); + + for (DataType datatype : object.datatypes) { + mapOfJsonRepresenation.put(datatype.name , getTypeOfData(datatype)) + } + + //return json + return mapper.writerWithDefaultPrettyPrinter().writeValueAsString(mapOfJsonRepresenation) + + } + + + /** + * This method returns the associated HTTP-Method for an Operation object. + */ + def static String getHttpMethodFromOperation(Operation operation){ + if(operation instanceof ReadOperation) { + return "GET" + } + if(operation instanceof CreateOperation) { + return "POST" + } + if(operation instanceof UpdateOperation) { + return "PUT" + } + if(operation instanceof DeleteOperation) { + return "DELETE" + } + return "other" // + } + + /** + * This methods returns the openApi json representation of different types of data. + */ + def static String getTypeOfData(DataType datatype) { + if (datatype instanceof StringData) { + return "string" + } + if (datatype instanceof IntegerData) { + return "integer" + } + if (datatype instanceof BooleanData) { + return "boolean" + } + if (datatype instanceof FloatData) { + return "float" + } + if (datatype instanceof ObjectDataType) { + return "object: " + datatype.name + } + if (datatype instanceof CollectionDataType) { + return "list of: " + datatype.listItem + } + } + +} + + + + diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/ea/a02bd4f37744001f1c4da34d94bbd8c4 b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/ea/a02bd4f37744001f1c4da34d94bbd8c4 new file mode 100644 index 0000000000000000000000000000000000000000..21407a1a44c063327bf482963c0a3d618fe499d5 --- /dev/null +++ b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/ea/a02bd4f37744001f1c4da34d94bbd8c4 @@ -0,0 +1,199 @@ +package org.tfranke.webservice.dsl.generator + +import org.eclipse.emf.ecore.resource.Resource +import org.eclipse.xtext.generator.AbstractGenerator +import org.eclipse.xtext.generator.IFileSystemAccess2 +import webservice.API +import webservice.Operation +import webservice.ReadOperation +import java.util.Map +import java.util.List +import java.util.HashMap +import webservice.Parameter +import webservice.CreateOperation +import webservice.UpdateOperation +import webservice.DeleteOperation +import webservice.DataType +import webservice.StringData +import webservice.IntegerData +import webservice.BooleanData +import webservice.FloatData +import webservice.CollectionDataType +import webservice.ObjectDataType +import com.fasterxml.jackson.databind.ObjectMapper +import java.util.ArrayList +import java.util.LinkedHashMap +import java.time.LocalDateTime +import java.time.format.DateTimeFormatter + +class TransconnectRepositoryCreator { + + def static createRepository(API api, IFileSystemAccess2 fsa) { + var List<String> fileNames = new ArrayList() + var folderName = api.name + //create resource file for each operation + for (Operation operation : api.operations) { + var fileName = getHttpMethodFromOperation(operation) + " " + operation.name + ".xsl"; + fileNames.add(fileName) + fsa.generateFile( "repositories/" + folderName + "/resources/" + fileName , createResourceFile(operation, api)); + } + //create repositoryXML file + fsa.generateFile( "repositories/" + folderName + "/repository.xml", createRepositoryXML(api, fileNames, folderName)); + } + + + def static createResourceFile(Operation operation, API api) { + + var List<ObjectDataType> contentObjects = new ArrayList(); + var List<Parameter> queryParams = new ArrayList(); + + for (Parameter param : operation.parameters) { + var DataType datatype = param.datatype + if (datatype instanceof ObjectDataType) { + contentObjects.add(datatype) + } else { + queryParams.add(param) + } + } + + ''' + <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> + <xsl:template match="/"> + <ROOT> + <REQUEST CONTENT-TYPE="application/json" EMBED="true" NAME="«operation.name»" OPERATION="«getHttpMethodFromOperation(operation)»" URL="«operation.urlSuffix»"> + <PARAMS> + «FOR Parameter param : queryParams» + «IF param.required» + <!-- required --> + «ENDIF» + <PARAM NAME="«param.datatype.name»">«getTypeOfData(param.datatype)»</PARAM> + + «ENDFOR» + </PARAMS> + «IF !contentObjects.empty» + <CONTENT> + «FOR ObjectDataType object : contentObjects SEPARATOR ","» + «resolveObjectDatatypeToJson(object)» + <!-- required content: «FOR DataType datatype : object.datatypes SEPARATOR ","»«IF datatype.required»«datatype.name» «ENDIF»«ENDFOR» --> + «ENDFOR» + </CONTENT> + + «ENDIF» + </REQUEST> + </ROOT> + </xsl:template> + </xsl:stylesheet> + + ''' + } + + + def static createRepositoryXML(API api, List<String> fileNames, String folderName) { + + var int id = 100 + var LocalDateTime dateTimeNow = LocalDateTime.now() + var DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm:ss") + var String dateTimeNowFormatted = dateTimeNow.format(formatter) + + ''' + <?xml version="1.0" encoding="UTF-8" standalone="no"?> + <REPOSITORY> + <RESOURCES> + <RESOURCE EMPTYFOLDER="true" FILENAME="«folderName»" ID="«id»" IMPORT="true" NAME="SwaggerPetstore"> + <DESCRIPTION/> + </RESOURCE> + «FOR String fileName : fileNames» + <RESOURCE FILENAME="«folderName»/«fileName»" ID="«id += 1»" IMPORT="true" LASTMODIFIED="«dateTimeNowFormatted»" NAME="«fileName»" TYPE="XsltDocument"> + <DESCRIPTION/> + </RESOURCE> + «ENDFOR» + </RESOURCES> + + <ADAPTERTYPES> + <ADAPTERTYPE FACTORY="com.sqlgmbh.tc.adapter.http.AdapterFactory" ID="30" IMPORT="false"/> + </ADAPTERTYPES> + + <ADAPTERS> + <ADAPTER FACTORY="com.sqlgmbh.tc.adapter.http.AdapterFactory" ID="80" IMPORT="true" NAME="«api.name»" OUTBOUND="true" SUBTYPE="Default" TYPE_ID="30"> + <DESCRIPTION/> + <PROPERTIES> + <PROPERTY NAME="connection.maxIdle">10</PROPERTY> + <PROPERTY NAME="failed.request.content.length">100</PROPERTY> + <PROPERTY NAME="http.statuscode.check">false</PROPERTY> + <PROPERTY NAME="lib.log.verbose">false</PROPERTY> + <PROPERTY NAME="requestEncoding">UTF-8</PROPERTY> + <PROPERTY NAME="responseEncoding">ISO-8859-1</PROPERTY> + <PROPERTY NAME="trust.selfsigned">false</PROPERTY> + <PROPERTY NAME="url.outbound">«api.url»</PROPERTY> + <PROPERTY NAME="xml.invalidChars">Error</PROPERTY> + </PROPERTIES> + </ADAPTER> + </ADAPTERS> + </REPOSITORY> + + ''' + } + + + def static String resolveObjectDatatypeToJson(ObjectDataType object) { + var ObjectMapper mapper = new ObjectMapper(); + var Map<String, String> mapOfJsonRepresenation = new LinkedHashMap(); + + for (DataType datatype : object.datatypes) { + mapOfJsonRepresenation.put(datatype.name , getTypeOfData(datatype)) + } + + //return json + return mapper.writerWithDefaultPrettyPrinter().writeValueAsString(mapOfJsonRepresenation) + + } + + + /** + * This method returns the associated HTTP-Method for an Operation object. + */ + def static String getHttpMethodFromOperation(Operation operation){ + if(operation instanceof ReadOperation) { + return "GET" + } + if(operation instanceof CreateOperation) { + return "POST" + } + if(operation instanceof UpdateOperation) { + return "PUT" + } + if(operation instanceof DeleteOperation) { + return "DELETE" + } + return "other" // + } + + /** + * This methods returns type of the given data. + */ + def static String getTypeOfData(DataType datatype) { + if (datatype instanceof StringData) { + return "string" + } + if (datatype instanceof IntegerData) { + return "integer" + } + if (datatype instanceof BooleanData) { + return "boolean" + } + if (datatype instanceof FloatData) { + return "float" + } + if (datatype instanceof ObjectDataType) { + return "object: " + datatype.name + } + if (datatype instanceof CollectionDataType) { + return "list of: " + datatype.listItem.name + } + } + +} + + + + diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/eb/10943e947b44001f1c4da34d94bbd8c4 b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/eb/10943e947b44001f1c4da34d94bbd8c4 new file mode 100644 index 0000000000000000000000000000000000000000..b03282de2c5808ea5fd9aff0c2446ad98f0588b9 --- /dev/null +++ b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/eb/10943e947b44001f1c4da34d94bbd8c4 @@ -0,0 +1,207 @@ +package org.tfranke.webservice.dsl.generator + +import org.eclipse.emf.ecore.resource.Resource +import org.eclipse.xtext.generator.AbstractGenerator +import org.eclipse.xtext.generator.IFileSystemAccess2 +import webservice.API +import webservice.Operation +import webservice.ReadOperation +import java.util.Map +import java.util.List +import java.util.HashMap +import webservice.Parameter +import webservice.CreateOperation +import webservice.UpdateOperation +import webservice.DeleteOperation +import webservice.DataType +import webservice.StringData +import webservice.IntegerData +import webservice.BooleanData +import webservice.FloatData +import webservice.CollectionDataType +import webservice.ObjectDataType +import com.fasterxml.jackson.databind.ObjectMapper +import java.util.ArrayList +import java.util.LinkedHashMap +import java.time.LocalDateTime +import java.time.format.DateTimeFormatter + +class TransconnectRepositoryCreator { + + /** + * Creates a Transconnect repository for the given API Model. + */ + def static createRepository(API api, IFileSystemAccess2 fsa) { + var List<String> fileNames = new ArrayList() + var folderName = api.name + //create resource file for each operation + for (Operation operation : api.operations) { + var fileName = getHttpMethodFromOperation(operation) + " " + operation.name + ".xsl"; + fileNames.add(fileName) + fsa.generateFile( "repositories/" + folderName + "/resources/" + folderName + "/" + fileName , createResourceFile(operation, api)); + } + //create repositoryXML file + fsa.generateFile( "repositories/" + folderName + "/repository.xml", createRepositoryXML(api, fileNames, folderName)); + } + + /** + * Creates the contents of a resource file for the given Operation. + */ + def static createResourceFile(Operation operation, API api) { + + var List<ObjectDataType> contentObjects = new ArrayList(); + var List<Parameter> queryParams = new ArrayList(); + + for (Parameter param : operation.parameters) { + var DataType datatype = param.datatype + if (datatype instanceof ObjectDataType) { + contentObjects.add(datatype) + } else { + queryParams.add(param) + } + } + + ''' + <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> + <xsl:template match="/"> + <ROOT> + <REQUEST CONTENT-TYPE="application/json" EMBED="true" NAME="«operation.name»" OPERATION="«getHttpMethodFromOperation(operation)»" URL="«operation.urlSuffix»"> + <PARAMS> + «FOR Parameter param : queryParams» + «IF param.required» + <!-- required --> + «ENDIF» + <PARAM NAME="«param.datatype.name»">«getTypeOfData(param.datatype)»</PARAM> + + «ENDFOR» + </PARAMS> + «IF !contentObjects.empty» + <CONTENT> + «FOR ObjectDataType object : contentObjects SEPARATOR ","» + «resolveObjectDatatypeToJson(object)» + <!-- required content: «FOR DataType datatype : object.datatypes SEPARATOR ","»«IF datatype.required»«datatype.name» «ENDIF»«ENDFOR» --> + «ENDFOR» + </CONTENT> + + «ENDIF» + </REQUEST> + </ROOT> + </xsl:template> + </xsl:stylesheet> + + ''' + } + + /** + * Creates the contents of the repository.xml file for the given API. + */ + def static createRepositoryXML(API api, List<String> fileNames, String folderName) { + + var int id = 100 + var LocalDateTime dateTimeNow = LocalDateTime.now() + var DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm:ss") + var String dateTimeNowFormatted = dateTimeNow.format(formatter) + + ''' + <?xml version="1.0" encoding="UTF-8" standalone="no"?> + <REPOSITORY> + <RESOURCES> + <RESOURCE EMPTYFOLDER="true" FILENAME="«folderName»" ID="«id»" IMPORT="true" NAME="SwaggerPetstore"> + <DESCRIPTION/> + </RESOURCE> + «FOR String fileName : fileNames» + <RESOURCE FILENAME="«folderName»/«fileName»" ID="«id += 1»" IMPORT="true" LASTMODIFIED="«dateTimeNowFormatted»" NAME="«fileName»" TYPE="XsltDocument"> + <DESCRIPTION/> + </RESOURCE> + «ENDFOR» + </RESOURCES> + + <ADAPTERTYPES> + <ADAPTERTYPE FACTORY="com.sqlgmbh.tc.adapter.http.AdapterFactory" ID="30" IMPORT="false"/> + </ADAPTERTYPES> + + <ADAPTERS> + <ADAPTER FACTORY="com.sqlgmbh.tc.adapter.http.AdapterFactory" ID="80" IMPORT="true" NAME="«api.name»" OUTBOUND="true" SUBTYPE="Default" TYPE_ID="30"> + <DESCRIPTION/> + <PROPERTIES> + <PROPERTY NAME="connection.maxIdle">10</PROPERTY> + <PROPERTY NAME="failed.request.content.length">100</PROPERTY> + <PROPERTY NAME="http.statuscode.check">false</PROPERTY> + <PROPERTY NAME="lib.log.verbose">false</PROPERTY> + <PROPERTY NAME="requestEncoding">UTF-8</PROPERTY> + <PROPERTY NAME="responseEncoding">ISO-8859-1</PROPERTY> + <PROPERTY NAME="trust.selfsigned">false</PROPERTY> + <PROPERTY NAME="url.outbound">«api.url»</PROPERTY> + <PROPERTY NAME="xml.invalidChars">Error</PROPERTY> + </PROPERTIES> + </ADAPTER> + </ADAPTERS> + </REPOSITORY> + + ''' + } + + /** + * Creates the JSON representation of an ObjectDataType from the API Model. + */ + def static String resolveObjectDatatypeToJson(ObjectDataType object) { + var ObjectMapper mapper = new ObjectMapper(); + var Map<String, String> mapOfJsonRepresenation = new LinkedHashMap(); + + for (DataType datatype : object.datatypes) { + mapOfJsonRepresenation.put(datatype.name , getTypeOfData(datatype)) + } + + //return json + return mapper.writerWithDefaultPrettyPrinter().writeValueAsString(mapOfJsonRepresenation) + + } + + + /** + * This method returns the associated HTTP-Method for an Operation object. + */ + def static String getHttpMethodFromOperation(Operation operation){ + if(operation instanceof ReadOperation) { + return "GET" + } + if(operation instanceof CreateOperation) { + return "POST" + } + if(operation instanceof UpdateOperation) { + return "PUT" + } + if(operation instanceof DeleteOperation) { + return "DELETE" + } + } + + /** + * This methods returns type of the given data. + */ + def static String getTypeOfData(DataType datatype) { + if (datatype instanceof StringData) { + return "string" + } + if (datatype instanceof IntegerData) { + return "integer" + } + if (datatype instanceof BooleanData) { + return "boolean" + } + if (datatype instanceof FloatData) { + return "float" + } + if (datatype instanceof ObjectDataType) { + return "object: " + datatype.name + } + if (datatype instanceof CollectionDataType) { + return "list of: " + datatype.listItem.name + } + } + +} + + + + diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/eb/d0d50c1d6944001f1c4da34d94bbd8c4 b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/eb/d0d50c1d6944001f1c4da34d94bbd8c4 new file mode 100644 index 0000000000000000000000000000000000000000..b691bf2002dfe4c7149690acf0e5a12f9370d133 --- /dev/null +++ b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/eb/d0d50c1d6944001f1c4da34d94bbd8c4 @@ -0,0 +1,5 @@ +package org.tfranke.webservice.dsl.generator + +class TransconnectRepositoryCreator { + +} \ No newline at end of file diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/ee/80df29c77444001f1c4da34d94bbd8c4 b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/ee/80df29c77444001f1c4da34d94bbd8c4 new file mode 100644 index 0000000000000000000000000000000000000000..5bd67865f5d19c787a19a9aec2a7c40d7f3151e9 --- /dev/null +++ b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/ee/80df29c77444001f1c4da34d94bbd8c4 @@ -0,0 +1,191 @@ +package org.tfranke.webservice.dsl.generator + +import org.eclipse.emf.ecore.resource.Resource +import org.eclipse.xtext.generator.AbstractGenerator +import org.eclipse.xtext.generator.IFileSystemAccess2 +import webservice.API +import webservice.Operation +import webservice.ReadOperation +import java.util.Map +import java.util.List +import java.util.HashMap +import webservice.Parameter +import webservice.CreateOperation +import webservice.UpdateOperation +import webservice.DeleteOperation +import webservice.DataType +import webservice.StringData +import webservice.IntegerData +import webservice.BooleanData +import webservice.FloatData +import webservice.CollectionDataType +import webservice.ObjectDataType +import com.fasterxml.jackson.databind.ObjectMapper +import java.util.ArrayList +import java.util.LinkedHashMap + +class TransconnectRepositoryCreator { + + def static createRepository(API api, IFileSystemAccess2 fsa) { + for (Operation operation : api.operations) { + var fileName = getHttpMethodFromOperation(operation) + " " + operation.name; + fsa.generateFile( "repositories/" + api.name + "/resources/" + fileName + ".xsl" , createResourceFile(operation, api)); + } + + //fsa.generateFile( "repositories/" + api.name + "/repository.xml", createRepositoryXML(api)); + } + + + def static createResourceFile(Operation operation, API api) { + + var List<ObjectDataType> contentObjects = new ArrayList(); + var List<Parameter> queryParams = new ArrayList(); + + for (Parameter param : operation.parameters) { + var DataType datatype = param.datatype + if (datatype instanceof ObjectDataType) { + contentObjects.add(datatype) + } else { + queryParams.add(param) + } + } + + ''' + <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> + <xsl:template match="/"> + <ROOT> + <REQUEST CONTENT-TYPE="application/json" EMBED="true" NAME="«operation.name»" OPERATION="«getHttpMethodFromOperation(operation)»" URL="«operation.urlSuffix»"> + <PARAMS> + «FOR Parameter param : queryParams» + «IF param.required» + <!-- required --> + «ENDIF» + <PARAM NAME="«param.datatype.name»">«getTypeOfData(param.datatype)»</PARAM> + + «ENDFOR» + </PARAMS> + «IF !contentObjects.empty» + <CONTENT> + «FOR ObjectDataType object : contentObjects SEPARATOR ","» + «resolveObjectDatatypeToJson(object)» + <!-- required content: «FOR DataType datatype : object.datatypes SEPARATOR ","»«IF datatype.required»«datatype.name» «ENDIF»«ENDFOR» --> + «ENDFOR» + </CONTENT> + + «ENDIF» + </REQUEST> + </ROOT> + </xsl:template> + </xsl:stylesheet> + + ''' + } + + + def static createRepositoryXML(API api) { + + ''' + <?xml version="1.0" encoding="UTF-8" standalone="no"?> + <REPOSITORY> + <RESOURCES> + + <RESOURCE EMPTYFOLDER="true" FILENAME="SwaggerPetstore" ID="100" IMPORT="true" NAME="SwaggerPetstore"> + <DESCRIPTION/> + </RESOURCE> + + <RESOURCE FILENAME="SwaggerPetstore/GET listPets.xsl" ID="105" IMPORT="true" LASTMODIFIED="01.04.2024 23:59:59" NAME="GET listPets.xsl" TYPE="XsltDocument"> + <DESCRIPTION/> + + </RESOURCES> + + <ADAPTERTYPES> + <ADAPTERTYPE FACTORY="com.sqlgmbh.tc.adapter.http.AdapterFactory" ID="30" IMPORT="false"/> + </ADAPTERTYPES> + + <ADAPTERS> + <ADAPTER FACTORY="com.sqlgmbh.tc.adapter.http.AdapterFactory" ID="80" IMPORT="true" NAME="«api.name»" OUTBOUND="true" SUBTYPE="Default" TYPE_ID="30"> + <DESCRIPTION/> + <PROPERTIES> + <PROPERTY NAME="connection.maxIdle">10</PROPERTY> + <PROPERTY NAME="failed.request.content.length">100</PROPERTY> + <PROPERTY NAME="http.statuscode.check">false</PROPERTY> + <PROPERTY NAME="lib.log.verbose">false</PROPERTY> + <PROPERTY NAME="requestEncoding">UTF-8</PROPERTY> + <PROPERTY NAME="responseEncoding">ISO-8859-1</PROPERTY> + <PROPERTY NAME="trust.selfsigned">false</PROPERTY> + <PROPERTY NAME="url.outbound">«api.url»</PROPERTY> + <PROPERTY NAME="xml.invalidChars">Error</PROPERTY> + </PROPERTIES> + </ADAPTER> + </ADAPTERS> + </REPOSITORY> + + + + ''' + + } + + + def static String resolveObjectDatatypeToJson(ObjectDataType object) { + var ObjectMapper mapper = new ObjectMapper(); + var Map<String, String> mapOfJsonRepresenation = new LinkedHashMap(); + + for (DataType datatype : object.datatypes) { + mapOfJsonRepresenation.put(datatype.name , getTypeOfData(datatype)) + } + + //return json + return mapper.writerWithDefaultPrettyPrinter().writeValueAsString(mapOfJsonRepresenation) + + } + + + /** + * This method returns the associated HTTP-Method for an Operation object. + */ + def static String getHttpMethodFromOperation(Operation operation){ + if(operation instanceof ReadOperation) { + return "GET" + } + if(operation instanceof CreateOperation) { + return "POST" + } + if(operation instanceof UpdateOperation) { + return "PUT" + } + if(operation instanceof DeleteOperation) { + return "DELETE" + } + return "other" // + } + + /** + * This methods returns type of the given data. + */ + def static String getTypeOfData(DataType datatype) { + if (datatype instanceof StringData) { + return "string" + } + if (datatype instanceof IntegerData) { + return "integer" + } + if (datatype instanceof BooleanData) { + return "boolean" + } + if (datatype instanceof FloatData) { + return "float" + } + if (datatype instanceof ObjectDataType) { + return "object: " + datatype.name + } + if (datatype instanceof CollectionDataType) { + return "list of: " + datatype.listItem + } + } + +} + + + + diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/fc/d09b5a6f7b44001f1c4da34d94bbd8c4 b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/fc/d09b5a6f7b44001f1c4da34d94bbd8c4 new file mode 100644 index 0000000000000000000000000000000000000000..05c1b7375cb894019257e1f3a13a969e0fbd4d2a --- /dev/null +++ b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.history/fc/d09b5a6f7b44001f1c4da34d94bbd8c4 @@ -0,0 +1,199 @@ +package org.tfranke.webservice.dsl.generator + +import org.eclipse.emf.ecore.resource.Resource +import org.eclipse.xtext.generator.AbstractGenerator +import org.eclipse.xtext.generator.IFileSystemAccess2 +import webservice.API +import webservice.Operation +import webservice.ReadOperation +import java.util.Map +import java.util.List +import java.util.HashMap +import webservice.Parameter +import webservice.CreateOperation +import webservice.UpdateOperation +import webservice.DeleteOperation +import webservice.DataType +import webservice.StringData +import webservice.IntegerData +import webservice.BooleanData +import webservice.FloatData +import webservice.CollectionDataType +import webservice.ObjectDataType +import com.fasterxml.jackson.databind.ObjectMapper +import java.util.ArrayList +import java.util.LinkedHashMap +import java.time.LocalDateTime +import java.time.format.DateTimeFormatter + +class TransconnectRepositoryCreator { + + def static createRepository(API api, IFileSystemAccess2 fsa) { + var List<String> fileNames = new ArrayList() + var folderName = api.name + //create resource file for each operation + for (Operation operation : api.operations) { + var fileName = getHttpMethodFromOperation(operation) + " " + operation.name + ".xsl"; + fileNames.add(fileName) + fsa.generateFile( "repositories/" + folderName + "/resources/" + folderName + "/" + fileName , createResourceFile(operation, api)); + } + //create repositoryXML file + fsa.generateFile( "repositories/" + folderName + "/repository.xml", createRepositoryXML(api, fileNames, folderName)); + } + + + def static createResourceFile(Operation operation, API api) { + + var List<ObjectDataType> contentObjects = new ArrayList(); + var List<Parameter> queryParams = new ArrayList(); + + for (Parameter param : operation.parameters) { + var DataType datatype = param.datatype + if (datatype instanceof ObjectDataType) { + contentObjects.add(datatype) + } else { + queryParams.add(param) + } + } + + ''' + <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> + <xsl:template match="/"> + <ROOT> + <REQUEST CONTENT-TYPE="application/json" EMBED="true" NAME="«operation.name»" OPERATION="«getHttpMethodFromOperation(operation)»" URL="«operation.urlSuffix»"> + <PARAMS> + «FOR Parameter param : queryParams» + «IF param.required» + <!-- required --> + «ENDIF» + <PARAM NAME="«param.datatype.name»">«getTypeOfData(param.datatype)»</PARAM> + + «ENDFOR» + </PARAMS> + «IF !contentObjects.empty» + <CONTENT> + «FOR ObjectDataType object : contentObjects SEPARATOR ","» + «resolveObjectDatatypeToJson(object)» + <!-- required content: «FOR DataType datatype : object.datatypes SEPARATOR ","»«IF datatype.required»«datatype.name» «ENDIF»«ENDFOR» --> + «ENDFOR» + </CONTENT> + + «ENDIF» + </REQUEST> + </ROOT> + </xsl:template> + </xsl:stylesheet> + + ''' + } + + + def static createRepositoryXML(API api, List<String> fileNames, String folderName) { + + var int id = 100 + var LocalDateTime dateTimeNow = LocalDateTime.now() + var DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm:ss") + var String dateTimeNowFormatted = dateTimeNow.format(formatter) + + ''' + <?xml version="1.0" encoding="UTF-8" standalone="no"?> + <REPOSITORY> + <RESOURCES> + <RESOURCE EMPTYFOLDER="true" FILENAME="«folderName»" ID="«id»" IMPORT="true" NAME="SwaggerPetstore"> + <DESCRIPTION/> + </RESOURCE> + «FOR String fileName : fileNames» + <RESOURCE FILENAME="«folderName»/«fileName»" ID="«id += 1»" IMPORT="true" LASTMODIFIED="«dateTimeNowFormatted»" NAME="«fileName»" TYPE="XsltDocument"> + <DESCRIPTION/> + </RESOURCE> + «ENDFOR» + </RESOURCES> + + <ADAPTERTYPES> + <ADAPTERTYPE FACTORY="com.sqlgmbh.tc.adapter.http.AdapterFactory" ID="30" IMPORT="false"/> + </ADAPTERTYPES> + + <ADAPTERS> + <ADAPTER FACTORY="com.sqlgmbh.tc.adapter.http.AdapterFactory" ID="80" IMPORT="true" NAME="«api.name»" OUTBOUND="true" SUBTYPE="Default" TYPE_ID="30"> + <DESCRIPTION/> + <PROPERTIES> + <PROPERTY NAME="connection.maxIdle">10</PROPERTY> + <PROPERTY NAME="failed.request.content.length">100</PROPERTY> + <PROPERTY NAME="http.statuscode.check">false</PROPERTY> + <PROPERTY NAME="lib.log.verbose">false</PROPERTY> + <PROPERTY NAME="requestEncoding">UTF-8</PROPERTY> + <PROPERTY NAME="responseEncoding">ISO-8859-1</PROPERTY> + <PROPERTY NAME="trust.selfsigned">false</PROPERTY> + <PROPERTY NAME="url.outbound">«api.url»</PROPERTY> + <PROPERTY NAME="xml.invalidChars">Error</PROPERTY> + </PROPERTIES> + </ADAPTER> + </ADAPTERS> + </REPOSITORY> + + ''' + } + + + def static String resolveObjectDatatypeToJson(ObjectDataType object) { + var ObjectMapper mapper = new ObjectMapper(); + var Map<String, String> mapOfJsonRepresenation = new LinkedHashMap(); + + for (DataType datatype : object.datatypes) { + mapOfJsonRepresenation.put(datatype.name , getTypeOfData(datatype)) + } + + //return json + return mapper.writerWithDefaultPrettyPrinter().writeValueAsString(mapOfJsonRepresenation) + + } + + + /** + * This method returns the associated HTTP-Method for an Operation object. + */ + def static String getHttpMethodFromOperation(Operation operation){ + if(operation instanceof ReadOperation) { + return "GET" + } + if(operation instanceof CreateOperation) { + return "POST" + } + if(operation instanceof UpdateOperation) { + return "PUT" + } + if(operation instanceof DeleteOperation) { + return "DELETE" + } + return "other" // + } + + /** + * This methods returns type of the given data. + */ + def static String getTypeOfData(DataType datatype) { + if (datatype instanceof StringData) { + return "string" + } + if (datatype instanceof IntegerData) { + return "integer" + } + if (datatype instanceof BooleanData) { + return "boolean" + } + if (datatype instanceof FloatData) { + return "float" + } + if (datatype instanceof ObjectDataType) { + return "object: " + datatype.name + } + if (datatype instanceof CollectionDataType) { + return "list of: " + datatype.listItem.name + } + } + +} + + + + diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.projects/.org.eclipse.egit.core.cmp/.location b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.projects/.org.eclipse.egit.core.cmp/.location index ffd1702419ae1bcd2f5431acbead2c882740af87..65eb710e802b3baf2803145bdfcb21d6845c24e7 100644 Binary files a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.projects/.org.eclipse.egit.core.cmp/.location and b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.projects/.org.eclipse.egit.core.cmp/.location differ diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.projects/org.tfranke.webservice.dsl.ide/org.eclipse.jdt.core/state.dat b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.projects/org.tfranke.webservice.dsl.ide/org.eclipse.jdt.core/state.dat index 799b73fc2672c8689420b876cb4d6767a5c61cc8..d6ebdd3f2bbb5c58896de270a9b6f4b62ea993fd 100644 Binary files a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.projects/org.tfranke.webservice.dsl.ide/org.eclipse.jdt.core/state.dat and b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.projects/org.tfranke.webservice.dsl.ide/org.eclipse.jdt.core/state.dat differ diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.projects/org.tfranke.webservice.dsl.tests/.markers b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.projects/org.tfranke.webservice.dsl.tests/.markers index 5adf15e3e5f65621e29182183b657e2f1d0cc0a2..9122f87d9f4ad5893297d5e416444f9f0eae3349 100644 Binary files a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.projects/org.tfranke.webservice.dsl.tests/.markers and b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.projects/org.tfranke.webservice.dsl.tests/.markers differ diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.projects/org.tfranke.webservice.dsl.tests/org.eclipse.jdt.core/state.dat b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.projects/org.tfranke.webservice.dsl.tests/org.eclipse.jdt.core/state.dat index 76fd3ce7bc2cbd0a29c922b07cd900145d90f781..396aa603459a5ca501589f80b9caa7d8413bf710 100644 Binary files a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.projects/org.tfranke.webservice.dsl.tests/org.eclipse.jdt.core/state.dat and b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.projects/org.tfranke.webservice.dsl.tests/org.eclipse.jdt.core/state.dat differ diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.projects/org.tfranke.webservice.dsl.ui.tests/org.eclipse.jdt.core/state.dat b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.projects/org.tfranke.webservice.dsl.ui.tests/org.eclipse.jdt.core/state.dat index ce2e77d305e73a790b52f91443a2939afad85f27..b2bd63f849746ff924d5246000c0c71904253ea1 100644 Binary files a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.projects/org.tfranke.webservice.dsl.ui.tests/org.eclipse.jdt.core/state.dat and b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.projects/org.tfranke.webservice.dsl.ui.tests/org.eclipse.jdt.core/state.dat differ diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.projects/org.tfranke.webservice.dsl.ui/org.eclipse.jdt.core/state.dat b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.projects/org.tfranke.webservice.dsl.ui/org.eclipse.jdt.core/state.dat index 1b74370ef7a90118e67ca409c252d29fc7fc46ff..dc4dac56657bb8e77ac44a5caeb76ff8db0be39a 100644 Binary files a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.projects/org.tfranke.webservice.dsl.ui/org.eclipse.jdt.core/state.dat and b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.projects/org.tfranke.webservice.dsl.ui/org.eclipse.jdt.core/state.dat differ diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.projects/org.tfranke.webservice.dsl/.indexes/7/e4/79/e1/bd/history.index b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.projects/org.tfranke.webservice.dsl/.indexes/7/e4/79/e1/bd/history.index deleted file mode 100644 index 01b5b29672074c22d1a24f3290e681ed3d63f30a..0000000000000000000000000000000000000000 Binary files a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.projects/org.tfranke.webservice.dsl/.indexes/7/e4/79/e1/bd/history.index and /dev/null differ diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.projects/org.tfranke.webservice.dsl/.indexes/e4/e4/79/e1/bd/d3/history.index b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.projects/org.tfranke.webservice.dsl/.indexes/e4/e4/79/e1/bd/d3/history.index new file mode 100644 index 0000000000000000000000000000000000000000..9d2ae5cde2d6fefb976d681fae73c8a8cae70168 Binary files /dev/null and b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.projects/org.tfranke.webservice.dsl/.indexes/e4/e4/79/e1/bd/d3/history.index differ diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.projects/org.tfranke.webservice.dsl/.indexes/e4/e4/79/e1/bd/history.index b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.projects/org.tfranke.webservice.dsl/.indexes/e4/e4/79/e1/bd/history.index deleted file mode 100644 index 7d02feabf0fc7563a8dbc3e5c64d76770c68634b..0000000000000000000000000000000000000000 Binary files a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.projects/org.tfranke.webservice.dsl/.indexes/e4/e4/79/e1/bd/history.index and /dev/null differ diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.projects/org.tfranke.webservice.dsl/.markers b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.projects/org.tfranke.webservice.dsl/.markers index 9a2e4997f2ef5b49ba4ccc32fa7c1405cc578b5f..e9c02aeadb82a39eb9abf6eaed678eb1057f7a08 100644 Binary files a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.projects/org.tfranke.webservice.dsl/.markers and b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.projects/org.tfranke.webservice.dsl/.markers differ diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.projects/org.tfranke.webservice.dsl/org.eclipse.jdt.core/state.dat b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.projects/org.tfranke.webservice.dsl/org.eclipse.jdt.core/state.dat index 2c456f18b495511048ef3b95c5027930f20e23e1..905a7a9820c187e96c10daf86a2a5d3f7e694d39 100644 Binary files a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.projects/org.tfranke.webservice.dsl/org.eclipse.jdt.core/state.dat and b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.projects/org.tfranke.webservice.dsl/org.eclipse.jdt.core/state.dat differ diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.root/30.tree b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.root/36.tree similarity index 55% rename from eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.root/30.tree rename to eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.root/36.tree index aad430777f27869752e2f470664d9b00390bbe1b..17dfa27fbb2ac795ace6728228354a61e21f51d2 100644 Binary files a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.root/30.tree and b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.root/36.tree differ diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources index 2bcc2ee39a3274add407f42a13df3255df3275fd..6e4f6b1ae54d24d86c1ad41d13d6dcd173a40bb3 100644 Binary files a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources and b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources differ diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.workbench.prefs b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.workbench.prefs index 2ae779ec987022fc14b12c88137abf568b4b2919..5eeed43fc9291f4f3d9a2a3abdd3549512080bff 100644 --- a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.workbench.prefs +++ b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.workbench.prefs @@ -2,3 +2,21 @@ //org.eclipse.ui.commands/state/org.eclipse.wst.xml.views.XPathView.processor.xpathprocessor/org.eclipse.ui.commands.radioState=xpath10 PLUGINS_NOT_ACTIVATED_ON_STARTUP=;org.eclipse.m2e.discovery; eclipse.preferences.version=1 +org.eclipse.compare.contentmergeviewer.TextMergeViewer=1|Consolas|12.0|0|WINDOWS|1|0|0|0|0|0|0|0|0|1|0|0|0|0|Consolas; +org.eclipse.debug.ui.DetailPaneFont=1|Consolas|12.0|0|WINDOWS|1|0|0|0|0|0|0|0|0|1|0|0|0|0|Consolas; +org.eclipse.debug.ui.MemoryViewTableFont=1|Consolas|12.0|0|WINDOWS|1|0|0|0|0|0|0|0|0|1|0|0|0|0|Consolas; +org.eclipse.debug.ui.consoleFont=1|Consolas|12.0|0|WINDOWS|1|0|0|0|0|0|0|0|0|1|0|0|0|0|Consolas; +org.eclipse.egit.ui.CommitMessageEditorFont=1|Consolas|12.0|0|WINDOWS|1|0|0|0|0|0|0|0|0|1|0|0|0|0|Consolas; +org.eclipse.egit.ui.CommitMessageFont=1|Consolas|12.0|0|WINDOWS|1|0|0|0|0|0|0|0|0|1|0|0|0|0|Consolas; +org.eclipse.egit.ui.DiffHeadlineFont=1|Consolas|12.0|0|WINDOWS|1|0|0|0|0|0|0|0|0|1|0|0|0|0|Consolas; +org.eclipse.jdt.internal.ui.compare.JavaMergeViewer=1|Consolas|12.0|0|WINDOWS|1|0|0|0|0|0|0|0|0|1|0|0|0|0|Consolas; +org.eclipse.jdt.internal.ui.compare.PropertiesFileMergeViewer=1|Consolas|12.0|0|WINDOWS|1|0|0|0|0|0|0|0|0|1|0|0|0|0|Consolas; +org.eclipse.jdt.ui.PropertiesFileEditor.textfont=1|Consolas|12.0|0|WINDOWS|1|0|0|0|0|0|0|0|0|1|0|0|0|0|Consolas; +org.eclipse.jdt.ui.editors.textfont=1|Consolas|12.0|0|WINDOWS|1|0|0|0|0|0|0|0|0|1|0|0|0|0|Consolas; +org.eclipse.jface.textfont=1|Consolas|12.0|0|WINDOWS|1|0|0|0|0|0|0|0|0|1|0|0|0|0|Consolas; +org.eclipse.mylyn.wikitext.ui.presentation.textFont=1|Consolas|12.0|0|WINDOWS|1|0|0|0|0|0|0|0|0|1|0|0|0|0|Consolas; +org.eclipse.pde.internal.ui.compare.ManifestContentMergeViewer=1|Consolas|12.0|0|WINDOWS|1|0|0|0|0|0|0|0|0|1|0|0|0|0|Consolas; +org.eclipse.pde.internal.ui.compare.PluginContentMergeViewer=1|Consolas|12.0|0|WINDOWS|1|0|0|0|0|0|0|0|0|1|0|0|0|0|Consolas; +org.eclipse.wst.sse.ui.textfont=1|Consolas|12.0|0|WINDOWS|1|0|0|0|0|0|0|0|0|1|0|0|0|0|Consolas; +org.eclipse.xtend.ui.editors.textfont=1|Consolas|12.0|0|WINDOWS|1|0|0|0|0|0|0|0|0|1|0|0|0|0|Consolas; +terminal.views.view.font.definition=1|Consolas|12.0|0|WINDOWS|1|0|0|0|0|0|0|0|0|1|0|0|0|0|Consolas; diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi index e86365c753f8cab76961e48bd1341a8942ba7b92..a83aa063b4eb0ffb20b41c7fa6f935548ff36bb1 100644 --- a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi +++ b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi @@ -1,8 +1,8 @@ <?xml version="1.0" encoding="ASCII"?> <application:Application xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:advanced="http://www.eclipse.org/ui/2010/UIModel/application/ui/advanced" xmlns:application="http://www.eclipse.org/ui/2010/UIModel/application" xmlns:basic="http://www.eclipse.org/ui/2010/UIModel/application/ui/basic" xmlns:menu="http://www.eclipse.org/ui/2010/UIModel/application/ui/menu" xmi:id="_2VC2UD14Ee-mn7ETeetGkg" elementId="org.eclipse.e4.legacy.ide.application" contributorURI="platform:/plugin/org.eclipse.platform" selectedElement="_2VF5oD14Ee-mn7ETeetGkg" bindingContexts="_2VI9Uz14Ee-mn7ETeetGkg"> - <persistedState key="memento" value="<?xml version="1.0" encoding="UTF-8"?>
<workbench>
<mruList>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.emf.ecore.presentation.EcoreEditorID" name="webservice.ecore" tooltip="webservice/model/webservice.ecore">
<persistable path="/webservice/model/webservice.ecore"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.sirius.ui.editor.session" name="webservice.aird" tooltip="webservice/model/webservice.aird">
<persistable path="/webservice/model/webservice.aird"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.emf.codegen.ecore.genmodel.presentation.GenModelEditorID" name="webservice.genmodel" tooltip="webservice/model/webservice.genmodel">
<persistable path="/webservice/model/webservice.genmodel"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.jdt.ui.CompilationUnitEditor" name="WebserviceDSLDescriptionLabelProvider.java" tooltip="org.tfranke.webservice.dsl.ui/src/org/tfranke/webservice/dsl/ui/labeling/WebserviceDSLDescriptionLabelProvider.java">
<persistable path="/org.tfranke.webservice.dsl.ui/src/org/tfranke/webservice/dsl/ui/labeling/WebserviceDSLDescriptionLabelProvider.java"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.jdt.ui.CompilationUnitEditor" name="WebserviceDSLLabelProvider.java" tooltip="org.tfranke.webservice.dsl.ui/src/org/tfranke/webservice/dsl/ui/labeling/WebserviceDSLLabelProvider.java">
<persistable path="/org.tfranke.webservice.dsl.ui/src/org/tfranke/webservice/dsl/ui/labeling/WebserviceDSLLabelProvider.java"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.jdt.ui.CompilationUnitEditor" name="WebserviceDSLUiModule.java" tooltip="org.tfranke.webservice.dsl.ui/src/org/tfranke/webservice/dsl/ui/WebserviceDSLUiModule.java">
<persistable path="/org.tfranke.webservice.dsl.ui/src/org/tfranke/webservice/dsl/ui/WebserviceDSLUiModule.java"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.xtend.core.Xtend" name="WebserviceDSLParsingTest.xtend" tooltip="org.tfranke.webservice.dsl.tests/src/org/tfranke/webservice/dsl/tests/WebserviceDSLParsingTest.xtend">
<persistable path="/org.tfranke.webservice.dsl.tests/src/org/tfranke/webservice/dsl/tests/WebserviceDSLParsingTest.xtend"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.xtend.core.Xtend" name="WebserviceDSLGenerator.xtend" tooltip="org.tfranke.webservice.dsl/src/org/tfranke/webservice/dsl/generator/WebserviceDSLGenerator.xtend">
<persistable path="/org.tfranke.webservice.dsl/src/org/tfranke/webservice/dsl/generator/WebserviceDSLGenerator.xtend"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.pde.ui.buildEditor" name="build.properties" tooltip="org.tfranke.webservice.dsl/build.properties">
<persistable path="/org.tfranke.webservice.dsl/build.properties"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.ui.DefaultTextEditor" name="GenerateWebserviceDSL.mwe2" tooltip="org.tfranke.webservice.dsl/src/org/tfranke/webservice/dsl/GenerateWebserviceDSL.mwe2">
<persistable path="/org.tfranke.webservice.dsl/src/org/tfranke/webservice/dsl/GenerateWebserviceDSL.mwe2"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.pde.ui.manifestEditor" name="MANIFEST.MF" tooltip="org.tfranke.webservice.dsl/META-INF/MANIFEST.MF">
<persistable path="/org.tfranke.webservice.dsl/META-INF/MANIFEST.MF"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.xtext.Xtext" name="WebserviceDSL.xtext" tooltip="org.tfranke.webservice.dsl/src/org/tfranke/webservice/dsl/WebserviceDSL.xtext">
<persistable path="/org.tfranke.webservice.dsl/src/org/tfranke/webservice/dsl/WebserviceDSL.xtext"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.jdt.ui.CompilationUnitEditor" name="WebserviceDSLSemanticSequencer.java" tooltip="org.tfranke.webservice.dsl/src-gen/org/tfranke/webservice/dsl/serializer/WebserviceDSLSemanticSequencer.java">
<persistable path="/org.tfranke.webservice.dsl/src-gen/org/tfranke/webservice/dsl/serializer/WebserviceDSLSemanticSequencer.java"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.xtend.core.Xtend" name="WebserviceDSLFormatter.xtend" tooltip="org.tfranke.webservice.dsl/src/org/tfranke/webservice/dsl/formatting2/WebserviceDSLFormatter.xtend">
<persistable path="/org.tfranke.webservice.dsl/src/org/tfranke/webservice/dsl/formatting2/WebserviceDSLFormatter.xtend"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.jdt.ui.CompilationUnitEditor" name="Endpoint.java" tooltip="webservice/src-gen/webservice/Endpoint.java">
<persistable path="/webservice/src-gen/webservice/Endpoint.java"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.jdt.ui.CompilationUnitEditor" name="EndpointImpl.java" tooltip="webservice/src-gen/webservice/impl/EndpointImpl.java">
<persistable path="/webservice/src-gen/webservice/impl/EndpointImpl.java"/>
</file>
<file factoryID="org.eclipse.jdt.ui.ClassFileEditorInputFactory" id="org.eclipse.jdt.ui.ClassFileEditor" name="IFileSystemAccess.class" tooltip="org.eclipse.xtext.generator.IFileSystemAccess">
<persistable org.eclipse.jdt.ui.ClassFileIdentifier="=org.tfranke.webservice.dsl/C:\/Tom\/Studium\/Bachelorarbeit\/eclipse\/plugins\/org.eclipse.xtext_2.35.0.v20240528-1523.jar&lt;org.eclipse.xtext.generator(IFileSystemAccess.class"/>
</file>
<file factoryID="org.eclipse.jdt.ui.ClassFileEditorInputFactory" id="org.eclipse.jdt.ui.ClassFileEditor" name="Functions$Function1.class" tooltip="org.eclipse.xtext.xbase.lib.Functions$Function1">
<persistable org.eclipse.jdt.ui.ClassFileIdentifier="=org.tfranke.webservice.dsl/C:\/Tom\/Studium\/Bachelorarbeit\/eclipse\/plugins\/org.eclipse.xtext.xbase.lib_2.35.0.v20240528-1523.jar&lt;org.eclipse.xtext.xbase.lib(Functions$Function1.class"/>
</file>
<file factoryID="org.eclipse.jdt.ui.ClassFileEditorInputFactory" id="org.eclipse.jdt.ui.ClassFileEditor" name="IterableExtensions.class" tooltip="org.eclipse.xtext.xbase.lib.IterableExtensions">
<persistable org.eclipse.jdt.ui.ClassFileIdentifier="=org.tfranke.webservice.dsl/C:\/Tom\/Studium\/Bachelorarbeit\/eclipse\/plugins\/org.eclipse.xtext.xbase.lib_2.35.0.v20240528-1523.jar&lt;org.eclipse.xtext.xbase.lib(IterableExtensions.class"/>
</file>
<file factoryID="org.eclipse.jdt.ui.ClassFileEditorInputFactory" id="org.eclipse.jdt.ui.ClassFileEditor" name="JsonView.class" tooltip="com.fasterxml.jackson.annotation.JsonView">
<persistable org.eclipse.jdt.ui.ClassFileIdentifier="=org.tfranke.webservice.dsl/lib\/jackson-annotations-2.15.2.jar&lt;com.fasterxml.jackson.annotation(JsonView.class"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.jdt.ui.PropertiesFileEditor" name="plugin.properties" tooltip="webservice/plugin.properties">
<persistable path="/webservice/plugin.properties"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.pde.ui.buildEditor" name="build.properties" tooltip="webservice/build.properties">
<persistable path="/webservice/build.properties"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.pde.ui.manifestEditor" name="plugin.xml" tooltip="org.tfranke.webservice.dsl/plugin.xml">
<persistable path="/org.tfranke.webservice.dsl/plugin.xml"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.jdt.ui.CompilationUnitEditor" name="WebserviceDSLGenerator.java" tooltip="org.tfranke.webservice.dsl/xtend-gen/org/tfranke/webservice/dsl/generator/WebserviceDSLGenerator.java">
<persistable path="/org.tfranke.webservice.dsl/xtend-gen/org/tfranke/webservice/dsl/generator/WebserviceDSLGenerator.java"/>
</file>
<file factoryID="org.eclipse.jdt.ui.ClassFileEditorInputFactory" id="org.eclipse.jdt.ui.ClassFileEditor" name="ObjectMapper.class" tooltip="com.fasterxml.jackson.databind.ObjectMapper">
<persistable org.eclipse.jdt.ui.ClassFileIdentifier="=org.tfranke.webservice.dsl/lib\/jackson-databind-2.15.2.jar&lt;com.fasterxml.jackson.databind(ObjectMapper.class"/>
</file>
<file factoryID="org.eclipse.jdt.ui.ClassFileEditorInputFactory" id="org.eclipse.jdt.ui.ClassFileEditor" name="JsonProcessingException.class" tooltip="com.fasterxml.jackson.core.JsonProcessingException">
<persistable org.eclipse.jdt.ui.ClassFileIdentifier="=org.tfranke.webservice.dsl/lib\/jackson-core-2.15.2.jar&lt;com.fasterxml.jackson.core(JsonProcessingException.class"/>
</file>
<file factoryID="org.eclipse.jdt.ui.ClassFileEditorInputFactory" id="org.eclipse.jdt.ui.ClassFileEditor" name="JsonProcessingException.class" tooltip="com.fasterxml.jackson.core.JsonProcessingException">
<persistable org.eclipse.jdt.ui.ClassFileIdentifier="=org.tfranke.webservice.dsl/C:\/Users\/tfranke\/Downloads\/jackson-core-2.15.2.jar&lt;com.fasterxml.jackson.core(JsonProcessingException.class"/>
</file>
<file factoryID="org.eclipse.jdt.ui.ClassFileEditorInputFactory" id="org.eclipse.jdt.ui.ClassFileEditor" name="MappingJsonFactory.class" tooltip="com.fasterxml.jackson.databind.MappingJsonFactory">
<persistable org.eclipse.jdt.ui.ClassFileIdentifier="=org.tfranke.webservice.dsl/C:\/Users\/tfranke\/Downloads\/jackson-databind-2.15.2.jar&lt;com.fasterxml.jackson.databind(MappingJsonFactory.class"/>
</file>
<file factoryID="org.eclipse.jdt.ui.ClassFileEditorInputFactory" id="org.eclipse.jdt.ui.ClassFileEditor" name="Stream.class" tooltip="java.util.stream.Stream">
<persistable org.eclipse.jdt.ui.ClassFileIdentifier="=org.tfranke.webservice.dsl/C:\/Tom\/Studium\/Bachelorarbeit\/eclipse\/plugins\/org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_17.0.10.v20240120-1143\/jre\/lib\/jrt-fs.jar`java.base=/javadoc_location=/https:\/\/docs.oracle.com\/en\/java\/javase\/17\/docs\/api\/=/=/module=/true=/&lt;java.util.stream(Stream.class"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.jdt.ui.CompilationUnitEditor" name="ReadOperationImpl.java" tooltip="webservice/src-gen/webservice/impl/ReadOperationImpl.java">
<persistable path="/webservice/src-gen/webservice/impl/ReadOperationImpl.java"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.jdt.ui.CompilationUnitEditor" name="Operation.java" tooltip="webservice/src-gen/webservice/Operation.java">
<persistable path="/webservice/src-gen/webservice/Operation.java"/>
</file>
<file factoryID="org.eclipse.jdt.ui.ClassFileEditorInputFactory" id="org.eclipse.jdt.ui.ClassFileEditor" name="Object.class" tooltip="java.lang.Object">
<persistable org.eclipse.jdt.ui.ClassFileIdentifier="=org.tfranke.webservice.dsl/C:\/Tom\/Studium\/Bachelorarbeit\/eclipse\/plugins\/org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_17.0.10.v20240120-1143\/jre\/lib\/jrt-fs.jar`java.base=/javadoc_location=/https:\/\/docs.oracle.com\/en\/java\/javase\/17\/docs\/api\/=/=/module=/true=/&lt;java.lang(Object.class"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.jdt.ui.CompilationUnitEditor" name="OperationImpl.java" tooltip="webservice/src-gen/webservice/impl/OperationImpl.java">
<persistable path="/webservice/src-gen/webservice/impl/OperationImpl.java"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.jdt.ui.CompilationUnitEditor" name="ReadOperation.java" tooltip="webservice/src-gen/webservice/ReadOperation.java">
<persistable path="/webservice/src-gen/webservice/ReadOperation.java"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.jdt.ui.CompilationUnitEditor" name="WebserviceDSLFormatter.java" tooltip="org.tfranke.webservice.dsl/xtend-gen/org/tfranke/webservice/dsl/formatting2/WebserviceDSLFormatter.java">
<persistable path="/org.tfranke.webservice.dsl/xtend-gen/org/tfranke/webservice/dsl/formatting2/WebserviceDSLFormatter.java"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.jdt.ui.CompilationUnitEditor" name="WebserviceDSLStandaloneSetupGenerated.java" tooltip="org.tfranke.webservice.dsl/src-gen/org/tfranke/webservice/dsl/WebserviceDSLStandaloneSetupGenerated.java">
<persistable path="/org.tfranke.webservice.dsl/src-gen/org/tfranke/webservice/dsl/WebserviceDSLStandaloneSetupGenerated.java"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.jdt.ui.CompilationUnitEditor" name="AbstractWebserviceDSLRuntimeModule.java" tooltip="org.tfranke.webservice.dsl/src-gen/org/tfranke/webservice/dsl/AbstractWebserviceDSLRuntimeModule.java">
<persistable path="/org.tfranke.webservice.dsl/src-gen/org/tfranke/webservice/dsl/AbstractWebserviceDSLRuntimeModule.java"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.jdt.ui.CompilationUnitEditor" name="WebserviceDSLStandaloneSetup.java" tooltip="org.tfranke.webservice.dsl/src/org/tfranke/webservice/dsl/WebserviceDSLStandaloneSetup.java">
<persistable path="/org.tfranke.webservice.dsl/src/org/tfranke/webservice/dsl/WebserviceDSLStandaloneSetup.java"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.jdt.ui.CompilationUnitEditor" name="WebserviceDSLRuntimeModule.java" tooltip="org.tfranke.webservice.dsl/src/org/tfranke/webservice/dsl/WebserviceDSLRuntimeModule.java">
<persistable path="/org.tfranke.webservice.dsl/src/org/tfranke/webservice/dsl/WebserviceDSLRuntimeModule.java"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.jdt.ui.CompilationUnitEditor" name="Main.java" tooltip="testimpl/src/org/tfranke/testimpl/Main.java">
<persistable path="/testimpl/src/org/tfranke/testimpl/Main.java"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.jdt.ui.CompilationUnitEditor" name="AbstractWebserviceDSLRuntimeModule.java" tooltip="testimpl/src-gen/org/tfranke/webservice/dsl/AbstractWebserviceDSLRuntimeModule.java">
<persistable path="/testimpl/src-gen/org/tfranke/webservice/dsl/AbstractWebserviceDSLRuntimeModule.java"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.jdt.ui.ModuleInfoEditor" name="module-info.java" tooltip="testimpl/src/module-info.java">
<persistable path="/testimpl/src/module-info.java"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.pde.ui.manifestEditor" name="MANIFEST.MF" tooltip="webservice/META-INF/MANIFEST.MF">
<persistable path="/webservice/META-INF/MANIFEST.MF"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.jdt.ui.CompilationUnitEditor" name="ComplexDataTypeImpl.java" tooltip="webservice/src-gen/webservice/impl/ComplexDataTypeImpl.java">
<persistable path="/webservice/src-gen/webservice/impl/ComplexDataTypeImpl.java"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.jdt.ui.CompilationUnitEditor" name="SimpleDataTypeImpl.java" tooltip="webservice/src-gen/webservice/impl/SimpleDataTypeImpl.java">
<persistable path="/webservice/src-gen/webservice/impl/SimpleDataTypeImpl.java"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.pde.ui.manifestEditor" name="plugin.xml" tooltip="webservice/plugin.xml">
<persistable path="/webservice/plugin.xml"/>
</file>
<file factoryID="org.eclipse.sirius.ui.business.api.session.SessionEditorInputFactory" id="org.eclipse.sirius.diagram.ui.part.SiriusDiagramEditorID" name="webservice" tooltip="platform:/resource/webservice/model/webservice.aird/webservice">
<persistable REP_DESC_URI="platform:/resource/webservice/model/webservice.aird#_jxFfwB5nEe-69dLCN_yvnQ" SESSION_RESOURCE_URI="platform:/resource/webservice/model/webservice.aird" bundle="org.eclipse.sirius.ui" class="org.eclipse.sirius.ui.business.api.session.SessionEditorInput" name="webservice" uri="platform:/resource/webservice/model/webservice.aird#_jx0fkB5nEe-69dLCN_yvnQ"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.jdt.ui.CompilationUnitEditor" name="API.java" tooltip="webservice/src-gen/webservice/API.java">
<persistable path="/webservice/src-gen/webservice/API.java"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.xtext.Xtext" name="WebserviceDsl.xtext" tooltip="org.tfranke.webservice/src/org/tfranke/webservice/WebserviceDsl.xtext">
<persistable path="/org.tfranke.webservice/src/org/tfranke/webservice/WebserviceDsl.xtext"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.jdt.ui.CompilationUnitEditor" name="WebservicePackageImpl.java" tooltip="webservice/src-gen/webservice/impl/WebservicePackageImpl.java">
<persistable path="/webservice/src-gen/webservice/impl/WebservicePackageImpl.java"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.jdt.ui.CompilationUnitEditor" name="WebserviceAdapterFactory.java" tooltip="webservice/src-gen/webservice/util/WebserviceAdapterFactory.java">
<persistable path="/webservice/src-gen/webservice/util/WebserviceAdapterFactory.java"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.jdt.ui.CompilationUnitEditor" name="WebserviceFactoryImpl.java" tooltip="webservice/src-gen/webservice/impl/WebserviceFactoryImpl.java">
<persistable path="/webservice/src-gen/webservice/impl/WebserviceFactoryImpl.java"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.jdt.ui.CompilationUnitEditor" name="WebserviceFactory.java" tooltip="webservice/src-gen/webservice/WebserviceFactory.java">
<persistable path="/webservice/src-gen/webservice/WebserviceFactory.java"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.jdt.ui.CompilationUnitEditor" name="SimpleDataType.java" tooltip="webservice/src-gen/webservice/SimpleDataType.java">
<persistable path="/webservice/src-gen/webservice/SimpleDataType.java"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.jdt.ui.CompilationUnitEditor" name="WebservicePackage.java" tooltip="webservice/src-gen/webservice/WebservicePackage.java">
<persistable path="/webservice/src-gen/webservice/WebservicePackage.java"/>
</file>
</mruList>
</workbench>"/> + <persistedState key="memento" value="<?xml version="1.0" encoding="UTF-8"?>
<workbench>
<mruList>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.emf.ecore.presentation.EcoreEditorID" name="webservice.ecore" tooltip="webservice/model/webservice.ecore">
<persistable path="/webservice/model/webservice.ecore"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.xtend.core.Xtend" name="WebserviceDSLGenerator.xtend" tooltip="org.tfranke.webservice.dsl/src/org/tfranke/webservice/dsl/generator/WebserviceDSLGenerator.xtend">
<persistable path="/org.tfranke.webservice.dsl/src/org/tfranke/webservice/dsl/generator/WebserviceDSLGenerator.xtend"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.xtend.core.Xtend" name="TransconnectRepositoryCreator.xtend" tooltip="org.tfranke.webservice.dsl/src/org/tfranke/webservice/dsl/generator/TransconnectRepositoryCreator.xtend">
<persistable path="/org.tfranke.webservice.dsl/src/org/tfranke/webservice/dsl/generator/TransconnectRepositoryCreator.xtend"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.xtext.Xtext" name="WebserviceDSL.xtext" tooltip="org.tfranke.webservice.dsl/src/org/tfranke/webservice/dsl/WebserviceDSL.xtext">
<persistable path="/org.tfranke.webservice.dsl/src/org/tfranke/webservice/dsl/WebserviceDSL.xtext"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.emf.codegen.ecore.genmodel.presentation.GenModelEditorID" name="webservice.genmodel" tooltip="webservice/model/webservice.genmodel">
<persistable path="/webservice/model/webservice.genmodel"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.sirius.ui.editor.session" name="webservice.aird" tooltip="webservice/model/webservice.aird">
<persistable path="/webservice/model/webservice.aird"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.jdt.ui.CompilationUnitEditor" name="WebserviceDSLDescriptionLabelProvider.java" tooltip="org.tfranke.webservice.dsl.ui/src/org/tfranke/webservice/dsl/ui/labeling/WebserviceDSLDescriptionLabelProvider.java">
<persistable path="/org.tfranke.webservice.dsl.ui/src/org/tfranke/webservice/dsl/ui/labeling/WebserviceDSLDescriptionLabelProvider.java"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.jdt.ui.CompilationUnitEditor" name="WebserviceDSLLabelProvider.java" tooltip="org.tfranke.webservice.dsl.ui/src/org/tfranke/webservice/dsl/ui/labeling/WebserviceDSLLabelProvider.java">
<persistable path="/org.tfranke.webservice.dsl.ui/src/org/tfranke/webservice/dsl/ui/labeling/WebserviceDSLLabelProvider.java"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.jdt.ui.CompilationUnitEditor" name="WebserviceDSLUiModule.java" tooltip="org.tfranke.webservice.dsl.ui/src/org/tfranke/webservice/dsl/ui/WebserviceDSLUiModule.java">
<persistable path="/org.tfranke.webservice.dsl.ui/src/org/tfranke/webservice/dsl/ui/WebserviceDSLUiModule.java"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.xtend.core.Xtend" name="WebserviceDSLParsingTest.xtend" tooltip="org.tfranke.webservice.dsl.tests/src/org/tfranke/webservice/dsl/tests/WebserviceDSLParsingTest.xtend">
<persistable path="/org.tfranke.webservice.dsl.tests/src/org/tfranke/webservice/dsl/tests/WebserviceDSLParsingTest.xtend"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.pde.ui.buildEditor" name="build.properties" tooltip="org.tfranke.webservice.dsl/build.properties">
<persistable path="/org.tfranke.webservice.dsl/build.properties"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.ui.DefaultTextEditor" name="GenerateWebserviceDSL.mwe2" tooltip="org.tfranke.webservice.dsl/src/org/tfranke/webservice/dsl/GenerateWebserviceDSL.mwe2">
<persistable path="/org.tfranke.webservice.dsl/src/org/tfranke/webservice/dsl/GenerateWebserviceDSL.mwe2"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.pde.ui.manifestEditor" name="MANIFEST.MF" tooltip="org.tfranke.webservice.dsl/META-INF/MANIFEST.MF">
<persistable path="/org.tfranke.webservice.dsl/META-INF/MANIFEST.MF"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.jdt.ui.CompilationUnitEditor" name="WebserviceDSLSemanticSequencer.java" tooltip="org.tfranke.webservice.dsl/src-gen/org/tfranke/webservice/dsl/serializer/WebserviceDSLSemanticSequencer.java">
<persistable path="/org.tfranke.webservice.dsl/src-gen/org/tfranke/webservice/dsl/serializer/WebserviceDSLSemanticSequencer.java"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.xtend.core.Xtend" name="WebserviceDSLFormatter.xtend" tooltip="org.tfranke.webservice.dsl/src/org/tfranke/webservice/dsl/formatting2/WebserviceDSLFormatter.xtend">
<persistable path="/org.tfranke.webservice.dsl/src/org/tfranke/webservice/dsl/formatting2/WebserviceDSLFormatter.xtend"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.jdt.ui.CompilationUnitEditor" name="Endpoint.java" tooltip="webservice/src-gen/webservice/Endpoint.java">
<persistable path="/webservice/src-gen/webservice/Endpoint.java"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.jdt.ui.CompilationUnitEditor" name="EndpointImpl.java" tooltip="webservice/src-gen/webservice/impl/EndpointImpl.java">
<persistable path="/webservice/src-gen/webservice/impl/EndpointImpl.java"/>
</file>
<file factoryID="org.eclipse.jdt.ui.ClassFileEditorInputFactory" id="org.eclipse.jdt.ui.ClassFileEditor" name="IFileSystemAccess.class" tooltip="org.eclipse.xtext.generator.IFileSystemAccess">
<persistable org.eclipse.jdt.ui.ClassFileIdentifier="=org.tfranke.webservice.dsl/C:\/Tom\/Studium\/Bachelorarbeit\/eclipse\/plugins\/org.eclipse.xtext_2.35.0.v20240528-1523.jar&lt;org.eclipse.xtext.generator(IFileSystemAccess.class"/>
</file>
<file factoryID="org.eclipse.jdt.ui.ClassFileEditorInputFactory" id="org.eclipse.jdt.ui.ClassFileEditor" name="Functions$Function1.class" tooltip="org.eclipse.xtext.xbase.lib.Functions$Function1">
<persistable org.eclipse.jdt.ui.ClassFileIdentifier="=org.tfranke.webservice.dsl/C:\/Tom\/Studium\/Bachelorarbeit\/eclipse\/plugins\/org.eclipse.xtext.xbase.lib_2.35.0.v20240528-1523.jar&lt;org.eclipse.xtext.xbase.lib(Functions$Function1.class"/>
</file>
<file factoryID="org.eclipse.jdt.ui.ClassFileEditorInputFactory" id="org.eclipse.jdt.ui.ClassFileEditor" name="IterableExtensions.class" tooltip="org.eclipse.xtext.xbase.lib.IterableExtensions">
<persistable org.eclipse.jdt.ui.ClassFileIdentifier="=org.tfranke.webservice.dsl/C:\/Tom\/Studium\/Bachelorarbeit\/eclipse\/plugins\/org.eclipse.xtext.xbase.lib_2.35.0.v20240528-1523.jar&lt;org.eclipse.xtext.xbase.lib(IterableExtensions.class"/>
</file>
<file factoryID="org.eclipse.jdt.ui.ClassFileEditorInputFactory" id="org.eclipse.jdt.ui.ClassFileEditor" name="JsonView.class" tooltip="com.fasterxml.jackson.annotation.JsonView">
<persistable org.eclipse.jdt.ui.ClassFileIdentifier="=org.tfranke.webservice.dsl/lib\/jackson-annotations-2.15.2.jar&lt;com.fasterxml.jackson.annotation(JsonView.class"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.jdt.ui.PropertiesFileEditor" name="plugin.properties" tooltip="webservice/plugin.properties">
<persistable path="/webservice/plugin.properties"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.pde.ui.buildEditor" name="build.properties" tooltip="webservice/build.properties">
<persistable path="/webservice/build.properties"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.pde.ui.manifestEditor" name="plugin.xml" tooltip="org.tfranke.webservice.dsl/plugin.xml">
<persistable path="/org.tfranke.webservice.dsl/plugin.xml"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.jdt.ui.CompilationUnitEditor" name="WebserviceDSLGenerator.java" tooltip="org.tfranke.webservice.dsl/xtend-gen/org/tfranke/webservice/dsl/generator/WebserviceDSLGenerator.java">
<persistable path="/org.tfranke.webservice.dsl/xtend-gen/org/tfranke/webservice/dsl/generator/WebserviceDSLGenerator.java"/>
</file>
<file factoryID="org.eclipse.jdt.ui.ClassFileEditorInputFactory" id="org.eclipse.jdt.ui.ClassFileEditor" name="ObjectMapper.class" tooltip="com.fasterxml.jackson.databind.ObjectMapper">
<persistable org.eclipse.jdt.ui.ClassFileIdentifier="=org.tfranke.webservice.dsl/lib\/jackson-databind-2.15.2.jar&lt;com.fasterxml.jackson.databind(ObjectMapper.class"/>
</file>
<file factoryID="org.eclipse.jdt.ui.ClassFileEditorInputFactory" id="org.eclipse.jdt.ui.ClassFileEditor" name="JsonProcessingException.class" tooltip="com.fasterxml.jackson.core.JsonProcessingException">
<persistable org.eclipse.jdt.ui.ClassFileIdentifier="=org.tfranke.webservice.dsl/lib\/jackson-core-2.15.2.jar&lt;com.fasterxml.jackson.core(JsonProcessingException.class"/>
</file>
<file factoryID="org.eclipse.jdt.ui.ClassFileEditorInputFactory" id="org.eclipse.jdt.ui.ClassFileEditor" name="JsonProcessingException.class" tooltip="com.fasterxml.jackson.core.JsonProcessingException">
<persistable org.eclipse.jdt.ui.ClassFileIdentifier="=org.tfranke.webservice.dsl/C:\/Users\/tfranke\/Downloads\/jackson-core-2.15.2.jar&lt;com.fasterxml.jackson.core(JsonProcessingException.class"/>
</file>
<file factoryID="org.eclipse.jdt.ui.ClassFileEditorInputFactory" id="org.eclipse.jdt.ui.ClassFileEditor" name="MappingJsonFactory.class" tooltip="com.fasterxml.jackson.databind.MappingJsonFactory">
<persistable org.eclipse.jdt.ui.ClassFileIdentifier="=org.tfranke.webservice.dsl/C:\/Users\/tfranke\/Downloads\/jackson-databind-2.15.2.jar&lt;com.fasterxml.jackson.databind(MappingJsonFactory.class"/>
</file>
<file factoryID="org.eclipse.jdt.ui.ClassFileEditorInputFactory" id="org.eclipse.jdt.ui.ClassFileEditor" name="Stream.class" tooltip="java.util.stream.Stream">
<persistable org.eclipse.jdt.ui.ClassFileIdentifier="=org.tfranke.webservice.dsl/C:\/Tom\/Studium\/Bachelorarbeit\/eclipse\/plugins\/org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_17.0.10.v20240120-1143\/jre\/lib\/jrt-fs.jar`java.base=/javadoc_location=/https:\/\/docs.oracle.com\/en\/java\/javase\/17\/docs\/api\/=/=/module=/true=/&lt;java.util.stream(Stream.class"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.jdt.ui.CompilationUnitEditor" name="ReadOperationImpl.java" tooltip="webservice/src-gen/webservice/impl/ReadOperationImpl.java">
<persistable path="/webservice/src-gen/webservice/impl/ReadOperationImpl.java"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.jdt.ui.CompilationUnitEditor" name="Operation.java" tooltip="webservice/src-gen/webservice/Operation.java">
<persistable path="/webservice/src-gen/webservice/Operation.java"/>
</file>
<file factoryID="org.eclipse.jdt.ui.ClassFileEditorInputFactory" id="org.eclipse.jdt.ui.ClassFileEditor" name="Object.class" tooltip="java.lang.Object">
<persistable org.eclipse.jdt.ui.ClassFileIdentifier="=org.tfranke.webservice.dsl/C:\/Tom\/Studium\/Bachelorarbeit\/eclipse\/plugins\/org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_17.0.10.v20240120-1143\/jre\/lib\/jrt-fs.jar`java.base=/javadoc_location=/https:\/\/docs.oracle.com\/en\/java\/javase\/17\/docs\/api\/=/=/module=/true=/&lt;java.lang(Object.class"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.jdt.ui.CompilationUnitEditor" name="OperationImpl.java" tooltip="webservice/src-gen/webservice/impl/OperationImpl.java">
<persistable path="/webservice/src-gen/webservice/impl/OperationImpl.java"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.jdt.ui.CompilationUnitEditor" name="ReadOperation.java" tooltip="webservice/src-gen/webservice/ReadOperation.java">
<persistable path="/webservice/src-gen/webservice/ReadOperation.java"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.jdt.ui.CompilationUnitEditor" name="WebserviceDSLFormatter.java" tooltip="org.tfranke.webservice.dsl/xtend-gen/org/tfranke/webservice/dsl/formatting2/WebserviceDSLFormatter.java">
<persistable path="/org.tfranke.webservice.dsl/xtend-gen/org/tfranke/webservice/dsl/formatting2/WebserviceDSLFormatter.java"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.jdt.ui.CompilationUnitEditor" name="WebserviceDSLStandaloneSetupGenerated.java" tooltip="org.tfranke.webservice.dsl/src-gen/org/tfranke/webservice/dsl/WebserviceDSLStandaloneSetupGenerated.java">
<persistable path="/org.tfranke.webservice.dsl/src-gen/org/tfranke/webservice/dsl/WebserviceDSLStandaloneSetupGenerated.java"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.jdt.ui.CompilationUnitEditor" name="AbstractWebserviceDSLRuntimeModule.java" tooltip="org.tfranke.webservice.dsl/src-gen/org/tfranke/webservice/dsl/AbstractWebserviceDSLRuntimeModule.java">
<persistable path="/org.tfranke.webservice.dsl/src-gen/org/tfranke/webservice/dsl/AbstractWebserviceDSLRuntimeModule.java"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.jdt.ui.CompilationUnitEditor" name="WebserviceDSLStandaloneSetup.java" tooltip="org.tfranke.webservice.dsl/src/org/tfranke/webservice/dsl/WebserviceDSLStandaloneSetup.java">
<persistable path="/org.tfranke.webservice.dsl/src/org/tfranke/webservice/dsl/WebserviceDSLStandaloneSetup.java"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.jdt.ui.CompilationUnitEditor" name="WebserviceDSLRuntimeModule.java" tooltip="org.tfranke.webservice.dsl/src/org/tfranke/webservice/dsl/WebserviceDSLRuntimeModule.java">
<persistable path="/org.tfranke.webservice.dsl/src/org/tfranke/webservice/dsl/WebserviceDSLRuntimeModule.java"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.jdt.ui.CompilationUnitEditor" name="Main.java" tooltip="testimpl/src/org/tfranke/testimpl/Main.java">
<persistable path="/testimpl/src/org/tfranke/testimpl/Main.java"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.jdt.ui.CompilationUnitEditor" name="AbstractWebserviceDSLRuntimeModule.java" tooltip="testimpl/src-gen/org/tfranke/webservice/dsl/AbstractWebserviceDSLRuntimeModule.java">
<persistable path="/testimpl/src-gen/org/tfranke/webservice/dsl/AbstractWebserviceDSLRuntimeModule.java"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.jdt.ui.ModuleInfoEditor" name="module-info.java" tooltip="testimpl/src/module-info.java">
<persistable path="/testimpl/src/module-info.java"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.pde.ui.manifestEditor" name="MANIFEST.MF" tooltip="webservice/META-INF/MANIFEST.MF">
<persistable path="/webservice/META-INF/MANIFEST.MF"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.jdt.ui.CompilationUnitEditor" name="ComplexDataTypeImpl.java" tooltip="webservice/src-gen/webservice/impl/ComplexDataTypeImpl.java">
<persistable path="/webservice/src-gen/webservice/impl/ComplexDataTypeImpl.java"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.jdt.ui.CompilationUnitEditor" name="SimpleDataTypeImpl.java" tooltip="webservice/src-gen/webservice/impl/SimpleDataTypeImpl.java">
<persistable path="/webservice/src-gen/webservice/impl/SimpleDataTypeImpl.java"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.pde.ui.manifestEditor" name="plugin.xml" tooltip="webservice/plugin.xml">
<persistable path="/webservice/plugin.xml"/>
</file>
<file factoryID="org.eclipse.sirius.ui.business.api.session.SessionEditorInputFactory" id="org.eclipse.sirius.diagram.ui.part.SiriusDiagramEditorID" name="webservice" tooltip="platform:/resource/webservice/model/webservice.aird/webservice">
<persistable REP_DESC_URI="platform:/resource/webservice/model/webservice.aird#_jxFfwB5nEe-69dLCN_yvnQ" SESSION_RESOURCE_URI="platform:/resource/webservice/model/webservice.aird" bundle="org.eclipse.sirius.ui" class="org.eclipse.sirius.ui.business.api.session.SessionEditorInput" name="webservice" uri="platform:/resource/webservice/model/webservice.aird#_jx0fkB5nEe-69dLCN_yvnQ"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.jdt.ui.CompilationUnitEditor" name="API.java" tooltip="webservice/src-gen/webservice/API.java">
<persistable path="/webservice/src-gen/webservice/API.java"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.xtext.Xtext" name="WebserviceDsl.xtext" tooltip="org.tfranke.webservice/src/org/tfranke/webservice/WebserviceDsl.xtext">
<persistable path="/org.tfranke.webservice/src/org/tfranke/webservice/WebserviceDsl.xtext"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.jdt.ui.CompilationUnitEditor" name="WebservicePackageImpl.java" tooltip="webservice/src-gen/webservice/impl/WebservicePackageImpl.java">
<persistable path="/webservice/src-gen/webservice/impl/WebservicePackageImpl.java"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.jdt.ui.CompilationUnitEditor" name="WebserviceAdapterFactory.java" tooltip="webservice/src-gen/webservice/util/WebserviceAdapterFactory.java">
<persistable path="/webservice/src-gen/webservice/util/WebserviceAdapterFactory.java"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.jdt.ui.CompilationUnitEditor" name="WebserviceFactoryImpl.java" tooltip="webservice/src-gen/webservice/impl/WebserviceFactoryImpl.java">
<persistable path="/webservice/src-gen/webservice/impl/WebserviceFactoryImpl.java"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.jdt.ui.CompilationUnitEditor" name="WebserviceFactory.java" tooltip="webservice/src-gen/webservice/WebserviceFactory.java">
<persistable path="/webservice/src-gen/webservice/WebserviceFactory.java"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.jdt.ui.CompilationUnitEditor" name="SimpleDataType.java" tooltip="webservice/src-gen/webservice/SimpleDataType.java">
<persistable path="/webservice/src-gen/webservice/SimpleDataType.java"/>
</file>
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.jdt.ui.CompilationUnitEditor" name="WebservicePackage.java" tooltip="webservice/src-gen/webservice/WebservicePackage.java">
<persistable path="/webservice/src-gen/webservice/WebservicePackage.java"/>
</file>
</mruList>
</workbench>"/> <tags>activeSchemeId:org.eclipse.ui.defaultAcceleratorConfiguration</tags> - <children xsi:type="basic:TrimmedWindow" xmi:id="_2VF5oD14Ee-mn7ETeetGkg" elementId="IDEWindow" contributorURI="platform:/plugin/org.eclipse.platform" selectedElement="_2VF5oT14Ee-mn7ETeetGkg" label="%trimmedwindow.label.eclipseSDK" x="2093" y="-16" width="1024" height="768"> + <children xsi:type="basic:TrimmedWindow" xmi:id="_2VF5oD14Ee-mn7ETeetGkg" elementId="IDEWindow" contributorURI="platform:/plugin/org.eclipse.platform" selectedElement="_2VF5oT14Ee-mn7ETeetGkg" label="%trimmedwindow.label.eclipseSDK" x="0" y="0" width="1024" height="768"> <persistedState key="coolBarVisible" value="true"/> <persistedState key="perspectiveBarVisible" value="true"/> <persistedState key="isRestored" value="true"/> @@ -154,7 +154,7 @@ <tags>persp.editorOnboardingCommand:New$$$Ctrl+N</tags> <tags>persp.editorOnboardingCommand:Open Type$$$Ctrl+Shift+T</tags> <children xsi:type="basic:PartSashContainer" xmi:id="_2VF5sj14Ee-mn7ETeetGkg" selectedElement="_2VF5uz14Ee-mn7ETeetGkg" horizontal="true"> - <children xsi:type="basic:PartSashContainer" xmi:id="_2VF5sz14Ee-mn7ETeetGkg" containerData="1670" selectedElement="_2VF5tD14Ee-mn7ETeetGkg"> + <children xsi:type="basic:PartSashContainer" xmi:id="_2VF5sz14Ee-mn7ETeetGkg" containerData="1675" selectedElement="_2VF5tD14Ee-mn7ETeetGkg"> <children xsi:type="basic:PartStack" xmi:id="_2VF5tD14Ee-mn7ETeetGkg" elementId="left" containerData="6000" selectedElement="_2VF5tT14Ee-mn7ETeetGkg"> <tags>org.eclipse.e4.primaryNavigationStack</tags> <children xsi:type="advanced:Placeholder" xmi:id="_2VF5tT14Ee-mn7ETeetGkg" elementId="org.eclipse.jdt.ui.PackageExplorer" ref="_2VF84T14Ee-mn7ETeetGkg" closeable="true"> @@ -181,7 +181,7 @@ </children> </children> </children> - <children xsi:type="basic:PartSashContainer" xmi:id="_2VF5uz14Ee-mn7ETeetGkg" containerData="8330" selectedElement="_2VF5vD14Ee-mn7ETeetGkg"> + <children xsi:type="basic:PartSashContainer" xmi:id="_2VF5uz14Ee-mn7ETeetGkg" containerData="8325" selectedElement="_2VF5vD14Ee-mn7ETeetGkg"> <children xsi:type="basic:PartSashContainer" xmi:id="_2VF5vD14Ee-mn7ETeetGkg" containerData="7346" selectedElement="_2VF5vT14Ee-mn7ETeetGkg" horizontal="true"> <children xsi:type="advanced:Placeholder" xmi:id="_2VF5vT14Ee-mn7ETeetGkg" elementId="org.eclipse.ui.editorss" containerData="5000" ref="_2VF8hT14Ee-mn7ETeetGkg"/> <children xsi:type="basic:PartSashContainer" xmi:id="_2VF5vj14Ee-mn7ETeetGkg" toBeRendered="false" containerData="2500"> @@ -216,7 +216,7 @@ </children> </children> </children> - <children xsi:type="basic:PartStack" xmi:id="_2VF5xz14Ee-mn7ETeetGkg" elementId="bottom" containerData="2654" selectedElement="_2VF50D14Ee-mn7ETeetGkg"> + <children xsi:type="basic:PartStack" xmi:id="_2VF5xz14Ee-mn7ETeetGkg" elementId="bottom" containerData="2654" selectedElement="_2VF5zD14Ee-mn7ETeetGkg"> <tags>org.eclipse.e4.secondaryDataStack</tags> <tags>Xtend</tags> <tags>General</tags> @@ -305,60 +305,35 @@ <tags>categoryTag:Help</tags> </sharedElements> <sharedElements xsi:type="advanced:Area" xmi:id="_2VF8hT14Ee-mn7ETeetGkg" elementId="org.eclipse.ui.editorss" selectedElement="_2VF8hj14Ee-mn7ETeetGkg"> - <children xsi:type="basic:PartStack" xmi:id="_2VF8hj14Ee-mn7ETeetGkg" elementId="org.eclipse.e4.primaryDataStack" selectedElement="_AIdzYD3VEe-iUbAUw5VltA"> + <children xsi:type="basic:PartStack" xmi:id="_2VF8hj14Ee-mn7ETeetGkg" elementId="org.eclipse.e4.primaryDataStack" selectedElement="_yR-l8ER9Ee-O6v55TaWOfQ"> <tags>org.eclipse.e4.primaryDataStack</tags> <tags>EditorStack</tags> <tags>active</tags> - <tags>noFocus</tags> - <children xsi:type="basic:Part" xmi:id="_AIdzYD3VEe-iUbAUw5VltA" elementId="org.eclipse.e4.ui.compatibility.editor" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityEditor" label="WebserviceDSLGenerator.xtend" iconURI="platform:/plugin/org.eclipse.xtend.ide/icons/xtend_file.png" closeable="true"> - <persistedState key="memento" value="<?xml version="1.0" encoding="UTF-8"?>
<editor id="org.eclipse.xtend.core.Xtend" name="WebserviceDSLGenerator.xtend" partName="WebserviceDSLGenerator.xtend" title="WebserviceDSLGenerator.xtend" tooltip="org.tfranke.webservice.dsl/src/org/tfranke/webservice/dsl/generator/WebserviceDSLGenerator.xtend">
<input factoryID="org.eclipse.ui.part.FileEditorInputFactory" path="/org.tfranke.webservice.dsl/src/org/tfranke/webservice/dsl/generator/WebserviceDSLGenerator.xtend"/>
<editorState selectionHorizontalPixel="0" selectionLength="0" selectionOffset="6407" selectionTopPixel="2476"/>
</editor>"/> + <children xsi:type="basic:Part" xmi:id="_yR-l8ER9Ee-O6v55TaWOfQ" elementId="org.eclipse.e4.ui.compatibility.editor" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityEditor" label="webservice.ecore" iconURI="platform:/plugin/org.eclipse.emf.ecore.editor/icons/full/obj16/EcoreModelFile.gif" closeable="true"> + <persistedState key="memento" value="<?xml version="1.0" encoding="UTF-8"?>
<editor id="org.eclipse.emf.ecore.presentation.EcoreEditorID" name="webservice.ecore" partName="webservice.ecore" title="webservice.ecore" tooltip="webservice/model/webservice.ecore">
<input factoryID="org.eclipse.ui.part.FileEditorInputFactory" path="/webservice/model/webservice.ecore"/>
</editor>"/> <tags>Editor</tags> <tags>removeOnHide</tags> - <tags>org.eclipse.xtend.core.Xtend</tags> + <tags>org.eclipse.emf.ecore.presentation.EcoreEditorID</tags> <tags>active</tags> <tags>activeOnClose</tags> </children> - <children xsi:type="basic:Part" xmi:id="_OZk2oD3XEe-iUbAUw5VltA" elementId="org.eclipse.e4.ui.compatibility.editor" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityEditor" label="WebserviceDSLParsingTest.xtend" iconURI="platform:/plugin/org.eclipse.xtend.ide/icons/xtend_file.png" closeable="true"> - <persistedState key="memento" value="<?xml version="1.0" encoding="UTF-8"?>
<editor id="org.eclipse.xtend.core.Xtend" name="WebserviceDSLParsingTest.xtend" partName="WebserviceDSLParsingTest.xtend" title="WebserviceDSLParsingTest.xtend" tooltip="org.tfranke.webservice.dsl.tests/src/org/tfranke/webservice/dsl/tests/WebserviceDSLParsingTest.xtend">
<input factoryID="org.eclipse.ui.part.FileEditorInputFactory" path="/org.tfranke.webservice.dsl.tests/src/org/tfranke/webservice/dsl/tests/WebserviceDSLParsingTest.xtend"/>
<editorState selectionHorizontalPixel="0" selectionLength="0" selectionOffset="848" selectionTopPixel="0"/>
</editor>"/> - <tags>Editor</tags> - <tags>removeOnHide</tags> - <tags>org.eclipse.xtend.core.Xtend</tags> - </children> - <children xsi:type="basic:Part" xmi:id="_Qk6FwD3XEe-iUbAUw5VltA" elementId="org.eclipse.e4.ui.compatibility.editor" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityEditor" label="WebserviceDSLUiModule.java" iconURI="platform:/plugin/org.eclipse.jdt.ui/icons/full/obj16/jcu_obj.png" closeable="true"> - <persistedState key="memento" value="<?xml version="1.0" encoding="UTF-8"?>
<editor id="org.eclipse.jdt.ui.CompilationUnitEditor" name="WebserviceDSLUiModule.java" partName="WebserviceDSLUiModule.java" title="WebserviceDSLUiModule.java" tooltip="org.tfranke.webservice.dsl.ui/src/org/tfranke/webservice/dsl/ui/WebserviceDSLUiModule.java">
<input factoryID="org.eclipse.ui.part.FileEditorInputFactory" path="/org.tfranke.webservice.dsl.ui/src/org/tfranke/webservice/dsl/ui/WebserviceDSLUiModule.java"/>
<editorState selectionHorizontalPixel="0" selectionLength="0" selectionOffset="374" selectionTopPixel="0"/>
</editor>"/> - <tags>Editor</tags> - <tags>removeOnHide</tags> - <tags>org.eclipse.jdt.ui.CompilationUnitEditor</tags> - </children> - <children xsi:type="basic:Part" xmi:id="_RGjaQD3XEe-iUbAUw5VltA" elementId="org.eclipse.e4.ui.compatibility.editor" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityEditor" label="WebserviceDSLLabelProvider.java" iconURI="platform:/plugin/org.eclipse.jdt.ui/icons/full/obj16/jcu_obj.png" closeable="true"> - <persistedState key="memento" value="<?xml version="1.0" encoding="UTF-8"?>
<editor id="org.eclipse.jdt.ui.CompilationUnitEditor" name="WebserviceDSLLabelProvider.java" partName="WebserviceDSLLabelProvider.java" title="WebserviceDSLLabelProvider.java" tooltip="org.tfranke.webservice.dsl.ui/src/org/tfranke/webservice/dsl/ui/labeling/WebserviceDSLLabelProvider.java">
<input factoryID="org.eclipse.ui.part.FileEditorInputFactory" path="/org.tfranke.webservice.dsl.ui/src/org/tfranke/webservice/dsl/ui/labeling/WebserviceDSLLabelProvider.java"/>
<editorState selectionHorizontalPixel="0" selectionLength="0" selectionOffset="4" selectionTopPixel="0"/>
</editor>"/> - <tags>Editor</tags> - <tags>removeOnHide</tags> - <tags>org.eclipse.jdt.ui.CompilationUnitEditor</tags> - </children> - <children xsi:type="basic:Part" xmi:id="_ROdZED3XEe-iUbAUw5VltA" elementId="org.eclipse.e4.ui.compatibility.editor" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityEditor" label="WebserviceDSLDescriptionLabelProvider.java" iconURI="platform:/plugin/org.eclipse.jdt.ui/icons/full/obj16/jcu_obj.png" closeable="true"> - <persistedState key="memento" value="<?xml version="1.0" encoding="UTF-8"?>
<editor id="org.eclipse.jdt.ui.CompilationUnitEditor" name="WebserviceDSLDescriptionLabelProvider.java" partName="WebserviceDSLDescriptionLabelProvider.java" title="WebserviceDSLDescriptionLabelProvider.java" tooltip="org.tfranke.webservice.dsl.ui/src/org/tfranke/webservice/dsl/ui/labeling/WebserviceDSLDescriptionLabelProvider.java">
<input factoryID="org.eclipse.ui.part.FileEditorInputFactory" path="/org.tfranke.webservice.dsl.ui/src/org/tfranke/webservice/dsl/ui/labeling/WebserviceDSLDescriptionLabelProvider.java"/>
<editorState selectionHorizontalPixel="0" selectionLength="0" selectionOffset="156" selectionTopPixel="0"/>
</editor>"/> + <children xsi:type="basic:Part" xmi:id="_vz72MER9Ee-O6v55TaWOfQ" elementId="org.eclipse.e4.ui.compatibility.editor" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityEditor" label="WebserviceDSL.xtext" iconURI="platform:/plugin/org.eclipse.xtext.xtext.ui/icons/editor.gif" closeable="true"> + <persistedState key="memento" value="<?xml version="1.0" encoding="UTF-8"?>
<editor id="org.eclipse.xtext.Xtext" name="WebserviceDSL.xtext" partName="WebserviceDSL.xtext" title="WebserviceDSL.xtext" tooltip="org.tfranke.webservice.dsl/src/org/tfranke/webservice/dsl/WebserviceDSL.xtext">
<input factoryID="org.eclipse.ui.part.FileEditorInputFactory" path="/org.tfranke.webservice.dsl/src/org/tfranke/webservice/dsl/WebserviceDSL.xtext"/>
<editorState selectionHorizontalPixel="0" selectionLength="0" selectionOffset="272" selectionTopPixel="0"/>
</editor>"/> <tags>Editor</tags> <tags>removeOnHide</tags> - <tags>org.eclipse.jdt.ui.CompilationUnitEditor</tags> + <tags>org.eclipse.xtext.Xtext</tags> </children> - <children xsi:type="basic:Part" xmi:id="__G5igD3xEe-iUbAUw5VltA" elementId="org.eclipse.e4.ui.compatibility.editor" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityEditor" label="webservice.genmodel" iconURI="platform:/plugin/org.eclipse.emf.codegen.ecore.ui/icons/full/obj16/GenModelModelFile.gif" closeable="true"> - <persistedState key="memento" value="<?xml version="1.0" encoding="UTF-8"?>
<editor id="org.eclipse.emf.codegen.ecore.genmodel.presentation.GenModelEditorID" name="webservice.genmodel" partName="webservice.genmodel" title="webservice.genmodel" tooltip="webservice/model/webservice.genmodel">
<input factoryID="org.eclipse.ui.part.FileEditorInputFactory" path="/webservice/model/webservice.genmodel"/>
</editor>"/> + <children xsi:type="basic:Part" xmi:id="_wI9D8ER9Ee-O6v55TaWOfQ" elementId="org.eclipse.e4.ui.compatibility.editor" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityEditor" label="WebserviceDSLGenerator.xtend" iconURI="platform:/plugin/org.eclipse.xtend.ide/icons/xtend_file.png" closeable="true"> + <persistedState key="memento" value="<?xml version="1.0" encoding="UTF-8"?>
<editor id="org.eclipse.xtend.core.Xtend" name="WebserviceDSLGenerator.xtend" partName="WebserviceDSLGenerator.xtend" title="WebserviceDSLGenerator.xtend" tooltip="org.tfranke.webservice.dsl/src/org/tfranke/webservice/dsl/generator/WebserviceDSLGenerator.xtend">
<input factoryID="org.eclipse.ui.part.FileEditorInputFactory" path="/org.tfranke.webservice.dsl/src/org/tfranke/webservice/dsl/generator/WebserviceDSLGenerator.xtend"/>
<editorState selectionHorizontalPixel="0" selectionLength="0" selectionOffset="1014" selectionTopPixel="0"/>
</editor>"/> <tags>Editor</tags> <tags>removeOnHide</tags> - <tags>org.eclipse.emf.codegen.ecore.genmodel.presentation.GenModelEditorID</tags> + <tags>org.eclipse.xtend.core.Xtend</tags> </children> - <children xsi:type="basic:Part" xmi:id="__QTWID3xEe-iUbAUw5VltA" elementId="org.eclipse.e4.ui.compatibility.editor" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityEditor" label="webservice" iconURI="platform:/plugin/org.eclipse.sirius.ui.editor/icons/SiriusFile.gif" closeable="true"> - <persistedState key="memento" value="<?xml version="1.0" encoding="UTF-8"?>
<editor id="org.eclipse.sirius.ui.editor.session" name="webservice.aird" partName="webservice" title="webservice" tooltip="webservice/model/webservice.aird">
<input factoryID="org.eclipse.ui.part.FileEditorInputFactory" path="/webservice/model/webservice.aird"/>
</editor>"/> + <children xsi:type="basic:Part" xmi:id="_wBB3AER9Ee-O6v55TaWOfQ" elementId="org.eclipse.e4.ui.compatibility.editor" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityEditor" label="TransconnectRepositoryCreator.xtend" iconURI="platform:/plugin/org.eclipse.xtend.ide/icons/xtend_file.png" closeable="true"> + <persistedState key="memento" value="<?xml version="1.0" encoding="UTF-8"?>
<editor id="org.eclipse.xtend.core.Xtend" name="TransconnectRepositoryCreator.xtend" partName="TransconnectRepositoryCreator.xtend" title="TransconnectRepositoryCreator.xtend" tooltip="org.tfranke.webservice.dsl/src/org/tfranke/webservice/dsl/generator/TransconnectRepositoryCreator.xtend">
<input factoryID="org.eclipse.ui.part.FileEditorInputFactory" path="/org.tfranke.webservice.dsl/src/org/tfranke/webservice/dsl/generator/TransconnectRepositoryCreator.xtend"/>
<editorState selectionHorizontalPixel="0" selectionLength="0" selectionOffset="926" selectionTopPixel="0"/>
</editor>"/> <tags>Editor</tags> <tags>removeOnHide</tags> - <tags>org.eclipse.sirius.ui.editor.session</tags> - </children> - <children xsi:type="basic:Part" xmi:id="_Q1m_8D3yEe-iUbAUw5VltA" elementId="org.eclipse.e4.ui.compatibility.editor" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityEditor" label="webservice.ecore" iconURI="platform:/plugin/org.eclipse.emf.ecore.editor/icons/full/obj16/EcoreModelFile.gif" closeable="true"> - <persistedState key="memento" value="<?xml version="1.0" encoding="UTF-8"?>
<editor id="org.eclipse.emf.ecore.presentation.EcoreEditorID" name="webservice.ecore" partName="webservice.ecore" title="webservice.ecore" tooltip="webservice/model/webservice.ecore">
<input factoryID="org.eclipse.ui.part.FileEditorInputFactory" path="/webservice/model/webservice.ecore"/>
</editor>"/> - <tags>Editor</tags> - <tags>removeOnHide</tags> - <tags>org.eclipse.emf.ecore.presentation.EcoreEditorID</tags> + <tags>org.eclipse.xtend.core.Xtend</tags> </children> </children> </sharedElements> @@ -401,7 +376,7 @@ <sharedElements xsi:type="basic:Part" xmi:id="_2VF8vT14Ee-mn7ETeetGkg" elementId="org.eclipse.ui.views.ProblemView" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView" label="Problems" iconURI="platform:/plugin/org.eclipse.ui.ide/icons/full/eview16/problems_view.png" tooltip="" closeable="true"> <persistedState key="originalCompatibilityViewClass" value="org.eclipse.ui.internal.views.markers.ProblemsView"/> <persistedState key="originalCompatibilityViewBundle" value="org.eclipse.ui.ide"/> - <persistedState key="memento" value="<?xml version="1.0" encoding="UTF-8"?>
<view PRIMARY_SORT_FIELD="org.eclipse.ui.ide.pathField" categoryGroup="org.eclipse.ui.ide.severity" markerContentGenerator="org.eclipse.ui.ide.problemsGenerator">
<expanded>
<category IMemento.internal.id="Warnings"/>
</expanded>
<columnWidths org.eclipse.ui.ide.locationField="90" org.eclipse.ui.ide.markerType="90" org.eclipse.ui.ide.pathField="120" org.eclipse.ui.ide.resourceField="90" org.eclipse.ui.ide.severityAndDescriptionField="593"/>
<visible IMemento.internal.id="org.eclipse.ui.ide.severityAndDescriptionField"/>
<visible IMemento.internal.id="org.eclipse.ui.ide.resourceField"/>
<visible IMemento.internal.id="org.eclipse.ui.ide.pathField"/>
<visible IMemento.internal.id="org.eclipse.ui.ide.locationField"/>
<visible IMemento.internal.id="org.eclipse.ui.ide.markerType"/>
</view>"/> + <persistedState key="memento" value="<?xml version="1.0" encoding="UTF-8"?>
<view PRIMARY_SORT_FIELD="org.eclipse.ui.ide.pathField" categoryGroup="org.eclipse.ui.ide.severity" markerContentGenerator="org.eclipse.ui.ide.problemsGenerator">
<expanded>
<category IMemento.internal.id="Errors"/>
</expanded>
<columnWidths org.eclipse.ui.ide.locationField="90" org.eclipse.ui.ide.markerType="90" org.eclipse.ui.ide.pathField="120" org.eclipse.ui.ide.resourceField="90" org.eclipse.ui.ide.severityAndDescriptionField="593"/>
<visible IMemento.internal.id="org.eclipse.ui.ide.severityAndDescriptionField"/>
<visible IMemento.internal.id="org.eclipse.ui.ide.resourceField"/>
<visible IMemento.internal.id="org.eclipse.ui.ide.pathField"/>
<visible IMemento.internal.id="org.eclipse.ui.ide.locationField"/>
<visible IMemento.internal.id="org.eclipse.ui.ide.markerType"/>
</view>"/> <tags>View</tags> <tags>categoryTag:General</tags> <menus xmi:id="_2VF8vj14Ee-mn7ETeetGkg" elementId="org.eclipse.ui.views.ProblemView"> @@ -561,7 +536,7 @@ </children> <children xsi:type="menu:ToolBar" xmi:id="_2VF9TD14Ee-mn7ETeetGkg" elementId="org.eclipse.ui.workbench.file"> <tags>Draggable</tags> - <children xsi:type="menu:HandledToolItem" xmi:id="_meIK0D6SEe-ExIIJFvD8LA" elementId="print" visible="false" iconURI="platform:/plugin/org.eclipse.ui/icons/full/etool16/print_edit.png" tooltip="Print" command="_2VQSMj14Ee-mn7ETeetGkg"/> + <children xsi:type="menu:HandledToolItem" xmi:id="_PxNgkER9Ee-O6v55TaWOfQ" elementId="print" visible="false" iconURI="platform:/plugin/org.eclipse.ui/icons/full/etool16/print_edit.png" tooltip="Print" command="_2VQSMj14Ee-mn7ETeetGkg"/> </children> <children xsi:type="menu:ToolBar" xmi:id="_2VF9WT14Ee-mn7ETeetGkg" elementId="group.edit" toBeRendered="false"> <tags>toolbarSeparator</tags> @@ -569,8 +544,8 @@ </children> <children xsi:type="menu:ToolBar" xmi:id="_2VF9Wz14Ee-mn7ETeetGkg" elementId="org.eclipse.ui.workbench.edit"> <tags>Draggable</tags> - <children xsi:type="menu:HandledToolItem" xmi:id="_meJY8D6SEe-ExIIJFvD8LA" elementId="undo" iconURI="platform:/plugin/org.eclipse.ui/icons/full/etool16/undo_edit.png" tooltip="Undo" enabled="false" command="_2VMrAz14Ee-mn7ETeetGkg"/> - <children xsi:type="menu:HandledToolItem" xmi:id="_meKAAD6SEe-ExIIJFvD8LA" elementId="redo" iconURI="platform:/plugin/org.eclipse.ui/icons/full/etool16/redo_edit.png" tooltip="Redo" enabled="false" command="_2VMrjT14Ee-mn7ETeetGkg"/> + <children xsi:type="menu:HandledToolItem" xmi:id="_PxOusER9Ee-O6v55TaWOfQ" elementId="undo" iconURI="platform:/plugin/org.eclipse.ui/icons/full/etool16/undo_edit.png" tooltip="Undo" enabled="false" command="_2VMrAz14Ee-mn7ETeetGkg"/> + <children xsi:type="menu:HandledToolItem" xmi:id="_PxPVwER9Ee-O6v55TaWOfQ" elementId="redo" iconURI="platform:/plugin/org.eclipse.ui/icons/full/etool16/redo_edit.png" tooltip="Redo" enabled="false" command="_2VMrjT14Ee-mn7ETeetGkg"/> </children> <children xsi:type="menu:ToolBar" xmi:id="_2VF9Xz14Ee-mn7ETeetGkg" elementId="additions" toBeRendered="false"> <tags>toolbarSeparator</tags> @@ -594,10 +569,7 @@ </children> <children xsi:type="menu:ToolBar" xmi:id="_2VHu-j14Ee-mn7ETeetGkg" elementId="org.eclipse.ui.workbench.navigate"> <tags>Draggable</tags> - <children xsi:type="menu:HandledToolItem" xmi:id="_meKABj6SEe-ExIIJFvD8LA" elementId="org.eclipse.ui.window.pinEditor" iconURI="platform:/plugin/org.eclipse.ui/icons/full/etool16/pin_editor.png" tooltip="Pin Editor" type="Check" command="_2VQR4T14Ee-mn7ETeetGkg"/> - </children> - <children xsi:type="menu:ToolBar" xmi:id="_2VHvEz14Ee-mn7ETeetGkg" elementId="org.eclipse.xtext.Xtext" visible="false"> - <tags>Draggable</tags> + <children xsi:type="menu:HandledToolItem" xmi:id="_PxP80ER9Ee-O6v55TaWOfQ" elementId="org.eclipse.ui.window.pinEditor" iconURI="platform:/plugin/org.eclipse.ui/icons/full/etool16/pin_editor.png" tooltip="Pin Editor" type="Check" command="_2VQR4T14Ee-mn7ETeetGkg"/> </children> <children xsi:type="menu:ToolBar" xmi:id="_2VHvHj14Ee-mn7ETeetGkg" elementId="group.editor" toBeRendered="false"> <tags>toolbarSeparator</tags> @@ -1365,28 +1337,28 @@ <rootContext xmi:id="_2VI9tT14Ee-mn7ETeetGkg" elementId="org.eclipse.ui.edit.text.actionSet.presentation" name="Auto::org.eclipse.ui.edit.text.actionSet.presentation"/> <rootContext xmi:id="_2VI9tj14Ee-mn7ETeetGkg" elementId="org.eclipse.wst.xsd.ui.editor.sourceView" name="XSD Editor Source View" description="XSD Editor Source View"/> <rootContext xmi:id="_2VI9tz14Ee-mn7ETeetGkg" elementId="org.eclipse.wst.xsd.ui.editor.designView" name="XSD Editor Design View" description="XSD Editor Design View"/> - <descriptors xmi:id="_mVkEsD6SEe-ExIIJFvD8LA" elementId="org.eclipse.pde.spy.preferences.parts.PreferenceSpyPart" contributorURI="platform:/plugin/org.eclipse.pde.spy.preferences" label="Preference Spy" iconURI="platform:/plugin/org.eclipse.pde.spy.preferences/$nl$/icons/preference_spy.png" closeable="true" contributionURI="bundleclass://org.eclipse.pde.spy.preferences/org.eclipse.pde.spy.preferences.parts.PreferenceSpyPart" description="Spy to display preferences"> + <descriptors xmi:id="_PpqHEER9Ee-O6v55TaWOfQ" elementId="org.eclipse.pde.spy.preferences.parts.PreferenceSpyPart" contributorURI="platform:/plugin/org.eclipse.pde.spy.preferences" label="Preference Spy" iconURI="platform:/plugin/org.eclipse.pde.spy.preferences/$nl$/icons/preference_spy.png" closeable="true" contributionURI="bundleclass://org.eclipse.pde.spy.preferences/org.eclipse.pde.spy.preferences.parts.PreferenceSpyPart" description="Spy to display preferences"> <persistedState key="perstistState" value="false"/> <tags>Spy</tags> - <toolbar xmi:id="_mVkEtj6SEe-ExIIJFvD8LA" elementId="org.eclipse.pde.spy.preferences.toolbar" contributorURI="platform:/plugin/org.eclipse.pde.spy.preferences"> - <children xsi:type="menu:ToolControl" xmi:id="_mVkEtz6SEe-ExIIJFvD8LA" elementId="org.eclipse.pde.spy.preferences.toolcontrol.layout" contributorURI="platform:/plugin/org.eclipse.pde.spy.preferences" contributionURI="bundleclass://org.eclipse.pde.spy.preferences/org.eclipse.pde.spy.preferences.handler.ToggleLayoutControl"/> - <children xsi:type="menu:ToolBarSeparator" xmi:id="_mVkEuD6SEe-ExIIJFvD8LA" elementId="org.eclipse.pde.spy.preferences.toolbarseparator.0" contributorURI="platform:/plugin/org.eclipse.pde.spy.preferences"/> - <children xsi:type="menu:HandledToolItem" xmi:id="_mVkEuT6SEe-ExIIJFvD8LA" elementId="org.eclipse.pde.spy.preferences.handledtoolitem.showall" contributorURI="platform:/plugin/org.eclipse.pde.spy.preferences" iconURI="platform:/plugin/org.eclipse.pde.spy.preferences/icons/show_all_preferences.png"> + <toolbar xmi:id="_PpqHFkR9Ee-O6v55TaWOfQ" elementId="org.eclipse.pde.spy.preferences.toolbar" contributorURI="platform:/plugin/org.eclipse.pde.spy.preferences"> + <children xsi:type="menu:ToolControl" xmi:id="_PpqHF0R9Ee-O6v55TaWOfQ" elementId="org.eclipse.pde.spy.preferences.toolcontrol.layout" contributorURI="platform:/plugin/org.eclipse.pde.spy.preferences" contributionURI="bundleclass://org.eclipse.pde.spy.preferences/org.eclipse.pde.spy.preferences.handler.ToggleLayoutControl"/> + <children xsi:type="menu:ToolBarSeparator" xmi:id="_PpqHGER9Ee-O6v55TaWOfQ" elementId="org.eclipse.pde.spy.preferences.toolbarseparator.0" contributorURI="platform:/plugin/org.eclipse.pde.spy.preferences"/> + <children xsi:type="menu:HandledToolItem" xmi:id="_PpqHGUR9Ee-O6v55TaWOfQ" elementId="org.eclipse.pde.spy.preferences.handledtoolitem.showall" contributorURI="platform:/plugin/org.eclipse.pde.spy.preferences" iconURI="platform:/plugin/org.eclipse.pde.spy.preferences/icons/show_all_preferences.png"> <command href="platform:/plugin/org.eclipse.pde.spy.preferences/fragment.e4xmi#_ufxRsHY2EeSuTdKDH5hMwg"/> </children> - <children xsi:type="menu:ToolControl" xmi:id="_mVkEuj6SEe-ExIIJFvD8LA" elementId="org.eclipse.pde.spy.preferences.toolcontrol.trace" contributorURI="platform:/plugin/org.eclipse.pde.spy.preferences" contributionURI="bundleclass://org.eclipse.pde.spy.preferences/org.eclipse.pde.spy.preferences.handler.TogglePreferenceTraceControl"/> - <children xsi:type="menu:ToolBarSeparator" xmi:id="_mVkEuz6SEe-ExIIJFvD8LA" elementId="org.eclipse.pde.spy.preferences.toolbarseparator.1" contributorURI="platform:/plugin/org.eclipse.pde.spy.preferences"/> - <children xsi:type="menu:HandledToolItem" xmi:id="_mVkEvD6SEe-ExIIJFvD8LA" elementId="org.eclipse.pde.spy.preferences.handledtoolitem.expandall" contributorURI="platform:/plugin/org.eclipse.pde.spy.preferences" iconURI="platform:/plugin/org.eclipse.pde.spy.preferences/icons/expandall.png"> + <children xsi:type="menu:ToolControl" xmi:id="_PpqHGkR9Ee-O6v55TaWOfQ" elementId="org.eclipse.pde.spy.preferences.toolcontrol.trace" contributorURI="platform:/plugin/org.eclipse.pde.spy.preferences" contributionURI="bundleclass://org.eclipse.pde.spy.preferences/org.eclipse.pde.spy.preferences.handler.TogglePreferenceTraceControl"/> + <children xsi:type="menu:ToolBarSeparator" xmi:id="_PpqHG0R9Ee-O6v55TaWOfQ" elementId="org.eclipse.pde.spy.preferences.toolbarseparator.1" contributorURI="platform:/plugin/org.eclipse.pde.spy.preferences"/> + <children xsi:type="menu:HandledToolItem" xmi:id="_PpqHHER9Ee-O6v55TaWOfQ" elementId="org.eclipse.pde.spy.preferences.handledtoolitem.expandall" contributorURI="platform:/plugin/org.eclipse.pde.spy.preferences" iconURI="platform:/plugin/org.eclipse.pde.spy.preferences/icons/expandall.png"> <command href="platform:/plugin/org.eclipse.pde.spy.preferences/fragment.e4xmi#_4NM_IH_gEeSk-4v3KnNHPw"/> </children> - <children xsi:type="menu:HandledToolItem" xmi:id="_mVkEvT6SEe-ExIIJFvD8LA" elementId="org.eclipse.pde.spy.preferences.handledtoolitem.collapseall" contributorURI="platform:/plugin/org.eclipse.pde.spy.preferences" iconURI="platform:/plugin/org.eclipse.pde.spy.preferences/icons/collapseall.png"> + <children xsi:type="menu:HandledToolItem" xmi:id="_PpqHHUR9Ee-O6v55TaWOfQ" elementId="org.eclipse.pde.spy.preferences.handledtoolitem.collapseall" contributorURI="platform:/plugin/org.eclipse.pde.spy.preferences" iconURI="platform:/plugin/org.eclipse.pde.spy.preferences/icons/collapseall.png"> <command href="platform:/plugin/org.eclipse.pde.spy.preferences/fragment.e4xmi#_68UQwH_gEeSk-4v3KnNHPw"/> </children> - <children xsi:type="menu:ToolBarSeparator" xmi:id="_mVkEvj6SEe-ExIIJFvD8LA" elementId="org.eclipse.pde.spy.preferences.toolbarseparator.2" contributorURI="platform:/plugin/org.eclipse.pde.spy.preferences"/> - <children xsi:type="menu:HandledToolItem" xmi:id="_mVkEvz6SEe-ExIIJFvD8LA" elementId="org.eclipse.pde.spy.preferences.handledtoolitem.removeentry" contributorURI="platform:/plugin/org.eclipse.pde.spy.preferences" iconURI="platform:/plugin/org.eclipse.pde.spy.preferences/icons/remove_co.png"> + <children xsi:type="menu:ToolBarSeparator" xmi:id="_PpqHHkR9Ee-O6v55TaWOfQ" elementId="org.eclipse.pde.spy.preferences.toolbarseparator.2" contributorURI="platform:/plugin/org.eclipse.pde.spy.preferences"/> + <children xsi:type="menu:HandledToolItem" xmi:id="_PpqHH0R9Ee-O6v55TaWOfQ" elementId="org.eclipse.pde.spy.preferences.handledtoolitem.removeentry" contributorURI="platform:/plugin/org.eclipse.pde.spy.preferences" iconURI="platform:/plugin/org.eclipse.pde.spy.preferences/icons/remove_co.png"> <command href="platform:/plugin/org.eclipse.pde.spy.preferences/fragment.e4xmi#_iGEkYGxiEeSQ7v0akw7aRA"/> </children> - <children xsi:type="menu:HandledToolItem" xmi:id="_mVkEwD6SEe-ExIIJFvD8LA" elementId="org.eclipse.pde.spy.preferences.handledtoolitem.removeall" contributorURI="platform:/plugin/org.eclipse.pde.spy.preferences" iconURI="platform:/plugin/org.eclipse.pde.spy.preferences/icons/removeall_co.png"> + <children xsi:type="menu:HandledToolItem" xmi:id="_PpqHIER9Ee-O6v55TaWOfQ" elementId="org.eclipse.pde.spy.preferences.handledtoolitem.removeall" contributorURI="platform:/plugin/org.eclipse.pde.spy.preferences" iconURI="platform:/plugin/org.eclipse.pde.spy.preferences/icons/removeall_co.png"> <command href="platform:/plugin/org.eclipse.pde.spy.preferences/fragment.e4xmi#_eBGTEGxiEeSQ7v0akw7aRA"/> </children> </toolbar> diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.jdt.core/1865797976.index b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.jdt.core/1865797976.index index 868299d40b8592074032c2b2c48494c8ea244ff6..f3aa8e34bb617602e0f3c9ec59d483f4816362a2 100644 Binary files a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.jdt.core/1865797976.index and b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.jdt.core/1865797976.index differ diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.jdt.core/3327136033.index b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.jdt.core/3327136033.index index 05f7fd5b118e8970a9f7edc35433178e7dabfe87..6d169651af8bf8f0cefb9a6742925d1fd318aa14 100644 Binary files a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.jdt.core/3327136033.index and b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.jdt.core/3327136033.index differ diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.jdt.core/4049687302.index b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.jdt.core/4049687302.index index 95f849e8e3eb5f18ecbe19a05efcbb6eb583d382..239fa24fce70ce317d102803b6fd2f85ed4a5903 100644 Binary files a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.jdt.core/4049687302.index and b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.jdt.core/4049687302.index differ diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.jdt.core/savedIndexNames.txt b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.jdt.core/savedIndexNames.txt index 550bc78c76308eb57113c1a8870498e420e840e9..34ff5c7817763c867d374f994185505a1e08cbf6 100644 --- a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.jdt.core/savedIndexNames.txt +++ b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.jdt.core/savedIndexNames.txt @@ -1,106 +1,106 @@ -INDEX VERSION 1.134+C:\Users\Tom\Desktop\neuneunueBachelorarbeitCode\zweiteVersion\webservice\.metadata\.plugins\org.eclipse.jdt.core -2423295662.index -1623078413.index -3886018614.index -2175584215.index -2200901044.index -1270280802.index -1865797976.index -742059141.index -392650843.index -1671263616.index -965111538.index -3404271491.index -2135831078.index -2805459167.index -308040932.index -3469520233.index -498014806.index -3345771571.index -360476951.index -419088856.index -4049477459.index -4205873907.index -3532005821.index +INDEX VERSION 1.134+C:\Users\Tom\Desktop\GitLabBachelorarbeit\bachelorarbeit\eclipse_workspaces\webservice\.metadata\.plugins\org.eclipse.jdt.core 68863405.index -80509436.index -2238351602.index -483134527.index -359307253.index -3666389427.index +1582115329.index 2608789659.index -551927.index -2046355595.index -650117911.index -2244463335.index +1623078413.index +2998852883.index +1712876586.index +4166780685.index +160182702.index +2942820537.index 489215521.index -1484898240.index -681575555.index -3409507834.index -873987051.index -455590999.index -2063250913.index -3327136033.index -1539484210.index -2550295619.index -2127086198.index -2858601943.index -292676754.index -1172085319.index +3404271491.index 3858574684.index -1712876586.index -3820439732.index -1582115329.index -2485735022.index 2613181368.index -327405396.index -1558901451.index +506024154.index +162786619.index +4049477459.index +360476951.index +1110234531.index +2200901044.index +2036785608.index 3175695274.index +1172085319.index +1073745538.index +392650843.index 490559769.index -2942820537.index -2998852883.index -3481460622.index -573724981.index -1634665568.index -1251930276.index +3820439732.index +3409507834.index +3327136033.index +3345900443.index +2244463335.index 254501453.index -1631545693.index -160182702.index -955696487.index -3868897263.index -493091665.index -675639171.index -4218724199.index -1073745538.index -3841766426.index +681575555.index +965111538.index +2372808771.index +4049687302.index +4186355973.index +4205873907.index +60516963.index +2942906625.index +308040932.index +2175584215.index +1671263616.index +2485735022.index +1634665568.index 1485310385.index -997113305.index +742059141.index +955696487.index 649842400.index -3177485806.index -2947728032.index -2895885863.index -2052957721.index -362859361.index +3678709053.index +3878394771.index +1558901451.index 1490870089.index -506024154.index +873987051.index +2238351602.index +2947728032.index +2858601943.index +3868897263.index +2805459167.index +2550295619.index +557820962.index +498014806.index +483134527.index 4055960630.index -3114868233.index -1110234531.index +455590999.index +1484898240.index +3532005821.index +2052957721.index +327405396.index +3481460622.index +3886018614.index 3560110512.index -60516963.index -2942906625.index -4186355973.index -2372808771.index -162786619.index -101362029.index -4049687302.index -719730258.index -2036785608.index +3841766426.index +3345771571.index +675639171.index +419088856.index +3469520233.index 3135034963.index +551927.index +101362029.index +3114868233.index +997113305.index +362859361.index +2135831078.index 3585318200.index -4166780685.index -3345900443.index -3678709053.index -3878394771.index -557820962.index +2063250913.index +493091665.index +292676754.index 4118627951.index +2895885863.index +1631545693.index +1865797976.index +3666389427.index +1270280802.index +359307253.index +3177485806.index +2127086198.index +4218724199.index +573724981.index +719730258.index +80509436.index +2046355595.index +650117911.index +2423295662.index +1539484210.index +1251930276.index diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.jdt.core/variablesAndContainers.dat b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.jdt.core/variablesAndContainers.dat index 92beac9168e973ee6a09a0d0376bdb5e84bde8ac..7fdd95e99077505d11aaa66deca1b11a3e0f3b2d 100644 Binary files a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.jdt.core/variablesAndContainers.dat and b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.jdt.core/variablesAndContainers.dat differ diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.jdt.ui/dialog_settings.xml b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.jdt.ui/dialog_settings.xml index 0d7816aac4030b4d5ada8cdcf4df2cbf1cac2763..76538b0f72f4d87010fb3b01e15beee031354819 100644 --- a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.jdt.ui/dialog_settings.xml +++ b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.jdt.ui/dialog_settings.xml @@ -51,4 +51,11 @@ <section name="ClasspathContainerSelectionPage"> <item key="index" value="0"/> </section> + <section name="NewXtendClassWizard.dialogBounds"> + <item key="DIALOG_X_ORIGIN" value="808"/> + <item key="DIALOG_Y_ORIGIN" value="233"/> + <item key="DIALOG_WIDTH" value="525"/> + <item key="DIALOG_HEIGHT" value="500"/> + <item key="DIALOG_FONT_NAME" value="1|Segoe UI|9.0|0|WINDOWS|1|-12|0|0|0|400|0|0|0|1|0|0|0|0|Segoe UI"/> + </section> </section> diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/.cache/clean-cache.properties b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/.cache/clean-cache.properties index 86af33abd87b23e822e53eeda05cf01b01d5d443..e819d0cef74af9a6045f8e403a9635bff16c9917 100644 --- a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/.cache/clean-cache.properties +++ b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/.cache/clean-cache.properties @@ -1,2 +1,2 @@ #Cached timestamps -#Wed Jul 10 20:30:18 CEST 2024 +#Wed Jul 17 22:48:01 CEST 2024 diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/.extensions/.manager/.fileTable.7 b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/.extensions/.manager/.fileTable.7 index 41387a2665ee9cdb1d756f00209ab77d4bc34770..b48e10ada22f80f0021da680cd7fe144f00fe81a 100644 --- a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/.extensions/.manager/.fileTable.7 +++ b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/.extensions/.manager/.fileTable.7 @@ -1,5 +1,5 @@ #safe table -#Wed Jul 10 20:30:18 CEST 2024 +#Wed Jul 17 22:48:02 CEST 2024 .orphans=0 .mainData=0 .contributors=0 @@ -7,4 +7,4 @@ .extraData=0 .contributions=0 .table=0 -.crc00e81dd1.v1 +.crc7fb8e3d1.v1 diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/.extensions/.manager/.fileTable.8 b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/.extensions/.manager/.fileTable.8 index c429d563b81d9b6354b3042d8c906abca01f68e6..35222694be896350f03cbb82584f85a87c1b3385 100644 --- a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/.extensions/.manager/.fileTable.8 +++ b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/.extensions/.manager/.fileTable.8 @@ -1,5 +1,5 @@ #safe table -#Wed Jul 10 20:30:18 CEST 2024 +#Wed Jul 17 22:48:02 CEST 2024 .orphans=1 .mainData=1 .contributors=1 @@ -7,4 +7,4 @@ .extraData=1 .contributions=1 .table=1 -.crc99f68814.v1 +.crce6a67614.v1 diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/.extensions/.table.1 b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/.extensions/.table.1 index 4efd123f42ea1fbdd47773732c53bc197a64b50d..0581464718377a1d150755bafd7a7123eac962b4 100644 Binary files a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/.extensions/.table.1 and b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/.extensions/.table.1 differ diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/config.ini b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/config.ini index 329032e26e823bf801da74f84ca474b7409d1828..9068e8ebd74bb3fb1f606e09c61860d017b58545 100644 --- a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/config.ini +++ b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/config.ini @@ -1,9 +1,9 @@ #Configuration File -#Tue Jul 09 09:52:28 CEST 2024 +#Wed Jul 17 22:46:15 CEST 2024 eclipse.product=org.eclipse.epp.package.modeling.product osgi.splashPath=file\:C\:/Program Files/eclipse/plugins/org.eclipse.epp.package.common_4.31.0.20240307-1200 osgi.install.area=file\:C\:\\Program Files\\eclipse\\ -org.eclipse.equinox.simpleconfigurator.configUrl=file\:/C\:/Users/Tom/Desktop/neuneunueBachelorarbeitCode/zweiteVersion/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.equinox.simpleconfigurator/bundles.info +org.eclipse.equinox.simpleconfigurator.configUrl=file\:/C\:/Users/Tom/Desktop/GitLabBachelorarbeit/bachelorarbeit/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.equinox.simpleconfigurator/bundles.info osgi.bundles.defaultStartLevel=4 eclipse.application=org.eclipse.ui.ide.workbench osgi.configuration.cascaded=false diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/dev.properties b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/dev.properties index 48e5de3c57fb5bc3454eb4712a344f192b3548ef..9d766a25e2abeed6072a2736bc5d540bba712cc7 100644 --- a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/dev.properties +++ b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/dev.properties @@ -1,5 +1,5 @@ # -#Tue Jul 09 09:52:28 CEST 2024 +#Wed Jul 17 22:46:15 CEST 2024 org.tfranke.webservice.dsl=lib/jackson-core-2.15.2.jar,lib/jackson-databind-2.15.2.jar,bin,lib/jackson-annotations-2.15.2.jar org.tfranke.webservice.dsl.ui=bin org.tfranke.webservice.dsl.ui.tests;1.0.0.qualifier=test-bin diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.core.runtime/.contributions.1 b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.core.runtime/.contributions.1 new file mode 100644 index 0000000000000000000000000000000000000000..93728ce54e35b32bb6ea1baf7c23759b8925f1d8 Binary files /dev/null and b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.core.runtime/.contributions.1 differ diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.core.runtime/.contributors.1 b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.core.runtime/.contributors.1 new file mode 100644 index 0000000000000000000000000000000000000000..4cc0e331e737e34ac048380c4c3962a9cb91e1a5 Binary files /dev/null and b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.core.runtime/.contributors.1 differ diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.core.runtime/.extraData.1 b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.core.runtime/.extraData.1 new file mode 100644 index 0000000000000000000000000000000000000000..3704e0e6823aee8afa4012e5582901d48654061b Binary files /dev/null and b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.core.runtime/.extraData.1 differ diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.core.runtime/.mainData.1 b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.core.runtime/.mainData.1 new file mode 100644 index 0000000000000000000000000000000000000000..e37dbf0cd11e9cb5deb94a5d637cc62e6cd04d8c Binary files /dev/null and b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.core.runtime/.mainData.1 differ diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.core.runtime/.manager/.fileTable.7 b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.core.runtime/.manager/.fileTable.7 new file mode 100644 index 0000000000000000000000000000000000000000..958b237f81529e92e09e5a481992f8176756dbc9 --- /dev/null +++ b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.core.runtime/.manager/.fileTable.7 @@ -0,0 +1,10 @@ +#safe table +#Wed Jul 17 22:47:01 CEST 2024 +.orphans=0 +.mainData=0 +.contributors=0 +.namespaces=0 +.extraData=0 +.contributions=0 +.table=0 +.crc4a8a46dd.v1 diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.core.runtime/.manager/.fileTable.8 b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.core.runtime/.manager/.fileTable.8 new file mode 100644 index 0000000000000000000000000000000000000000..34223d8838fe47c230a3dc38cf1bb39f46c43b9f --- /dev/null +++ b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.core.runtime/.manager/.fileTable.8 @@ -0,0 +1,10 @@ +#safe table +#Wed Jul 17 22:47:01 CEST 2024 +.orphans=1 +.mainData=1 +.contributors=1 +.namespaces=1 +.extraData=1 +.contributions=1 +.table=1 +.crcd394d318.v1 diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.core.runtime/.manager/.tmp3.instance b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.core.runtime/.manager/.tmp3.instance deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.core.runtime/.namespaces.1 b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.core.runtime/.namespaces.1 new file mode 100644 index 0000000000000000000000000000000000000000..cc559bf3ff07c9063f2d196fd773407231357fee Binary files /dev/null and b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.core.runtime/.namespaces.1 differ diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.core.runtime/.orphans.1 b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.core.runtime/.orphans.1 new file mode 100644 index 0000000000000000000000000000000000000000..adcc138aa8b9b2a5dd464b5c4dd20c2b20e7c4ba Binary files /dev/null and b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.core.runtime/.orphans.1 differ diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.core.runtime/.table.1 b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.core.runtime/.table.1 new file mode 100644 index 0000000000000000000000000000000000000000..23880516c64cd2621a61b796e2c1cc10cd068772 Binary files /dev/null and b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.core.runtime/.table.1 differ diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.epp.mpc.ui/MarketplaceInfo.xml b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.epp.mpc.ui/MarketplaceInfo.xml deleted file mode 100644 index fef5a487e47c3f0490ebee6ca9740b7d632cf04d..0000000000000000000000000000000000000000 --- a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.epp.mpc.ui/MarketplaceInfo.xml +++ /dev/null @@ -1,570 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<java version="17.0.10" class="java.beans.XMLDecoder"> - <object class="org.eclipse.epp.internal.mpc.ui.catalog.MarketplaceInfo" id="MarketplaceInfo0"> - <void property="iuToNodeKey"> - <void method="put"> - <string>org.eclipse.jpt.jpa.eclipselink.feature</string> - <object class="java.util.ArrayList"> - <void method="add"> - <string>https://marketplace.eclipse.org#2963451</string> - </void> - </object> - </void> - <void method="put"> - <string>org.eclipse.egit.gitflow.feature</string> - <object class="java.util.ArrayList"> - <void method="add"> - <string>https://marketplace.eclipse.org#2963400</string> - </void> - <void method="add"> - <string>https://marketplace.eclipse.org#2963451</string> - </void> - </object> - </void> - <void method="put"> - <string>org.eclipse.wildwebdeveloper.embedder.node.feature</string> - <object class="java.util.ArrayList"> - <void method="add"> - <string>https://marketplace.eclipse.org#5578890</string> - </void> - <void method="add"> - <string>https://marketplace.eclipse.org#2963400</string> - </void> - <void method="add"> - <string>https://marketplace.eclipse.org#2963451</string> - </void> - </object> - </void> - <void method="put"> - <string>org.eclipse.m2e.wtp.jaxrs.feature</string> - <object class="java.util.ArrayList"> - <void method="add"> - <string>https://marketplace.eclipse.org#2963451</string> - </void> - </object> - </void> - <void method="put"> - <string>org.eclipse.mylyn.wikitext.editors_feature</string> - <object class="java.util.ArrayList"> - <void method="add"> - <string>https://marketplace.eclipse.org#2963451</string> - </void> - </object> - </void> - <void method="put"> - <string>org.eclipse.m2e.wtp.jpa.feature</string> - <object class="java.util.ArrayList"> - <void method="add"> - <string>https://marketplace.eclipse.org#2963451</string> - </void> - </object> - </void> - <void method="put"> - <string>org.eclipse.m2e.logback.feature</string> - <object class="java.util.ArrayList"> - <void method="add"> - <string>https://marketplace.eclipse.org#2963451</string> - </void> - </object> - </void> - <void method="put"> - <string>org.eclipse.wst.xml_ui.feature</string> - <object class="java.util.ArrayList"> - <void method="add"> - <string>https://marketplace.eclipse.org#2963400</string> - </void> - <void method="add"> - <string>https://marketplace.eclipse.org#2963451</string> - </void> - </object> - </void> - <void method="put"> - <string>org.eclipse.jsf.feature</string> - <object class="java.util.ArrayList"> - <void method="add"> - <string>https://marketplace.eclipse.org#2963451</string> - </void> - </object> - </void> - <void method="put"> - <string>org.eclipse.buildship</string> - <object class="java.util.ArrayList"> - <void method="add"> - <string>https://marketplace.eclipse.org#2963451</string> - </void> - </object> - </void> - <void method="put"> - <string>org.eclipse.egit</string> - <object class="java.util.ArrayList"> - <void method="add"> - <string>https://marketplace.eclipse.org#2963400</string> - </void> - <void method="add"> - <string>https://marketplace.eclipse.org#2963451</string> - </void> - </object> - </void> - <void method="put"> - <string>org.eclipse.wst.web_ui.feature</string> - <object class="java.util.ArrayList"> - <void method="add"> - <string>https://marketplace.eclipse.org#2963400</string> - </void> - <void method="add"> - <string>https://marketplace.eclipse.org#2963451</string> - </void> - </object> - </void> - <void method="put"> - <string>org.eclipse.wst.web_js_support.feature</string> - <object class="java.util.ArrayList"> - <void method="add"> - <string>https://marketplace.eclipse.org#2963400</string> - </void> - <void method="add"> - <string>https://marketplace.eclipse.org#2963451</string> - </void> - </object> - </void> - <void method="put"> - <string>org.eclipse.m2e.lemminx.feature</string> - <object class="java.util.ArrayList"> - <void method="add"> - <string>https://marketplace.eclipse.org#2963451</string> - </void> - </object> - </void> - <void method="put"> - <string>org.eclipse.jst.ws.cxf.feature</string> - <object class="java.util.ArrayList"> - <void method="add"> - <string>https://marketplace.eclipse.org#2963451</string> - </void> - </object> - </void> - <void method="put"> - <string>org.eclipse.jst.jsf.apache.trinidad.tagsupport.feature</string> - <object class="java.util.ArrayList"> - <void method="add"> - <string>https://marketplace.eclipse.org#2963451</string> - </void> - </object> - </void> - <void method="put"> - <string>org.eclipse.jst.ws.jaxws.feature</string> - <object class="java.util.ArrayList"> - <void method="add"> - <string>https://marketplace.eclipse.org#2963451</string> - </void> - </object> - </void> - <void method="put"> - <string>org.eclipse.linuxtools.docker.feature</string> - <object class="java.util.ArrayList"> - <void method="add"> - <string>https://marketplace.eclipse.org#2963451</string> - </void> - </object> - </void> - <void method="put"> - <string>org.eclipse.m2e.wtp.jsf.feature</string> - <object class="java.util.ArrayList"> - <void method="add"> - <string>https://marketplace.eclipse.org#2963451</string> - </void> - </object> - </void> - <void method="put"> - <string>org.eclipse.eclemma.feature</string> - <object class="java.util.ArrayList"> - <void method="add"> - <string>https://marketplace.eclipse.org#2963451</string> - </void> - </object> - </void> - <void method="put"> - <string>org.eclipse.m2e.wtp.feature</string> - <object class="java.util.ArrayList"> - <void method="add"> - <string>https://marketplace.eclipse.org#2963451</string> - </void> - </object> - </void> - <void method="put"> - <string>org.eclipse.tips.feature</string> - <object class="java.util.ArrayList"> - <void method="add"> - <string>https://marketplace.eclipse.org#2963400</string> - </void> - <void method="add"> - <string>https://marketplace.eclipse.org#2963451</string> - </void> - </object> - </void> - <void method="put"> - <string>org.eclipse.jpt.common.feature</string> - <object class="java.util.ArrayList"> - <void method="add"> - <string>https://marketplace.eclipse.org#2963451</string> - </void> - </object> - </void> - <void method="put"> - <string>org.eclipse.jst.web_ui.feature</string> - <object class="java.util.ArrayList"> - <void method="add"> - <string>https://marketplace.eclipse.org#2963451</string> - </void> - </object> - </void> - <void method="put"> - <string>org.eclipse.wst.xsl.feature</string> - <object class="java.util.ArrayList"> - <void method="add"> - <string>https://marketplace.eclipse.org#2963400</string> - </void> - <void method="add"> - <string>https://marketplace.eclipse.org#2963451</string> - </void> - </object> - </void> - <void method="put"> - <string>de.jcup.hijson</string> - <object class="java.util.ArrayList"> - <void method="add"> - <string>https://marketplace.eclipse.org#5223289</string> - </void> - </object> - </void> - <void method="put"> - <string>org.eclipse.wst.json_ui.feature</string> - <object class="java.util.ArrayList"> - <void method="add"> - <string>https://marketplace.eclipse.org#2963400</string> - </void> - <void method="add"> - <string>https://marketplace.eclipse.org#2963451</string> - </void> - </object> - </void> - <void method="put"> - <string>org.eclipse.tm.terminal.feature</string> - <object class="java.util.ArrayList"> - <void method="add"> - <string>https://marketplace.eclipse.org#2963400</string> - </void> - <void method="add"> - <string>https://marketplace.eclipse.org#2963451</string> - </void> - </object> - </void> - <void method="put"> - <string>org.eclipse.jst.server_adapters.feature</string> - <object class="java.util.ArrayList"> - <void method="add"> - <string>https://marketplace.eclipse.org#2963451</string> - </void> - </object> - </void> - <void method="put"> - <string>org.eclipse.jst.enterprise_ui.feature</string> - <object class="java.util.ArrayList"> - <void method="add"> - <string>https://marketplace.eclipse.org#2963451</string> - </void> - </object> - </void> - <void method="put"> - <string>org.eclipse.wst.server_ui.feature</string> - <object class="java.util.ArrayList"> - <void method="add"> - <string>https://marketplace.eclipse.org#2963400</string> - </void> - <void method="add"> - <string>https://marketplace.eclipse.org#2963451</string> - </void> - </object> - </void> - <void method="put"> - <string>org.eclipse.jpt.jaxb.feature</string> - <object class="java.util.ArrayList"> - <void method="add"> - <string>https://marketplace.eclipse.org#2963451</string> - </void> - </object> - </void> - <void method="put"> - <string>org.eclipse.wildwebdeveloper.feature</string> - <object class="java.util.ArrayList"> - <void method="add"> - <string>https://marketplace.eclipse.org#5578890</string> - </void> - <void method="add"> - <string>https://marketplace.eclipse.org#2963400</string> - </void> - <void method="add"> - <string>https://marketplace.eclipse.org#2963451</string> - </void> - </object> - </void> - <void method="put"> - <string>org.eclipse.jpt.common.eclipselink.feature</string> - <object class="java.util.ArrayList"> - <void method="add"> - <string>https://marketplace.eclipse.org#2963451</string> - </void> - </object> - </void> - <void method="put"> - <string>org.eclipse.jst.ws.jaxws.dom.feature</string> - <object class="java.util.ArrayList"> - <void method="add"> - <string>https://marketplace.eclipse.org#2963451</string> - </void> - </object> - </void> - <void method="put"> - <string>org.eclipse.jst.ws.axis2tools.feature</string> - <object class="java.util.ArrayList"> - <void method="add"> - <string>https://marketplace.eclipse.org#2963451</string> - </void> - </object> - </void> - <void method="put"> - <string>org.eclipse.jpt.jaxb.eclipselink.feature</string> - <object class="java.util.ArrayList"> - <void method="add"> - <string>https://marketplace.eclipse.org#2963451</string> - </void> - </object> - </void> - <void method="put"> - <string>org.eclipse.jst.server_adapters.ext.feature</string> - <object class="java.util.ArrayList"> - <void method="add"> - <string>https://marketplace.eclipse.org#2963451</string> - </void> - </object> - </void> - <void method="put"> - <string>org.eclipse.jst.web_js_support.feature</string> - <object class="java.util.ArrayList"> - <void method="add"> - <string>https://marketplace.eclipse.org#2963451</string> - </void> - </object> - </void> - <void method="put"> - <string>org.eclipse.wst.server_adapters.feature</string> - <object class="java.util.ArrayList"> - <void method="add"> - <string>https://marketplace.eclipse.org#2963400</string> - </void> - <void method="add"> - <string>https://marketplace.eclipse.org#2963451</string> - </void> - </object> - </void> - <void method="put"> - <string>org.eclipse.jst.server_ui.feature</string> - <object class="java.util.ArrayList"> - <void method="add"> - <string>https://marketplace.eclipse.org#2963451</string> - </void> - </object> - </void> - </void> - <void property="nodeKeyToIU"> - <void method="put"> - <string>https://marketplace.eclipse.org#5223289</string> - <object class="java.util.ArrayList"> - <void method="add"> - <string>de.jcup.hijson</string> - </void> - </object> - </void> - <void method="put"> - <string>https://marketplace.eclipse.org#2963451</string> - <object class="java.util.ArrayList"> - <void method="add"> - <string>org.eclipse.buildship</string> - </void> - <void method="add"> - <string>org.eclipse.eclemma.feature</string> - </void> - <void method="add"> - <string>org.eclipse.egit</string> - </void> - <void method="add"> - <string>org.eclipse.egit.gitflow.feature</string> - </void> - <void method="add"> - <string>org.eclipse.jpt.common.eclipselink.feature</string> - </void> - <void method="add"> - <string>org.eclipse.jpt.common.feature</string> - </void> - <void method="add"> - <string>org.eclipse.jpt.jaxb.eclipselink.feature</string> - </void> - <void method="add"> - <string>org.eclipse.jpt.jaxb.feature</string> - </void> - <void method="add"> - <string>org.eclipse.jpt.jpa.eclipselink.feature</string> - </void> - <void method="add"> - <string>org.eclipse.jsf.feature</string> - </void> - <void method="add"> - <string>org.eclipse.jst.jsf.apache.trinidad.tagsupport.feature</string> - </void> - <void method="add"> - <string>org.eclipse.jst.enterprise_ui.feature</string> - </void> - <void method="add"> - <string>org.eclipse.jst.server_adapters.ext.feature</string> - </void> - <void method="add"> - <string>org.eclipse.jst.server_adapters.feature</string> - </void> - <void method="add"> - <string>org.eclipse.jst.server_ui.feature</string> - </void> - <void method="add"> - <string>org.eclipse.jst.web_js_support.feature</string> - </void> - <void method="add"> - <string>org.eclipse.jst.web_ui.feature</string> - </void> - <void method="add"> - <string>org.eclipse.jst.ws.axis2tools.feature</string> - </void> - <void method="add"> - <string>org.eclipse.jst.ws.cxf.feature</string> - </void> - <void method="add"> - <string>org.eclipse.jst.ws.jaxws.dom.feature</string> - </void> - <void method="add"> - <string>org.eclipse.jst.ws.jaxws.feature</string> - </void> - <void method="add"> - <string>org.eclipse.linuxtools.docker.feature</string> - </void> - <void method="add"> - <string>org.eclipse.m2e.lemminx.feature</string> - </void> - <void method="add"> - <string>org.eclipse.m2e.logback.feature</string> - </void> - <void method="add"> - <string>org.eclipse.m2e.wtp.feature</string> - </void> - <void method="add"> - <string>org.eclipse.m2e.wtp.jaxrs.feature</string> - </void> - <void method="add"> - <string>org.eclipse.m2e.wtp.jpa.feature</string> - </void> - <void method="add"> - <string>org.eclipse.m2e.wtp.jsf.feature</string> - </void> - <void method="add"> - <string>org.eclipse.mylyn.wikitext.editors_feature</string> - </void> - <void method="add"> - <string>org.eclipse.tips.feature</string> - </void> - <void method="add"> - <string>org.eclipse.tm.terminal.feature</string> - </void> - <void method="add"> - <string>org.eclipse.wildwebdeveloper.feature</string> - </void> - <void method="add"> - <string>org.eclipse.wildwebdeveloper.embedder.node.feature</string> - </void> - <void method="add"> - <string>org.eclipse.wst.json_ui.feature</string> - </void> - <void method="add"> - <string>org.eclipse.wst.server_adapters.feature</string> - </void> - <void method="add"> - <string>org.eclipse.wst.server_ui.feature</string> - </void> - <void method="add"> - <string>org.eclipse.wst.web_js_support.feature</string> - </void> - <void method="add"> - <string>org.eclipse.wst.web_ui.feature</string> - </void> - <void method="add"> - <string>org.eclipse.wst.xml_ui.feature</string> - </void> - <void method="add"> - <string>org.eclipse.wst.xsl.feature</string> - </void> - </object> - </void> - <void method="put"> - <string>https://marketplace.eclipse.org#5578890</string> - <object class="java.util.ArrayList"> - <void method="add"> - <string>org.eclipse.wildwebdeveloper.feature</string> - </void> - <void method="add"> - <string>org.eclipse.wildwebdeveloper.embedder.node.feature</string> - </void> - </object> - </void> - <void method="put"> - <string>https://marketplace.eclipse.org#2963400</string> - <object class="java.util.ArrayList"> - <void method="add"> - <string>org.eclipse.wst.xml_ui.feature</string> - </void> - <void method="add"> - <string>org.eclipse.wst.xsl.feature</string> - </void> - <void method="add"> - <string>org.eclipse.tips.feature</string> - </void> - <void method="add"> - <string>org.eclipse.egit</string> - </void> - <void method="add"> - <string>org.eclipse.egit.gitflow.feature</string> - </void> - <void method="add"> - <string>org.eclipse.tm.terminal.feature</string> - </void> - <void method="add"> - <string>org.eclipse.wst.web_ui.feature</string> - </void> - <void method="add"> - <string>org.eclipse.wst.web_js_support.feature</string> - </void> - <void method="add"> - <string>org.eclipse.wildwebdeveloper.feature</string> - </void> - <void method="add"> - <string>org.eclipse.wildwebdeveloper.embedder.node.feature</string> - </void> - <void method="add"> - <string>org.eclipse.wst.server_ui.feature</string> - </void> - <void method="add"> - <string>org.eclipse.wst.server_adapters.feature</string> - </void> - <void method="add"> - <string>org.eclipse.wst.json_ui.feature</string> - </void> - </object> - </void> - </void> - </object> -</java> diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.equinox.app/.manager/.tmp4.instance b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.equinox.app/.manager/.tmp4.instance deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.equinox.simpleconfigurator/bundles.info b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.equinox.simpleconfigurator/bundles.info index 9254c7187d60f66aab06540eca55999fc417146d..e5e069ab3da2376d6d06224c23b54fcdf38a05b0 100644 --- a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.equinox.simpleconfigurator/bundles.info +++ b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.equinox.simpleconfigurator/bundles.info @@ -1133,12 +1133,12 @@ org.osgi.util.promise,1.3.0.202212101352,file:/C:/Program%20Files/eclipse/plugin org.osgi.util.xml,1.0.2.202109301733,file:/C:/Program%20Files/eclipse/plugins/org.osgi.util.xml_1.0.2.202109301733.jar,4,false org.sat4j.core,2.3.6.v20201214,file:/C:/Program%20Files/eclipse/plugins/org.sat4j.core_2.3.6.v20201214.jar,4,false org.sat4j.pb,2.3.6.v20201214,file:/C:/Program%20Files/eclipse/plugins/org.sat4j.pb_2.3.6.v20201214.jar,4,false -org.tfranke.webservice.dsl,1.0.0.qualifier,file:/C:/Users/Tom/Desktop/neuneunueBachelorarbeitCode/zweiteVersion/webservice/org.tfranke.webservice.dsl/,4,false -org.tfranke.webservice.dsl.ide,1.0.0.qualifier,file:/C:/Users/Tom/Desktop/neuneunueBachelorarbeitCode/zweiteVersion/webservice/org.tfranke.webservice.dsl.ide/,4,false -org.tfranke.webservice.dsl.tests,1.0.0.qualifier,file:/C:/Users/Tom/Desktop/neuneunueBachelorarbeitCode/zweiteVersion/webservice/org.tfranke.webservice.dsl.tests/,4,false -org.tfranke.webservice.dsl.ui,1.0.0.qualifier,file:/C:/Users/Tom/Desktop/neuneunueBachelorarbeitCode/zweiteVersion/webservice/org.tfranke.webservice.dsl.ui/,4,false -org.tfranke.webservice.dsl.ui.tests,1.0.0.qualifier,file:/C:/Users/Tom/Desktop/neuneunueBachelorarbeitCode/zweiteVersion/webservice/org.tfranke.webservice.dsl.ui.tests/,4,false +org.tfranke.webservice.dsl,1.0.0.qualifier,file:/C:/Users/Tom/Desktop/GitLabBachelorarbeit/bachelorarbeit/eclipse_workspaces/webservice/org.tfranke.webservice.dsl/,4,false +org.tfranke.webservice.dsl.ide,1.0.0.qualifier,file:/C:/Users/Tom/Desktop/GitLabBachelorarbeit/bachelorarbeit/eclipse_workspaces/webservice/org.tfranke.webservice.dsl.ide/,4,false +org.tfranke.webservice.dsl.tests,1.0.0.qualifier,file:/C:/Users/Tom/Desktop/GitLabBachelorarbeit/bachelorarbeit/eclipse_workspaces/webservice/org.tfranke.webservice.dsl.tests/,4,false +org.tfranke.webservice.dsl.ui,1.0.0.qualifier,file:/C:/Users/Tom/Desktop/GitLabBachelorarbeit/bachelorarbeit/eclipse_workspaces/webservice/org.tfranke.webservice.dsl.ui/,4,false +org.tfranke.webservice.dsl.ui.tests,1.0.0.qualifier,file:/C:/Users/Tom/Desktop/GitLabBachelorarbeit/bachelorarbeit/eclipse_workspaces/webservice/org.tfranke.webservice.dsl.ui.tests/,4,false org.tukaani.xz,1.9.0,file:/C:/Program%20Files/eclipse/plugins/org.tukaani.xz_1.9.0.jar,4,false slf4j.api,2.0.12,file:/C:/Program%20Files/eclipse/plugins/slf4j.api_2.0.12.jar,4,false slf4j.simple,2.0.12,file:/C:/Program%20Files/eclipse/plugins/slf4j.simple_2.0.12.jar,4,false -webservice,0.1.0.qualifier,file:/C:/Users/Tom/Desktop/neuneunueBachelorarbeitCode/zweiteVersion/webservice/webservice/,4,false +webservice,0.1.0.qualifier,file:/C:/Users/Tom/Desktop/GitLabBachelorarbeit/bachelorarbeit/eclipse_workspaces/webservice/webservice/,4,false diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/.manager/.fileTable.1 b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/.manager/.fileTable.1 index 150e0009e0b0fdc9c0b85489bc1114c6b35a4638..e5e3cb33919848a92cfed138c0ba5db92d822948 100644 --- a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/.manager/.fileTable.1 +++ b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/.manager/.fileTable.1 @@ -1,4 +1,4 @@ #safe table -#Tue Jul 09 09:52:59 CEST 2024 +#Wed Jul 17 22:46:46 CEST 2024 framework.info=0 -.crc6e838916.v1 +.crc52e0a195.v1 diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/.manager/.fileTable.2 b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/.manager/.fileTable.2 index c9f24c784ced8671d490dc0bbec12e77899783e1..242192ea5dd833f833afa74b58e401714c81b1fe 100644 --- a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/.manager/.fileTable.2 +++ b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/.manager/.fileTable.2 @@ -1,4 +1,4 @@ #safe table -#Tue Jul 09 09:52:59 CEST 2024 +#Wed Jul 17 22:46:46 CEST 2024 framework.info=1 -.crc6f41e321.v1 +.crc5322cba2.v1 diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/1005/0/.cp/icons/full/dtool16/collapse_all.gif b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/1005/0/.cp/icons/full/dtool16/collapse_all.gif new file mode 100644 index 0000000000000000000000000000000000000000..7dc0de51301371379e9e1bb713daf7273e8919a0 Binary files /dev/null and b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/1005/0/.cp/icons/full/dtool16/collapse_all.gif differ diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/1005/0/.cp/icons/full/dtool16/expand_all.gif b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/1005/0/.cp/icons/full/dtool16/expand_all.gif new file mode 100644 index 0000000000000000000000000000000000000000..492c14f6e1e6924d447221c88c60281074e83137 Binary files /dev/null and b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/1005/0/.cp/icons/full/dtool16/expand_all.gif differ diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/1005/0/.cp/icons/full/elcl16/hierarchicalLayout.png b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/1005/0/.cp/icons/full/elcl16/hierarchicalLayout.png new file mode 100644 index 0000000000000000000000000000000000000000..ae6d660ab3440acc9fbfa70e48faecaf13c963a4 Binary files /dev/null and b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/1005/0/.cp/icons/full/elcl16/hierarchicalLayout.png differ diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/1005/0/.cp/icons/full/etool16/constrainon.gif b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/1005/0/.cp/icons/full/etool16/constrainon.gif new file mode 100644 index 0000000000000000000000000000000000000000..082f9c0ae85e767fc36434183436daf8cd4a757c Binary files /dev/null and b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/1005/0/.cp/icons/full/etool16/constrainon.gif differ diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/1005/0/.cp/icons/full/obj16/attribute_obj.gif b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/1005/0/.cp/icons/full/obj16/attribute_obj.gif new file mode 100644 index 0000000000000000000000000000000000000000..79d49d037b5dcc35ead41068fcd4b68640a38fd4 Binary files /dev/null and b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/1005/0/.cp/icons/full/obj16/attribute_obj.gif differ diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/1005/0/.cp/icons/full/obj16/element_obj.gif b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/1005/0/.cp/icons/full/obj16/element_obj.gif new file mode 100644 index 0000000000000000000000000000000000000000..3567815907918bae5d75866284622899018e0395 Binary files /dev/null and b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/1005/0/.cp/icons/full/obj16/element_obj.gif differ diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/1005/0/.cp/icons/full/obj16/proinst_obj.gif b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/1005/0/.cp/icons/full/obj16/proinst_obj.gif new file mode 100644 index 0000000000000000000000000000000000000000..74436d8d3c18c1af411be50f23a010fe5fc3e9f0 Binary files /dev/null and b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/1005/0/.cp/icons/full/obj16/proinst_obj.gif differ diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/1005/0/.cp/icons/full/obj16/text.gif b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/1005/0/.cp/icons/full/obj16/text.gif new file mode 100644 index 0000000000000000000000000000000000000000..efa7a3801410eedb1240de5d469a67e028c489cf Binary files /dev/null and b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/1005/0/.cp/icons/full/obj16/text.gif differ diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/1005/0/.cp/icons/xmldoc.gif b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/1005/0/.cp/icons/xmldoc.gif new file mode 100644 index 0000000000000000000000000000000000000000..14eb1be09569a9c7d7dbbbf035622ba4ddecf874 Binary files /dev/null and b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/1005/0/.cp/icons/xmldoc.gif differ diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/1018/0/.cp/xslt-schemas/xslt-1.0.xsd b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/1018/0/.cp/xslt-schemas/xslt-1.0.xsd new file mode 100644 index 0000000000000000000000000000000000000000..5366deadca5a6f733a4fd479d917087b683ff450 --- /dev/null +++ b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/1018/0/.cp/xslt-schemas/xslt-1.0.xsd @@ -0,0 +1,1709 @@ +<?xml version="1.0"?> +<!-- + ******************************************************************************* + * Copyright (c) 2001, 2007 - W3C, Standards for Technology in Automotive Retail, + * and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v2.0 + * which accompanies this distribution, and is available at + * https://www.eclipse.org/legal/epl-2.0/ + * + * Contributors: + * David Carver - 20071228 - STAR - Updated to XML Schemas 2001 1.0 + * Note this schemas is a modified version of the schema for XSLT 2.0, it has + * been stripped of all XSLT 2.0 additions, to bring it in line with the XSLT 1.0 + * specification. + * The original version may be found at http://www.w3.org/2007/schema-for-xslt20.xsd + * The original W3C copyright notice is included: + * David Carver - 20080330 - STAR - bug 224819 - changed procesContents from lax to skip + * David Carver - STAR - bug 293902 - correct exclude-result-prefix to use prefix-list + ******************************************************************************* + ******************************************************************************* + * W3C® SOFTWARE NOTICE AND LICENSE + * http://www.w3.org/Consortium/Legal/copyright-software-19980720 + * + * Copyright © 1994-2002 World Wide Web Consortium, (Massachusetts Institute of + * Technology, Institut National de Recherche en Informatique et en Automatique, + * Keio University). All Rights Reserved. http://www.w3.org/Consortium/Legal/ + * + * This W3C work (including software, documents, or other related items) is being + * provided by the copyright holders under the following license. By obtaining, + * using and/or copying this work, you (the licensee) agree that you have read, + * understood, and will comply with the following terms and conditions: + * + * Permission to use, copy, modify, and distribute this software and its + * documentation, with or without modification, for any purpose and without fee + * or royalty is hereby granted, provided that you include the following on ALL copies + * of the software and documentation or portions thereof, including modifications, that + * you make: + * + * 1. The full text of this NOTICE in a location viewable to users of the redistributed + * or derivative work. + * 2. Any pre-existing intellectual property disclaimers, notices, or terms and + * conditions. If none exist, a short notice of the following form (hypertext is preferred, text is permitted) should be used within the body of any redistributed or derivative code: "Copyright © [$date-of-software] World Wide Web Consortium, (Massachusetts Institute of Technology, Institut National de Recherche en Informatique et en Automatique, Keio University). All Rights Reserved. http://www.w3.org/Consortium/Legal/" + * 3. Notice of any changes or modifications to the W3C files, including the date changes + * were made. (We recommend you provide URIs to the location from which the code is + * derived.) + * + * THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE NO + * REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO, + * WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF + * THE SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, + * TRADEMARKS OR OTHER RIGHTS. + * + * COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR CONSEQUENTIAL + * DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR DOCUMENTATION. + * + * The name and trademarks of copyright holders may NOT be used in advertising or publicity + * pertaining to the software without specific, written prior permission. Title to copyright + * in this software and any associated documentation will at all times remain with copyright + * holders. + ******************************************************************************************** + --> +<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" + xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + targetNamespace="http://www.w3.org/1999/XSL/Transform" + elementFormDefault="qualified" > + +<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> +<xs:annotation> + <xs:documentation> + + </xs:documentation> +</xs:annotation> +<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> + +<!-- +The declaration of xml:space and xml:lang may need to be commented out because +of problems processing the schema using various tools +--> + +<xs:import namespace="http://www.w3.org/XML/1998/namespace" + schemaLocation="http://www.w3.org/2001/xml.xsd"/> + +<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> +<xs:annotation> + <xs:documentation> + PART A: definitions of complex types and model groups used as the basis + for element definitions + </xs:documentation> +</xs:annotation> +<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> + +<xs:complexType name="generic-element-type" mixed="true"> + <xs:anyAttribute namespace="##other" processContents="skip"/> +</xs:complexType> + +<!-- <xs:complexType name="versioned-element-type" mixed="true"> + <xs:complexContent> + <xs:extension base="xsl:generic-element-type"> + <xs:attribute name="version" type="xs:decimal" use="optional"/> + + </xs:extension> + </xs:complexContent> +</xs:complexType> +--> + +<xs:complexType name="element-only-versioned-element-type" mixed="false"> + <xs:complexContent> + <xs:restriction base="xsl:generic-element-type"> + <xs:anyAttribute namespace="##other" processContents="skip"/> + </xs:restriction> + </xs:complexContent> + +</xs:complexType> + +<xs:complexType name="sequence-constructor"> + <xs:complexContent mixed="true"> + <xs:extension base="xsl:generic-element-type"> + <xs:group ref="xsl:sequence-constructor-group" minOccurs="0" maxOccurs="unbounded"/> + </xs:extension> + </xs:complexContent> +</xs:complexType> + +<xs:group name="sequence-constructor-group"> + <xs:choice> + + <xs:element ref="xsl:variable"/> + <xs:element ref="xsl:instruction"/> + <xs:group ref="xsl:result-elements"/> + </xs:choice> +</xs:group> + +<xs:element name="declaration" type="xsl:generic-element-type" abstract="true"/> + +<xs:element name="instruction" type="xsl:generic-element-type" abstract="true"/> + +<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> +<xs:annotation> + <xs:documentation> + + PART B: definitions of individual XSLT elements + Elements are listed in alphabetical order. + </xs:documentation> +</xs:annotation> +<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> + +<xs:element name="apply-imports" substitutionGroup="xsl:instruction"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + This command applies template rule from an imported style sheet. + </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:complexContent> + <xs:extension base="xsl:element-only-versioned-element-type"/> + </xs:complexContent> + </xs:complexType> +</xs:element> + +<xs:element name="apply-templates" substitutionGroup="xsl:instruction"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Applies template rules based on a given XPath selection criteria. If no template + is found the built in templates are used. + </xs:documentation> + </xs:annotation> + + <xs:complexType> + <xs:complexContent> + <xs:extension base="xsl:element-only-versioned-element-type"> + <xs:choice minOccurs="0" maxOccurs="unbounded"> + <xs:element ref="xsl:sort"/> + <xs:element ref="xsl:with-param"/> + </xs:choice> + <xs:attribute name="select" type="xsl:expression" default="child::node()"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Optional. Specifies the XPath criteria to be used to apply the templates. + </xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="mode" type="xsl:mode"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Optional. Specifies the type of template to be used if there is more than + one way in which to process the given criteria. + </xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:extension> + </xs:complexContent> + </xs:complexType> +</xs:element> + +<xs:element name="attribute" substitutionGroup="xsl:instruction"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Defines an attribute that will be put in the result set. + </xs:documentation> + </xs:annotation> + + <xs:complexType> + <xs:complexContent mixed="true"> + <xs:extension base="xsl:sequence-constructor"> + <xs:attribute name="name" type="xsl:avt" use="required"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Required. The name of the attribute to be created. + </xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="namespace" type="xsl:avt"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Optional. The namespace for the attribute. + </xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:extension> + </xs:complexContent> + </xs:complexType> +</xs:element> + +<xs:element name="attribute-set" substitutionGroup="xsl:declaration"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Defines a group of attributes that will be created and can be reused + by other portions of the stylesheet during processing. These attributes + will appear on the resulting document when used. + </xs:documentation> + </xs:annotation> + + <xs:complexType> + <xs:complexContent> + <xs:extension base="xsl:element-only-versioned-element-type"> + <xs:sequence minOccurs="0" maxOccurs="unbounded"> + <xs:element ref="xsl:attribute"/> + </xs:sequence> + <xs:attribute name="name" type="xsl:QName" use="required"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Required. Name of the attribute set. + </xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="use-attribute-sets" type="xsl:QNames" default=""> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + A list of attributes-sets separated by spaces to be used in this + attribute set. + </xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:extension> + </xs:complexContent> + </xs:complexType> +</xs:element> + +<xs:element name="call-template" substitutionGroup="xsl:instruction"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Specifies the name of a template to be called. A called template + is only executed when it is called. It is not executed directly by + an apply-templates command. + </xs:documentation> + </xs:annotation> + + <xs:complexType> + + <xs:complexContent> + <xs:extension base="xsl:element-only-versioned-element-type"> + <xs:sequence> + <xs:element ref="xsl:with-param" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + <xs:attribute name="name" type="xsl:QName" use="required"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Required. The name of the template to be called. + </xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:extension> + </xs:complexContent> + </xs:complexType> +</xs:element> + +<xs:element name="choose" substitutionGroup="xsl:instruction"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Choose is the beginning of a When/Otherwise combination. It is + the way to implement case selection of If/Then/ElseIf type logical + processing. + </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:complexContent> + <xs:extension base="xsl:element-only-versioned-element-type"> + <xs:sequence> + <xs:element ref="xsl:when" maxOccurs="unbounded"/> + <xs:element ref="xsl:otherwise" minOccurs="0"/> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> +</xs:element> + +<xs:element name="comment" substitutionGroup="xsl:instruction"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Creates a comment node in the result document. + </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:complexContent mixed="true"> + <xs:extension base="xsl:sequence-constructor"/> + </xs:complexContent> + </xs:complexType> +</xs:element> + +<xs:element name="copy" substitutionGroup="xsl:instruction"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Copy creates a duplicate of the current node being processed. It + does not copy the attributes or children nodes. See copy-of for + copying attributes and children nodes. + </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:complexContent mixed="true"> + <xs:extension base="xsl:sequence-constructor"> + <xs:attribute name="use-attribute-sets" type="xsl:QNames" default=""> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Optional. A space separated list of attributes sets to apply to the + result document. + </xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:extension> + </xs:complexContent> + </xs:complexType> +</xs:element> + +<xs:element name="copy-of" substitutionGroup="xsl:instruction"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Creates a copy-of the current node and all attributes, and children nodes. + It copies the nodes specified by the XPath selection criteria. + </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:complexContent mixed="true"> + <xs:extension base="xsl:generic-element-type"> + <xs:attribute name="select" type="xsl:expression" use="required"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Required. XPath expressions that select the nodes to be copied. + </xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:extension> + </xs:complexContent> + </xs:complexType> +</xs:element> + +<xs:element name="decimal-format" substitutionGroup="xsl:declaration"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Defines the output format to be used when converting numbers into strings when + used with the XPath function format-number(). + </xs:documentation> + </xs:annotation> + + <xs:complexType> + <xs:complexContent> + <xs:extension base="xsl:element-only-versioned-element-type"> + <xs:attribute name="name" type="xsl:QName"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Optional. The unique name for this format. + </xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="decimal-separator" type="xsl:char" default="."> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Optional. The character to use to represent a decimal point. + The default value is a period. + </xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="grouping-separator" type="xsl:char" default=","> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Optional. The character to be used to seperate thousands. The + default is a comma. + </xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="infinity" type="xs:string" default="Infinity"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Optional. The string to be used to represent infinity. The default + is Infinity. + </xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="minus-sign" type="xsl:char" default="-"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Optional. The character to be used to represent negative numbers. + The default is the minus sign. + </xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="NaN" type="xs:string" default="NaN"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Optional. The string to be used when the input is Not a Number. + The default is NaN. + </xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="percent" type="xsl:char" default="%"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Optional. The character to be used to represent a percent. + The default is a percent sign. + </xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="per-mille" type="xsl:char" default="‰"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Optional. The character to be used to represet per thousand. + The default is ‰ + </xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="zero-digit" type="xsl:char" default="0"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Optional. The character to be used to represent the digit zero. + The default is the number zero. + </xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="digit" type="xsl:char" default="#"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Optional. The character to be used to indicated where a digit + is required. The default values is # character. + </xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="pattern-separator" type="xsl:char" default=";"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Optional. The character to be used to separate positive and + negative sub-patterns in a pattern. The default is a semi-colon. + </xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:extension> + </xs:complexContent> + </xs:complexType> +</xs:element> + +<xs:element name="element" substitutionGroup="xsl:instruction"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Creates an element in the result document. + </xs:documentation> + </xs:annotation> + <xs:complexType mixed="true"> + <xs:complexContent> + <xs:extension base="xsl:sequence-constructor"> + <xs:attribute name="name" type="xsl:avt" use="required"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Required. The name of the element to be created. + </xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="namespace" type="xsl:avt"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Optional. The namespace the element belongs. + </xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="use-attribute-sets" type="xsl:QNames" default=""> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Optional. A space separated list of attribute-set names to + be included on the element. + </xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:extension> + </xs:complexContent> + </xs:complexType> +</xs:element> + +<xs:element name="fallback" substitutionGroup="xsl:instruction" type="xsl:sequence-constructor"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Specifies alternate code to be run if the XSLT processor doesn't understand + a particular xsl element. + </xs:documentation> + </xs:annotation> +</xs:element> + +<xs:element name="for-each" substitutionGroup="xsl:instruction"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + A looping command that processes each node returned from the + XPath selection criteria. + </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:complexContent mixed="true"> + <xs:extension base="xsl:generic-element-type"> + <xs:sequence> + <xs:element ref="xsl:sort" minOccurs="0" maxOccurs="unbounded"/> + <xs:group ref="xsl:sequence-constructor-group" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + <xs:attribute name="select" type="xsl:expression" use="required"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Required. The XPath selection criteria to be used to retrieve the + node set to be processed by the loop. + </xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:extension> + </xs:complexContent> + </xs:complexType> +</xs:element> + +<xs:element name="if" substitutionGroup="xsl:instruction"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + A logical construct, that will only be applied when the XPath expression + test returns true. It does not support a Else statement, see Choose + for implementing If/Then/ElseIf logic. + </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:complexContent mixed="true"> + <xs:extension base="xsl:sequence-constructor"> + <xs:attribute name="test" type="xsl:expression" use="required"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Required. The XPath expression to test the variable or node against. + The statements nested will only be executed if the test returns + true. + </xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:extension> + </xs:complexContent> + </xs:complexType> +</xs:element> + +<xs:element name="import"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Allows the inclusion of one stylesheet into another. If there are + templates that are the same in the parent stylesheet that are in the + stylesheet being imported, the parent stylesheet's templates will + take precedence. + </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:complexContent> + <xs:extension base="xsl:element-only-versioned-element-type"> + <xs:attribute name="href" type="xs:anyURI" use="required"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Required. The URI for the stylesheet. This is either a relative + or physical URI. If it is relative, it is relative to the location + of the stylesheet. + </xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:extension> + </xs:complexContent> + </xs:complexType> +</xs:element> + + +<xs:element name="include" substitutionGroup="xsl:declaration"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Include brings in another stylesheet into the current one. Unlike + the Import statement, the stylesheet templates have the same precedence + as the one being included in to. + </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:complexContent> + <xs:extension base="xsl:element-only-versioned-element-type"> + <xs:attribute name="href" type="xs:anyURI" use="required"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Required. The URI for the stylesheet. This is either a relative + or physical URI. If it is relative, it is relative to the location + of the stylesheet. + </xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:extension> + </xs:complexContent> + </xs:complexType> +</xs:element> + +<xs:element name="key" substitutionGroup="xsl:declaration"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + A key is a way to index a set of nodes to be retrieved later by the XPath + key() function. It allows faster access to a series of nodes based off of a + unique key with in a list of nodes. + </xs:documentation> + </xs:annotation> + <xs:complexType> + + <xs:complexContent mixed="true"> + <xs:extension base="xsl:sequence-constructor"> + <xs:attribute name="name" type="xsl:QName" use="required"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Required. The name of the key to be created. + </xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="match" type="xsl:pattern" use="required"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Optional. Defines the XPath expression to which the nodes will + be applied. + </xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="use" type="xsl:expression" use="required"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Required. The value of the key for each of the nodes. + </xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:extension> + </xs:complexContent> + </xs:complexType> + +</xs:element> + +<xs:element name="message" substitutionGroup="xsl:instruction"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Writes a message to the output, usually stdout or stderro. Typically + used to report errors during processing. + </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:complexContent mixed="true"> + <xs:extension base="xsl:sequence-constructor"> + <xs:attribute name="terminate" type="xsl:avt" default="no"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Optional. Indicates whether processing should be ended after + producing the message. The default value is no. + </xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:extension> + </xs:complexContent> + </xs:complexType> +</xs:element> + +<xs:element name="namespace-alias" substitutionGroup="xsl:declaration"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Allows replacing of a particular namespace from the style sheet to a different + namespace when writing the result document. + </xs:documentation> + </xs:annotation> + + <xs:complexType> + <xs:complexContent> + <xs:extension base="xsl:element-only-versioned-element-type"> + <xs:attribute name="stylesheet-prefix" type="xsl:prefix-or-default" use="required"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Required. Specifies the name of the prefix you want to change. + </xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="result-prefix" type="xsl:prefix-or-default" use="required"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Required. Specifies the name of the prefix the result is to use. + </xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:extension> + </xs:complexContent> + </xs:complexType> +</xs:element> + +<xs:element name="number" substitutionGroup="xsl:instruction"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Used to determine the integer position of the current node. Also used + in formatting a number. + </xs:documentation> + </xs:annotation> + + <xs:complexType> + <xs:complexContent mixed="true"> + <xs:extension base="xsl:generic-element-type"> + <xs:attribute name="value" type="xsl:expression"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Optional. A number provided by the implementor instead of + a system generated number. The position() xpath function can + be used as well. + </xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="level" type="xsl:level" default="single"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Optional. Specifies how the sequence number is assigned. Valid values + are single (default), multiple, and any. + </xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="count" type="xsl:pattern"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Optional. An XPath expression that indicates what nodes are to be + counted. + </xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="from" type="xsl:pattern"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Optional. An XPath expression that indicates where counting will start. + </xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="format" type="xsl:avt" default="1"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Optional. The format string in which the number is to be formatted. + </xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="lang" type="xsl:avt"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Optional. The language code used to indicate what spoken language is + to be used for the format string. + </xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="letter-value" type="xsl:avt"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Optional. Specifies whether the number is alphabetical or traditional. + </xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="grouping-separator" type="xsl:avt"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Optional. The character to be used to seperate a group of numbers. + </xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="grouping-size" type="xsl:avt"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Optional. A number indicating the number of digits in a group. The + default is 3. + </xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:extension> + </xs:complexContent> + </xs:complexType> +</xs:element> + +<xs:element name="otherwise" type="xsl:sequence-constructor"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Otherwise is used to indicate the default action when none of the + When tests are true, in a Choose statement. + </xs:documentation> + </xs:annotation> +</xs:element> + +<xs:element name="output" substitutionGroup="xsl:declaration"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Specifies the format for the result document. + </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:complexContent mixed="true"> + <xs:extension base="xsl:generic-element-type"> + <xs:attribute name="method" type="xsl:method"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Optional. Valid values are xml, html, and text. + </xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="cdata-section-elements" type="xsl:QNames"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Optional. A space separated list of elements whose content should + be wrapped with CDATA. + </xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="doctype-public" type="xs:string"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Optional. Sets the value of the Public doctype attribute. + </xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="doctype-system" type="xs:string"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Optional. Sets the value of the System doctype attribute. + </xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="encoding" type="xs:string"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Optional. Specifies the type of encoding to use. i.e. UTF-8, UTF-16, etc. + </xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="indent" type="xsl:yes-or-no"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Optional. Should the result document be pretty-printed. + </xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="media-type" type="xs:string"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Optional. The mime type of the result document. i.e. text/xml + </xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="omit-xml-declaration" type="xsl:yes-or-no"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Optional. Whether the xml declation should be created in the + result document. + </xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="standalone" type="xsl:yes-or-no-or-omit"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Optional. Indicates if a standalone declartion should occcur in the + result document. + </xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="version" type="xs:NMTOKEN"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Optional. Sets the W3C version number to be used with the + result document. Only used for HTML or XML output. + </xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:extension> + </xs:complexContent> + </xs:complexType> +</xs:element> + +<xs:element name="param"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Used to declare a local or global parameter. + </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:complexContent mixed="true"> + <xs:extension base="xsl:sequence-constructor"> + <xs:attribute name="name" type="xsl:QName" use="required"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Required. The name of the parameter to be created. + </xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="select" type="xsl:expression"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Optional. An XPath expression to be used to populate the parameter + if nothing is passed to it. + </xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:extension> + </xs:complexContent> + </xs:complexType> +</xs:element> + + +<xs:element name="preserve-space" substitutionGroup="xsl:declaration"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Indicates the elements that are to have white space preserved when + creating the result document. + </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:complexContent> + <xs:extension base="xsl:element-only-versioned-element-type"> + <xs:attribute name="elements" type="xsl:nametests" use="required"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Optional. A space seperated list of elements in which + white space is significant and should be preserved when + creating the result document. + </xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:extension> + </xs:complexContent> + </xs:complexType> +</xs:element> + +<xs:element name="processing-instruction" substitutionGroup="xsl:instruction"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Creates a processing instruction in the result document. + </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:complexContent mixed="true"> + <xs:extension base="xsl:sequence-constructor"> + <xs:attribute name="name" type="xsl:avt" use="required"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Required. The name of the processing instruction to be created. + </xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:extension> + </xs:complexContent> + </xs:complexType> +</xs:element> + +<xs:element name="sort"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Sorts the output of the node set. + </xs:documentation> + </xs:annotation> + + <xs:complexType> + <xs:complexContent mixed="true"> + <xs:extension base="xsl:sequence-constructor"> + <xs:attribute name="select" type="xsl:expression"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Optional. Specifies the XPath expression to be used to create the nodeset + to be sorted. + </xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="lang" type="xsl:avt"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Optional. The language code to be used for sorting. + </xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="data-type" type="xsl:avt" default="text"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Optional. The type of data that is being sorted. The default + is text. + </xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="order" type="xsl:avt" default="ascending"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Optional. The order in which the data is to be sorted. The + default is ascending. + </xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="case-order" type="xsl:avt"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Optional. Specifies if upper or lowercase letters are to + be sorted first. + </xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:extension> + </xs:complexContent> + </xs:complexType> +</xs:element> + +<xs:element name="strip-space" substitutionGroup="xsl:declaration"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Defines which elements are to have white space stripped when + writing the result document. + </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:complexContent> + <xs:extension base="xsl:element-only-versioned-element-type"> + <xs:attribute name="elements" type="xsl:nametests" use="required"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Required. A space separeated list of elements are to have + white space removed when writing the result document. + </xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:extension> + </xs:complexContent> + </xs:complexType> +</xs:element> + +<xs:element name="stylesheet" substitutionGroup="xsl:transform"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + The root element of a style sheet. Also see the transform element. + Either stylesheet or transform can be used. Typically stylsheet is + used. + </xs:documentation> + </xs:annotation> +</xs:element> + +<xs:element name="template" substitutionGroup="xsl:declaration"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + A template contains processing instructions and commands for nodes in the + input document that match the specified XPath expression. + </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:complexContent mixed="true"> + <xs:extension base="xsl:generic-element-type"> + <xs:sequence> + <xs:element ref="xsl:param" minOccurs="0" maxOccurs="unbounded"/> + <xs:group ref="xsl:sequence-constructor-group" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + <xs:attribute name="match" type="xsl:pattern"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Optional. An XPath expression or expressions that this template will + be applied to. Note if this is omitted, then a name attribute must + be used. Either a namoe or a match are to be used, but not both. + </xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="priority" type="xs:decimal"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Optional. Indicates the numeric priortity for processing the + template. + </xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="mode" type="xsl:modes"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Optional. The name of the mode for this template. Used to match + up with the apply-templates mode attribute. + </xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="name" type="xsl:QName"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Optional. The name of a called template. Note that if name is + not used, then match must be used. You can have one or the other + but not both. + </xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:extension> + </xs:complexContent> + </xs:complexType> +</xs:element> + +<xs:complexType name="text-element-base-type"> + <xs:simpleContent> + <xs:restriction base="xsl:generic-element-type"> + + <xs:simpleType> + <xs:restriction base="xs:string"/> + </xs:simpleType> + <xs:anyAttribute namespace="##other" processContents="skip"/> + </xs:restriction> + </xs:simpleContent> +</xs:complexType> + +<xs:element name="text" substitutionGroup="xsl:instruction"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Writes text data to the output. i.e. #PCData + </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xsl:text-element-base-type"> + <xs:attribute name="disable-output-escaping" type="xsl:yes-or-no" default="no"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Optional. Indicates if non friendly html and xml content should be converted + to their entity types. + </xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:extension> + </xs:simpleContent> + </xs:complexType> +</xs:element> + +<xs:complexType name="transform-element-base-type"> + <xs:complexContent> + <xs:extension base="xsl:element-only-versioned-element-type"> + <xs:attribute name="version" type="xs:decimal" use="required"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Required. The version number corresponding the the + XSLT specification being used. For XSLT 1.0, this will + be 1.0. + </xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="exclude-result-prefixes" type="xsl:prefix-list" use="optional"> + <xs:annotation> + <xs:documentation source="http:/www.w3.org/TR/xslt"> + Optional. A list of namespace prefixes to exclude from the result document. #default excludes the default namespace. + </xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="extension-element-prefixes" type="xsl:prefix-list" use="optional"> + <xs:annotation> + <xs:documentation source="http:/www.w3.org/TR/xslt"> + Optional. A list of extension namespace prefixes. This is used to identify namespaces that + contain XSLT processor extensions. #default can be used to specify the default namespace. + </xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:anyAttribute namespace="##other" processContents="skip"/> + </xs:extension> + </xs:complexContent> +</xs:complexType> + +<xs:element name="transform"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + The root element of a style sheet. Also see the stylesheet element. + Either stylesheet or transform can be used. Typically stylsheet is + used. + </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:complexContent> + <xs:extension base="xsl:transform-element-base-type"> + <xs:sequence> + <xs:element ref="xsl:import" minOccurs="0" maxOccurs="unbounded"/> + <xs:choice minOccurs="0" maxOccurs="unbounded"> + <xs:element ref="xsl:declaration"/> + <xs:element ref="xsl:variable"/> + <xs:element ref="xsl:param"/> + <xs:any namespace="##other" processContents="skip"/> <!-- weaker than XSLT 1.0 --> + </xs:choice> + </xs:sequence> + <xs:attribute name="id" type="xs:ID"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Optional. A unique ID for the stylesheet. + </xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:extension> + </xs:complexContent> + </xs:complexType> +</xs:element> + +<xs:element name="value-of" substitutionGroup="xsl:instruction"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Used to pull the data value from the selected node or XPath expression. + </xs:documentation> + </xs:annotation> + + <xs:complexType> + <xs:complexContent mixed="true"> + <xs:extension base="xsl:sequence-constructor"> + <xs:attribute name="select" type="xsl:expression" use="required"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Required. The XPath expression or current node to be used + to pull the data from. + </xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="disable-output-escaping" type="xsl:yes-or-no" default="no"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Optional. Whether non-xml friendly data should be entity escaped. + </xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:extension> + </xs:complexContent> + </xs:complexType> +</xs:element> + +<xs:element name="variable"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Declares a local or global variable to be used during processing. + The contents of variable can be populated by either a series of + XSLT commands or XPath expressions. + </xs:documentation> + </xs:annotation> + + <xs:complexType> + <xs:complexContent mixed="true"> + <xs:extension base="xsl:sequence-constructor"> + <xs:attribute name="name" type="xsl:QName" use="required"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Required. The name of the variable. This is how the + variable is accessed later in the stylesheet. + </xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="select" type="xsl:expression" use="optional"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Optional. The XPath expression in which the variable is + populated from. This specifies where the variable is to get + it's data value from. + </xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:extension> + </xs:complexContent> + </xs:complexType> +</xs:element> + +<xs:element name="when"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + A conditional statement similiar to an if statement, used to test + if a particular expression is true or false. Use with the Choose and + Other wise elements. + </xs:documentation> + </xs:annotation> + + <xs:complexType> + <xs:complexContent mixed="true"> + <xs:extension base="xsl:sequence-constructor"> + <xs:attribute name="test" type="xsl:expression" use="required"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + An XPath expression that tests to true or false. If true + the statements within are executed. + </xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:extension> + </xs:complexContent> + </xs:complexType> +</xs:element> + +<xs:element name="with-param"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Defines the value of a parameter to be passed to a called template. + </xs:documentation> + </xs:annotation> + + <xs:complexType> + <xs:complexContent mixed="true"> + <xs:extension base="xsl:sequence-constructor"> + <xs:attribute name="name" type="xsl:QName" use="required"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Required. The name of the parameter to be set. This + must exist in the template that is being called. + </xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="select" type="xsl:expression"> + <xs:annotation> + <xs:documentation source="http://www.w3.org/TR/xslt"> + Optional. An XPath expression that is used to set + the value for the parameter being passed to a template. + </xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:extension> + </xs:complexContent> + </xs:complexType> +</xs:element> + +<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> +<xs:annotation> + <xs:documentation> + PART C: definition of literal result elements + + There are three ways to define the literal result elements + permissible in a stylesheet. + + (a) do nothing. This allows any element to be used as a literal + result element, provided it is not in the XSLT namespace + + (b) declare all permitted literal result elements as members + of the xsl:literal-result-element substitution group + + (c) redefine the model group xsl:result-elements to accommodate + all permitted literal result elements. + + Literal result elements are allowed to take certain attributes + in the XSLT namespace. These are defined in the attribute group + literal-result-element-attributes, which can be included in the + definition of any literal result element. + + </xs:documentation> + +</xs:annotation> +<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> + +<xs:element name="literal-result-element" abstract="true" type="xs:anyType"/> + +<xs:attributeGroup name="literal-result-element-attributes"> + <xs:attribute name="default-collation" form="qualified" type="xsl:uri-list"/> + <xs:attribute name="extension-element-prefixes" form="qualified" type="xsl:prefixes"/> + <xs:attribute name="exclude-result-prefixes" form="qualified" type="xsl:prefixes"/> + <xs:attribute name="xpath-default-namespace" form="qualified" type="xs:anyURI"/> + <xs:attribute name="inherit-namespaces" form="qualified" type="xsl:yes-or-no" default="yes"/> + <xs:attribute name="use-attribute-sets" form="qualified" type="xsl:QNames" default=""/> + + <xs:attribute name="use-when" form="qualified" type="xsl:expression"/> + <xs:attribute name="version" form="qualified" type="xs:decimal"/> + <xs:attribute name="type" form="qualified" type="xsl:QName"/> + <xs:attribute name="validation" form="qualified" type="xsl:validation-type"/> +</xs:attributeGroup> + +<xs:group name="result-elements"> + <xs:choice> + <xs:element ref="xsl:literal-result-element"/> + <xs:any namespace="##other" processContents="skip"/> + + <xs:any namespace="##local" processContents="skip"/> + </xs:choice> +</xs:group> + + +<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> +<xs:annotation> + <xs:documentation> + PART D: definitions of simple types used in stylesheet attributes + </xs:documentation> +</xs:annotation> +<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> + +<xs:simpleType name="avt"> + <xs:annotation> + <xs:documentation> + This type is used for all attributes that allow an attribute value template. + The general rules for the syntax of attribute value templates, and the specific + rules for each such attribute, are described in the XSLT 2.0 Recommendation. + </xs:documentation> + </xs:annotation> + <xs:restriction base="xs:string"/> +</xs:simpleType> + +<xs:simpleType name="char"> + <xs:annotation> + + <xs:documentation> + A string containing exactly one character. + </xs:documentation> + </xs:annotation> + <xs:restriction base="xs:string"> + <xs:length value="1"/> + </xs:restriction> +</xs:simpleType> + +<xs:simpleType name="expression"> + <xs:annotation> + + <xs:documentation> + An XPath 2.0 expression. + </xs:documentation> + </xs:annotation> + <xs:restriction base="xs:token"> + <xs:pattern value=".+"/> + </xs:restriction> +</xs:simpleType> + +<xs:simpleType name="input-type-annotations-type"> + <xs:annotation> + + <xs:documentation> + Describes how type annotations in source documents are handled. + </xs:documentation> + </xs:annotation> + <xs:restriction base="xs:token"> + <xs:enumeration value="preserve"/> + <xs:enumeration value="strip"/> + <xs:enumeration value="unspecified"/> + </xs:restriction> +</xs:simpleType> + +<xs:simpleType name="level"> + <xs:annotation> + <xs:documentation> + The level attribute of xsl:number: + one of single, multiple, or any. + </xs:documentation> + </xs:annotation> + <xs:restriction base="xs:NCName"> + <xs:enumeration value="single"/> + <xs:enumeration value="multiple"/> + <xs:enumeration value="any"/> + + </xs:restriction> +</xs:simpleType> + +<xs:simpleType name="mode"> + <xs:annotation> + <xs:documentation> + The mode attribute of xsl:apply-templates: + either a QName, or #current, or #default. + </xs:documentation> + </xs:annotation> + <xs:union memberTypes="xsl:QName"> + <xs:simpleType> + + <xs:restriction base="xs:token"> + <xs:enumeration value="#default"/> + <xs:enumeration value="#current"/> + </xs:restriction> + </xs:simpleType> + </xs:union> +</xs:simpleType> + +<xs:simpleType name="modes"> + <xs:annotation> + + <xs:documentation> + The mode attribute of xsl:template: + either a list, each member being either a QName or #default; + or the value #all + </xs:documentation> + </xs:annotation> + <xs:union> + <xs:simpleType> + <xs:list> + <xs:simpleType> + <xs:union memberTypes="xsl:QName"> + + <xs:simpleType> + <xs:restriction base="xs:token"> + <xs:enumeration value="#default"/> + </xs:restriction> + </xs:simpleType> + </xs:union> + </xs:simpleType> + </xs:list> + </xs:simpleType> + + <xs:simpleType> + <xs:restriction base="xs:token"> + <xs:enumeration value="#all"/> + </xs:restriction> + </xs:simpleType> + </xs:union> +</xs:simpleType> + +<xs:simpleType name="nametests"> + <xs:annotation> + + <xs:documentation> + A list of NameTests, as defined in the XPath 2.0 Recommendation. + Each NameTest is either a QName, or "*", or "prefix:*", or "*:localname" + </xs:documentation> + </xs:annotation> + <xs:list> + <xs:simpleType> + <xs:union memberTypes="xsl:QName"> + <xs:simpleType> + <xs:restriction base="xs:token"> + + <xs:enumeration value="*"/> + </xs:restriction> + </xs:simpleType> + <xs:simpleType> + <xs:restriction base="xs:token"> + <xs:pattern value="\i\c*:\*"/> + <xs:pattern value="\*:\i\c*"/> + </xs:restriction> + </xs:simpleType> + + </xs:union> + </xs:simpleType> + </xs:list> +</xs:simpleType> + +<xs:simpleType name="prefixes"> + <xs:list itemType="xs:NCName"/> +</xs:simpleType> + +<xs:simpleType name="prefix-list-or-all"> + <xs:union memberTypes="xsl:prefix-list"> + <xs:simpleType> + + <xs:restriction base="xs:token"> + <xs:enumeration value="#all"/> + </xs:restriction> + </xs:simpleType> + </xs:union> +</xs:simpleType> + +<xs:simpleType name="prefix-list"> + <xs:list itemType="xsl:prefix-or-default"/> +</xs:simpleType> + +<xs:simpleType name="method"> + <xs:annotation> + <xs:documentation> + The method attribute of xsl:output: + Either one of the recognized names "xml", "xhtml", "html", "text", + or a QName that must include a prefix. + </xs:documentation> + </xs:annotation> + <xs:union> + <xs:simpleType> + <xs:restriction base="xs:NCName"> + <xs:enumeration value="xml"/> + + <xs:enumeration value="xhtml"/> + <xs:enumeration value="html"/> + <xs:enumeration value="text"/> + </xs:restriction> + </xs:simpleType> + <xs:simpleType> + <xs:restriction base="xsl:QName"> + <xs:pattern value="\c*:\c*"/> + </xs:restriction> + + </xs:simpleType> + </xs:union> +</xs:simpleType> + +<xs:simpleType name="pattern"> + <xs:annotation> + <xs:documentation> + A match pattern as defined in the XSLT 2.0 Recommendation. + The syntax for patterns is a restricted form of the syntax for + XPath 2.0 expressions. + </xs:documentation> + </xs:annotation> + <xs:restriction base="xsl:expression"/> + +</xs:simpleType> + +<xs:simpleType name="prefix-or-default"> + <xs:annotation> + <xs:documentation> + Either a namespace prefix, or #default. + Used in the xsl:namespace-alias element. + </xs:documentation> + </xs:annotation> + <xs:union memberTypes="xs:NCName"> + <xs:simpleType> + <xs:restriction base="xs:token"> + + <xs:enumeration value="#default"/> + </xs:restriction> + </xs:simpleType> + </xs:union> +</xs:simpleType> + +<xs:simpleType name="QNames"> + <xs:annotation> + <xs:documentation> + A list of QNames. + Used in the [xsl:]use-attribute-sets attribute of various elements, + and in the cdata-section-elements attribute of xsl:output + </xs:documentation> + + </xs:annotation> + <xs:list itemType="xsl:QName"/> +</xs:simpleType> + +<xs:simpleType name="QName"> + <xs:annotation> + <xs:documentation> + A QName. + This schema does not use the built-in type xs:QName, but rather defines its own + QName type. Although xs:QName would define the correct validation on these attributes, + a schema processor would expand unprefixed QNames incorrectly when constructing the PSVI, + because (as defined in XML Schema errata) an unprefixed xs:QName is assumed to be in + the default namespace, which is not the correct assumption for XSLT. + The data type is defined as a restriction of the built-in type Name, restricted + so that it can only contain one colon which must not be the first or last character. + </xs:documentation> + </xs:annotation> + <xs:restriction base="xs:Name"> + + <xs:pattern value="([^:]+:)?[^:]+"/> + </xs:restriction> +</xs:simpleType> + +<xs:simpleType name="sequence-type"> + <xs:annotation> + <xs:documentation> + The description of a data type, conforming to the + SequenceType production defined in the XPath 2.0 Recommendation + </xs:documentation> + </xs:annotation> + <xs:restriction base="xs:token"> + + <xs:pattern value=".+"/> + </xs:restriction> +</xs:simpleType> + +<xs:simpleType name="uri-list"> + <xs:list itemType="xs:anyURI"/> +</xs:simpleType> + +<xs:simpleType name="validation-strip-or-preserve"> + <xs:annotation> + <xs:documentation> + Describes different ways of type-annotating an element or attribute. + </xs:documentation> + + </xs:annotation> + <xs:restriction base="xsl:validation-type"> + <xs:enumeration value="preserve"/> + <xs:enumeration value="strip"/> + </xs:restriction> +</xs:simpleType> + +<xs:simpleType name="validation-type"> + <xs:annotation> + <xs:documentation> + Describes different ways of type-annotating an element or attribute. + </xs:documentation> + + </xs:annotation> + <xs:restriction base="xs:token"> + <xs:enumeration value="strict"/> + <xs:enumeration value="lax"/> + <xs:enumeration value="preserve"/> + <xs:enumeration value="strip"/> + </xs:restriction> +</xs:simpleType> + +<xs:simpleType name="yes-or-no"> + <xs:annotation> + + <xs:documentation> + One of the values "yes" or "no". + </xs:documentation> + </xs:annotation> + <xs:restriction base="xs:token"> + <xs:enumeration value="yes"/> + <xs:enumeration value="no"/> + </xs:restriction> +</xs:simpleType> + +<xs:simpleType name="yes-or-no-or-omit"> + <xs:annotation> + <xs:documentation> + One of the values "yes" or "no" or "omit". + </xs:documentation> + </xs:annotation> + <xs:restriction base="xs:token"> + <xs:enumeration value="yes"/> + <xs:enumeration value="no"/> + <xs:enumeration value="omit"/> + + </xs:restriction> +</xs:simpleType> + +</xs:schema> diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/1018/0/.cp/xslt-schemas/xslt-2.0.xsd b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/1018/0/.cp/xslt-schemas/xslt-2.0.xsd new file mode 100644 index 0000000000000000000000000000000000000000..9f7b1d7db40739f440c49841809b3289744deeca --- /dev/null +++ b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/1018/0/.cp/xslt-schemas/xslt-2.0.xsd @@ -0,0 +1,1173 @@ +<?xml version="1.0"?> +<!-- + ******************************************************************************* + * Copyright (c) 2001, 2007 - W3C, Standards for Technology in Automotive Retail, + * and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v2.0 + * which accompanies this distribution, and is available at + * https://www.eclipse.org/legal/epl-2.0/ + * + * Contributors: + * David Carver - 20080330 - STAR - bug 224819 - changed procesContents from lax to skip + * David Carver - STAR - bug 279737 - use namespace to import xml schema definitions. + ******************************************************************************* +******************************************************************************* + * W3C® SOFTWARE NOTICE AND LICENSE + * http://www.w3.org/Consortium/Legal/copyright-software-19980720 + * + * Copyright © 1994-2002 World Wide Web Consortium, (Massachusetts Institute of + * Technology, Institut National de Recherche en Informatique et en Automatique, + * Keio University). All Rights Reserved. http://www.w3.org/Consortium/Legal/ + * + * This W3C work (including software, documents, or other related items) is being + * provided by the copyright holders under the following license. By obtaining, + * using and/or copying this work, you (the licensee) agree that you have read, + * understood, and will comply with the following terms and conditions: + * + * Permission to use, copy, modify, and distribute this software and its + * documentation, with or without modification, for any purpose and without fee + * or royalty is hereby granted, provided that you include the following on ALL copies + * of the software and documentation or portions thereof, including modifications, that + * you make: + * + * 1. The full text of this NOTICE in a location viewable to users of the redistributed + * or derivative work. + * 2. Any pre-existing intellectual property disclaimers, notices, or terms and + * conditions. If none exist, a short notice of the following form (hypertext is preferred, text is permitted) should be used within the body of any redistributed or derivative code: "Copyright © [$date-of-software] World Wide Web Consortium, (Massachusetts Institute of Technology, Institut National de Recherche en Informatique et en Automatique, Keio University). All Rights Reserved. http://www.w3.org/Consortium/Legal/" + * 3. Notice of any changes or modifications to the W3C files, including the date changes + * were made. (We recommend you provide URIs to the location from which the code is + * derived.) + * + * THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE NO + * REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO, + * WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF + * THE SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, + * TRADEMARKS OR OTHER RIGHTS. + * + * COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR CONSEQUENTIAL + * DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR DOCUMENTATION. + * + * The name and trademarks of copyright holders may NOT be used in advertising or publicity + * pertaining to the software without specific, written prior permission. Title to copyright + * in this software and any associated documentation will at all times remain with copyright + * holders. + ******************************************************************************************** + --> +<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.w3.org/1999/XSL/Transform" elementFormDefault="qualified" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> + +<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> +<xs:annotation> + <xs:documentation> + + This is a schema for XSLT 2.0 stylesheets. + + It defines all the elements that appear in the XSLT namespace; it also + provides hooks that allow the inclusion of user-defined literal result elements, + extension instructions, and top-level data elements. + + The schema is derived (with kind permission) from a schema for XSLT 1.0 stylesheets + produced by Asir S Vedamuthu of WebMethods Inc. + + This schema is available for use under the conditions of the W3C Software License + published at http://www.w3.org/Consortium/Legal/copyright-software-19980720 + + The schema is organized as follows: + + PART A: definitions of complex types and model groups used as the basis + for element definitions + PART B: definitions of individual XSLT elements + PART C: definitions for literal result elements + PART D: definitions of simple types used in attribute definitions + + This schema does not attempt to define all the constraints that apply to a valid + XSLT 2.0 stylesheet module. It is the intention that all valid stylesheet modules + should conform to this schema; however, the schema is non-normative and in the event + of any conflict, the text of the Recommendation takes precedence. + + This schema does not implement the special rules that apply when a stylesheet + has sections that use forwards-compatible-mode. In this mode, setting version="3.0" + allows elements from the XSLT namespace to be used that are not defined in XSLT 2.0. + + Simplified stylesheets (those with a literal result element as the outermost element) + will validate against this schema only if validation starts in lax mode. + + This version is dated 2005-02-11 + Authors: Michael H Kay, Saxonica Limited + Jeni Tennison, Jeni Tennison Consulting Ltd. + + </xs:documentation> +</xs:annotation> +<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> + +<!-- +The declaration of xml:space and xml:lang may need to be commented out because +of problems processing the schema using various tools +--> + +<xs:import namespace="http://www.w3.org/XML/1998/namespace" + schemaLocation="http://www.w3.org/2001/xml.xsd"/> + +<!-- + An XSLT stylesheet may contain an in-line schema within an xsl:import-schema element, + so the Schema for schemas needs to be imported +--> + +<xs:import namespace="http://www.w3.org/2001/XMLSchema"/> + +<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> +<xs:annotation> + <xs:documentation> + PART A: definitions of complex types and model groups used as the basis + for element definitions + </xs:documentation> +</xs:annotation> +<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> + +<xs:complexType name="generic-element-type" mixed="true"> + <xs:attribute name="default-collation" type="xsl:uri-list"/> + <xs:attribute name="exclude-result-prefixes" type="xsl:prefix-list-or-all"/> + <xs:attribute name="extension-element-prefixes" type="xsl:prefix-list"/> + <xs:attribute name="use-when" type="xsl:expression"/> + <xs:attribute name="xpath-default-namespace" type="xs:anyURI"/> + <xs:anyAttribute namespace="##other" processContents="skip"/> +</xs:complexType> + +<xs:complexType name="versioned-element-type" mixed="true"> + <xs:complexContent> + <xs:extension base="xsl:generic-element-type"> + <xs:attribute name="version" type="xs:decimal" use="optional"/> + </xs:extension> + </xs:complexContent> +</xs:complexType> + +<xs:complexType name="element-only-versioned-element-type" mixed="false"> + <xs:complexContent> + <xs:restriction base="xsl:versioned-element-type"> + <xs:anyAttribute namespace="##other" processContents="skip"/> + </xs:restriction> + </xs:complexContent> +</xs:complexType> + +<xs:complexType name="sequence-constructor"> + <xs:complexContent mixed="true"> + <xs:extension base="xsl:versioned-element-type"> + <xs:group ref="xsl:sequence-constructor-group" minOccurs="0" maxOccurs="unbounded"/> + </xs:extension> + </xs:complexContent> +</xs:complexType> + +<xs:group name="sequence-constructor-group"> + <xs:choice> + <xs:element ref="xsl:variable"/> + <xs:element ref="xsl:instruction"/> + <xs:group ref="xsl:result-elements"/> + </xs:choice> +</xs:group> + +<xs:element name="declaration" type="xsl:generic-element-type" abstract="true"/> + +<xs:element name="instruction" type="xsl:versioned-element-type" abstract="true"/> + +<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> +<xs:annotation> + <xs:documentation> + PART B: definitions of individual XSLT elements + Elements are listed in alphabetical order. + </xs:documentation> +</xs:annotation> +<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> + +<xs:element name="analyze-string" substitutionGroup="xsl:instruction"> + <xs:complexType> + <xs:complexContent> + <xs:extension base="xsl:element-only-versioned-element-type"> + <xs:sequence> + <xs:element ref="xsl:matching-substring" minOccurs="0"/> + <xs:element ref="xsl:non-matching-substring" minOccurs="0"/> + <xs:element ref="xsl:fallback" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + <xs:attribute name="select" type="xsl:expression" use="required"/> + <xs:attribute name="regex" type="xsl:avt" use="required"/> + <xs:attribute name="flags" type="xsl:avt" default=""/> + </xs:extension> + </xs:complexContent> + </xs:complexType> +</xs:element> + +<xs:element name="apply-imports" substitutionGroup="xsl:instruction"> + <xs:complexType> + <xs:complexContent> + <xs:extension base="xsl:element-only-versioned-element-type"> + <xs:sequence> + <xs:element ref="xsl:with-param" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> +</xs:element> + +<xs:element name="apply-templates" substitutionGroup="xsl:instruction"> + <xs:complexType> + <xs:complexContent> + <xs:extension base="xsl:element-only-versioned-element-type"> + <xs:choice minOccurs="0" maxOccurs="unbounded"> + <xs:element ref="xsl:sort"/> + <xs:element ref="xsl:with-param"/> + </xs:choice> + <xs:attribute name="select" type="xsl:expression" default="child::node()"/> + <xs:attribute name="mode" type="xsl:mode"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> +</xs:element> + +<xs:element name="attribute" substitutionGroup="xsl:instruction"> + <xs:complexType> + <xs:complexContent mixed="true"> + <xs:extension base="xsl:sequence-constructor"> + <xs:attribute name="name" type="xsl:avt" use="required"/> + <xs:attribute name="namespace" type="xsl:avt"/> + <xs:attribute name="select" type="xsl:expression"/> + <xs:attribute name="separator" type="xsl:avt"/> + <xs:attribute name="type" type="xsl:QName"/> + <xs:attribute name="validation" type="xsl:validation-type"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> +</xs:element> + +<xs:element name="attribute-set" substitutionGroup="xsl:declaration"> + <xs:complexType> + <xs:complexContent> + <xs:extension base="xsl:element-only-versioned-element-type"> + <xs:sequence minOccurs="0" maxOccurs="unbounded"> + <xs:element ref="xsl:attribute"/> + </xs:sequence> + <xs:attribute name="name" type="xsl:QName" use="required"/> + <xs:attribute name="use-attribute-sets" type="xsl:QNames" default=""/> + </xs:extension> + </xs:complexContent> + </xs:complexType> +</xs:element> + +<xs:element name="call-template" substitutionGroup="xsl:instruction"> + <xs:complexType> + <xs:complexContent> + <xs:extension base="xsl:element-only-versioned-element-type"> + <xs:sequence> + <xs:element ref="xsl:with-param" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + <xs:attribute name="name" type="xsl:QName" use="required"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> +</xs:element> + +<xs:element name="character-map" substitutionGroup="xsl:declaration"> + <xs:complexType> + <xs:complexContent> + <xs:extension base="xsl:element-only-versioned-element-type"> + <xs:sequence> + <xs:element ref="xsl:output-character" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + <xs:attribute name="name" type="xsl:QName" use="required"/> + <xs:attribute name="use-character-maps" type="xsl:QNames" default=""/> + </xs:extension> + </xs:complexContent> + </xs:complexType> +</xs:element> + +<xs:element name="choose" substitutionGroup="xsl:instruction"> + <xs:complexType> + <xs:complexContent> + <xs:extension base="xsl:element-only-versioned-element-type"> + <xs:sequence> + <xs:element ref="xsl:when" maxOccurs="unbounded"/> + <xs:element ref="xsl:otherwise" minOccurs="0"/> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> +</xs:element> + +<xs:element name="comment" substitutionGroup="xsl:instruction"> + <xs:complexType> + <xs:complexContent mixed="true"> + <xs:extension base="xsl:sequence-constructor"> + <xs:attribute name="select" type="xsl:expression"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> +</xs:element> + +<xs:element name="copy" substitutionGroup="xsl:instruction"> + <xs:complexType> + <xs:complexContent mixed="true"> + <xs:extension base="xsl:sequence-constructor"> + <xs:attribute name="copy-namespaces" type="xsl:yes-or-no" default="yes"/> + <xs:attribute name="inherit-namespaces" type="xsl:yes-or-no" default="yes"/> + <xs:attribute name="use-attribute-sets" type="xsl:QNames" default=""/> + <xs:attribute name="type" type="xsl:QName"/> + <xs:attribute name="validation" type="xsl:validation-type"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> +</xs:element> + +<xs:element name="copy-of" substitutionGroup="xsl:instruction"> + <xs:complexType> + <xs:complexContent mixed="true"> + <xs:extension base="xsl:versioned-element-type"> + <xs:attribute name="select" type="xsl:expression" use="required"/> + <xs:attribute name="copy-namespaces" type="xsl:yes-or-no" default="yes"/> + <xs:attribute name="type" type="xsl:QName"/> + <xs:attribute name="validation" type="xsl:validation-type"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> +</xs:element> + +<xs:element name="decimal-format" substitutionGroup="xsl:declaration"> + <xs:complexType> + <xs:complexContent> + <xs:extension base="xsl:element-only-versioned-element-type"> + <xs:attribute name="name" type="xsl:QName"/> + <xs:attribute name="decimal-separator" type="xsl:char" default="."/> + <xs:attribute name="grouping-separator" type="xsl:char" default=","/> + <xs:attribute name="infinity" type="xs:string" default="Infinity"/> + <xs:attribute name="minus-sign" type="xsl:char" default="-"/> + <xs:attribute name="NaN" type="xs:string" default="NaN"/> + <xs:attribute name="percent" type="xsl:char" default="%"/> + <xs:attribute name="per-mille" type="xsl:char" default="‰"/> + <xs:attribute name="zero-digit" type="xsl:char" default="0"/> + <xs:attribute name="digit" type="xsl:char" default="#"/> + <xs:attribute name="pattern-separator" type="xsl:char" default=";"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> +</xs:element> + +<xs:element name="element" substitutionGroup="xsl:instruction"> + <xs:complexType mixed="true"> + <xs:complexContent> + <xs:extension base="xsl:sequence-constructor"> + <xs:attribute name="name" type="xsl:avt" use="required"/> + <xs:attribute name="namespace" type="xsl:avt"/> + <xs:attribute name="inherit-namespaces" type="xsl:yes-or-no" default="yes"/> + <xs:attribute name="use-attribute-sets" type="xsl:QNames" default=""/> + <xs:attribute name="type" type="xsl:QName"/> + <xs:attribute name="validation" type="xsl:validation-type"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> +</xs:element> + +<xs:element name="fallback" substitutionGroup="xsl:instruction" type="xsl:sequence-constructor"/> + +<xs:element name="for-each" substitutionGroup="xsl:instruction"> + <xs:complexType> + <xs:complexContent mixed="true"> + <xs:extension base="xsl:versioned-element-type"> + <xs:sequence> + <xs:element ref="xsl:sort" minOccurs="0" maxOccurs="unbounded"/> + <xs:group ref="xsl:sequence-constructor-group" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + <xs:attribute name="select" type="xsl:expression" use="required"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> +</xs:element> + +<xs:element name="for-each-group" substitutionGroup="xsl:instruction"> + <xs:complexType> + <xs:complexContent mixed="true"> + <xs:extension base="xsl:versioned-element-type"> + <xs:sequence> + <xs:element ref="xsl:sort" minOccurs="0" maxOccurs="unbounded"/> + <xs:group ref="xsl:sequence-constructor-group" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + <xs:attribute name="select" type="xsl:expression" use="required"/> + <xs:attribute name="group-by" type="xsl:expression"/> + <xs:attribute name="group-adjacent" type="xsl:expression"/> + <xs:attribute name="group-starting-with" type="xsl:pattern"/> + <xs:attribute name="group-ending-with" type="xsl:pattern"/> + <xs:attribute name="collation" type="xs:anyURI"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> +</xs:element> + +<xs:element name="function" substitutionGroup="xsl:declaration"> + <xs:complexType> + <xs:complexContent mixed="true"> + <xs:extension base="xsl:versioned-element-type"> + <xs:sequence> + <xs:element ref="xsl:param" minOccurs="0" maxOccurs="unbounded"/> + <xs:group ref="xsl:sequence-constructor-group" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + <xs:attribute name="name" type="xsl:QName" use="required"/> + <xs:attribute name="override" type="xsl:yes-or-no" default="yes"/> + <xs:attribute name="as" type="xsl:sequence-type" default="item()*"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> +</xs:element> + +<xs:element name="if" substitutionGroup="xsl:instruction"> + <xs:complexType> + <xs:complexContent mixed="true"> + <xs:extension base="xsl:sequence-constructor"> + <xs:attribute name="test" type="xsl:expression" use="required"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> +</xs:element> + +<xs:element name="import"> + <xs:complexType> + <xs:complexContent> + <xs:extension base="xsl:element-only-versioned-element-type"> + <xs:attribute name="href" type="xs:anyURI" use="required"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> +</xs:element> + +<xs:element name="import-schema" substitutionGroup="xsl:declaration"> + <xs:complexType> + <xs:complexContent> + <xs:extension base="xsl:element-only-versioned-element-type"> + <xs:sequence> + <xs:element ref="xs:schema" minOccurs="0" maxOccurs="1"/> + </xs:sequence> + <xs:attribute name="namespace" type="xs:anyURI"/> + <xs:attribute name="schema-location" type="xs:anyURI"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> +</xs:element> + +<xs:element name="include" substitutionGroup="xsl:declaration"> + <xs:complexType> + <xs:complexContent> + <xs:extension base="xsl:element-only-versioned-element-type"> + <xs:attribute name="href" type="xs:anyURI" use="required"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> +</xs:element> + +<xs:element name="key" substitutionGroup="xsl:declaration"> + <xs:complexType> + <xs:complexContent mixed="true"> + <xs:extension base="xsl:sequence-constructor"> + <xs:attribute name="name" type="xsl:QName" use="required"/> + <xs:attribute name="match" type="xsl:pattern" use="required"/> + <xs:attribute name="use" type="xsl:expression"/> + <xs:attribute name="collation" type="xs:anyURI"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> +</xs:element> + +<xs:element name="matching-substring" type="xsl:sequence-constructor"/> + +<xs:element name="message" substitutionGroup="xsl:instruction"> + <xs:complexType> + <xs:complexContent mixed="true"> + <xs:extension base="xsl:sequence-constructor"> + <xs:attribute name="select" type="xsl:expression"/> + <xs:attribute name="terminate" type="xsl:avt" default="no"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> +</xs:element> + +<xs:element name="namespace" substitutionGroup="xsl:instruction"> + <xs:complexType> + <xs:complexContent mixed="true"> + <xs:extension base="xsl:sequence-constructor"> + <xs:attribute name="name" type="xsl:avt" use="required"/> + <xs:attribute name="select" type="xsl:expression"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> +</xs:element> + +<xs:element name="namespace-alias" substitutionGroup="xsl:declaration"> + <xs:complexType> + <xs:complexContent> + <xs:extension base="xsl:element-only-versioned-element-type"> + <xs:attribute name="stylesheet-prefix" type="xsl:prefix-or-default" use="required"/> + <xs:attribute name="result-prefix" type="xsl:prefix-or-default" use="required"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> +</xs:element> + +<xs:element name="next-match" substitutionGroup="xsl:instruction"> + <xs:complexType> + <xs:complexContent> + <xs:extension base="xsl:element-only-versioned-element-type"> + <xs:choice minOccurs="0" maxOccurs="unbounded"> + <xs:element ref="xsl:with-param"/> + <xs:element ref="xsl:fallback"/> + </xs:choice> + </xs:extension> + </xs:complexContent> + </xs:complexType> +</xs:element> + +<xs:element name="non-matching-substring" type="xsl:sequence-constructor"/> + +<xs:element name="number" substitutionGroup="xsl:instruction"> + <xs:complexType> + <xs:complexContent mixed="true"> + <xs:extension base="xsl:versioned-element-type"> + <xs:attribute name="value" type="xsl:expression"/> + <xs:attribute name="select" type="xsl:expression"/> + <xs:attribute name="level" type="xsl:level" default="single"/> + <xs:attribute name="count" type="xsl:pattern"/> + <xs:attribute name="from" type="xsl:pattern"/> + <xs:attribute name="format" type="xsl:avt" default="1"/> + <xs:attribute name="lang" type="xsl:avt"/> + <xs:attribute name="letter-value" type="xsl:avt"/> + <xs:attribute name="ordinal" type="xsl:avt"/> + <xs:attribute name="grouping-separator" type="xsl:avt"/> + <xs:attribute name="grouping-size" type="xsl:avt"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> +</xs:element> + +<xs:element name="otherwise" type="xsl:sequence-constructor"/> + +<xs:element name="output" substitutionGroup="xsl:declaration"> + <xs:complexType> + <xs:complexContent mixed="true"> + <xs:extension base="xsl:generic-element-type"> + <xs:attribute name="name" type="xsl:QName"/> + <xs:attribute name="method" type="xsl:method"/> + <xs:attribute name="byte-order-mark" type="xsl:yes-or-no"/> + <xs:attribute name="cdata-section-elements" type="xsl:QNames"/> + <xs:attribute name="doctype-public" type="xs:string"/> + <xs:attribute name="doctype-system" type="xs:string"/> + <xs:attribute name="encoding" type="xs:string"/> + <xs:attribute name="escape-uri-attributes" type="xsl:yes-or-no"/> + <xs:attribute name="include-content-type" type="xsl:yes-or-no"/> + <xs:attribute name="indent" type="xsl:yes-or-no"/> + <xs:attribute name="media-type" type="xs:string"/> + <xs:attribute name="normalization-form" type="xs:NMTOKEN"/> + <xs:attribute name="omit-xml-declaration" type="xsl:yes-or-no"/> + <xs:attribute name="standalone" type="xsl:yes-or-no-or-omit"/> + <xs:attribute name="undeclare-prefixes" type="xsl:yes-or-no"/> + <xs:attribute name="use-character-maps" type="xsl:QNames"/> + <xs:attribute name="version" type="xs:NMTOKEN"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> +</xs:element> + +<xs:element name="output-character"> + <xs:complexType> + <xs:complexContent> + <xs:extension base="xsl:element-only-versioned-element-type"> + <xs:attribute name="character" type="xsl:char" use="required"/> + <xs:attribute name="string" type="xs:string" use="required"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> +</xs:element> + +<xs:element name="param"> + <xs:complexType> + <xs:complexContent mixed="true"> + <xs:extension base="xsl:sequence-constructor"> + <xs:attribute name="name" type="xsl:QName" use="required"/> + <xs:attribute name="select" type="xsl:expression"/> + <xs:attribute name="as" type="xsl:sequence-type"/> + <xs:attribute name="required" type="xsl:yes-or-no"/> + <xs:attribute name="tunnel" type="xsl:yes-or-no"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> +</xs:element> + +<xs:element name="perform-sort" substitutionGroup="xsl:instruction"> + <xs:complexType> + <xs:complexContent mixed="true"> + <xs:extension base="xsl:versioned-element-type"> + <xs:sequence> + <xs:element ref="xsl:sort" minOccurs="1" maxOccurs="unbounded"/> + <xs:group ref="xsl:sequence-constructor-group" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + <xs:attribute name="select" type="xsl:expression"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> +</xs:element> + +<xs:element name="preserve-space" substitutionGroup="xsl:declaration"> + <xs:complexType> + <xs:complexContent> + <xs:extension base="xsl:element-only-versioned-element-type"> + <xs:attribute name="elements" type="xsl:nametests" use="required"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> +</xs:element> + +<xs:element name="processing-instruction" substitutionGroup="xsl:instruction"> + <xs:complexType> + <xs:complexContent mixed="true"> + <xs:extension base="xsl:sequence-constructor"> + <xs:attribute name="name" type="xsl:avt" use="required"/> + <xs:attribute name="select" type="xsl:expression"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> +</xs:element> + +<xs:element name="result-document" substitutionGroup="xsl:instruction"> + <xs:complexType> + <xs:complexContent mixed="true"> + <xs:extension base="xsl:sequence-constructor"> + <xs:attribute name="format" type="xsl:QName"/> + <xs:attribute name="href" type="xsl:avt"/> + <xs:attribute name="type" type="xsl:QName"/> + <xs:attribute name="validation" type="xsl:validation-type"/> + <xs:attribute name="method" type="xsl:avt"/> + <xs:attribute name="byte-order-mark" type="xsl:avt"/> + <xs:attribute name="cdata-section-elements" type="xsl:avt"/> + <xs:attribute name="doctype-public" type="xsl:avt"/> + <xs:attribute name="doctype-system" type="xsl:avt"/> + <xs:attribute name="encoding" type="xsl:avt"/> + <xs:attribute name="escape-uri-attributes" type="xsl:avt"/> + <xs:attribute name="include-content-type" type="xsl:avt"/> + <xs:attribute name="indent" type="xsl:avt"/> + <xs:attribute name="media-type" type="xsl:avt"/> + <xs:attribute name="normalization-form" type="xsl:avt"/> + <xs:attribute name="omit-xml-declaration" type="xsl:avt"/> + <xs:attribute name="standalone" type="xsl:avt"/> + <xs:attribute name="undeclare-prefixes" type="xsl:avt"/> + <xs:attribute name="use-character-maps" type="xsl:QNames"/> + <xs:attribute name="output-version" type="xsl:avt"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> +</xs:element> + +<xs:element name="sequence" substitutionGroup="xsl:instruction"> + <xs:complexType> + <xs:complexContent mixed="true"> + <xs:extension base="xsl:sequence-constructor"> + <xs:attribute name="select" type="xsl:expression"/> + <xs:attribute name="as" type="xsl:sequence-type"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> +</xs:element> + +<xs:element name="sort"> + <xs:complexType> + <xs:complexContent mixed="true"> + <xs:extension base="xsl:sequence-constructor"> + <xs:attribute name="select" type="xsl:expression"/> + <xs:attribute name="lang" type="xsl:avt"/> + <xs:attribute name="data-type" type="xsl:avt" default="text"/> + <xs:attribute name="order" type="xsl:avt" default="ascending"/> + <xs:attribute name="case-order" type="xsl:avt"/> + <xs:attribute name="collation" type="xsl:avt"/> + <xs:attribute name="stable" type="xsl:yes-or-no"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> +</xs:element> + +<xs:element name="strip-space" substitutionGroup="xsl:declaration"> + <xs:complexType> + <xs:complexContent> + <xs:extension base="xsl:element-only-versioned-element-type"> + <xs:attribute name="elements" type="xsl:nametests" use="required"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> +</xs:element> + +<xs:element name="stylesheet" substitutionGroup="xsl:transform"/> + +<xs:element name="template" substitutionGroup="xsl:declaration"> + <xs:complexType> + <xs:complexContent mixed="true"> + <xs:extension base="xsl:versioned-element-type"> + <xs:sequence> + <xs:element ref="xsl:param" minOccurs="0" maxOccurs="unbounded"/> + <xs:group ref="xsl:sequence-constructor-group" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + <xs:attribute name="match" type="xsl:pattern"/> + <xs:attribute name="priority" type="xs:decimal"/> + <xs:attribute name="mode" type="xsl:modes"/> + <xs:attribute name="name" type="xsl:QName"/> + <xs:attribute name="as" type="xsl:sequence-type" default="item()*"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> +</xs:element> + +<xs:complexType name="text-element-base-type"> + <xs:simpleContent> + <xs:restriction base="xsl:versioned-element-type"> + <xs:simpleType> + <xs:restriction base="xs:string"/> + </xs:simpleType> + <xs:anyAttribute namespace="##other" processContents="skip"/> + </xs:restriction> + </xs:simpleContent> +</xs:complexType> + +<xs:element name="text" substitutionGroup="xsl:instruction"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xsl:text-element-base-type"> + <xs:attribute name="disable-output-escaping" type="xsl:yes-or-no" default="no"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> +</xs:element> + +<xs:complexType name="transform-element-base-type"> + <xs:complexContent> + <xs:restriction base="xsl:element-only-versioned-element-type"> + <xs:attribute name="version" type="xs:decimal" use="required"/> + <xs:anyAttribute namespace="##other" processContents="skip"/> + </xs:restriction> + </xs:complexContent> +</xs:complexType> + +<xs:element name="transform"> + <xs:complexType> + <xs:complexContent> + <xs:extension base="xsl:transform-element-base-type"> + <xs:sequence> + <xs:element ref="xsl:import" minOccurs="0" maxOccurs="unbounded"/> + <xs:choice minOccurs="0" maxOccurs="unbounded"> + <xs:element ref="xsl:declaration"/> + <xs:element ref="xsl:variable"/> + <xs:element ref="xsl:param"/> + <xs:any namespace="##other" processContents="skip"/> <!-- weaker than XSLT 1.0 --> + </xs:choice> + </xs:sequence> + <xs:attribute name="id" type="xs:ID"/> + <xs:attribute name="default-validation" type="xsl:validation-strip-or-preserve" default="strip"/> + <xs:attribute name="input-type-annotations" type="xsl:input-type-annotations-type" default="unspecified"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> +</xs:element> + +<xs:element name="value-of" substitutionGroup="xsl:instruction"> + <xs:complexType> + <xs:complexContent mixed="true"> + <xs:extension base="xsl:sequence-constructor"> + <xs:attribute name="select" type="xsl:expression"/> + <xs:attribute name="separator" type="xsl:avt"/> + <xs:attribute name="disable-output-escaping" type="xsl:yes-or-no" default="no"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> +</xs:element> + +<xs:element name="variable"> + <xs:complexType> + <xs:complexContent mixed="true"> + <xs:extension base="xsl:sequence-constructor"> + <xs:attribute name="name" type="xsl:QName" use="required"/> + <xs:attribute name="select" type="xsl:expression" use="optional"/> + <xs:attribute name="as" type="xsl:sequence-type" use="optional"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> +</xs:element> + +<xs:element name="when"> + <xs:complexType> + <xs:complexContent mixed="true"> + <xs:extension base="xsl:sequence-constructor"> + <xs:attribute name="test" type="xsl:expression" use="required"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> +</xs:element> + +<xs:element name="with-param"> + <xs:complexType> + <xs:complexContent mixed="true"> + <xs:extension base="xsl:sequence-constructor"> + <xs:attribute name="name" type="xsl:QName" use="required"/> + <xs:attribute name="select" type="xsl:expression"/> + <xs:attribute name="as" type="xsl:sequence-type"/> + <xs:attribute name="tunnel" type="xsl:yes-or-no"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> +</xs:element> + +<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> +<xs:annotation> + <xs:documentation> + PART C: definition of literal result elements + + There are three ways to define the literal result elements + permissible in a stylesheet. + + (a) do nothing. This allows any element to be used as a literal + result element, provided it is not in the XSLT namespace + + (b) declare all permitted literal result elements as members + of the xsl:literal-result-element substitution group + + (c) redefine the model group xsl:result-elements to accommodate + all permitted literal result elements. + + Literal result elements are allowed to take certain attributes + in the XSLT namespace. These are defined in the attribute group + literal-result-element-attributes, which can be included in the + definition of any literal result element. + + </xs:documentation> +</xs:annotation> +<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> + +<xs:element name="literal-result-element" abstract="true" type="xs:anyType"/> + +<xs:attributeGroup name="literal-result-element-attributes"> + <xs:attribute name="default-collation" form="qualified" type="xsl:uri-list"/> + <xs:attribute name="extension-element-prefixes" form="qualified" type="xsl:prefixes"/> + <xs:attribute name="exclude-result-prefixes" form="qualified" type="xsl:prefixes"/> + <xs:attribute name="xpath-default-namespace" form="qualified" type="xs:anyURI"/> + <xs:attribute name="inherit-namespaces" form="qualified" type="xsl:yes-or-no" default="yes"/> + <xs:attribute name="use-attribute-sets" form="qualified" type="xsl:QNames" default=""/> + <xs:attribute name="use-when" form="qualified" type="xsl:expression"/> + <xs:attribute name="version" form="qualified" type="xs:decimal"/> + <xs:attribute name="type" form="qualified" type="xsl:QName"/> + <xs:attribute name="validation" form="qualified" type="xsl:validation-type"/> +</xs:attributeGroup> + +<xs:group name="result-elements"> + <xs:choice> + <xs:element ref="xsl:literal-result-element"/> + <xs:any namespace="##other" processContents="skip"/> + <xs:any namespace="##local" processContents="skip"/> + </xs:choice> +</xs:group> + + +<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> +<xs:annotation> + <xs:documentation> + PART D: definitions of simple types used in stylesheet attributes + </xs:documentation> +</xs:annotation> +<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> + +<xs:simpleType name="avt"> + <xs:annotation> + <xs:documentation> + This type is used for all attributes that allow an attribute value template. + The general rules for the syntax of attribute value templates, and the specific + rules for each such attribute, are described in the XSLT 2.0 Recommendation. + </xs:documentation> + </xs:annotation> + <xs:restriction base="xs:string"/> +</xs:simpleType> + +<xs:simpleType name="char"> + <xs:annotation> + <xs:documentation> + A string containing exactly one character. + </xs:documentation> + </xs:annotation> + <xs:restriction base="xs:string"> + <xs:length value="1"/> + </xs:restriction> +</xs:simpleType> + +<xs:simpleType name="expression"> + <xs:annotation> + <xs:documentation> + An XPath 2.0 expression. + </xs:documentation> + </xs:annotation> + <xs:restriction base="xs:token"> + <xs:pattern value=".+"/> + </xs:restriction> +</xs:simpleType> + +<xs:simpleType name="input-type-annotations-type"> + <xs:annotation> + <xs:documentation> + Describes how type annotations in source documents are handled. + </xs:documentation> + </xs:annotation> + <xs:restriction base="xs:token"> + <xs:enumeration value="preserve"/> + <xs:enumeration value="strip"/> + <xs:enumeration value="unspecified"/> + </xs:restriction> +</xs:simpleType> + +<xs:simpleType name="level"> + <xs:annotation> + <xs:documentation> + The level attribute of xsl:number: + one of single, multiple, or any. + </xs:documentation> + </xs:annotation> + <xs:restriction base="xs:NCName"> + <xs:enumeration value="single"/> + <xs:enumeration value="multiple"/> + <xs:enumeration value="any"/> + </xs:restriction> +</xs:simpleType> + +<xs:simpleType name="mode"> + <xs:annotation> + <xs:documentation> + The mode attribute of xsl:apply-templates: + either a QName, or #current, or #default. + </xs:documentation> + </xs:annotation> + <xs:union memberTypes="xsl:QName"> + <xs:simpleType> + <xs:restriction base="xs:token"> + <xs:enumeration value="#default"/> + <xs:enumeration value="#current"/> + </xs:restriction> + </xs:simpleType> + </xs:union> +</xs:simpleType> + +<xs:simpleType name="modes"> + <xs:annotation> + <xs:documentation> + The mode attribute of xsl:template: + either a list, each member being either a QName or #default; + or the value #all + </xs:documentation> + </xs:annotation> + <xs:union> + <xs:simpleType> + <xs:list> + <xs:simpleType> + <xs:union memberTypes="xsl:QName"> + <xs:simpleType> + <xs:restriction base="xs:token"> + <xs:enumeration value="#default"/> + </xs:restriction> + </xs:simpleType> + </xs:union> + </xs:simpleType> + </xs:list> + </xs:simpleType> + <xs:simpleType> + <xs:restriction base="xs:token"> + <xs:enumeration value="#all"/> + </xs:restriction> + </xs:simpleType> + </xs:union> +</xs:simpleType> + +<xs:simpleType name="nametests"> + <xs:annotation> + <xs:documentation> + A list of NameTests, as defined in the XPath 2.0 Recommendation. + Each NameTest is either a QName, or "*", or "prefix:*", or "*:localname" + </xs:documentation> + </xs:annotation> + <xs:list> + <xs:simpleType> + <xs:union memberTypes="xsl:QName"> + <xs:simpleType> + <xs:restriction base="xs:token"> + <xs:enumeration value="*"/> + </xs:restriction> + </xs:simpleType> + <xs:simpleType> + <xs:restriction base="xs:token"> + <xs:pattern value="\i\c*:\*"/> + <xs:pattern value="\*:\i\c*"/> + </xs:restriction> + </xs:simpleType> + </xs:union> + </xs:simpleType> + </xs:list> +</xs:simpleType> + +<xs:simpleType name="prefixes"> + <xs:list itemType="xs:NCName"/> +</xs:simpleType> + +<xs:simpleType name="prefix-list-or-all"> + <xs:union memberTypes="xsl:prefix-list"> + <xs:simpleType> + <xs:restriction base="xs:token"> + <xs:enumeration value="#all"/> + </xs:restriction> + </xs:simpleType> + </xs:union> +</xs:simpleType> + +<xs:simpleType name="prefix-list"> + <xs:list itemType="xsl:prefix-or-default"/> +</xs:simpleType> + +<xs:simpleType name="method"> + <xs:annotation> + <xs:documentation> + The method attribute of xsl:output: + Either one of the recognized names "xml", "xhtml", "html", "text", + or a QName that must include a prefix. + </xs:documentation> + </xs:annotation> + <xs:union> + <xs:simpleType> + <xs:restriction base="xs:NCName"> + <xs:enumeration value="xml"/> + <xs:enumeration value="xhtml"/> + <xs:enumeration value="html"/> + <xs:enumeration value="text"/> + </xs:restriction> + </xs:simpleType> + <xs:simpleType> + <xs:restriction base="xsl:QName"> + <xs:pattern value="\c*:\c*"/> + </xs:restriction> + </xs:simpleType> + </xs:union> +</xs:simpleType> + +<xs:simpleType name="pattern"> + <xs:annotation> + <xs:documentation> + A match pattern as defined in the XSLT 2.0 Recommendation. + The syntax for patterns is a restricted form of the syntax for + XPath 2.0 expressions. + </xs:documentation> + </xs:annotation> + <xs:restriction base="xsl:expression"/> +</xs:simpleType> + +<xs:simpleType name="prefix-or-default"> + <xs:annotation> + <xs:documentation> + Either a namespace prefix, or #default. + Used in the xsl:namespace-alias element. + </xs:documentation> + </xs:annotation> + <xs:union memberTypes="xs:NCName"> + <xs:simpleType> + <xs:restriction base="xs:token"> + <xs:enumeration value="#default"/> + </xs:restriction> + </xs:simpleType> + </xs:union> +</xs:simpleType> + +<xs:simpleType name="QNames"> + <xs:annotation> + <xs:documentation> + A list of QNames. + Used in the [xsl:]use-attribute-sets attribute of various elements, + and in the cdata-section-elements attribute of xsl:output + </xs:documentation> + </xs:annotation> + <xs:list itemType="xsl:QName"/> +</xs:simpleType> + +<xs:simpleType name="QName"> + <xs:annotation> + <xs:documentation> + A QName. + This schema does not use the built-in type xs:QName, but rather defines its own + QName type. Although xs:QName would define the correct validation on these attributes, + a schema processor would expand unprefixed QNames incorrectly when constructing the PSVI, + because (as defined in XML Schema errata) an unprefixed xs:QName is assumed to be in + the default namespace, which is not the correct assumption for XSLT. + The data type is defined as a restriction of the built-in type Name, restricted + so that it can only contain one colon which must not be the first or last character. + </xs:documentation> + </xs:annotation> + <xs:restriction base="xs:Name"> + <xs:pattern value="([^:]+:)?[^:]+"/> + </xs:restriction> +</xs:simpleType> + +<xs:simpleType name="sequence-type"> + <xs:annotation> + <xs:documentation> + The description of a data type, conforming to the + SequenceType production defined in the XPath 2.0 Recommendation + </xs:documentation> + </xs:annotation> + <xs:restriction base="xs:token"> + <xs:pattern value=".+"/> + </xs:restriction> +</xs:simpleType> + +<xs:simpleType name="uri-list"> + <xs:list itemType="xs:anyURI"/> +</xs:simpleType> + +<xs:simpleType name="validation-strip-or-preserve"> + <xs:annotation> + <xs:documentation> + Describes different ways of type-annotating an element or attribute. + </xs:documentation> + </xs:annotation> + <xs:restriction base="xsl:validation-type"> + <xs:enumeration value="preserve"/> + <xs:enumeration value="strip"/> + </xs:restriction> +</xs:simpleType> + +<xs:simpleType name="validation-type"> + <xs:annotation> + <xs:documentation> + Describes different ways of type-annotating an element or attribute. + </xs:documentation> + </xs:annotation> + <xs:restriction base="xs:token"> + <xs:enumeration value="strict"/> + <xs:enumeration value="lax"/> + <xs:enumeration value="preserve"/> + <xs:enumeration value="strip"/> + </xs:restriction> +</xs:simpleType> + +<xs:simpleType name="yes-or-no"> + <xs:annotation> + <xs:documentation> + One of the values "yes" or "no". + </xs:documentation> + </xs:annotation> + <xs:restriction base="xs:token"> + <xs:enumeration value="yes"/> + <xs:enumeration value="no"/> + </xs:restriction> +</xs:simpleType> + +<xs:simpleType name="yes-or-no-or-omit"> + <xs:annotation> + <xs:documentation> + One of the values "yes" or "no" or "omit". + </xs:documentation> + </xs:annotation> + <xs:restriction base="xs:token"> + <xs:enumeration value="yes"/> + <xs:enumeration value="no"/> + <xs:enumeration value="omit"/> + </xs:restriction> +</xs:simpleType> + +</xs:schema> \ No newline at end of file diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/1028/0/.cp/icons/full/xslt_file.gif b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/1028/0/.cp/icons/full/xslt_file.gif new file mode 100644 index 0000000000000000000000000000000000000000..9b0eb46fad6aa28452eec1518c9a9e32e0b889dc Binary files /dev/null and b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/1028/0/.cp/icons/full/xslt_file.gif differ diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/1028/0/.cp/icons/full/xslt_launch.gif b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/1028/0/.cp/icons/full/xslt_launch.gif new file mode 100644 index 0000000000000000000000000000000000000000..bfe15f87740ffc35b6e03cb69f9e8f25fe44e3b9 Binary files /dev/null and b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/1028/0/.cp/icons/full/xslt_launch.gif differ diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/507/0/.cp/icons/iu_obj.png b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/507/0/.cp/icons/iu_obj.png deleted file mode 100644 index 684e82a8c86c7fa72b90e14afb1b67c8310a2316..0000000000000000000000000000000000000000 Binary files a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/507/0/.cp/icons/iu_obj.png and /dev/null differ diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/507/0/.cp/icons/news_update.png b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/507/0/.cp/icons/news_update.png deleted file mode 100644 index 6142a8c60842070b6bf5b6d6e764ef9a1fce9a75..0000000000000000000000000000000000000000 Binary files a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/507/0/.cp/icons/news_update.png and /dev/null differ diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/507/0/.cp/icons/noiconprovided.png b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/507/0/.cp/icons/noiconprovided.png deleted file mode 100644 index de6836bb5cd2f746197b06eb28deff86ce081f31..0000000000000000000000000000000000000000 Binary files a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/507/0/.cp/icons/noiconprovided.png and /dev/null differ diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/507/0/.cp/icons/noiconprovided32.png b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/507/0/.cp/icons/noiconprovided32.png deleted file mode 100644 index 0a76fd0dd340cd690328f7a09e9533b069053d6d..0000000000000000000000000000000000000000 Binary files a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/507/0/.cp/icons/noiconprovided32.png and /dev/null differ diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/507/0/.cp/icons/share.png b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/507/0/.cp/icons/share.png deleted file mode 100644 index 53cd8e658e3011022f7f90620cbca7fa8f255213..0000000000000000000000000000000000000000 Binary files a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/507/0/.cp/icons/share.png and /dev/null differ diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/507/0/.cp/icons/star.png b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/507/0/.cp/icons/star.png deleted file mode 100644 index b2669435fcfc637f17c9676cef39cc860c6e0d4c..0000000000000000000000000000000000000000 Binary files a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/507/0/.cp/icons/star.png and /dev/null differ diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/551/0/.cp/icons/wizban/banner-discovery.png b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/551/0/.cp/icons/wizban/banner-discovery.png deleted file mode 100644 index b8b4c657eae0c01e4d738c748155b05ee5788069..0000000000000000000000000000000000000000 Binary files a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/551/0/.cp/icons/wizban/banner-discovery.png and /dev/null differ diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/665/0/.cp/lib/launchingsupport.jar b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/665/0/.cp/lib/launchingsupport.jar deleted file mode 100644 index 4a75225ab8f4101353877f85e7f4a457734193bc..0000000000000000000000000000000000000000 Binary files a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/665/0/.cp/lib/launchingsupport.jar and /dev/null differ diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/678/0/.cp/icons/full/help.png b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/678/0/.cp/icons/full/help.png deleted file mode 100644 index 78a436c011fd594adb81a7fd003a04d2f80f41cd..0000000000000000000000000000000000000000 Binary files a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/678/0/.cp/icons/full/help.png and /dev/null differ diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/678/0/.cp/icons/full/title_banner.png b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/678/0/.cp/icons/full/title_banner.png deleted file mode 100644 index f6d82fa02014d83ec1d601f80cd727a225380cc4..0000000000000000000000000000000000000000 Binary files a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/678/0/.cp/icons/full/title_banner.png and /dev/null differ diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/678/0/.cp/org/eclipse/jface/wizard/images/stop.png b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/678/0/.cp/org/eclipse/jface/wizard/images/stop.png deleted file mode 100644 index 0d62b0d075e467ffba730616265407a5c1eba953..0000000000000000000000000000000000000000 Binary files a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/678/0/.cp/org/eclipse/jface/wizard/images/stop.png and /dev/null differ diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/929/0/.cp/icons/full/elcl16/up_nav.png b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/929/0/.cp/icons/full/elcl16/up_nav.png deleted file mode 100644 index a9830bc7c7d793788feacf7efb380eb64d21a97e..0000000000000000000000000000000000000000 Binary files a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/929/0/.cp/icons/full/elcl16/up_nav.png and /dev/null differ diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/936/0/.cp/icons/full/dtool16/mark_occurrences.png b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/936/0/.cp/icons/full/dtool16/mark_occurrences.png deleted file mode 100644 index 84d023606b299adcfebd9583919681c2bb97798a..0000000000000000000000000000000000000000 Binary files a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/936/0/.cp/icons/full/dtool16/mark_occurrences.png and /dev/null differ diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/936/0/.cp/icons/full/etool16/mark_occurrences.png b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/936/0/.cp/icons/full/etool16/mark_occurrences.png deleted file mode 100644 index 8bb2361071fd53d06bcff2f9d0a53cc94dda6466..0000000000000000000000000000000000000000 Binary files a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/936/0/.cp/icons/full/etool16/mark_occurrences.png and /dev/null differ diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/936/0/.cp/icons/full/obj16/generic_editor.png b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/936/0/.cp/icons/full/obj16/generic_editor.png deleted file mode 100644 index eb3ec644f70e17e9e82f8f26584ddbbde3588513..0000000000000000000000000000000000000000 Binary files a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/936/0/.cp/icons/full/obj16/generic_editor.png and /dev/null differ diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/937/0/.cp/icons/full/elcl16/gotoobj_tsk.png b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/937/0/.cp/icons/full/elcl16/gotoobj_tsk.png new file mode 100644 index 0000000000000000000000000000000000000000..8b3157ade4d89109ea6a772efe215362ae50d698 Binary files /dev/null and b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/937/0/.cp/icons/full/elcl16/gotoobj_tsk.png differ diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/953/0/.cp/icons/full/dtool16/block_selection_mode.png b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/953/0/.cp/icons/full/dtool16/block_selection_mode.png deleted file mode 100644 index 4afbcb4c792c2e6e9c4cbb0f6a459500ce9d3e63..0000000000000000000000000000000000000000 Binary files a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/953/0/.cp/icons/full/dtool16/block_selection_mode.png and /dev/null differ diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/953/0/.cp/icons/full/dtool16/show_whitespace_chars.png b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/953/0/.cp/icons/full/dtool16/show_whitespace_chars.png deleted file mode 100644 index c36e086995e92d357cdfba2c8e0486f726347afa..0000000000000000000000000000000000000000 Binary files a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/953/0/.cp/icons/full/dtool16/show_whitespace_chars.png and /dev/null differ diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/953/0/.cp/icons/full/dtool16/wordwrap.png b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/953/0/.cp/icons/full/dtool16/wordwrap.png deleted file mode 100644 index d1645616e0c19c80e9c82f81d8d75909b7fe5894..0000000000000000000000000000000000000000 Binary files a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/953/0/.cp/icons/full/dtool16/wordwrap.png and /dev/null differ diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/953/0/.cp/icons/full/etool16/show_whitespace_chars.png b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/953/0/.cp/icons/full/etool16/show_whitespace_chars.png deleted file mode 100644 index 97c54e68348c6c0e2a4fc2ada7f7c1ed8d6d4883..0000000000000000000000000000000000000000 Binary files a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/953/0/.cp/icons/full/etool16/show_whitespace_chars.png and /dev/null differ diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/953/0/.cp/icons/full/etool16/wordwrap.png b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/953/0/.cp/icons/full/etool16/wordwrap.png deleted file mode 100644 index ae3b77de6e1c6211f030378091aea30581f8f994..0000000000000000000000000000000000000000 Binary files a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/953/0/.cp/icons/full/etool16/wordwrap.png and /dev/null differ diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/998/0/.cp/icons/full/dlcl16/collapseall.gif b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/998/0/.cp/icons/full/dlcl16/collapseall.gif new file mode 100644 index 0000000000000000000000000000000000000000..7dc0de51301371379e9e1bb713daf7273e8919a0 Binary files /dev/null and b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/998/0/.cp/icons/full/dlcl16/collapseall.gif differ diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/998/0/.cp/icons/full/elcl16/collapseall.gif b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/998/0/.cp/icons/full/elcl16/collapseall.gif new file mode 100644 index 0000000000000000000000000000000000000000..a2d80a9044f38833cb728a69c88294ce3fd007c7 Binary files /dev/null and b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/998/0/.cp/icons/full/elcl16/collapseall.gif differ diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/998/0/.cp/icons/full/elcl16/synced.gif b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/998/0/.cp/icons/full/elcl16/synced.gif new file mode 100644 index 0000000000000000000000000000000000000000..05cefef687dad19b65ed4587032d6de1bfd9b864 Binary files /dev/null and b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/998/0/.cp/icons/full/elcl16/synced.gif differ diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/998/0/.cp/icons/full/obj16/prop_ps.gif b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/998/0/.cp/icons/full/obj16/prop_ps.gif new file mode 100644 index 0000000000000000000000000000000000000000..3aec64dbdd1af3e37740354ca54606703688dc17 Binary files /dev/null and b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/998/0/.cp/icons/full/obj16/prop_ps.gif differ diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/framework.info.1 b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/framework.info.1 index 58987dad96fc44cc360ae45f7e09024b46ec3149..a78db624aeebfd3708c8e5bec967806816a1a257 100644 Binary files a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/framework.info.1 and b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/framework.info.1 differ diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.update/platform.xml b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.update/platform.xml index acdc1d3b3513cb902dc4cc2d82c504fcf96511d2..2b7effc5279a43cc084952c28edef58df5d8422c 100644 --- a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.update/platform.xml +++ b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.update/platform.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<config date="1720511554428" transient="false" version="3.0"> +<config date="1721249181158" transient="false" version="3.0"> <site enabled="true" policy="USER-EXCLUDE" updateable="true" url="platform:/base/"> <feature id="org.eclipse.gef.dot.source" plugin-identifier="org.eclipse.gef.dot" url="features/org.eclipse.gef.dot.source_5.1.3.202311221639/" version="5.1.3.202311221639"> </feature> diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/SavedExternalPluginList.txt b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/SavedExternalPluginList.txt index c9fb4213771d517cde754cbccf6414fbaa76d952..0f39b9518a7aa23d3f85b378de1cff81702b5214 100644 --- a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/SavedExternalPluginList.txt +++ b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/SavedExternalPluginList.txt @@ -1,4 +1,4 @@ -# List of external plug-in models previously loaded. Timestamp: 1720598488499 +# List of external plug-in models previously loaded. Timestamp: 1721249022984 file:/C:/Program%20Files/eclipse/plugins/bcpg_1.77.0.jar file:/C:/Program%20Files/eclipse/plugins/bcpkix_1.77.0.jar file:/C:/Program%20Files/eclipse/plugins/bcprov_1.77.0.jar diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/p2/org.eclipse.equinox.p2.engine/profileRegistry/epp.package.modeling.profile/.data/.settings/org.eclipse.equinox.p2.artifact.repository.prefs b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/p2/org.eclipse.equinox.p2.engine/profileRegistry/epp.package.modeling.profile/.data/.settings/org.eclipse.equinox.p2.artifact.repository.prefs index 5a0cd8d4ba66a5d9df49df7af3ceea0703fdc4eb..dfc74c25c8c2c986e4797b7fe6cdc86126449d57 100644 --- a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/p2/org.eclipse.equinox.p2.engine/profileRegistry/epp.package.modeling.profile/.data/.settings/org.eclipse.equinox.p2.artifact.repository.prefs +++ b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/p2/org.eclipse.equinox.p2.engine/profileRegistry/epp.package.modeling.profile/.data/.settings/org.eclipse.equinox.p2.artifact.repository.prefs @@ -8,6 +8,24 @@ repositories/file\:_C\:_Tom_Studium_Bachelorarbeit_MetamodellVersionen_zweiteVer repositories/file\:_C\:_Tom_Studium_Bachelorarbeit_MetamodellVersionen_zweiteVersion_webservice_.metadata_.plugins_org.eclipse.pde.core_p2_org.eclipse.equinox.p2.core_cache/type=org.eclipse.equinox.p2.artifact.repository.simpleRepository repositories/file\:_C\:_Tom_Studium_Bachelorarbeit_MetamodellVersionen_zweiteVersion_webservice_.metadata_.plugins_org.eclipse.pde.core_p2_org.eclipse.equinox.p2.core_cache/uri=file\:/C\:/Tom/Studium/Bachelorarbeit/MetamodellVersionen/zweiteVersion/webservice/.metadata/.plugins/org.eclipse.pde.core/p2/org.eclipse.equinox.p2.core/cache/ repositories/file\:_C\:_Tom_Studium_Bachelorarbeit_MetamodellVersionen_zweiteVersion_webservice_.metadata_.plugins_org.eclipse.pde.core_p2_org.eclipse.equinox.p2.core_cache/version=1.0.0 +repositories/file\:_C\:_Users_Tom_Desktop_GitLabBachelorarbeit_bachelorarbeit_eclipse_workspaces_webservice_.metadata_.plugins_org.eclipse.pde.core_p2_org.eclipse.equinox.p2.core_cache/description= +repositories/file\:_C\:_Users_Tom_Desktop_GitLabBachelorarbeit_bachelorarbeit_eclipse_workspaces_webservice_.metadata_.plugins_org.eclipse.pde.core_p2_org.eclipse.equinox.p2.core_cache/enabled=true +repositories/file\:_C\:_Users_Tom_Desktop_GitLabBachelorarbeit_bachelorarbeit_eclipse_workspaces_webservice_.metadata_.plugins_org.eclipse.pde.core_p2_org.eclipse.equinox.p2.core_cache/isSystem=true +repositories/file\:_C\:_Users_Tom_Desktop_GitLabBachelorarbeit_bachelorarbeit_eclipse_workspaces_webservice_.metadata_.plugins_org.eclipse.pde.core_p2_org.eclipse.equinox.p2.core_cache/name=download cache +repositories/file\:_C\:_Users_Tom_Desktop_GitLabBachelorarbeit_bachelorarbeit_eclipse_workspaces_webservice_.metadata_.plugins_org.eclipse.pde.core_p2_org.eclipse.equinox.p2.core_cache/provider= +repositories/file\:_C\:_Users_Tom_Desktop_GitLabBachelorarbeit_bachelorarbeit_eclipse_workspaces_webservice_.metadata_.plugins_org.eclipse.pde.core_p2_org.eclipse.equinox.p2.core_cache/suffix=artifacts.xml +repositories/file\:_C\:_Users_Tom_Desktop_GitLabBachelorarbeit_bachelorarbeit_eclipse_workspaces_webservice_.metadata_.plugins_org.eclipse.pde.core_p2_org.eclipse.equinox.p2.core_cache/type=org.eclipse.equinox.p2.artifact.repository.simpleRepository +repositories/file\:_C\:_Users_Tom_Desktop_GitLabBachelorarbeit_bachelorarbeit_eclipse_workspaces_webservice_.metadata_.plugins_org.eclipse.pde.core_p2_org.eclipse.equinox.p2.core_cache/uri=file\:/C\:/Users/Tom/Desktop/GitLabBachelorarbeit/bachelorarbeit/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/p2/org.eclipse.equinox.p2.core/cache/ +repositories/file\:_C\:_Users_Tom_Desktop_GitLabBachelorarbeit_bachelorarbeit_eclipse_workspaces_webservice_.metadata_.plugins_org.eclipse.pde.core_p2_org.eclipse.equinox.p2.core_cache/version=1.0.0 +repositories/file\:_C\:_Users_Tom_Desktop_neuneunueBachelorarbeitCode_eclipse_workspaces_webservice_.metadata_.plugins_org.eclipse.pde.core_p2_org.eclipse.equinox.p2.core_cache/description= +repositories/file\:_C\:_Users_Tom_Desktop_neuneunueBachelorarbeitCode_eclipse_workspaces_webservice_.metadata_.plugins_org.eclipse.pde.core_p2_org.eclipse.equinox.p2.core_cache/enabled=true +repositories/file\:_C\:_Users_Tom_Desktop_neuneunueBachelorarbeitCode_eclipse_workspaces_webservice_.metadata_.plugins_org.eclipse.pde.core_p2_org.eclipse.equinox.p2.core_cache/isSystem=true +repositories/file\:_C\:_Users_Tom_Desktop_neuneunueBachelorarbeitCode_eclipse_workspaces_webservice_.metadata_.plugins_org.eclipse.pde.core_p2_org.eclipse.equinox.p2.core_cache/name=download cache +repositories/file\:_C\:_Users_Tom_Desktop_neuneunueBachelorarbeitCode_eclipse_workspaces_webservice_.metadata_.plugins_org.eclipse.pde.core_p2_org.eclipse.equinox.p2.core_cache/provider= +repositories/file\:_C\:_Users_Tom_Desktop_neuneunueBachelorarbeitCode_eclipse_workspaces_webservice_.metadata_.plugins_org.eclipse.pde.core_p2_org.eclipse.equinox.p2.core_cache/suffix=artifacts.xml +repositories/file\:_C\:_Users_Tom_Desktop_neuneunueBachelorarbeitCode_eclipse_workspaces_webservice_.metadata_.plugins_org.eclipse.pde.core_p2_org.eclipse.equinox.p2.core_cache/type=org.eclipse.equinox.p2.artifact.repository.simpleRepository +repositories/file\:_C\:_Users_Tom_Desktop_neuneunueBachelorarbeitCode_eclipse_workspaces_webservice_.metadata_.plugins_org.eclipse.pde.core_p2_org.eclipse.equinox.p2.core_cache/uri=file\:/C\:/Users/Tom/Desktop/neuneunueBachelorarbeitCode/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/p2/org.eclipse.equinox.p2.core/cache/ +repositories/file\:_C\:_Users_Tom_Desktop_neuneunueBachelorarbeitCode_eclipse_workspaces_webservice_.metadata_.plugins_org.eclipse.pde.core_p2_org.eclipse.equinox.p2.core_cache/version=1.0.0 repositories/file\:_C\:_Users_Tom_Desktop_neuneunueBachelorarbeitCode_zweiteVersion_webservice_.metadata_.plugins_org.eclipse.pde.core_p2_org.eclipse.equinox.p2.core_cache/description= repositories/file\:_C\:_Users_Tom_Desktop_neuneunueBachelorarbeitCode_zweiteVersion_webservice_.metadata_.plugins_org.eclipse.pde.core_p2_org.eclipse.equinox.p2.core_cache/enabled=true repositories/file\:_C\:_Users_Tom_Desktop_neuneunueBachelorarbeitCode_zweiteVersion_webservice_.metadata_.plugins_org.eclipse.pde.core_p2_org.eclipse.equinox.p2.core_cache/isSystem=true diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/p2/org.eclipse.equinox.p2.engine/profileRegistry/epp.package.modeling.profile/.data/.settings/org.eclipse.equinox.p2.engine.prefs b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/p2/org.eclipse.equinox.p2.engine/profileRegistry/epp.package.modeling.profile/.data/.settings/org.eclipse.equinox.p2.engine.prefs index 77b2e48ed0b54a414641bdf448e69614b90986b1..a746c47d7a32dfad0431fa955bfeef88f5cd6963 100644 --- a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/p2/org.eclipse.equinox.p2.engine/profileRegistry/epp.package.modeling.profile/.data/.settings/org.eclipse.equinox.p2.engine.prefs +++ b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.pde.core/p2/org.eclipse.equinox.p2.engine/profileRegistry/epp.package.modeling.profile/.data/.settings/org.eclipse.equinox.p2.engine.prefs @@ -1,2 +1,2 @@ eclipse.preferences.version=1 -pgp.trustedPublicKeys=-----BEGIN PGP PUBLIC KEY BLOCK-----\r\nVersion\: BCPG v1.77.00\r\n\r\n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\r\nnZA8b3R8ktPY+iMoSyFYJpSZyGrkrB/hsT4\=\r\n\=zvGp\r\n-----END PGP PUBLIC KEY BLOCK-----\r\n +pgp.trustedPublicKeys=-----BEGIN PGP PUBLIC KEY BLOCK-----\r\nVersion\: BCPG v1.77.00\r\n\r\n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\r\nARAAvFgncKyTRf1vgvJvRWMAIRLygb0O8ZqBmGaoHGHtp7U/Lnb4GZPnUcGSZ7tV\r\nSN2vH3ji6wJnjSNjMTz9PpdpBngueXNdHblz8y71vaBzjZt/RWaQjF9Zuuk2JFAX\r\nrvwyLbTX+ZdJ7+eHZpuFQFo7rZ1ZpShn+TFZpgB+Jq5JoLO1E8kESiSifAe7QLeg\r\niNbV6tlC481Kc/Ysg9SJFmpeCtoGH6KErhi2sjWPkgnXE/bmZKUuAa5x8tkHiaj0\r\npyb/uRtUpF9X82r1npa3+9r8frLvC/EM1GuibRiWrRWwB8xHVxiffCZyu0wEL0d4\r\nQss4/k51QmNYYkTugfuMyN4/70iVXXOcJi3o732UaoYmkPFa+MQ27sO/4vq2gCsK\r\n//81RgKqf8zes0JsqC5LPnH7iOMqh7lyhmjbOUWqSgsX7pAv00Qdnny4agqVwG0U\r\nPGvkftAggT9lmA2DUKIeBZ8LqrWXn55vDVSlvtsHuct5ZSK11eT0GxRTeVji7jbz\r\nvyTrUUEozXeFmLbcDQgz+wE6USuosc+6r3s7RjYbogkcdNR22drlBAyldA1vJlkY\r\nwC5ff2pDEXHSHk2sihw1Y3jauWpp1k9L2dheNtgSVurEK8k7PzSASlxqFVWXl5rN\r\n38y/SKc7XFRWU7sJpOZJNRV12gQzMFR5UeYQuYCLiyHy1RMAEQEAAbQ6RWNsaXBz\r\nZSBQbGF0Zm9ybSBQcm9qZWN0IDxwbGF0Zm9ybS1yZWxlbmctZGV2QGVjbGlwc2Uu\r\nb3JnPokCPQQTAQgAJwIbLwULCQgHAwUVCgkICwUWAgMBAAIeAQIXgAUCYbs0fgUJ\r\nEsbZEQAKCRC206ubzGQSgp7VD/4vsGkNQAChDAbsLj/SmwCjS8kxWg5eXG8CHHoQ\r\nJ3ubu8dwn6mMXNjQQozNtGpJmFZ02LbwK4iyqvR3MnGJffJsX1jTm/1LTtndOHAV\r\nqkZ+VPU1tEG16wN/5EnJis3/Klq9pugy4Jd2VXsGqaD/YjWDlXlkQYiO2qfsiycJ\r\nUadGMT46YJEnlefoIRaVBt6aagCJQeUGjWnWxvcSKKnLNMeIHcq1ErjxV+Nqesvi\r\nSDN9Xg1uISnMqNvQvMYOKDELJi+n2QAEj/iF26Ko2iv0IowNnrVbKr8r/APhQM2Z\r\n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\r\n8FQP5cDKah4cyE0A321gwhCf8Ou10OLx+Dc\=\r\n\=Acfr\r\n-----END PGP PUBLIC KEY BLOCK-----\r\n diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.ui.workbench.texteditor/dialog_settings.xml b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.ui.workbench.texteditor/dialog_settings.xml index 73d6058dbe9b9e238420cf044c84f040e153eaae..e24deab01cf1a4382b4759b27bed654788655150 100644 --- a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.ui.workbench.texteditor/dialog_settings.xml +++ b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.ui.workbench.texteditor/dialog_settings.xml @@ -30,8 +30,8 @@ <section name="org.eclipse.ui.texteditor.FindReplaceDialog_dialogBounds"> <item key="DIALOG_X_ORIGIN" value="1384"/> <item key="DIALOG_Y_ORIGIN" value="168"/> - <item key="DIALOG_WIDTH" value="414"/> - <item key="DIALOG_HEIGHT" value="454"/> - <item key="DIALOG_FONT_NAME" value="1|Segoe UI|9.0|0|WINDOWS|1|-15|0|0|0|400|0|0|0|1|0|0|0|0|Segoe UI"/> + <item key="DIALOG_WIDTH" value="322"/> + <item key="DIALOG_HEIGHT" value="391"/> + <item key="DIALOG_FONT_NAME" value="1|Segoe UI|9.0|0|WINDOWS|1|-12|0|0|0|400|0|0|0|1|0|0|0|0|Segoe UI"/> </section> </section> diff --git a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.xtext.builder/builder.state b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.xtext.builder/builder.state index 08c80a996d5b1851d469b8e3d24e436bf8080b44..d8f3a6cf522cd0899c7cf2258622d9edc3c5ae2f 100644 Binary files a/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.xtext.builder/builder.state and b/eclipse_workspaces/webservice/.metadata/.plugins/org.eclipse.xtext.builder/builder.state differ diff --git a/eclipse_workspaces/webservice/.metadata/version.ini b/eclipse_workspaces/webservice/.metadata/version.ini index f03925821710c85105d61fb7b162d96427749cf3..0ee2b4ecc76b186094f88d2013a6c4dfa881b460 100644 --- a/eclipse_workspaces/webservice/.metadata/version.ini +++ b/eclipse_workspaces/webservice/.metadata/version.ini @@ -1,3 +1,3 @@ -#Wed Jul 10 10:01:22 CEST 2024 +#Wed Jul 17 22:43:37 CEST 2024 org.eclipse.core.runtime=2 org.eclipse.platform=4.31.100.v20240229-0520 diff --git a/eclipse_workspaces/webservice/org.tfranke.webservice.dsl.tests/test-bin/org/tfranke/webservice/dsl/tests/.WebserviceDSLParsingTest.xtendbin b/eclipse_workspaces/webservice/org.tfranke.webservice.dsl.tests/test-bin/org/tfranke/webservice/dsl/tests/.WebserviceDSLParsingTest.xtendbin index 364e8f945da9186b4a6c0cf889290e8f795482ba..f84c0d2b4b31285a0bef2d10af560aa383aea187 100644 Binary files a/eclipse_workspaces/webservice/org.tfranke.webservice.dsl.tests/test-bin/org/tfranke/webservice/dsl/tests/.WebserviceDSLParsingTest.xtendbin and b/eclipse_workspaces/webservice/org.tfranke.webservice.dsl.tests/test-bin/org/tfranke/webservice/dsl/tests/.WebserviceDSLParsingTest.xtendbin differ diff --git a/eclipse_workspaces/webservice/org.tfranke.webservice.dsl.tests/xtend-gen/org/tfranke/webservice/dsl/tests/.WebserviceDSLParsingTest.xtendbin b/eclipse_workspaces/webservice/org.tfranke.webservice.dsl.tests/xtend-gen/org/tfranke/webservice/dsl/tests/.WebserviceDSLParsingTest.xtendbin index 364e8f945da9186b4a6c0cf889290e8f795482ba..f84c0d2b4b31285a0bef2d10af560aa383aea187 100644 Binary files a/eclipse_workspaces/webservice/org.tfranke.webservice.dsl.tests/xtend-gen/org/tfranke/webservice/dsl/tests/.WebserviceDSLParsingTest.xtendbin and b/eclipse_workspaces/webservice/org.tfranke.webservice.dsl.tests/xtend-gen/org/tfranke/webservice/dsl/tests/.WebserviceDSLParsingTest.xtendbin differ diff --git a/eclipse_workspaces/webservice/org.tfranke.webservice.dsl/bin/org/tfranke/webservice/dsl/generator/.TransconnectRepositoryCreator.java._trace b/eclipse_workspaces/webservice/org.tfranke.webservice.dsl/bin/org/tfranke/webservice/dsl/generator/.TransconnectRepositoryCreator.java._trace new file mode 100644 index 0000000000000000000000000000000000000000..8e526a63d00626ea7201da7360dc850aceb814c6 Binary files /dev/null and b/eclipse_workspaces/webservice/org.tfranke.webservice.dsl/bin/org/tfranke/webservice/dsl/generator/.TransconnectRepositoryCreator.java._trace differ diff --git a/eclipse_workspaces/webservice/org.tfranke.webservice.dsl/bin/org/tfranke/webservice/dsl/generator/.WebserviceDSLGenerator.java._trace b/eclipse_workspaces/webservice/org.tfranke.webservice.dsl/bin/org/tfranke/webservice/dsl/generator/.WebserviceDSLGenerator.java._trace index d3bed831f1880068b7a1cb38b2b370bde3e5e37e..2150e292b700cd9d0e03475306e60e74a886c14c 100644 Binary files a/eclipse_workspaces/webservice/org.tfranke.webservice.dsl/bin/org/tfranke/webservice/dsl/generator/.WebserviceDSLGenerator.java._trace and b/eclipse_workspaces/webservice/org.tfranke.webservice.dsl/bin/org/tfranke/webservice/dsl/generator/.WebserviceDSLGenerator.java._trace differ diff --git a/eclipse_workspaces/webservice/org.tfranke.webservice.dsl/bin/org/tfranke/webservice/dsl/generator/TransconnectRepositoryCreator.class b/eclipse_workspaces/webservice/org.tfranke.webservice.dsl/bin/org/tfranke/webservice/dsl/generator/TransconnectRepositoryCreator.class new file mode 100644 index 0000000000000000000000000000000000000000..8653ed90e341308df965403255dfc980c99c9eb4 Binary files /dev/null and b/eclipse_workspaces/webservice/org.tfranke.webservice.dsl/bin/org/tfranke/webservice/dsl/generator/TransconnectRepositoryCreator.class differ diff --git a/eclipse_workspaces/webservice/org.tfranke.webservice.dsl/bin/org/tfranke/webservice/dsl/generator/WebserviceDSLGenerator.class b/eclipse_workspaces/webservice/org.tfranke.webservice.dsl/bin/org/tfranke/webservice/dsl/generator/WebserviceDSLGenerator.class index 262922c2633c75a38725d5fac0ea5080827f4d6c..d2e78470b51817681d2614a449cb4bbc3f7dde15 100644 Binary files a/eclipse_workspaces/webservice/org.tfranke.webservice.dsl/bin/org/tfranke/webservice/dsl/generator/WebserviceDSLGenerator.class and b/eclipse_workspaces/webservice/org.tfranke.webservice.dsl/bin/org/tfranke/webservice/dsl/generator/WebserviceDSLGenerator.class differ diff --git a/eclipse_workspaces/webservice/org.tfranke.webservice.dsl/bin/src/org/tfranke/webservice/dsl/generator/.TransconnectRepositoryCreator.xtendbin b/eclipse_workspaces/webservice/org.tfranke.webservice.dsl/bin/src/org/tfranke/webservice/dsl/generator/.TransconnectRepositoryCreator.xtendbin new file mode 100644 index 0000000000000000000000000000000000000000..9a2c193b8bf4f3dcbb3eae36e0cb19ec67866baa Binary files /dev/null and b/eclipse_workspaces/webservice/org.tfranke.webservice.dsl/bin/src/org/tfranke/webservice/dsl/generator/.TransconnectRepositoryCreator.xtendbin differ diff --git a/eclipse_workspaces/webservice/org.tfranke.webservice.dsl/bin/src/org/tfranke/webservice/dsl/generator/.WebserviceDSLGenerator.xtendbin b/eclipse_workspaces/webservice/org.tfranke.webservice.dsl/bin/src/org/tfranke/webservice/dsl/generator/.WebserviceDSLGenerator.xtendbin index cba877f5d70f69b5dd1088d9ff3b306e34394eec..67b79c62fc5ca311a2cffb459c2656e5d43b12d3 100644 Binary files a/eclipse_workspaces/webservice/org.tfranke.webservice.dsl/bin/src/org/tfranke/webservice/dsl/generator/.WebserviceDSLGenerator.xtendbin and b/eclipse_workspaces/webservice/org.tfranke.webservice.dsl/bin/src/org/tfranke/webservice/dsl/generator/.WebserviceDSLGenerator.xtendbin differ diff --git a/eclipse_workspaces/webservice/org.tfranke.webservice.dsl/src/org/tfranke/webservice/dsl/generator/TransconnectRepositoryCreator.xtend b/eclipse_workspaces/webservice/org.tfranke.webservice.dsl/src/org/tfranke/webservice/dsl/generator/TransconnectRepositoryCreator.xtend new file mode 100644 index 0000000000000000000000000000000000000000..f402038737c0edad0df68b8f360fe132d372e823 --- /dev/null +++ b/eclipse_workspaces/webservice/org.tfranke.webservice.dsl/src/org/tfranke/webservice/dsl/generator/TransconnectRepositoryCreator.xtend @@ -0,0 +1,207 @@ +package org.tfranke.webservice.dsl.generator + +import org.eclipse.xtext.generator.IFileSystemAccess2 +import webservice.API +import webservice.Operation +import webservice.ReadOperation +import java.util.Map +import java.util.List +import webservice.Parameter +import webservice.CreateOperation +import webservice.UpdateOperation +import webservice.DeleteOperation +import webservice.DataType +import webservice.StringData +import webservice.IntegerData +import webservice.BooleanData +import webservice.FloatData +import webservice.CollectionDataType +import webservice.ObjectDataType +import com.fasterxml.jackson.databind.ObjectMapper +import java.util.ArrayList +import java.util.LinkedHashMap +import java.time.LocalDateTime +import java.time.format.DateTimeFormatter + +/** + * This class contains methods to create a Transconnect repository from a Webservice model. + */ +class TransconnectRepositoryCreator { + + /** + * Creates a Transconnect repository for the given Webservice model. + */ + def static createRepository(API api, IFileSystemAccess2 fsa) { + var List<String> fileNames = new ArrayList() + var folderName = api.name + //create resource file for each operation + for (Operation operation : api.operations) { + var fileName = getHttpMethodFromOperation(operation) + " " + operation.name + ".xsl"; + fileNames.add(fileName) + fsa.generateFile( "repositories/" + folderName + "/resources/" + folderName + "/" + fileName , createResourceFile(operation, api)); + } + //create repositoryXML file + fsa.generateFile( "repositories/" + folderName + "/repository.xml", createRepositoryXML(api, fileNames, folderName)); + } + + /** + * Creates the contents of a resource file for the given Operation. + */ + def static createResourceFile(Operation operation, API api) { + + var List<ObjectDataType> contentObjects = new ArrayList(); + var List<Parameter> queryParams = new ArrayList(); + + for (Parameter param : operation.parameters) { + var DataType datatype = param.datatype + if (datatype instanceof ObjectDataType) { + contentObjects.add(datatype) + } else { + queryParams.add(param) + } + } + + ''' + <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> + <xsl:template match="/"> + <ROOT> + <REQUEST CONTENT-TYPE="application/json" EMBED="true" NAME="«operation.name»" OPERATION="«getHttpMethodFromOperation(operation)»" URL="«operation.urlSuffix»"> + <PARAMS> + «FOR Parameter param : queryParams» + «IF param.required» + <!-- required --> + «ENDIF» + <PARAM NAME="«param.datatype.name»">«getTypeOfData(param.datatype)»</PARAM> + + «ENDFOR» + </PARAMS> + «IF !contentObjects.empty» + <CONTENT> + «FOR ObjectDataType object : contentObjects SEPARATOR ","» + «resolveObjectDatatypeToJson(object)» + <!-- required content: «FOR DataType datatype : object.datatypes SEPARATOR ","»«IF datatype.required»«datatype.name» «ENDIF»«ENDFOR» --> + «ENDFOR» + </CONTENT> + + «ENDIF» + </REQUEST> + </ROOT> + </xsl:template> + </xsl:stylesheet> + + ''' + } + + /** + * Creates the contents of the repository.xml file for the given API. + */ + def static createRepositoryXML(API api, List<String> fileNames, String folderName) { + + var int id = 100 + var LocalDateTime dateTimeNow = LocalDateTime.now() + var DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm:ss") + var String dateTimeNowFormatted = dateTimeNow.format(formatter) + + ''' + <?xml version="1.0" encoding="UTF-8" standalone="no"?> + <REPOSITORY> + <RESOURCES> + <RESOURCE EMPTYFOLDER="true" FILENAME="«folderName»" ID="«id»" IMPORT="true" NAME="SwaggerPetstore"> + <DESCRIPTION/> + </RESOURCE> + «FOR String fileName : fileNames» + <RESOURCE FILENAME="«folderName»/«fileName»" ID="«id += 1»" IMPORT="true" LASTMODIFIED="«dateTimeNowFormatted»" NAME="«fileName»" TYPE="XsltDocument"> + <DESCRIPTION/> + </RESOURCE> + «ENDFOR» + </RESOURCES> + + <ADAPTERTYPES> + <ADAPTERTYPE FACTORY="com.sqlgmbh.tc.adapter.http.AdapterFactory" ID="30" IMPORT="false"/> + </ADAPTERTYPES> + + <ADAPTERS> + <ADAPTER FACTORY="com.sqlgmbh.tc.adapter.http.AdapterFactory" ID="80" IMPORT="true" NAME="«api.name»" OUTBOUND="true" SUBTYPE="Default" TYPE_ID="30"> + <DESCRIPTION/> + <PROPERTIES> + <PROPERTY NAME="connection.maxIdle">10</PROPERTY> + <PROPERTY NAME="failed.request.content.length">100</PROPERTY> + <PROPERTY NAME="http.statuscode.check">false</PROPERTY> + <PROPERTY NAME="lib.log.verbose">false</PROPERTY> + <PROPERTY NAME="requestEncoding">UTF-8</PROPERTY> + <PROPERTY NAME="responseEncoding">ISO-8859-1</PROPERTY> + <PROPERTY NAME="trust.selfsigned">false</PROPERTY> + <PROPERTY NAME="url.outbound">«api.url»</PROPERTY> + <PROPERTY NAME="xml.invalidChars">Error</PROPERTY> + </PROPERTIES> + </ADAPTER> + </ADAPTERS> + </REPOSITORY> + + ''' + } + + /** + * Creates the JSON representation of an ObjectDataType from the API Model. + */ + def static String resolveObjectDatatypeToJson(ObjectDataType object) { + var ObjectMapper mapper = new ObjectMapper(); + var Map<String, String> mapOfJsonRepresenation = new LinkedHashMap(); + + for (DataType datatype : object.datatypes) { + mapOfJsonRepresenation.put(datatype.name , getTypeOfData(datatype)) + } + + //return json + return mapper.writerWithDefaultPrettyPrinter().writeValueAsString(mapOfJsonRepresenation) + + } + + + /** + * This method returns the associated HTTP-Method for an Operation object. + */ + def static String getHttpMethodFromOperation(Operation operation){ + if(operation instanceof ReadOperation) { + return "GET" + } + if(operation instanceof CreateOperation) { + return "POST" + } + if(operation instanceof UpdateOperation) { + return "PUT" + } + if(operation instanceof DeleteOperation) { + return "DELETE" + } + } + + /** + * This methods returns type of the given data. + */ + def static String getTypeOfData(DataType datatype) { + if (datatype instanceof StringData) { + return "string" + } + if (datatype instanceof IntegerData) { + return "integer" + } + if (datatype instanceof BooleanData) { + return "boolean" + } + if (datatype instanceof FloatData) { + return "float" + } + if (datatype instanceof ObjectDataType) { + return "object: " + datatype.name + } + if (datatype instanceof CollectionDataType) { + return "list of: " + datatype.listItem.name + } + } + +} + + + + diff --git a/eclipse_workspaces/webservice/org.tfranke.webservice.dsl/src/org/tfranke/webservice/dsl/generator/WebserviceDSLGenerator.xtend b/eclipse_workspaces/webservice/org.tfranke.webservice.dsl/src/org/tfranke/webservice/dsl/generator/WebserviceDSLGenerator.xtend index e712ad92b83ee351e2e76b51459e6b5eef30846a..76f4fa326985724e2e9eab03db7637242291d5cc 100644 --- a/eclipse_workspaces/webservice/org.tfranke.webservice.dsl/src/org/tfranke/webservice/dsl/generator/WebserviceDSLGenerator.xtend +++ b/eclipse_workspaces/webservice/org.tfranke.webservice.dsl/src/org/tfranke/webservice/dsl/generator/WebserviceDSLGenerator.xtend @@ -39,10 +39,10 @@ class WebserviceDSLGenerator extends AbstractGenerator { override void doGenerate(Resource res, IFileSystemAccess2 fsa, IGeneratorContext context ) { for (API api : res.allContents.toIterable.filter(API)){ fsa.generateFile( "openAPI/" + api.name + ".json", formatJson(generateOpenApi(api))) + TransconnectRepositoryCreator.createRepository(api, fsa) //creates TC Repository } } - /** * This methods creates an openApi specification in Json form from an API Object. */ diff --git a/eclipse_workspaces/webservice/org.tfranke.webservice.dsl/xtend-gen/org/tfranke/webservice/dsl/generator/.TransconnectRepositoryCreator.java._trace b/eclipse_workspaces/webservice/org.tfranke.webservice.dsl/xtend-gen/org/tfranke/webservice/dsl/generator/.TransconnectRepositoryCreator.java._trace new file mode 100644 index 0000000000000000000000000000000000000000..8e526a63d00626ea7201da7360dc850aceb814c6 Binary files /dev/null and b/eclipse_workspaces/webservice/org.tfranke.webservice.dsl/xtend-gen/org/tfranke/webservice/dsl/generator/.TransconnectRepositoryCreator.java._trace differ diff --git a/eclipse_workspaces/webservice/org.tfranke.webservice.dsl/xtend-gen/org/tfranke/webservice/dsl/generator/.WebserviceDSLGenerator.java._trace b/eclipse_workspaces/webservice/org.tfranke.webservice.dsl/xtend-gen/org/tfranke/webservice/dsl/generator/.WebserviceDSLGenerator.java._trace index d3bed831f1880068b7a1cb38b2b370bde3e5e37e..2150e292b700cd9d0e03475306e60e74a886c14c 100644 Binary files a/eclipse_workspaces/webservice/org.tfranke.webservice.dsl/xtend-gen/org/tfranke/webservice/dsl/generator/.WebserviceDSLGenerator.java._trace and b/eclipse_workspaces/webservice/org.tfranke.webservice.dsl/xtend-gen/org/tfranke/webservice/dsl/generator/.WebserviceDSLGenerator.java._trace differ diff --git a/eclipse_workspaces/webservice/org.tfranke.webservice.dsl/xtend-gen/org/tfranke/webservice/dsl/generator/TransconnectRepositoryCreator.java b/eclipse_workspaces/webservice/org.tfranke.webservice.dsl/xtend-gen/org/tfranke/webservice/dsl/generator/TransconnectRepositoryCreator.java new file mode 100644 index 0000000000000000000000000000000000000000..02f0a4a179e54f932c155652339344f851878032 --- /dev/null +++ b/eclipse_workspaces/webservice/org.tfranke.webservice.dsl/xtend-gen/org/tfranke/webservice/dsl/generator/TransconnectRepositoryCreator.java @@ -0,0 +1,391 @@ +package org.tfranke.webservice.dsl.generator; + +import com.fasterxml.jackson.databind.ObjectMapper; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.ArrayList; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import org.eclipse.emf.common.util.EList; +import org.eclipse.xtend2.lib.StringConcatenation; +import org.eclipse.xtext.generator.IFileSystemAccess2; +import org.eclipse.xtext.xbase.lib.Exceptions; +import webservice.API; +import webservice.BooleanData; +import webservice.CollectionDataType; +import webservice.CreateOperation; +import webservice.DataType; +import webservice.DeleteOperation; +import webservice.FloatData; +import webservice.IntegerData; +import webservice.ObjectDataType; +import webservice.Operation; +import webservice.Parameter; +import webservice.ReadOperation; +import webservice.StringData; +import webservice.UpdateOperation; + +/** + * This class contains methods to create a Transconnect repository from a Webservice model. + */ +@SuppressWarnings("all") +public class TransconnectRepositoryCreator { + /** + * Creates a Transconnect repository for the given Webservice model. + */ + public static void createRepository(final API api, final IFileSystemAccess2 fsa) { + List<String> fileNames = new ArrayList<String>(); + String folderName = api.getName(); + EList<Operation> _operations = api.getOperations(); + for (final Operation operation : _operations) { + { + String _httpMethodFromOperation = TransconnectRepositoryCreator.getHttpMethodFromOperation(operation); + String _plus = (_httpMethodFromOperation + " "); + String _name = operation.getName(); + String _plus_1 = (_plus + _name); + String fileName = (_plus_1 + ".xsl"); + fileNames.add(fileName); + fsa.generateFile(((((("repositories/" + folderName) + "/resources/") + folderName) + "/") + fileName), TransconnectRepositoryCreator.createResourceFile(operation, api)); + } + } + fsa.generateFile((("repositories/" + folderName) + "/repository.xml"), TransconnectRepositoryCreator.createRepositoryXML(api, fileNames, folderName)); + } + + /** + * Creates the contents of a resource file for the given Operation. + */ + public static CharSequence createResourceFile(final Operation operation, final API api) { + CharSequence _xblockexpression = null; + { + List<ObjectDataType> contentObjects = new ArrayList<ObjectDataType>(); + List<Parameter> queryParams = new ArrayList<Parameter>(); + EList<Parameter> _parameters = operation.getParameters(); + for (final Parameter param : _parameters) { + { + DataType datatype = param.getDatatype(); + if ((datatype instanceof ObjectDataType)) { + contentObjects.add(((ObjectDataType)datatype)); + } else { + queryParams.add(param); + } + } + } + StringConcatenation _builder = new StringConcatenation(); + _builder.append("<xsl:stylesheet xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\">"); + _builder.newLine(); + _builder.append(" "); + _builder.append("<xsl:template match=\"/\">"); + _builder.newLine(); + _builder.append(" "); + _builder.append("<ROOT>"); + _builder.newLine(); + _builder.append(" "); + _builder.append("<REQUEST CONTENT-TYPE=\"application/json\" EMBED=\"true\" NAME=\""); + String _name = operation.getName(); + _builder.append(_name, " "); + _builder.append("\" OPERATION=\""); + String _httpMethodFromOperation = TransconnectRepositoryCreator.getHttpMethodFromOperation(operation); + _builder.append(_httpMethodFromOperation, " "); + _builder.append("\" URL=\""); + String _urlSuffix = operation.getUrlSuffix(); + _builder.append(_urlSuffix, " "); + _builder.append("\">"); + _builder.newLineIfNotEmpty(); + _builder.append(" "); + _builder.append("<PARAMS>"); + _builder.newLine(); + { + for(final Parameter param_1 : queryParams) { + { + boolean _isRequired = param_1.isRequired(); + if (_isRequired) { + _builder.append(" "); + _builder.append("<!-- required -->"); + _builder.newLine(); + } + } + _builder.append(" "); + _builder.append(" "); + _builder.append("<PARAM NAME=\""); + String _name_1 = param_1.getDatatype().getName(); + _builder.append(_name_1, " "); + _builder.append("\">"); + String _typeOfData = TransconnectRepositoryCreator.getTypeOfData(param_1.getDatatype()); + _builder.append(_typeOfData, " "); + _builder.append("</PARAM>"); + _builder.newLineIfNotEmpty(); + _builder.append(" "); + _builder.append(" "); + _builder.newLine(); + } + } + _builder.append(" "); + _builder.append("</PARAMS>"); + _builder.newLine(); + { + boolean _isEmpty = contentObjects.isEmpty(); + boolean _not = (!_isEmpty); + if (_not) { + _builder.append(" "); + _builder.append("<CONTENT>"); + _builder.newLine(); + { + boolean _hasElements = false; + for(final ObjectDataType object : contentObjects) { + if (!_hasElements) { + _hasElements = true; + } else { + _builder.appendImmediate(",", " "); + } + _builder.append(" "); + String _resolveObjectDatatypeToJson = TransconnectRepositoryCreator.resolveObjectDatatypeToJson(object); + _builder.append(_resolveObjectDatatypeToJson, " "); + _builder.newLineIfNotEmpty(); + _builder.append(" "); + _builder.append("<!-- required content: "); + { + EList<DataType> _datatypes = object.getDatatypes(); + boolean _hasElements_1 = false; + for(final DataType datatype : _datatypes) { + if (!_hasElements_1) { + _hasElements_1 = true; + } else { + _builder.appendImmediate(",", " "); + } + { + boolean _isRequired_1 = datatype.isRequired(); + if (_isRequired_1) { + String _name_2 = datatype.getName(); + _builder.append(_name_2, " "); + _builder.append(" "); + } + } + } + } + _builder.append(" -->"); + _builder.newLineIfNotEmpty(); + } + } + _builder.append(" "); + _builder.append("</CONTENT>"); + _builder.newLine(); + _builder.append(" "); + _builder.newLine(); + } + } + _builder.append(" "); + _builder.append("</REQUEST>"); + _builder.newLine(); + _builder.append(" "); + _builder.append("</ROOT>"); + _builder.newLine(); + _builder.append(" "); + _builder.append("</xsl:template>"); + _builder.newLine(); + _builder.append("</xsl:stylesheet>"); + _builder.newLine(); + _builder.newLine(); + _xblockexpression = _builder; + } + return _xblockexpression; + } + + /** + * Creates the contents of the repository.xml file for the given API. + */ + public static CharSequence createRepositoryXML(final API api, final List<String> fileNames, final String folderName) { + CharSequence _xblockexpression = null; + { + int id = 100; + LocalDateTime dateTimeNow = LocalDateTime.now(); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm:ss"); + String dateTimeNowFormatted = dateTimeNow.format(formatter); + StringConcatenation _builder = new StringConcatenation(); + _builder.append("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>"); + _builder.newLine(); + _builder.append("<REPOSITORY>"); + _builder.newLine(); + _builder.append(" "); + _builder.append("<RESOURCES>"); + _builder.newLine(); + _builder.append(" "); + _builder.append("<RESOURCE EMPTYFOLDER=\"true\" FILENAME=\""); + _builder.append(folderName, " "); + _builder.append("\" ID=\""); + _builder.append(id, " "); + _builder.append("\" IMPORT=\"true\" NAME=\"SwaggerPetstore\">"); + _builder.newLineIfNotEmpty(); + _builder.append(" "); + _builder.append("<DESCRIPTION/>"); + _builder.newLine(); + _builder.append(" "); + _builder.append("</RESOURCE>"); + _builder.newLine(); + { + for(final String fileName : fileNames) { + _builder.append(" "); + _builder.append("<RESOURCE FILENAME=\""); + _builder.append(folderName, " "); + _builder.append("/"); + _builder.append(fileName, " "); + _builder.append("\" ID=\""); + int _id = id; + int _plus = id = (_id + 1); + _builder.append(_plus, " "); + _builder.append("\" IMPORT=\"true\" LASTMODIFIED=\""); + _builder.append(dateTimeNowFormatted, " "); + _builder.append("\" NAME=\""); + _builder.append(fileName, " "); + _builder.append("\" TYPE=\"XsltDocument\">"); + _builder.newLineIfNotEmpty(); + _builder.append(" "); + _builder.append(" "); + _builder.append("<DESCRIPTION/>"); + _builder.newLine(); + _builder.append(" "); + _builder.append("</RESOURCE>"); + _builder.newLine(); + } + } + _builder.append(" "); + _builder.append("</RESOURCES>"); + _builder.newLine(); + _builder.append(" "); + _builder.newLine(); + _builder.append(" "); + _builder.append("<ADAPTERTYPES>"); + _builder.newLine(); + _builder.append(" "); + _builder.append("<ADAPTERTYPE FACTORY=\"com.sqlgmbh.tc.adapter.http.AdapterFactory\" ID=\"30\" IMPORT=\"false\"/>"); + _builder.newLine(); + _builder.append(" "); + _builder.append("</ADAPTERTYPES>"); + _builder.newLine(); + _builder.append(" "); + _builder.newLine(); + _builder.append(" "); + _builder.append("<ADAPTERS>"); + _builder.newLine(); + _builder.append(" "); + _builder.append("<ADAPTER FACTORY=\"com.sqlgmbh.tc.adapter.http.AdapterFactory\" ID=\"80\" IMPORT=\"true\" NAME=\""); + String _name = api.getName(); + _builder.append(_name, " "); + _builder.append("\" OUTBOUND=\"true\" SUBTYPE=\"Default\" TYPE_ID=\"30\">"); + _builder.newLineIfNotEmpty(); + _builder.append(" "); + _builder.append("<DESCRIPTION/>"); + _builder.newLine(); + _builder.append(" "); + _builder.append("<PROPERTIES>"); + _builder.newLine(); + _builder.append(" "); + _builder.append("<PROPERTY NAME=\"connection.maxIdle\">10</PROPERTY>"); + _builder.newLine(); + _builder.append(" "); + _builder.append("<PROPERTY NAME=\"failed.request.content.length\">100</PROPERTY>"); + _builder.newLine(); + _builder.append(" "); + _builder.append("<PROPERTY NAME=\"http.statuscode.check\">false</PROPERTY>"); + _builder.newLine(); + _builder.append(" "); + _builder.append("<PROPERTY NAME=\"lib.log.verbose\">false</PROPERTY>"); + _builder.newLine(); + _builder.append(" "); + _builder.append("<PROPERTY NAME=\"requestEncoding\">UTF-8</PROPERTY>"); + _builder.newLine(); + _builder.append(" "); + _builder.append("<PROPERTY NAME=\"responseEncoding\">ISO-8859-1</PROPERTY>"); + _builder.newLine(); + _builder.append(" "); + _builder.append("<PROPERTY NAME=\"trust.selfsigned\">false</PROPERTY>"); + _builder.newLine(); + _builder.append(" "); + _builder.append("<PROPERTY NAME=\"url.outbound\">"); + String _url = api.getUrl(); + _builder.append(_url, " "); + _builder.append("</PROPERTY>"); + _builder.newLineIfNotEmpty(); + _builder.append(" "); + _builder.append("<PROPERTY NAME=\"xml.invalidChars\">Error</PROPERTY>"); + _builder.newLine(); + _builder.append(" "); + _builder.append("</PROPERTIES>"); + _builder.newLine(); + _builder.append(" "); + _builder.append("</ADAPTER>"); + _builder.newLine(); + _builder.append(" "); + _builder.append("</ADAPTERS>"); + _builder.newLine(); + _builder.append("</REPOSITORY>"); + _builder.newLine(); + _builder.newLine(); + _xblockexpression = _builder; + } + return _xblockexpression; + } + + /** + * Creates the JSON representation of an ObjectDataType from the API Model. + */ + public static String resolveObjectDatatypeToJson(final ObjectDataType object) { + try { + ObjectMapper mapper = new ObjectMapper(); + Map<String, String> mapOfJsonRepresenation = new LinkedHashMap<String, String>(); + EList<DataType> _datatypes = object.getDatatypes(); + for (final DataType datatype : _datatypes) { + mapOfJsonRepresenation.put(datatype.getName(), TransconnectRepositoryCreator.getTypeOfData(datatype)); + } + return mapper.writerWithDefaultPrettyPrinter().writeValueAsString(mapOfJsonRepresenation); + } catch (Throwable _e) { + throw Exceptions.sneakyThrow(_e); + } + } + + /** + * This method returns the associated HTTP-Method for an Operation object. + */ + public static String getHttpMethodFromOperation(final Operation operation) { + if ((operation instanceof ReadOperation)) { + return "GET"; + } + if ((operation instanceof CreateOperation)) { + return "POST"; + } + if ((operation instanceof UpdateOperation)) { + return "PUT"; + } + if ((operation instanceof DeleteOperation)) { + return "DELETE"; + } + return null; + } + + /** + * This methods returns type of the given data. + */ + public static String getTypeOfData(final DataType datatype) { + if ((datatype instanceof StringData)) { + return "string"; + } + if ((datatype instanceof IntegerData)) { + return "integer"; + } + if ((datatype instanceof BooleanData)) { + return "boolean"; + } + if ((datatype instanceof FloatData)) { + return "float"; + } + if ((datatype instanceof ObjectDataType)) { + String _name = ((ObjectDataType)datatype).getName(); + return ("object: " + _name); + } + if ((datatype instanceof CollectionDataType)) { + String _name_1 = ((CollectionDataType)datatype).getListItem().getName(); + return ("list of: " + _name_1); + } + return null; + } +} diff --git a/eclipse_workspaces/webservice/org.tfranke.webservice.dsl/xtend-gen/org/tfranke/webservice/dsl/generator/WebserviceDSLGenerator.java b/eclipse_workspaces/webservice/org.tfranke.webservice.dsl/xtend-gen/org/tfranke/webservice/dsl/generator/WebserviceDSLGenerator.java index be35adcbf7ca00eee7c700842f45ebb723847866..4fc4463c2e571c1324486b0bdac35e06f016b7b5 100644 --- a/eclipse_workspaces/webservice/org.tfranke.webservice.dsl/xtend-gen/org/tfranke/webservice/dsl/generator/WebserviceDSLGenerator.java +++ b/eclipse_workspaces/webservice/org.tfranke.webservice.dsl/xtend-gen/org/tfranke/webservice/dsl/generator/WebserviceDSLGenerator.java @@ -48,10 +48,13 @@ public class WebserviceDSLGenerator extends AbstractGenerator { public void doGenerate(final Resource res, final IFileSystemAccess2 fsa, final IGeneratorContext context) { Iterable<API> _filter = Iterables.<API>filter(IteratorExtensions.<EObject>toIterable(res.getAllContents()), API.class); for (final API api : _filter) { - String _name = api.getName(); - String _plus = ("openAPI/" + _name); - String _plus_1 = (_plus + ".json"); - fsa.generateFile(_plus_1, this.formatJson(this.generateOpenApi(api))); + { + String _name = api.getName(); + String _plus = ("openAPI/" + _name); + String _plus_1 = (_plus + ".json"); + fsa.generateFile(_plus_1, this.formatJson(this.generateOpenApi(api))); + TransconnectRepositoryCreator.createRepository(api, fsa); + } } } diff --git a/eclipse_workspaces/webservice/org.tfranke.webservice.dsl/xtend-gen/src/org/tfranke/webservice/dsl/generator/.TransconnectRepositoryCreator.xtendbin b/eclipse_workspaces/webservice/org.tfranke.webservice.dsl/xtend-gen/src/org/tfranke/webservice/dsl/generator/.TransconnectRepositoryCreator.xtendbin new file mode 100644 index 0000000000000000000000000000000000000000..9a2c193b8bf4f3dcbb3eae36e0cb19ec67866baa Binary files /dev/null and b/eclipse_workspaces/webservice/org.tfranke.webservice.dsl/xtend-gen/src/org/tfranke/webservice/dsl/generator/.TransconnectRepositoryCreator.xtendbin differ diff --git a/eclipse_workspaces/webservice/org.tfranke.webservice.dsl/xtend-gen/src/org/tfranke/webservice/dsl/generator/.WebserviceDSLGenerator.xtendbin b/eclipse_workspaces/webservice/org.tfranke.webservice.dsl/xtend-gen/src/org/tfranke/webservice/dsl/generator/.WebserviceDSLGenerator.xtendbin index cba877f5d70f69b5dd1088d9ff3b306e34394eec..67b79c62fc5ca311a2cffb459c2656e5d43b12d3 100644 Binary files a/eclipse_workspaces/webservice/org.tfranke.webservice.dsl/xtend-gen/src/org/tfranke/webservice/dsl/generator/.WebserviceDSLGenerator.xtendbin and b/eclipse_workspaces/webservice/org.tfranke.webservice.dsl/xtend-gen/src/org/tfranke/webservice/dsl/generator/.WebserviceDSLGenerator.xtendbin differ