diff --git a/.gitignore b/.gitignore index 3c2a84de02ebb710ff064970f73fd11497779f8d..e53f466f0b7dc8fb4b393e2793d8338f7a8f4dc3 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ bin/ *._trace *.xtendbin .DS_Store +target/ \ No newline at end of file diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000000000000000000000000000000000000..4e5e65467c4ae44168d9d66afb8b9c44da1b8956 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,288 @@ +# This file is a template, and might need editing before it works on your project. +# This is a sample GitLab CI/CD configuration file that should run without any modifications. +# It demonstrates a basic 3 stage CI/CD pipeline. Instead of real tests or scripts, +# it uses echo commands to simulate the pipeline execution. +# +# A pipeline is composed of independent jobs that run scripts, grouped into stages. +# Stages run in sequential order, but jobs within stages run in parallel. +# +# For more information, see: https://docs.gitlab.com/ee/ci/yaml/index.html#stages +# +# You can copy and paste this template into a new `.gitlab-ci.yml` file. +# You should not add this template to an existing `.gitlab-ci.yml` file by using the `include:` keyword. +# +# To contribute improvements to CI/CD templates, please follow the Development guide at: +# https://docs.gitlab.com/ee/development/cicd/templates.html +# This specific template is located at: +# https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Getting-Started.gitlab-ci.yml + +# Build JAVA applications using Apache Maven (http://maven.apache.org) +# For docker image tags see https://hub.docker.com/_/maven/ +# +# For general lifecycle information see https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html + +# This template will build and test your projects +# * Caches downloaded dependencies and plugins between invocation. +# * Verify but don't deploy merge requests. +# * Deploy built artifacts from master branch only. + +variables: + # CI_TARGET_BRANCH: $CI_DEFAULT_BRANCH + CI_TARGET_BRANCH: "ttf-022" + DEV_CI_TARGET_BRANCH: "dev" + MAIN_CI_TARGET_BRANCH: "master" + SITE_LOCATION: "updatesite/org.etsi.mts.tdl.updatesite/target" + ARCHIVE_NAME: "org.etsi.mts.tdl.updatesite-1.0.0-SNAPSHOT.zip" + SITE_ARCHIVE: "${SITE_LOCATION}/${ARCHIVE_NAME}" + SITE_PATH: "${SITE_LOCATION}/repository/" + REPO_PREFIX: "https://labs.etsi.org/rep/top/ide/-/jobs" + REPO_PATH: "artifacts/raw/updatesite/org.etsi.mts.tdl.updatesite/target/repository/" + PACKAGE_NAME: "TOP IDE Interim Build" + PACKAGE_NAME_MAIN: "TOP IDE Build" + BETA_PATH: "public/updatesite/beta" + BETA_PAGE: "https://top.etsi.org/ide/updatesite/beta" + MAIN_PATH: "public/updatesite/release" + MAIN_PAGE: "https://top.etsi.org/ide/updatesite/release" + STANDALONE_LOCATION: "plugins/org.etsi.mts.tdl.standalone/target" + STANDALONE_NAME: "org.etsi.mts.tdl.standalone-1.0.0-SNAPSHOT-shadow.jar" + STANDALONE_PATH: "${STANDALONE_LOCATION}/${STANDALONE_NAME}" + + # `showDateTime` will show the passed time in milliseconds. You need to specify `--batch-mode` to make this work. + MAVEN_OPTS: >- + -Xmx2048m + -Dhttps.protocols=TLSv1.2 + -Dmaven.repo.local=$CI_PROJECT_DIR/.m2/repository + -Dorg.slf4j.simpleLogger.showDateTime=true + -Djava.awt.headless=true + + # As of Maven 3.3.0 instead of this you MAY define these options in `.mvn/maven.config` so the same config is used + # when running from the command line. + # As of Maven 3.6.1, the use of `--no-tranfer-progress` (or `-ntp`) suppresses download and upload messages. The use + # of the `Slf4jMavenTransferListener` is no longer necessary. + # `installAtEnd` and `deployAtEnd` are only effective with recent version of the corresponding plugins. + MAVEN_CLI_OPTS: >- + --batch-mode + --errors + --fail-at-end + --show-version + --no-transfer-progress + -DinstallAtEnd=true + -DdeployAtEnd=true + +.default_rules: + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" + when: never + - if: $CI_COMMIT_BRANCH == $CI_TARGET_BRANCH + - if: $CI_PIPELINE_SOURCE == "web" + when: always + - if: $CI_COMMIT_TAG + when: never + # - when: never + + + +# This template uses the latest Maven 3 release, e.g., 3.8.6, and OpenJDK 8 (LTS) +# for verifying and deploying images +# Maven 3.8.x REQUIRES HTTPS repositories. +# See https://maven.apache.org/docs/3.8.1/release-notes.html#how-to-fix-when-i-get-a-http-repository-blocked for more. +image: maven:3-openjdk-11 + +# Cache downloaded dependencies and plugins between builds. +# To keep cache across branches add 'key: "$CI_JOB_NAME"' +# Be aware that `mvn deploy` will install the built jar into this repository. If you notice your cache size +# increasing, consider adding `-Dmaven.install.skip=true` to `MAVEN_OPTS` or in `.mvn/maven.config` +cache: + paths: + - .m2/repository + +# For merge requests do not `deploy` but only run `verify`. +# See https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html +# .verify: + # stage: test + # script: + # - cd org.etsi.mts.tdl.parent + # - 'mvn $MAVEN_CLI_OPTS verify' + # except: + # variables: + # - $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH + +# Verify merge requests using JDK8 +# verify:jdk11: + # extends: + # - .verify + +# To deploy packages from CI, create a `ci_settings.xml` file +# For deploying packages to GitLab's Maven Repository: See https://docs.gitlab.com/ee/user/packages/maven_repository/index.html#create-maven-packages-with-gitlab-cicd for more details. +# Please note: The GitLab Maven Repository is currently only available in GitLab Premium / Ultimate. +# For `master` or `main` branch run `mvn deploy` automatically. +#deploy:jdk11: +# stage: deploy +# script: +# - if [ ! -f ci_settings.xml ]; then +# echo "CI settings missing\! If deploying to GitLab Maven Repository, please see https://docs.gitlab.com/ee/user/packages/maven_repository/index.html#create-maven-packages-with-gitlab-cicd for instructions."; +# fi +# - 'mvn $MAVEN_CLI_OPTS deploy --settings ci_settings.xml' +# only: +# variables: +# - $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH + + +stages: # List of stages for jobs, and their order of execution + - build + - test + - deploy + - prepare + - upload + - release + +build-job: # This job runs in the build stage, which runs first. + stage: build + rules: + - !reference [.default_rules, rules] + script: + - echo "Compiling the code..." + - echo "BUILD_JOB_ID=$CI_JOB_ID" >> build.env + - cat build.env + - cd org.etsi.mts.tdl.parent + - mvn clean install + - echo "Compile complete." + artifacts: + expire_in: 7 days + reports: + dotenv: build.env + paths: + - $SITE_ARCHIVE + - $SITE_PATH + # - $STANDALONE_PATH + +# unit-test-job: # This job runs in the test stage. + # stage: test # It only starts when the job in the build stage completes successfully. + # script: + # - echo "Running unit tests... This will take about 6 seconds." + # - sleep 6 + # - echo "Code coverage is 0%" + +# lint-test-job: # This job also runs in the test stage. + # stage: test # It can run at the same time as unit-test-job (in parallel). + # script: + # - echo "Linting code... This will take about 1 seconds." + # - sleep 1 + # - echo "No lint issues found." + +# deploy-job: # This job runs in the deploy stage. + # stage: deploy # It only runs when *both* jobs in the test stage complete successfully. + # environment: production + # script: + # - echo "Deploying application..." + # - echo "Application successfully deployed." + + +# Adapted from OpenAPI2TDL converter +prepare: + stage: prepare + rules: + - !reference [.default_rules, rules] + script: + - VERSION=`date +%Y%m%d.%H.%M` + - echo "EXTRA_DESCRIPTION=automatic-release" >> variables.env + - echo "VERSION=$VERSION" >> variables.env + - echo "PACKAGE_REGISTRY_URL=${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/ide/${VERSION}" >> variables.env + - echo "PACKAGE_LATEST_URL=${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/ide/latest" >> variables.env + - cat variables.env + artifacts: + reports: + dotenv: variables.env # Use artifacts:reports:dotenv to expose the variables to other jobs + +# https://gitlab.com/gitlab-org/release-cli/-/tree/master/docs/examples/release-assets-as-generic-package/ +upload: + stage: upload + image: curlimages/curl:latest + needs: + - job: prepare + artifacts: true + - job: build-job + artifacts: true + rules: + - !reference [.default_rules, rules] + script: + - echo $BUILD_JOB_ID + - echo "${PACKAGE_REGISTRY_URL}/${ARCHIVE_NAME}" + - | + curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file ${SITE_ARCHIVE} ${PACKAGE_REGISTRY_URL}/${ARCHIVE_NAME} + # - | + # curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file ${STANDALONE_LOCATION} ${PACKAGE_REGISTRY_URL}/${STANDALONE_NAME} + # - | + # curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file ${SITE_ARCHIVE} ${PACKAGE_LATEST_URL}/${ARCHIVE_NAME} + # - | + # cd ${SITE_LOCATION} && find repository/ -type f -exec echo curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file {} ${PACKAGE_LATEST_URL}/{} \; && cd ~ + # - | + # cd ${SITE_LOCATION} && find repository/ -type f -exec curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file {} ${PACKAGE_LATEST_URL}/{} \; + # - | + # curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file bin/${MACOS_GUI_JAR} ${PACKAGE_REGISTRY_URL}/${MACOS_GUI_JAR} + # - | + # curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file bin/${WINDOWS_GUI_JAR} ${PACKAGE_REGISTRY_URL}/${WINDOWS_GUI_JAR} + # - | + # curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file bin/${CLI_JAR} ${PACKAGE_REGISTRY_URL}/${CLI_JAR} + # - | + # curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file bin/${LIB_JAR} ${PACKAGE_REGISTRY_URL}/${LIB_JAR} + +pages: + stage: upload + # image: curlimages/curl:latest + needs: + - job: prepare + artifacts: true + - job: build-job + artifacts: true + script: + # Get the previous GitLab Pages content + # - set +e + # - curl --fail "$CI_PAGES_URL/content.zip" -o "content.zip" + # - if [ -e "content.zip" ]; then unzip "content.zip"; rm "content.zip"; fi + # - set -e + # Add/update content + # TODO: differentiate on branch? + - echo $CI_PAGES_URL + - mkdir -p $BETA_PATH + - cp -r -f $SITE_PATH/* $BETA_PATH + # Zip the content and publish the zip again + # - zip -r "content.zip" "public" + # - mv "content.zip" "public/" + # - mv $SITE_ARCHIVE $BETA_PATH/content.zip + artifacts: + paths: + - public + rules: + - !reference [.default_rules, rules] + # only: + # - tags + +release: + stage: release + image: registry.gitlab.com/gitlab-org/release-cli:latest + needs: + - job: prepare + artifacts: true + - job: build-job + artifacts: true + rules: + - !reference [.default_rules, rules] + script: + # unpack latest? + # TODO: permalink for latest release? or manual job? + # --description "Published automatically, permalink for installation (valid for 7 days) at https://labs.etsi.org/rep/top/ide/-/releases/permalink/latest/downloads/repository." + - echo $BUILD_JOB_ID + - | + release-cli create --name "Release $VERSION" \ + --tag-name $VERSION \ + --ref $CI_COMMIT_SHA \ + --assets-link "{\"name\":\"${PACKAGE_NAME}\",\"url\":\"${PACKAGE_REGISTRY_URL}/${ARCHIVE_NAME}\",\"filepath\":\"/repository-archive\"}" \ + --assets-link "{\"name\":\"${PACKAGE_NAME} (latest repository (exipres in 7 days))\",\"url\":\"${REPO_PREFIX}/${BUILD_JOB_ID}/${REPO_PATH}\",\"filepath\":\"/repository\"}" \ + --assets-link "{\"name\":\"${PACKAGE_NAME} (latest beta (permalink))\",\"url\":\"${BETA_PAGE}\"}" \ + # --assets-link "{\"name\":\"${PACKAGE_NAME} (latest standalone (exipres in 7 days))\",\"url\":\"${PACKAGE_REGISTRY_URL}/${STANDALONE_NAME}\"}" \ + # --assets-link "{\"name\":\"${PACKAGE_NAME} (latest)\",\"url\":\"${PACKAGE_LATEST_URL}/${ARCHIVE_NAME}\"}" \ + # --assets-link "{\"name\":\"${MACOS_GUI_JAR}\",\"url\":\"${PACKAGE_REGISTRY_URL}/${MACOS_GUI_JAR}\"}" \ + # --assets-link "{\"name\":\"${WINDOWS_GUI_JAR}\",\"url\":\"${PACKAGE_REGISTRY_URL}/${WINDOWS_GUI_JAR}\"}" \ + # --assets-link "{\"name\":\"${CLI_JAR}\",\"url\":\"${PACKAGE_REGISTRY_URL}/${CLI_JAR}\"}" \ + # --assets-link "{\"name\":\"${LIB_JAR}\",\"url\":\"${PACKAGE_REGISTRY_URL}/${LIB_JAR}\"}" diff --git a/Readme.md b/Readme.md index 9fbf1d9f463e0104144713b7d599e0c2de573824..ac4aa709dc23f9234be4fb9099ecd5b52984001c 100644 --- a/Readme.md +++ b/Readme.md @@ -6,7 +6,7 @@ More info at [TDL website](https://tdl.etsi.org) ## Installing the plug-ins -The TDL tools are available as a set of Eclipse plug-ins. You need to first be able to run Eclipse. The [Eclipse Modeling Tools (2021-06)](https://www.eclipse.org/downloads/packages/release/2021-06/r/eclipse-modeling-tools) distribution contains most of the necessary prerequisites for the TDL tools. Newer versions should be compatible but have not been extensively tested yet. +The TDL tools are available as a set of Eclipse plug-ins. You need to first be able to run Eclipse. The [Eclipse Modeling Tools (2022-12)](https://www.eclipse.org/downloads/packages/release/2022-12/r/eclipse-modeling-tools) distribution contains most of the necessary prerequisites for the TDL tools. Newer versions should be compatible but have not been extensively tested yet. Once Eclipse is up and running, the easiest way to install the TOP tools is from the Eclipse Marketplace - simply search for TDL in the Eclipse Marketplace client within Eclipse, or go to the [TOP Marketplace Listing](https://marketplace.eclipse.org/content/top-tdl-open-source-project) and drag the install button into the Eclipse window. @@ -14,8 +14,18 @@ Alternatively, you can install the plug-ins manually from an update site. In thi https://tdl.etsi.org/eclipse/latest/ +With the CI/CD integration, a beta-channel is available at the [development update site](https://top.etsi.org/ide/updatesite/beta) for the latest development versions of the TDL tools: + + https://top.etsi.org/ide/updatesite/beta + +Eventually, the stable branch will be switched to CI/CD as well, to be made avalable at: + + https://top.etsi.org/ide/updatesite/stable + After the update site is added, the list of plug-ins and features shall be shown in the installation dialog (menu item Help->Install New Software..). Select the desired features and proceed with the installation, which will require Eclipse to be restarted once the installation is finished. +Interim snapshot builds are also available from the [Packages](https://labs.etsi.org/rep/top/ide/-/packages) / [Releases](https://labs.etsi.org/rep/top/ide/-/releases) areas on GitLab. These can be downloaded and installed in Eclipse by adding a new update site from a local archive. Please note that these interim builds may not be stable as they reflect the development at a certain point in time between stable releases and while certain issues may be addressed, new ones may not yet have been identifed. + In Eclipse 2021-06 some components may need to be updated first to ensure compatibility with the graphical editor. During the installation, this may be proposed as a solution. Find more detailed information at [Installation wiki](https://labs.etsi.org/rep/top/ide/-/wikis/Installation). @@ -48,6 +58,18 @@ The same steps can be applied to create a new TDL model by means of the brace-ba More information on using the plugins is available at [Usage wiki](https://labs.etsi.org/rep/top/ide/-/wikis/Usage). +## Using the standalone commandline tools + +There also standalone commandline tools which can be used for scripting selected functionalities from the TDL tools as part of a pipeline. Currently the following functionalities are available: + +* Listing elements +* Validating specifications +* Translating between different representation formats +* Importing data specifications from OpenAPI and ASN.1 +* **TODO**: Complete list + +The commandline tools are part of the `org.etsi.mts.tdl.standalone` plugin. A self-contained version is available as part of the CI/CD releases. + ## Textual Syntax Specifications The complete specification for the standardised textual syntax ([ES 203 119-8 v1.1.1 (to be published in March 2022)](https://tdl.etsi.org/index.php/downloads)) as well as the corresponding extensions for Structured Testo Objective Specifications ([ES 203 119-4 v1.5.1, clause 8 (to be published in March 2022)](https://tdl.etsi.org/index.php/downloads)) Extended Test Configurations ([ES 203 119-7 v1.3.1, clause 8 (to be published in March 2022)](https://tdl.etsi.org/index.php/downloads)) is available in [TDLtx.xtext](plugins/org.etsi.mts.tdl.tx/src/org/etsi/mts/tdl/TDLtx.xtext). It uses the [Xtext Grammar Language](https://www.eclipse.org/Xtext/documentation/301_grammarlanguage.html) which also allows the specification of the bindings between the textual syntax elements and the meta-model elements. By default, brace-based delimiters are used (i.e. the "brace-based variant"). Instead, the [TDLtxi.xtext](plugins/org.etsi.mts.tdl.txi/src/org/etsi/mts/tdl/TDLtxi.xtext) specifies the necessary overrides for the indentation-based delimiters (i.e. the "indentation-based variant"). @@ -56,23 +78,32 @@ From end-user's perspective this translates to two file extensions - `.tdltx` fo ## Setting up a local environment for development and testing +The following steps are needed to setup a local development environment. + * Download and install Eclipse Modeling Tools package * Install following additional components from Eclipse Marketplace * Sirius (v7) - * Eclipse Xtext (v2.26 or newer) + * Eclipse Xtext (v2.29 or newer) * Epsilon (v2.x) * Eclipse OCL (v6.x) + * Eclise Maven Integration m2e (v2.1.x) * Check out the repository * Import the plug-ins in the Eclipse workspace + * Import -> Existing Projects into Workspace + +As we are adding integration with Maven, the following steps shall be fully automated. Still in some scenarios, they may need to be executed manually. While the Maven integration does make it possible to implement small changes also in other editors and IDEs, it is still recommended to use the Eclipse Modelling Tools as many issues may otherwise be overlooked and hard to diagnose. + * Generate the meta-model code * Open the `tdl.genmodel` + * Make sure that the "Realisation of OCL embedded within Ecore models" is set to "Delegate for interpretation at run-time" in the Eclipse preferences (setting it on project level does not seem sufficient currently) * Right click on the top-node and generate model code + * Repeat the above for the `structured.genmodel` and the `configurations.genmodel` * Generate textual editor code * Open the `GenerateTDLan2.mwe` * Right click and select Run As -> MWE2 Workflow * Additionally (or alternatively) repeat the same steps for the `GenerateTPLan2.mwe` (for editing structured test objectives) * Additionally (or alternatively) repeat the same steps for the `GenerateTDLtx.mwe` (for brace-based TDL TX representation) - * Additionally (or alternatively) repeat the same steps for the `GenerateTDLtxi.mwe` (for indentation-based TDL TX representation) + * Additionally (or alternatively) repeat the same steps for the `GenerateTDLtxi.mwe` (for indentation-based TDL TX representation, requires that the `GenerateTDLtx.mwe` is executed first) * Additionally (or alternatively) repeat the same steps for the `GenerateData.mwe` (for the graphical viewer) ## Converters @@ -81,21 +112,15 @@ The converters component can be optionally installed with the TDL core and edito ### Implementation of the OpenAPI import into TDL -The generation of data types and other elements based on OpenAPI yaml specifications is based on the [KaiZen OpenAPI Parser](https://github.com/RepreZen/KaiZen-OpenApi-Parser). The corresponding [Eclipse plug-in](https://marketplace.eclipse.org/content/kaizen-openapi-editor) needs to be installed before installing the importer. While the transformation components can be installed individually, the user-interface currently depends on all the transformation plug-ins. +The generation of data types and other elements based on OpenAPI yaml specifications is based on the [OpenAPI Generator](https://openapi-generator.tech). Previous implementation based on the [KaiZen OpenAPI Parser](https://github.com/RepreZen/KaiZen-OpenApi-Parser) (requiring that the corresponding [Eclipse plug-in](https://marketplace.eclipse.org/content/kaizen-openapi-editor) needs to be installed before installing the importer) is now deprecated and will be removed soon. While the transformation components can be installed individually, the user-interface currently depends on all the transformation plug-ins. The implementation currently supports: * Importing of data definitions under `components/schemas`. * Data mappings to the base OpenAPI definition for traceability. - * Annotations with warnings regarding conventions. - -Part of the implementation was developed as a lab project with contributions from: - * Lennart Thiesen - * Marlin Preibisch - * Niklas Mertsch - * René Lars Wetzelt - * Vincent Florens Hasse + * Data mappings to the target (Java) data implementaions derived from the OpenAPI definitions for executability. ### Implementation of the ASN.1 import into TDL + The generation of data types based on ASN.1 specifications is based on the [BeanIt ASN1Bean](https://github.com/beanit/asn1bean) (formerly known as jASN). The implementation currently supports: @@ -105,6 +130,7 @@ The implementation currently supports: Note that the upstream components provided by the ASN1Bean may not be able to process all ASN.1 specifications as they do not provide 100% coverage of the ASN.1 syntax. In this case, the outcome may be incomplete. ### Implementation of the transformation of Structured Test Objectives to TDL Test Descriptions + The transformation of Structured Test Objectives into TDL Test Descriptions currently supports: * Transforming of inline data descriptions within `EventOccurrences` into corresponding data types. * Generation of `TestConfigurations` based on the `EventSequences` within the Structured Test Objective. diff --git a/features/org.etsi.mts.tdl.constraints.feature/.project b/features/org.etsi.mts.tdl.constraints.feature/.project index e537d7fcbcb4ece97a264f580c5e040d7067b370..8ac4975c2f025aae25ed8aa6e4152ff24feac494 100644 --- a/features/org.etsi.mts.tdl.constraints.feature/.project +++ b/features/org.etsi.mts.tdl.constraints.feature/.project @@ -10,8 +10,25 @@ + + org.eclipse.m2e.core.maven2Builder + + + + org.eclipse.m2e.core.maven2Nature org.eclipse.pde.FeatureNature + + + 1681464246838 + + 30 + + org.eclipse.core.resources.regexFilterMatcher + node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__ + + + diff --git a/features/org.etsi.mts.tdl.constraints.feature/feature.xml b/features/org.etsi.mts.tdl.constraints.feature/feature.xml index 2110b781a683f8a7e059ff9c3c58c502937b7759..afccba237ada49e6cbc1230b8e96550d829e6723 100644 --- a/features/org.etsi.mts.tdl.constraints.feature/feature.xml +++ b/features/org.etsi.mts.tdl.constraints.feature/feature.xml @@ -319,6 +319,9 @@ any resulting litigation. + + + @@ -326,8 +329,8 @@ any resulting litigation. - - + + + + 4.0.0 + + + org.etsi.mts.tdl + org.etsi.mts.tdl.parent + 1.0.0-SNAPSHOT + ../../org.etsi.mts.tdl.parent + + + + org.etsi.mts.tdl.constraints.feature + eclipse-feature + + TDL Constraints Feature + \ No newline at end of file diff --git a/features/org.etsi.mts.tdl.converters.feature/.project b/features/org.etsi.mts.tdl.converters.feature/.project index 78b905ae09ddf8d0968510c1fb674d56167ce1f7..cf357363318918f518c3925c872bcd8d19b8de58 100644 --- a/features/org.etsi.mts.tdl.converters.feature/.project +++ b/features/org.etsi.mts.tdl.converters.feature/.project @@ -10,8 +10,25 @@ + + org.eclipse.m2e.core.maven2Builder + + + + org.eclipse.m2e.core.maven2Nature org.eclipse.pde.FeatureNature + + + 1681464246849 + + 30 + + org.eclipse.core.resources.regexFilterMatcher + node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__ + + + diff --git a/features/org.etsi.mts.tdl.converters.feature/feature.xml b/features/org.etsi.mts.tdl.converters.feature/feature.xml index ab9643f71dfe672a80e73420127cdb9b5f0f9547..a967bf73bc8ebc7f2ef03e33db504af7e8be99ce 100644 --- a/features/org.etsi.mts.tdl.converters.feature/feature.xml +++ b/features/org.etsi.mts.tdl.converters.feature/feature.xml @@ -1,6 +1,6 @@ @@ -321,9 +321,8 @@ any resulting litigation. - - - + + + + + + diff --git a/features/org.etsi.mts.tdl.converters.feature/pom.xml b/features/org.etsi.mts.tdl.converters.feature/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..50b257e445e42b64bf6a09b5246355783222aef4 --- /dev/null +++ b/features/org.etsi.mts.tdl.converters.feature/pom.xml @@ -0,0 +1,18 @@ + + + 4.0.0 + + + org.etsi.mts.tdl + org.etsi.mts.tdl.parent + 1.0.0-SNAPSHOT + ../../org.etsi.mts.tdl.parent + + + + org.etsi.mts.tdl.converters.feature + eclipse-feature + + TDL Converters Feature + \ No newline at end of file diff --git a/features/org.etsi.mts.tdl.graphical.editor.feature/.project b/features/org.etsi.mts.tdl.graphical.editor.feature/.project index 1b9e22f5e3802ffd817770b6850e8b65cd5bc0e6..0df058158812834a68a2e60f341a4feb3be28d6f 100644 --- a/features/org.etsi.mts.tdl.graphical.editor.feature/.project +++ b/features/org.etsi.mts.tdl.graphical.editor.feature/.project @@ -10,8 +10,14 @@ + + org.eclipse.m2e.core.maven2Builder + + + + org.eclipse.m2e.core.maven2Nature org.eclipse.pde.FeatureNature diff --git a/features/org.etsi.mts.tdl.graphical.editor.feature/.settings/org.eclipse.core.resources.prefs b/features/org.etsi.mts.tdl.graphical.editor.feature/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000000000000000000000000000000000000..99f26c0203a7844de00dbfc56e6a35d8ed3c022c --- /dev/null +++ b/features/org.etsi.mts.tdl.graphical.editor.feature/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/features/org.etsi.mts.tdl.graphical.editor.feature/.settings/org.eclipse.m2e.core.prefs b/features/org.etsi.mts.tdl.graphical.editor.feature/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000000000000000000000000000000000000..f897a7f1cb2389f85fe6381425d29f0a9866fb65 --- /dev/null +++ b/features/org.etsi.mts.tdl.graphical.editor.feature/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/features/org.etsi.mts.tdl.graphical.editor.feature/feature.xml b/features/org.etsi.mts.tdl.graphical.editor.feature/feature.xml index 1edadaacdbd8b08d3039ea527c057ceb504f047a..4113deb227af8a932fe484fb7875897d23a89ff9 100644 --- a/features/org.etsi.mts.tdl.graphical.editor.feature/feature.xml +++ b/features/org.etsi.mts.tdl.graphical.editor.feature/feature.xml @@ -333,7 +333,6 @@ any resulting litigation. - diff --git a/features/org.etsi.mts.tdl.graphical.editor.feature/pom.xml b/features/org.etsi.mts.tdl.graphical.editor.feature/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..d8f1d1c08cacca6c74c4ee3079d8ec8af71ad125 --- /dev/null +++ b/features/org.etsi.mts.tdl.graphical.editor.feature/pom.xml @@ -0,0 +1,18 @@ + + + 4.0.0 + + + org.etsi.mts.tdl + org.etsi.mts.tdl.parent + 1.0.0-SNAPSHOT + ../../org.etsi.mts.tdl.parent + + + + org.etsi.mts.tdl.graphical.editor.feature + eclipse-feature + + TDL GR Editor Feature + \ No newline at end of file diff --git a/features/org.etsi.mts.tdl.model.feature/.project b/features/org.etsi.mts.tdl.model.feature/.project index 5f6145c247eac2301fd45c09fdab6d44a9a14652..aaee9ad9b00f7b326d4ee7caf6afff997dee6043 100644 --- a/features/org.etsi.mts.tdl.model.feature/.project +++ b/features/org.etsi.mts.tdl.model.feature/.project @@ -10,8 +10,25 @@ + + org.eclipse.m2e.core.maven2Builder + + + + org.eclipse.m2e.core.maven2Nature org.eclipse.pde.FeatureNature + + + 1681418411912 + + 30 + + org.eclipse.core.resources.regexFilterMatcher + node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__ + + + diff --git a/features/org.etsi.mts.tdl.model.feature/category.xml b/features/org.etsi.mts.tdl.model.feature/category.xml deleted file mode 100644 index 3bc6c5cc2ed984c4cc1ac67ffcb8c8454694517d..0000000000000000000000000000000000000000 --- a/features/org.etsi.mts.tdl.model.feature/category.xml +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/features/org.etsi.mts.tdl.model.feature/feature.xml b/features/org.etsi.mts.tdl.model.feature/feature.xml index 6bc28a00c8899e88b65421b4d123e6579167d31c..9a83e6d1b87047b219e6ce01be76c9e5ec9e2b60 100644 --- a/features/org.etsi.mts.tdl.model.feature/feature.xml +++ b/features/org.etsi.mts.tdl.model.feature/feature.xml @@ -309,8 +309,9 @@ any resulting litigation. + - + + + 4.0.0 + + + org.etsi.mts.tdl + org.etsi.mts.tdl.parent + 1.0.0-SNAPSHOT + ../../org.etsi.mts.tdl.parent + + + + org.etsi.mts.tdl.model.feature + eclipse-feature + + TDL Meta-Model Feature + \ No newline at end of file diff --git a/features/org.etsi.mts.tdl.tools.to.docx.feature/.project b/features/org.etsi.mts.tdl.tools.to.docx.feature/.project index 8de89ae2ab6ed6083aeecefcecfc4bac12307aa0..deed3e6bd692d3b0d41a7a1fd02d3edfe04b7aa4 100644 --- a/features/org.etsi.mts.tdl.tools.to.docx.feature/.project +++ b/features/org.etsi.mts.tdl.tools.to.docx.feature/.project @@ -10,8 +10,14 @@ + + org.eclipse.m2e.core.maven2Builder + + + + org.eclipse.m2e.core.maven2Nature org.eclipse.pde.FeatureNature diff --git a/features/org.etsi.mts.tdl.tools.to.docx.feature/.settings/org.eclipse.core.resources.prefs b/features/org.etsi.mts.tdl.tools.to.docx.feature/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000000000000000000000000000000000000..99f26c0203a7844de00dbfc56e6a35d8ed3c022c --- /dev/null +++ b/features/org.etsi.mts.tdl.tools.to.docx.feature/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/features/org.etsi.mts.tdl.tools.to.docx.feature/.settings/org.eclipse.m2e.core.prefs b/features/org.etsi.mts.tdl.tools.to.docx.feature/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000000000000000000000000000000000000..f897a7f1cb2389f85fe6381425d29f0a9866fb65 --- /dev/null +++ b/features/org.etsi.mts.tdl.tools.to.docx.feature/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/features/org.etsi.mts.tdl.tools.to.docx.feature/pom.xml b/features/org.etsi.mts.tdl.tools.to.docx.feature/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..85660d212e5424703784230107985ca13666f083 --- /dev/null +++ b/features/org.etsi.mts.tdl.tools.to.docx.feature/pom.xml @@ -0,0 +1,18 @@ + + + 4.0.0 + + + org.etsi.mts.tdl + org.etsi.mts.tdl.parent + 1.0.0-SNAPSHOT + ../../org.etsi.mts.tdl.parent + + + + org.etsi.mts.tdl.tools.to.docx.feature + eclipse-feature + + TDL TO Docx Export Feature + \ No newline at end of file diff --git a/features/org.etsi.mts.tdl.ttcn3.feature/.project b/features/org.etsi.mts.tdl.ttcn3.feature/.project index dc806840acbda21c2dc60b7292612ee47d2b5ef6..a82aa2ecfb93084a4538a5cf3dcd1df54a168430 100644 --- a/features/org.etsi.mts.tdl.ttcn3.feature/.project +++ b/features/org.etsi.mts.tdl.ttcn3.feature/.project @@ -10,8 +10,14 @@ + + org.eclipse.m2e.core.maven2Builder + + + + org.eclipse.m2e.core.maven2Nature org.eclipse.pde.FeatureNature diff --git a/features/org.etsi.mts.tdl.ttcn3.feature/pom.xml b/features/org.etsi.mts.tdl.ttcn3.feature/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..0893153a00e8c70475361f8a89cba28cc372527b --- /dev/null +++ b/features/org.etsi.mts.tdl.ttcn3.feature/pom.xml @@ -0,0 +1,18 @@ + + + 4.0.0 + + + org.etsi.mts.tdl + org.etsi.mts.tdl.parent + 1.0.0-SNAPSHOT + ../../org.etsi.mts.tdl.parent + + + + org.etsi.mts.tdl.ttcn3.feature + eclipse-feature + + TDL GR Editor Feature + \ No newline at end of file diff --git a/features/org.etsi.mts.tdl.tx.feature/.project b/features/org.etsi.mts.tdl.tx.feature/.project index 13fb0bfe300a57709212a40b2cfc4620e93b5e87..fab33b17cd94e0068554d9c14e26a40d9dad8f7d 100644 --- a/features/org.etsi.mts.tdl.tx.feature/.project +++ b/features/org.etsi.mts.tdl.tx.feature/.project @@ -10,8 +10,25 @@ + + org.eclipse.m2e.core.maven2Builder + + + + org.eclipse.m2e.core.maven2Nature org.eclipse.pde.FeatureNature + + + 1681418411974 + + 30 + + org.eclipse.core.resources.regexFilterMatcher + node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__ + + + diff --git a/features/org.etsi.mts.tdl.tx.feature/feature.xml b/features/org.etsi.mts.tdl.tx.feature/feature.xml index 0b4a8e86d1b20bb29a8ef1fbabe2e90634e007bc..9c4236e2fe9ebe4a9664ff29590011a0df3df41f 100644 --- a/features/org.etsi.mts.tdl.tx.feature/feature.xml +++ b/features/org.etsi.mts.tdl.tx.feature/feature.xml @@ -326,7 +326,18 @@ any resulting litigation. - + + + + + + + + + + + + + + 4.0.0 + + + org.etsi.mts.tdl + org.etsi.mts.tdl.parent + 1.0.0-SNAPSHOT + ../../org.etsi.mts.tdl.parent + + + + org.etsi.mts.tdl.tx.feature + eclipse-feature + + TDLtx Brace-Based Textual Syntax Feature + \ No newline at end of file diff --git a/features/org.etsi.mts.tdl.txi.feature/.project b/features/org.etsi.mts.tdl.txi.feature/.project index 8643d80476c3b673b2e3be0efe286bc6e3d5aa0c..36143e3be975739d87620679dc03467a106e573a 100644 --- a/features/org.etsi.mts.tdl.txi.feature/.project +++ b/features/org.etsi.mts.tdl.txi.feature/.project @@ -10,8 +10,25 @@ + + org.eclipse.m2e.core.maven2Builder + + + + org.eclipse.m2e.core.maven2Nature org.eclipse.pde.FeatureNature + + + 1681418408891 + + 30 + + org.eclipse.core.resources.regexFilterMatcher + node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__ + + + diff --git a/features/org.etsi.mts.tdl.txi.feature/pom.xml b/features/org.etsi.mts.tdl.txi.feature/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..fe5ee5c89844d9c954dbb1d256a733a9dd02e267 --- /dev/null +++ b/features/org.etsi.mts.tdl.txi.feature/pom.xml @@ -0,0 +1,18 @@ + + + 4.0.0 + + + org.etsi.mts.tdl + org.etsi.mts.tdl.parent + 1.0.0-SNAPSHOT + ../../org.etsi.mts.tdl.parent + + + + org.etsi.mts.tdl.txi.feature + eclipse-feature + + TDLtx Indentation-Based Textual Syntax Feature + \ No newline at end of file diff --git a/features/org.etsi.mts.tdl.util.feature/.project b/features/org.etsi.mts.tdl.util.feature/.project index 41f409292c8df64cc29912b31c3f61aa3b024d1f..c1918b5713abed96c48cd4955b1dfce2df5540db 100644 --- a/features/org.etsi.mts.tdl.util.feature/.project +++ b/features/org.etsi.mts.tdl.util.feature/.project @@ -10,8 +10,14 @@ + + org.eclipse.m2e.core.maven2Builder + + + + org.eclipse.m2e.core.maven2Nature org.eclipse.pde.FeatureNature diff --git a/features/org.etsi.mts.tdl.util.feature/feature.xml b/features/org.etsi.mts.tdl.util.feature/feature.xml index 3376d9c692b38abc50247123875f97531bd4adf6..5fa47af7ef5e776ce697956ad804403344593e00 100644 --- a/features/org.etsi.mts.tdl.util.feature/feature.xml +++ b/features/org.etsi.mts.tdl.util.feature/feature.xml @@ -318,6 +318,21 @@ any resulting litigation. + + + + + + + + + + + + + + + + + + + + + diff --git a/features/org.etsi.mts.tdl.util.feature/pom.xml b/features/org.etsi.mts.tdl.util.feature/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..3c11f1910077ff80b6fe9a4bf80d1e6c9ef83fda --- /dev/null +++ b/features/org.etsi.mts.tdl.util.feature/pom.xml @@ -0,0 +1,18 @@ + + + 4.0.0 + + + org.etsi.mts.tdl + org.etsi.mts.tdl.parent + 1.0.0-SNAPSHOT + ../../org.etsi.mts.tdl.parent + + + + org.etsi.mts.tdl.util.feature + eclipse-feature + + TDL Utilities Feature + \ No newline at end of file diff --git a/org.etsi.mts.tdl.parent/.project b/org.etsi.mts.tdl.parent/.project new file mode 100644 index 0000000000000000000000000000000000000000..a65215cfe368a6232fd11310c05b7867f252f3b7 --- /dev/null +++ b/org.etsi.mts.tdl.parent/.project @@ -0,0 +1,17 @@ + + + org.etsi.mts.tdl.parent + + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.eclipse.m2e.core.maven2Nature + + diff --git a/org.etsi.mts.tdl.parent/.settings/org.eclipse.core.resources.prefs b/org.etsi.mts.tdl.parent/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000000000000000000000000000000000000..99f26c0203a7844de00dbfc56e6a35d8ed3c022c --- /dev/null +++ b/org.etsi.mts.tdl.parent/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/org.etsi.mts.tdl.parent/.settings/org.eclipse.m2e.core.prefs b/org.etsi.mts.tdl.parent/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000000000000000000000000000000000000..f897a7f1cb2389f85fe6381425d29f0a9866fb65 --- /dev/null +++ b/org.etsi.mts.tdl.parent/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/org.etsi.mts.tdl.parent/pom.xml b/org.etsi.mts.tdl.parent/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..a7ef160e421e48b15957018aeeb1eb7c1acc0f1c --- /dev/null +++ b/org.etsi.mts.tdl.parent/pom.xml @@ -0,0 +1,292 @@ + + + 4.0.0 + + org.etsi.mts.tdl + org.etsi.mts.tdl.parent + 1.0.0-SNAPSHOT + pom + + + + ../plugins/org.etsi.mts.tdl.model + ../plugins/org.etsi.mts.tdl.common + ../plugins/org.etsi.mts.tdl.helper + + ../plugins/org.etsi.mts.tdl.TDLan2 + ../plugins/org.etsi.mts.tdl.TDLan2.ide + ../plugins/org.etsi.mts.tdl.TDLan2.ui + ../plugins/org.etsi.mts.tdl.TPLan2 + ../plugins/org.etsi.mts.tdl.TPLan2.ide + ../plugins/org.etsi.mts.tdl.TPLan2.ui + + ../plugins/org.etsi.mts.tdl.tx + ../plugins/org.etsi.mts.tdl.tx.ide + ../plugins/org.etsi.mts.tdl.tx.ui + ../plugins/org.etsi.mts.tdl.txi + ../plugins/org.etsi.mts.tdl.txi.ide + ../plugins/org.etsi.mts.tdl.txi.ui + + ../plugins/org.etsi.mts.tdl.tools.to.docx.poi + ../plugins/org.etsi.mts.tdl.tools.to.docx.poi.ui + ../plugins/org.etsi.mts.tdl.openapi.generator.wrapper + ../plugins/org.etsi.mts.tdl.openapi.generator.ui + ../plugins/org.etsi.mts.tdl.openapi2tdl.next + ../plugins/org.etsi.mts.tdl.json2tdl + ../plugins/org.etsi.mts.tdl.to2tdl + ../plugins/org.etsi.mts.tdl.asn2tdl + ../plugins/org.etsi.mts.tdl.ttcn3 + ../plugins/org.etsi.mts.tdl.ttcn3.ui + ../plugins/org.etsi.mts.tdl.importers.ui + + ../plugins/org.etsi.mts.tdl.tools.to.docx + ../plugins/org.etsi.mts.tdl.tools.to.docx.ui + + ../plugins/org.etsi.mts.tdl.rt.ui + ../plugins/org.etsi.mts.tdl.perspective + ../plugins/org.etsi.mts.tdl.project + ../plugins/org.etsi.mts.tdl.wizards + ../plugins/org.etsi.mts.tdl.execution.java + + ../plugins/org.etsi.mts.tdl.constraints + ../plugins/org.etsi.mts.tdl.constraints.ui + ../plugins/org.etsi.mts.tdl.constraints.helper + + ../plugins/org.etsi.mts.tdl.graphical.labels.data + ../plugins/org.etsi.mts.tdl.graphical.labels.data.ui + ../plugins/org.etsi.mts.tdl.graphical.viewpoint + + ../features/org.etsi.mts.tdl.model.feature + ../features/org.etsi.mts.tdl.tx.feature + ../features/org.etsi.mts.tdl.txi.feature + ../plugins/org.etsi.mts.tdl.TDLan2.feature + ../plugins/org.etsi.mts.tdl.TPLan2.feature + ../features/org.etsi.mts.tdl.constraints.feature + ../features/org.etsi.mts.tdl.converters.feature + ../features/org.etsi.mts.tdl.util.feature + ../features/org.etsi.mts.tdl.tools.to.docx.feature + ../features/org.etsi.mts.tdl.graphical.editor.feature + ../features/org.etsi.mts.tdl.ttcn3.feature + + ../updatesite/org.etsi.mts.tdl.updatesite + + ../plugins/org.etsi.mts.tdl.standalone + + + + 11 + 11 + 2.7.5 + UTF-8 + 2.30.0 + true + 3.9.0 + 3.3.0 + VERBOSE + + + + + + + + + + + + + + org.eclipse.xtend + xtend-maven-plugin + ${xtext.version} + + + + compile + xtend-install-debug-info + testCompile + xtend-test-install-debug-info + + + + + xtend-gen + + + + + + org.eclipse.tycho + tycho-packaging-plugin + ${tycho-version} + + false + true + + + + + org.apache.maven.plugins + maven-clean-plugin + 2.5 + + + gen-clean + + clean + + + + + ${basedir}/xtend-gen + + + + + + + + maven-compiler-plugin + ${maven.compiler.plugin.version} + + + maven-jar-plugin + ${maven.jar.plugin.version} + + + + + + + + + + org.eclipse.tycho + tycho-maven-plugin + ${tycho-version} + true + + + + org.eclipse.tycho + target-platform-configuration + ${tycho-version} + + + + + ../../org.etsi.mts.tdl.parent/top.target + + + + + macosx + cocoa + x86_64 + + + macosx + cocoa + aarch64 + + + win32 + win32 + x86_64 + + + linux + gtk + x86_64 + + + + + + + + + + + codehaus-snapshots + disable dead 'Codehaus Snapshots' repository, see https://bugs.eclipse.org/bugs/show_bug.cgi?id=481478 + http://nexus.codehaus.org/snapshots/ + + false + + + false + + + + + ossrh-snapshots + ossrh-snapshots + + false + + + false + + http://oss.sonatype.org/content/repositories/snapshots + + + + sonatype-nexus-snapshots + Sonatype Nexus Snapshots + https://oss.sonatype.org/content/repositories/snapshots + + false + + + false + + + + + + codehaus-snapshots + disable dead 'Codehaus Snapshots' repository, see https://bugs.eclipse.org/bugs/show_bug.cgi?id=481478 + http://nexus.codehaus.org/snapshots/ + + false + + + false + + + + ossrh-snapshots + ossrh-snapshots + + false + + + false + + http://oss.sonatype.org/content/repositories/snapshots + + + sonatype-nexus-snapshots + Sonatype Nexus Snapshots + https://oss.sonatype.org/content/repositories/snapshots + + false + + + false + + + + diff --git a/org.etsi.mts.tdl.parent/top.target b/org.etsi.mts.tdl.parent/top.target new file mode 100644 index 0000000000000000000000000000000000000000..be35dace81e9688810a10b54e26745e018510f0a --- /dev/null +++ b/org.etsi.mts.tdl.parent/top.target @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.TDLan2.feature/.project b/plugins/org.etsi.mts.tdl.TDLan2.feature/.project index 4f4da423063ccf183bd0b934d33cd4adbcd624a3..1c1ef6ec967f3646be18aa8e74aa0448b91be31c 100644 --- a/plugins/org.etsi.mts.tdl.TDLan2.feature/.project +++ b/plugins/org.etsi.mts.tdl.TDLan2.feature/.project @@ -10,8 +10,25 @@ + + org.eclipse.m2e.core.maven2Builder + + + + org.eclipse.m2e.core.maven2Nature org.eclipse.pde.FeatureNature + + + 1681418411807 + + 30 + + org.eclipse.core.resources.regexFilterMatcher + node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__ + + + diff --git a/plugins/org.etsi.mts.tdl.TDLan2.feature/.settings/org.eclipse.m2e.core.prefs b/plugins/org.etsi.mts.tdl.TDLan2.feature/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000000000000000000000000000000000000..f897a7f1cb2389f85fe6381425d29f0a9866fb65 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.TDLan2.feature/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/plugins/org.etsi.mts.tdl.TDLan2.feature/feature.xml b/plugins/org.etsi.mts.tdl.TDLan2.feature/feature.xml index a5bc46d9a63fdccfbffaeebcd3c2169b54bc07e7..b13f4058fe68d12f59bd91e84467f133ee049b4e 100644 --- a/plugins/org.etsi.mts.tdl.TDLan2.feature/feature.xml +++ b/plugins/org.etsi.mts.tdl.TDLan2.feature/feature.xml @@ -308,8 +308,8 @@ any resulting litigation. + - @@ -321,9 +321,8 @@ any resulting litigation. - - - + + + + 4.0.0 + + + org.etsi.mts.tdl + org.etsi.mts.tdl.parent + 1.0.0-SNAPSHOT + ../../org.etsi.mts.tdl.parent + + + + org.etsi.mts.tdl.TDLan2.feature + eclipse-feature + + TDLan2 Legacy Textual Syntax Feature + \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.TDLan2.ide/.classpath b/plugins/org.etsi.mts.tdl.TDLan2.ide/.classpath index 9081d4f7036ea9d3101e3d6e348ec381461872fd..2d7f28c0f9ce0919184b56530bcc44818b37905a 100644 --- a/plugins/org.etsi.mts.tdl.TDLan2.ide/.classpath +++ b/plugins/org.etsi.mts.tdl.TDLan2.ide/.classpath @@ -3,7 +3,7 @@ - + - + diff --git a/plugins/org.etsi.mts.tdl.TDLan2.ide/.project b/plugins/org.etsi.mts.tdl.TDLan2.ide/.project index 2101ff912ab6f5b9606e66e476ff611aa0f135c6..527b618a30dfff0eb9368b33baa61d23f0200a56 100644 --- a/plugins/org.etsi.mts.tdl.TDLan2.ide/.project +++ b/plugins/org.etsi.mts.tdl.TDLan2.ide/.project @@ -25,10 +25,27 @@ + + org.eclipse.m2e.core.maven2Builder + + + + org.eclipse.m2e.core.maven2Nature org.eclipse.xtext.ui.shared.xtextNature org.eclipse.jdt.core.javanature org.eclipse.pde.PluginNature + + + 1681418411816 + + 30 + + org.eclipse.core.resources.regexFilterMatcher + node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__ + + + diff --git a/plugins/org.etsi.mts.tdl.TDLan2.ide/.settings/org.eclipse.jdt.core.prefs b/plugins/org.etsi.mts.tdl.TDLan2.ide/.settings/org.eclipse.jdt.core.prefs index 0c68a61dca867ceb49e79d2402935261ec3e3809..4a7e0723d6efee0525a636a07706c95bbbe13f88 100644 --- a/plugins/org.etsi.mts.tdl.TDLan2.ide/.settings/org.eclipse.jdt.core.prefs +++ b/plugins/org.etsi.mts.tdl.TDLan2.ide/.settings/org.eclipse.jdt.core.prefs @@ -1,7 +1,7 @@ eclipse.preferences.version=1 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 -org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.compliance=11 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error org.eclipse.jdt.core.compiler.problem.enumIdentifier=error -org.eclipse.jdt.core.compiler.source=1.8 +org.eclipse.jdt.core.compiler.source=11 diff --git a/plugins/org.etsi.mts.tdl.TDLan2.ide/.settings/org.eclipse.m2e.core.prefs b/plugins/org.etsi.mts.tdl.TDLan2.ide/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000000000000000000000000000000000000..f897a7f1cb2389f85fe6381425d29f0a9866fb65 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.TDLan2.ide/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/plugins/org.etsi.mts.tdl.TDLan2.ide/META-INF/MANIFEST.MF b/plugins/org.etsi.mts.tdl.TDLan2.ide/META-INF/MANIFEST.MF index e7cedcf780a9f53641ae2e139c144fa9ef6ca66c..d3fa8c7747198783732be84e3afd0166cd5cb7e7 100644 --- a/plugins/org.etsi.mts.tdl.TDLan2.ide/META-INF/MANIFEST.MF +++ b/plugins/org.etsi.mts.tdl.TDLan2.ide/META-INF/MANIFEST.MF @@ -10,7 +10,7 @@ Require-Bundle: org.etsi.mts.tdl.TDLan2, org.eclipse.xtext.ide, org.eclipse.xtext.xbase.ide, org.antlr.runtime;bundle-version="[3.2.0,3.2.1)" -Bundle-RequiredExecutionEnvironment: JavaSE-1.8 +Bundle-RequiredExecutionEnvironment: JavaSE-11 Export-Package: org.etsi.mts.tdl.ide.contentassist.antlr.internal, org.etsi.mts.tdl.ide.contentassist.antlr diff --git a/plugins/org.etsi.mts.tdl.TDLan2.ide/pom.xml b/plugins/org.etsi.mts.tdl.TDLan2.ide/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..6e41c2fcd0e1693f1e362661ddf45df6ffedf912 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.TDLan2.ide/pom.xml @@ -0,0 +1,19 @@ + + + 4.0.0 + + + org.etsi.mts.tdl + org.etsi.mts.tdl.parent + 1.0.0-SNAPSHOT + ../../org.etsi.mts.tdl.parent + + + + org.etsi.mts.tdl.TDLan2.ide + eclipse-plugin + + TDLan2 Legacy Textual Syntax IDE + + \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.TDLan2.ui/.classpath b/plugins/org.etsi.mts.tdl.TDLan2.ui/.classpath index 9081d4f7036ea9d3101e3d6e348ec381461872fd..2d7f28c0f9ce0919184b56530bcc44818b37905a 100644 --- a/plugins/org.etsi.mts.tdl.TDLan2.ui/.classpath +++ b/plugins/org.etsi.mts.tdl.TDLan2.ui/.classpath @@ -3,7 +3,7 @@ - + - + diff --git a/plugins/org.etsi.mts.tdl.TDLan2.ui/.project b/plugins/org.etsi.mts.tdl.TDLan2.ui/.project index b9d18cc16416e0413a0eb6f4ec53e7f477ed1e86..cbc77abab9b67b7cf5f37e2bedf14a61329b0b2e 100644 --- a/plugins/org.etsi.mts.tdl.TDLan2.ui/.project +++ b/plugins/org.etsi.mts.tdl.TDLan2.ui/.project @@ -25,10 +25,27 @@ + + org.eclipse.m2e.core.maven2Builder + + + + org.eclipse.m2e.core.maven2Nature org.eclipse.xtext.ui.shared.xtextNature org.eclipse.jdt.core.javanature org.eclipse.pde.PluginNature + + + 1681418411824 + + 30 + + org.eclipse.core.resources.regexFilterMatcher + node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__ + + + diff --git a/plugins/org.etsi.mts.tdl.TDLan2.ui/.settings/org.eclipse.jdt.core.prefs b/plugins/org.etsi.mts.tdl.TDLan2.ui/.settings/org.eclipse.jdt.core.prefs index 0c68a61dca867ceb49e79d2402935261ec3e3809..4a7e0723d6efee0525a636a07706c95bbbe13f88 100644 --- a/plugins/org.etsi.mts.tdl.TDLan2.ui/.settings/org.eclipse.jdt.core.prefs +++ b/plugins/org.etsi.mts.tdl.TDLan2.ui/.settings/org.eclipse.jdt.core.prefs @@ -1,7 +1,7 @@ eclipse.preferences.version=1 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 -org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.compliance=11 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error org.eclipse.jdt.core.compiler.problem.enumIdentifier=error -org.eclipse.jdt.core.compiler.source=1.8 +org.eclipse.jdt.core.compiler.source=11 diff --git a/plugins/org.etsi.mts.tdl.TDLan2.ui/.settings/org.eclipse.m2e.core.prefs b/plugins/org.etsi.mts.tdl.TDLan2.ui/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000000000000000000000000000000000000..f897a7f1cb2389f85fe6381425d29f0a9866fb65 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.TDLan2.ui/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/plugins/org.etsi.mts.tdl.TDLan2.ui/META-INF/MANIFEST.MF b/plugins/org.etsi.mts.tdl.TDLan2.ui/META-INF/MANIFEST.MF index a3af858873b2456c5ef93002b532ba81b95a1a8e..c3971d2315e7b8ee168d78e4a0dfc9d5e7329aa3 100644 --- a/plugins/org.etsi.mts.tdl.TDLan2.ui/META-INF/MANIFEST.MF +++ b/plugins/org.etsi.mts.tdl.TDLan2.ui/META-INF/MANIFEST.MF @@ -19,7 +19,7 @@ Require-Bundle: org.etsi.mts.tdl.TDLan2, org.eclipse.xtend.lib;bundle-version="2.14.0";resolution:=optional, org.eclipse.xtext.xbase.lib;bundle-version="2.14.0" Import-Package: org.apache.log4j -Bundle-RequiredExecutionEnvironment: JavaSE-1.8 +Bundle-RequiredExecutionEnvironment: JavaSE-11 Export-Package: org.etsi.mts.tdl.ui.contentassist, org.etsi.mts.tdl.TDLan2.ui.internal, org.etsi.mts.tdl.ui.quickfix diff --git a/plugins/org.etsi.mts.tdl.TDLan2.ui/pom.xml b/plugins/org.etsi.mts.tdl.TDLan2.ui/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..1e55d363bb93ac37518a0a3fbe9283d07120b2ff --- /dev/null +++ b/plugins/org.etsi.mts.tdl.TDLan2.ui/pom.xml @@ -0,0 +1,37 @@ + + + 4.0.0 + + + org.etsi.mts.tdl + org.etsi.mts.tdl.parent + 1.0.0-SNAPSHOT + ../../org.etsi.mts.tdl.parent + + + + org.etsi.mts.tdl.TDLan2.ui + eclipse-plugin + + TDLan2 Legacy Textual Syntax UI + + + + + org.apache.maven.plugins + maven-clean-plugin + + + gen-clean + clean + + + + + org.eclipse.xtend + xtend-maven-plugin + + + + \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.TDLan2/.classpath b/plugins/org.etsi.mts.tdl.TDLan2/.classpath index 9081d4f7036ea9d3101e3d6e348ec381461872fd..8d2d853baecdaec195e0c8889a5f1f0416c4c922 100644 --- a/plugins/org.etsi.mts.tdl.TDLan2/.classpath +++ b/plugins/org.etsi.mts.tdl.TDLan2/.classpath @@ -3,7 +3,11 @@ - + + + + + - + diff --git a/plugins/org.etsi.mts.tdl.TDLan2/.launch/TDL.tx and TDL.txi (clean) (2022-12).launch b/plugins/org.etsi.mts.tdl.TDLan2/.launch/TDL.tx and TDL.txi (clean) (2022-12).launch new file mode 100644 index 0000000000000000000000000000000000000000..c4bc9feea2653cc5a1ad45fcf5607a46ebe2a301 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.TDLan2/.launch/TDL.tx and TDL.txi (clean) (2022-12).launch @@ -0,0 +1,465 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/plugins/org.etsi.mts.tdl.TDLan2/.launch/TDLan2 Basic.launch b/plugins/org.etsi.mts.tdl.TDLan2/.launch/TDLan2 Basic.launch index 37d8109eaaf18cb82a1a1f7517fd77d27aea58f5..f5b0a18e30338dd06c3fbff3b608417e99f5e097 100644 --- a/plugins/org.etsi.mts.tdl.TDLan2/.launch/TDLan2 Basic.launch +++ b/plugins/org.etsi.mts.tdl.TDLan2/.launch/TDLan2 Basic.launch @@ -1,38 +1,319 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/plugins/org.etsi.mts.tdl.TDLan2/.launch/TDLan2 Complete.launch b/plugins/org.etsi.mts.tdl.TDLan2/.launch/TDLan2 Complete.launch index ad005d8db25afab26253ac1f5d26752d52ba065b..a9fbabac980a9ca77e996ab2461919fa05d2457e 100644 --- a/plugins/org.etsi.mts.tdl.TDLan2/.launch/TDLan2 Complete.launch +++ b/plugins/org.etsi.mts.tdl.TDLan2/.launch/TDLan2 Complete.launch @@ -1,39 +1,981 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/plugins/org.etsi.mts.tdl.TDLan2/.launch/TOP (1).launch b/plugins/org.etsi.mts.tdl.TDLan2/.launch/TOP (1).launch index 73b72170908b24bba26222b4cf7bb9ed2cf602a5..6fc4305c9b7902e2a6ef95665c53cffbcf46c596 100644 --- a/plugins/org.etsi.mts.tdl.TDLan2/.launch/TOP (1).launch +++ b/plugins/org.etsi.mts.tdl.TDLan2/.launch/TOP (1).launch @@ -13,15 +13,12 @@ - - - - + @@ -35,65 +32,44 @@ - - + - - - - - - - - - - - + - - - - - + - - + - + - - - - - @@ -249,8 +225,7 @@ - - + @@ -335,7 +310,6 @@ - @@ -388,11 +362,8 @@ - - - - + @@ -404,12 +375,6 @@ - - - - - - @@ -418,17 +383,27 @@ - + + + + + + + + + + + @@ -437,6 +412,7 @@ + diff --git a/plugins/org.etsi.mts.tdl.TDLan2/.launch/TOP (light).launch b/plugins/org.etsi.mts.tdl.TDLan2/.launch/TOP (light).launch index 6d71b6fa440456a29855095312b1a0ccccaaf5fc..45be76d523f262c108e81f635aa2a43a84dc73e7 100644 --- a/plugins/org.etsi.mts.tdl.TDLan2/.launch/TOP (light).launch +++ b/plugins/org.etsi.mts.tdl.TDLan2/.launch/TOP (light).launch @@ -1,6 +1,5 @@ - @@ -8,119 +7,93 @@ - + - - - - - + + - + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + - - - - + + - - - + + + - - + + + + + + - - + - + + - + - - - + - + - - + - + - + + - - - - - - + @@ -197,21 +170,29 @@ + - - - + + + + + + + + + + @@ -276,7 +257,8 @@ - + + @@ -292,22 +274,84 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -323,7 +367,9 @@ + + @@ -332,6 +378,8 @@ + + @@ -345,17 +393,26 @@ + + + + + + + + + - + @@ -365,34 +422,41 @@ - - + + + + + + + - + + + + + + + - - - - @@ -405,15 +469,27 @@ - - - - - + + + + + + + + + + + + + + + + + @@ -422,14 +498,9 @@ + - - - - - - @@ -438,13 +509,22 @@ - + + + + + + + + + + @@ -457,11 +537,12 @@ + - + diff --git a/plugins/org.etsi.mts.tdl.TDLan2/.launch/TOP (light-break).launch b/plugins/org.etsi.mts.tdl.TDLan2/.launch/TOP (light-break).launch new file mode 100644 index 0000000000000000000000000000000000000000..22263f85acaa332b55b733d17a0eca7e32637a36 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.TDLan2/.launch/TOP (light-break).launch @@ -0,0 +1,486 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/plugins/org.etsi.mts.tdl.TDLan2/.project b/plugins/org.etsi.mts.tdl.TDLan2/.project index e432f8e7ef878331bd07913180e4003c312f2439..f09b93430c567d922b6a4a72b798e56b2fcf246f 100644 --- a/plugins/org.etsi.mts.tdl.TDLan2/.project +++ b/plugins/org.etsi.mts.tdl.TDLan2/.project @@ -25,10 +25,27 @@ + + org.eclipse.m2e.core.maven2Builder + + + + org.eclipse.m2e.core.maven2Nature org.eclipse.xtext.ui.shared.xtextNature org.eclipse.jdt.core.javanature org.eclipse.pde.PluginNature + + + 1681418408577 + + 30 + + org.eclipse.core.resources.regexFilterMatcher + node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__ + + + diff --git a/plugins/org.etsi.mts.tdl.TDLan2/.settings/org.eclipse.jdt.core.prefs b/plugins/org.etsi.mts.tdl.TDLan2/.settings/org.eclipse.jdt.core.prefs index 0c68a61dca867ceb49e79d2402935261ec3e3809..7adc0fb9a0d32bd6b4e3ce6f305ab7165208865c 100644 --- a/plugins/org.etsi.mts.tdl.TDLan2/.settings/org.eclipse.jdt.core.prefs +++ b/plugins/org.etsi.mts.tdl.TDLan2/.settings/org.eclipse.jdt.core.prefs @@ -1,7 +1,10 @@ eclipse.preferences.version=1 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 -org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=11 +org.eclipse.jdt.core.compiler.compliance=11 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled org.eclipse.jdt.core.compiler.problem.enumIdentifier=error -org.eclipse.jdt.core.compiler.source=1.8 +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning +org.eclipse.jdt.core.compiler.release=enabled +org.eclipse.jdt.core.compiler.source=11 diff --git a/plugins/org.etsi.mts.tdl.TDLan2/.settings/org.eclipse.m2e.core.prefs b/plugins/org.etsi.mts.tdl.TDLan2/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000000000000000000000000000000000000..f897a7f1cb2389f85fe6381425d29f0a9866fb65 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.TDLan2/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/plugins/org.etsi.mts.tdl.TDLan2/META-INF/MANIFEST.MF b/plugins/org.etsi.mts.tdl.TDLan2/META-INF/MANIFEST.MF index 897b13272a233563a2be0af155da3e22a0df3283..e67467a5dd18995cc99f317a6db587ee585ed8b0 100644 --- a/plugins/org.etsi.mts.tdl.TDLan2/META-INF/MANIFEST.MF +++ b/plugins/org.etsi.mts.tdl.TDLan2/META-INF/MANIFEST.MF @@ -14,7 +14,7 @@ Require-Bundle: org.etsi.mts.tdl.model, org.antlr.runtime;bundle-version="[3.2.0,3.2.1)", org.eclipse.xtext.util, org.eclipse.xtend.lib;bundle-version="2.14.0" -Bundle-RequiredExecutionEnvironment: JavaSE-1.8 +Bundle-RequiredExecutionEnvironment: JavaSE-11 Export-Package: org.etsi.mts.tdl.parser.antlr.internal, org.etsi.mts.tdl.scoping, org.etsi.mts.tdl.parser.antlr, diff --git a/plugins/org.etsi.mts.tdl.TDLan2/pom.xml b/plugins/org.etsi.mts.tdl.TDLan2/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..916a77417c6faabb7f3047bf8e2fa8ee5974eca7 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.TDLan2/pom.xml @@ -0,0 +1,172 @@ + + + 4.0.0 + + + org.etsi.mts.tdl + org.etsi.mts.tdl.parent + 1.0.0-SNAPSHOT + ../../org.etsi.mts.tdl.parent + + + + org.etsi.mts.tdl.TDLan2 + eclipse-plugin + + TDLan2 Legacy Textual Syntax + + + + + org.codehaus.mojo + exec-maven-plugin + 3.0.0 + + + mwe2Launcher + generate-sources + + java + + + + + org.eclipse.emf.mwe2.launch.runtime.Mwe2Launcher + + /${project.basedir}/src/org/etsi/mts/tdl/GenerateTDLan2.mwe2 + -p + rootPath=/${project.basedir}/.. + + compile + true + false + + + + org.eclipse.xtext + xtext-antlr-generator + 2.1.1 + + + + + org.eclipse.xtend + xtend-maven-plugin + + + + org.apache.maven.plugins + maven-clean-plugin + + + + ${basedir}/../org.etsi.mts.tdl.TDLan2/src-gen/ + + **/* + + + .gitignore + + + + ${basedir}/../org.etsi.mts.tdl.TDLan2/xtend-gen/ + + **/* + + + .gitignore + + + + + ${basedir}/../org.etsi.mts.tdl.TDLan2.ide/src-gen/ + + **/* + + + .gitignore + + + + ${basedir}/../org.etsi.mts.tdl.TDLan2.ide/xtend-gen/ + + **/* + + + .gitignore + + + + ${basedir}/../org.etsi.mts.tdl.TDLan2.ui/src-gen/ + + **/* + + + .gitignore + + + + ${basedir}/../org.etsi.mts.tdl.TDLan2.ui/xtend-gen/ + + **/* + + + .gitignore + + + + + + + + + + + + org.eclipse.m2e + lifecycle-mapping + 1.0.0 + + + + + + + org.codehaus.mojo + + + exec-maven-plugin + + + [1.2.1,) + + + java + + + + + + + + + + + + + + + diff --git a/plugins/org.etsi.mts.tdl.TDLan2/src/org/etsi/mts/tdl/TDLan2.xtext b/plugins/org.etsi.mts.tdl.TDLan2/src/org/etsi/mts/tdl/TDLan2.xtext index e660ab112f371a60a6f5be8f3e1da909154d116d..ef8ece3e57e5762a54b7f55b6d23d2e13fac0039 100644 --- a/plugins/org.etsi.mts.tdl.TDLan2/src/org/etsi/mts/tdl/TDLan2.xtext +++ b/plugins/org.etsi.mts.tdl.TDLan2/src/org/etsi/mts/tdl/TDLan2.xtext @@ -223,11 +223,11 @@ Block returns tdl::Block: ; LocalExpression returns tdl::LocalExpression: - expression=DataUse ('on' scope=[tdl::ComponentInstance|Identifier])? + expression=DataUse ('on' componentInstance=[tdl::ComponentInstance|Identifier])? ; LocalLoopExpression returns tdl::LocalExpression: - expression=DataUse 'times' ('on' scope=[tdl::ComponentInstance|Identifier])? + expression=DataUse 'times' ('on' componentInstance=[tdl::ComponentInstance|Identifier])? ; diff --git a/plugins/org.etsi.mts.tdl.TPLan2.feature/.project b/plugins/org.etsi.mts.tdl.TPLan2.feature/.project index d4d541d8df7a24decff4ded14b8e9cfb7e50b969..df182152976e7bca4fbf0f2ae0efd662713b6ddd 100644 --- a/plugins/org.etsi.mts.tdl.TPLan2.feature/.project +++ b/plugins/org.etsi.mts.tdl.TPLan2.feature/.project @@ -10,8 +10,25 @@ + + org.eclipse.m2e.core.maven2Builder + + + + org.eclipse.m2e.core.maven2Nature org.eclipse.pde.FeatureNature + + + 1681418408622 + + 30 + + org.eclipse.core.resources.regexFilterMatcher + node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__ + + + diff --git a/plugins/org.etsi.mts.tdl.TPLan2.feature/.settings/org.eclipse.m2e.core.prefs b/plugins/org.etsi.mts.tdl.TPLan2.feature/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000000000000000000000000000000000000..f897a7f1cb2389f85fe6381425d29f0a9866fb65 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.TPLan2.feature/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/plugins/org.etsi.mts.tdl.TPLan2.feature/feature.xml b/plugins/org.etsi.mts.tdl.TPLan2.feature/feature.xml index d76c6f5a75c1ee5d28df24a2de0a8db077da956d..56732a88b91f2cd754b4c8ab1b96f2b15ed6fc44 100644 --- a/plugins/org.etsi.mts.tdl.TPLan2.feature/feature.xml +++ b/plugins/org.etsi.mts.tdl.TPLan2.feature/feature.xml @@ -321,7 +321,6 @@ any resulting litigation. - diff --git a/plugins/org.etsi.mts.tdl.TPLan2.feature/pom.xml b/plugins/org.etsi.mts.tdl.TPLan2.feature/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..4216912a6903caea1d6229845341d6aa162abe92 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.TPLan2.feature/pom.xml @@ -0,0 +1,18 @@ + + + 4.0.0 + + + org.etsi.mts.tdl + org.etsi.mts.tdl.parent + 1.0.0-SNAPSHOT + ../../org.etsi.mts.tdl.parent + + + + org.etsi.mts.tdl.TPLan2.feature + eclipse-feature + + TPLan2 Legacy Textual Syntax Feature + \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.TPLan2.ide/.classpath b/plugins/org.etsi.mts.tdl.TPLan2.ide/.classpath index 9081d4f7036ea9d3101e3d6e348ec381461872fd..2d7f28c0f9ce0919184b56530bcc44818b37905a 100644 --- a/plugins/org.etsi.mts.tdl.TPLan2.ide/.classpath +++ b/plugins/org.etsi.mts.tdl.TPLan2.ide/.classpath @@ -3,7 +3,7 @@ - + - + diff --git a/plugins/org.etsi.mts.tdl.TPLan2.ide/.project b/plugins/org.etsi.mts.tdl.TPLan2.ide/.project index 5c94b2e9d0363a11c88b10073fe7fcd940b700bf..5db93a8194569c7ff3718be4193804ee0dec5db9 100644 --- a/plugins/org.etsi.mts.tdl.TPLan2.ide/.project +++ b/plugins/org.etsi.mts.tdl.TPLan2.ide/.project @@ -25,10 +25,27 @@ + + org.eclipse.m2e.core.maven2Builder + + + + org.eclipse.m2e.core.maven2Nature org.eclipse.xtext.ui.shared.xtextNature org.eclipse.jdt.core.javanature org.eclipse.pde.PluginNature + + + 1681418411833 + + 30 + + org.eclipse.core.resources.regexFilterMatcher + node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__ + + + diff --git a/plugins/org.etsi.mts.tdl.TPLan2.ide/.settings/org.eclipse.jdt.core.prefs b/plugins/org.etsi.mts.tdl.TPLan2.ide/.settings/org.eclipse.jdt.core.prefs index 0c68a61dca867ceb49e79d2402935261ec3e3809..4a7e0723d6efee0525a636a07706c95bbbe13f88 100644 --- a/plugins/org.etsi.mts.tdl.TPLan2.ide/.settings/org.eclipse.jdt.core.prefs +++ b/plugins/org.etsi.mts.tdl.TPLan2.ide/.settings/org.eclipse.jdt.core.prefs @@ -1,7 +1,7 @@ eclipse.preferences.version=1 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 -org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.compliance=11 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error org.eclipse.jdt.core.compiler.problem.enumIdentifier=error -org.eclipse.jdt.core.compiler.source=1.8 +org.eclipse.jdt.core.compiler.source=11 diff --git a/plugins/org.etsi.mts.tdl.TPLan2.ide/.settings/org.eclipse.m2e.core.prefs b/plugins/org.etsi.mts.tdl.TPLan2.ide/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000000000000000000000000000000000000..f897a7f1cb2389f85fe6381425d29f0a9866fb65 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.TPLan2.ide/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/plugins/org.etsi.mts.tdl.TPLan2.ide/META-INF/MANIFEST.MF b/plugins/org.etsi.mts.tdl.TPLan2.ide/META-INF/MANIFEST.MF index 261d44fc46f820b00cd5af03d6bf38424e18ef11..2e86f4b381c994115b351fd35714771fb1c19cc4 100644 --- a/plugins/org.etsi.mts.tdl.TPLan2.ide/META-INF/MANIFEST.MF +++ b/plugins/org.etsi.mts.tdl.TPLan2.ide/META-INF/MANIFEST.MF @@ -10,7 +10,7 @@ Require-Bundle: org.etsi.mts.tdl.TPLan2, org.eclipse.xtext.ide, org.eclipse.xtext.xbase.ide, org.antlr.runtime;bundle-version="[3.2.0,3.2.1)" -Bundle-RequiredExecutionEnvironment: JavaSE-1.8 +Bundle-RequiredExecutionEnvironment: JavaSE-11 Export-Package: org.etsi.mts.tdl.ide.contentassist.antlr.internal, org.etsi.mts.tdl.ide.contentassist.antlr diff --git a/plugins/org.etsi.mts.tdl.TPLan2.ide/pom.xml b/plugins/org.etsi.mts.tdl.TPLan2.ide/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..a18a937fc57f90170a49864fce8cd0e6c86052a5 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.TPLan2.ide/pom.xml @@ -0,0 +1,19 @@ + + + 4.0.0 + + + org.etsi.mts.tdl + org.etsi.mts.tdl.parent + 1.0.0-SNAPSHOT + ../../org.etsi.mts.tdl.parent + + + + org.etsi.mts.tdl.TPLan2.ide + eclipse-plugin + + TPLan2 Legacy Textual Syntax IDE + + \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.TPLan2.ui/.classpath b/plugins/org.etsi.mts.tdl.TPLan2.ui/.classpath index 9081d4f7036ea9d3101e3d6e348ec381461872fd..2d7f28c0f9ce0919184b56530bcc44818b37905a 100644 --- a/plugins/org.etsi.mts.tdl.TPLan2.ui/.classpath +++ b/plugins/org.etsi.mts.tdl.TPLan2.ui/.classpath @@ -3,7 +3,7 @@ - + - + diff --git a/plugins/org.etsi.mts.tdl.TPLan2.ui/.project b/plugins/org.etsi.mts.tdl.TPLan2.ui/.project index 983c11ae52ff46daa1a293d37fd097c09c3b78a6..7c8495a0278763e29afbb9c2a11c94ff5e8bdd7c 100644 --- a/plugins/org.etsi.mts.tdl.TPLan2.ui/.project +++ b/plugins/org.etsi.mts.tdl.TPLan2.ui/.project @@ -25,10 +25,27 @@ + + org.eclipse.m2e.core.maven2Builder + + + + org.eclipse.m2e.core.maven2Nature org.eclipse.xtext.ui.shared.xtextNature org.eclipse.jdt.core.javanature org.eclipse.pde.PluginNature + + + 1681418411841 + + 30 + + org.eclipse.core.resources.regexFilterMatcher + node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__ + + + diff --git a/plugins/org.etsi.mts.tdl.TPLan2.ui/.settings/org.eclipse.jdt.core.prefs b/plugins/org.etsi.mts.tdl.TPLan2.ui/.settings/org.eclipse.jdt.core.prefs index 0c68a61dca867ceb49e79d2402935261ec3e3809..4a7e0723d6efee0525a636a07706c95bbbe13f88 100644 --- a/plugins/org.etsi.mts.tdl.TPLan2.ui/.settings/org.eclipse.jdt.core.prefs +++ b/plugins/org.etsi.mts.tdl.TPLan2.ui/.settings/org.eclipse.jdt.core.prefs @@ -1,7 +1,7 @@ eclipse.preferences.version=1 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 -org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.compliance=11 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error org.eclipse.jdt.core.compiler.problem.enumIdentifier=error -org.eclipse.jdt.core.compiler.source=1.8 +org.eclipse.jdt.core.compiler.source=11 diff --git a/plugins/org.etsi.mts.tdl.TPLan2.ui/.settings/org.eclipse.m2e.core.prefs b/plugins/org.etsi.mts.tdl.TPLan2.ui/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000000000000000000000000000000000000..f897a7f1cb2389f85fe6381425d29f0a9866fb65 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.TPLan2.ui/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/plugins/org.etsi.mts.tdl.TPLan2.ui/META-INF/MANIFEST.MF b/plugins/org.etsi.mts.tdl.TPLan2.ui/META-INF/MANIFEST.MF index 2478158bd41392e79aa83240dee162dfdeb61679..b0c7ead1980505e9631963f61f384f28f176e6d7 100644 --- a/plugins/org.etsi.mts.tdl.TPLan2.ui/META-INF/MANIFEST.MF +++ b/plugins/org.etsi.mts.tdl.TPLan2.ui/META-INF/MANIFEST.MF @@ -19,7 +19,7 @@ Require-Bundle: org.etsi.mts.tdl.TPLan2, org.eclipse.xtend.lib;resolution:=optional, org.eclipse.xtext.xbase.lib Import-Package: org.apache.log4j -Bundle-RequiredExecutionEnvironment: JavaSE-1.8 +Bundle-RequiredExecutionEnvironment: JavaSE-11 Export-Package: org.etsi.mts.tdl.ui.contentassist, org.etsi.mts.tdl.ui.quickfix, org.etsi.mts.tdl.TPLan2.ui.internal diff --git a/plugins/org.etsi.mts.tdl.TPLan2.ui/pom.xml b/plugins/org.etsi.mts.tdl.TPLan2.ui/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..14355e3e16ee068bee887515007ebd5553014cca --- /dev/null +++ b/plugins/org.etsi.mts.tdl.TPLan2.ui/pom.xml @@ -0,0 +1,37 @@ + + + 4.0.0 + + + org.etsi.mts.tdl + org.etsi.mts.tdl.parent + 1.0.0-SNAPSHOT + ../../org.etsi.mts.tdl.parent + + + + org.etsi.mts.tdl.TPLan2.ui + eclipse-plugin + + TPLan2 Legacy Textual Syntax UI + + + + + org.apache.maven.plugins + maven-clean-plugin + + + gen-clean + clean + + + + + org.eclipse.xtend + xtend-maven-plugin + + + + \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.TPLan2/.classpath b/plugins/org.etsi.mts.tdl.TPLan2/.classpath index 9081d4f7036ea9d3101e3d6e348ec381461872fd..8d2d853baecdaec195e0c8889a5f1f0416c4c922 100644 --- a/plugins/org.etsi.mts.tdl.TPLan2/.classpath +++ b/plugins/org.etsi.mts.tdl.TPLan2/.classpath @@ -3,7 +3,11 @@ - + + + + + - + diff --git a/plugins/org.etsi.mts.tdl.TPLan2/.project b/plugins/org.etsi.mts.tdl.TPLan2/.project index 8d68317f487e1b2374072ea1fdb10408bdf23a81..321757ca3c140e363372d88af1b694149bfa5dda 100644 --- a/plugins/org.etsi.mts.tdl.TPLan2/.project +++ b/plugins/org.etsi.mts.tdl.TPLan2/.project @@ -25,10 +25,27 @@ + + org.eclipse.m2e.core.maven2Builder + + + + org.eclipse.m2e.core.maven2Nature org.eclipse.xtext.ui.shared.xtextNature org.eclipse.jdt.core.javanature org.eclipse.pde.PluginNature + + + 1681418408616 + + 30 + + org.eclipse.core.resources.regexFilterMatcher + node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__ + + + diff --git a/plugins/org.etsi.mts.tdl.TPLan2/.settings/org.eclipse.jdt.core.prefs b/plugins/org.etsi.mts.tdl.TPLan2/.settings/org.eclipse.jdt.core.prefs index 0c68a61dca867ceb49e79d2402935261ec3e3809..7adc0fb9a0d32bd6b4e3ce6f305ab7165208865c 100644 --- a/plugins/org.etsi.mts.tdl.TPLan2/.settings/org.eclipse.jdt.core.prefs +++ b/plugins/org.etsi.mts.tdl.TPLan2/.settings/org.eclipse.jdt.core.prefs @@ -1,7 +1,10 @@ eclipse.preferences.version=1 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 -org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=11 +org.eclipse.jdt.core.compiler.compliance=11 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled org.eclipse.jdt.core.compiler.problem.enumIdentifier=error -org.eclipse.jdt.core.compiler.source=1.8 +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning +org.eclipse.jdt.core.compiler.release=enabled +org.eclipse.jdt.core.compiler.source=11 diff --git a/plugins/org.etsi.mts.tdl.TPLan2/.settings/org.eclipse.m2e.core.prefs b/plugins/org.etsi.mts.tdl.TPLan2/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000000000000000000000000000000000000..f897a7f1cb2389f85fe6381425d29f0a9866fb65 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.TPLan2/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/plugins/org.etsi.mts.tdl.TPLan2/META-INF/MANIFEST.MF b/plugins/org.etsi.mts.tdl.TPLan2/META-INF/MANIFEST.MF index 6f664dcc0ff985b990315a174bdd9eb99afb759d..9b400e1f4634b5b641ad3c910dd9608c933bc2d2 100644 --- a/plugins/org.etsi.mts.tdl.TPLan2/META-INF/MANIFEST.MF +++ b/plugins/org.etsi.mts.tdl.TPLan2/META-INF/MANIFEST.MF @@ -14,7 +14,7 @@ Require-Bundle: org.etsi.mts.tdl.model, org.eclipse.xtend.lib, org.antlr.runtime;bundle-version="[3.2.0,3.2.1)", org.etsi.mts.tdl.common -Bundle-RequiredExecutionEnvironment: JavaSE-1.8 +Bundle-RequiredExecutionEnvironment: JavaSE-11 Export-Package: org.etsi.mts.tdl.scoping, org.etsi.mts.tdl, org.etsi.mts.tdl.validation, diff --git a/plugins/org.etsi.mts.tdl.TPLan2/pom.xml b/plugins/org.etsi.mts.tdl.TPLan2/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..c948d68412090d876473e5e31c9badee89d57955 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.TPLan2/pom.xml @@ -0,0 +1,172 @@ + + + 4.0.0 + + + org.etsi.mts.tdl + org.etsi.mts.tdl.parent + 1.0.0-SNAPSHOT + ../../org.etsi.mts.tdl.parent + + + + org.etsi.mts.tdl.TPLan2 + eclipse-plugin + + TPLan2 Legacy Textual Syntax + + + + + org.codehaus.mojo + exec-maven-plugin + 3.0.0 + + + mwe2Launcher + generate-sources + + java + + + + + org.eclipse.emf.mwe2.launch.runtime.Mwe2Launcher + + /${project.basedir}/src/org/etsi/mts/tdl/GenerateTPLan2.mwe2 + -p + rootPath=/${project.basedir}/.. + + compile + true + false + + + + org.eclipse.xtext + xtext-antlr-generator + 2.1.1 + + + + + org.eclipse.xtend + xtend-maven-plugin + + + + org.apache.maven.plugins + maven-clean-plugin + + + + ${basedir}/../org.etsi.mts.tdl.TPLan2/src-gen/ + + **/* + + + .gitignore + + + + ${basedir}/../org.etsi.mts.tdl.TPLan2/xtend-gen/ + + **/* + + + .gitignore + + + + + ${basedir}/../org.etsi.mts.tdl.TPLan2.ide/src-gen/ + + **/* + + + .gitignore + + + + ${basedir}/../org.etsi.mts.tdl.TPLan2.ide/xtend-gen/ + + **/* + + + .gitignore + + + + ${basedir}/../org.etsi.mts.tdl.TPLan2.ui/src-gen/ + + **/* + + + .gitignore + + + + ${basedir}/../org.etsi.mts.tdl.TPLan2.ui/xtend-gen/ + + **/* + + + .gitignore + + + + + + + + + + + + org.eclipse.m2e + lifecycle-mapping + 1.0.0 + + + + + + + org.codehaus.mojo + + + exec-maven-plugin + + + [1.2.1,) + + + java + + + + + + + + + + + + + + + diff --git a/plugins/org.etsi.mts.tdl.TPLan2/src/org/etsi/mts/tdl/scoping/TPLan2ScopeProvider.java b/plugins/org.etsi.mts.tdl.TPLan2/src/org/etsi/mts/tdl/scoping/TPLan2ScopeProvider.java index dcdfc833869757191fe667c6da886de810118a8c..ad4217c5e67845a2543d77fe8132c93f2de021c5 100644 --- a/plugins/org.etsi.mts.tdl.TPLan2/src/org/etsi/mts/tdl/scoping/TPLan2ScopeProvider.java +++ b/plugins/org.etsi.mts.tdl.TPLan2/src/org/etsi/mts/tdl/scoping/TPLan2ScopeProvider.java @@ -5,57 +5,56 @@ package org.etsi.mts.tdl.scoping; import java.util.ArrayList; import java.util.Collections; +import java.util.Iterator; import java.util.List; import org.eclipse.emf.common.util.BasicEList; -import org.eclipse.emf.common.util.EList; import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.EReference; -import org.eclipse.emf.ecore.util.EcoreUtil; import org.eclipse.xtext.EcoreUtil2; import org.eclipse.xtext.naming.IQualifiedNameConverter; -import org.eclipse.xtext.naming.QualifiedName; import org.eclipse.xtext.scoping.IScope; import org.eclipse.xtext.scoping.Scopes; -import org.eclipse.xtext.scoping.impl.AbstractDeclarativeScopeProvider; -import org.etsi.mts.tdl.DataInstanceUse; -import org.etsi.mts.tdl.DataUse; import org.etsi.mts.tdl.Element; -import org.etsi.mts.tdl.ElementImport; -import org.etsi.mts.tdl.GateInstance; -import org.etsi.mts.tdl.GateReference; -import org.etsi.mts.tdl.MemberAssignment; -import org.etsi.mts.tdl.MemberReference; -import org.etsi.mts.tdl.NamedElement; -import org.etsi.mts.tdl.Package; -import org.etsi.mts.tdl.PackageableElement; import org.etsi.mts.tdl.Parameter; -import org.etsi.mts.tdl.ParameterBinding; -import org.etsi.mts.tdl.StructuredDataInstance; import org.etsi.mts.tdl.StructuredDataType; import org.etsi.mts.tdl.structuredobjectives.Content; import org.etsi.mts.tdl.structuredobjectives.ContentReference; -import org.etsi.mts.tdl.structuredobjectives.DataReference; -import org.etsi.mts.tdl.structuredobjectives.EventOccurrenceSpecification; -import org.etsi.mts.tdl.structuredobjectives.EventSequence; import org.etsi.mts.tdl.structuredobjectives.LiteralValue; import org.etsi.mts.tdl.structuredobjectives.LiteralValueReference; import org.etsi.mts.tdl.structuredobjectives.StructuredTestObjective; import org.etsi.mts.tdl.structuredobjectives.VariantBinding; -import com.google.common.base.Function; import com.google.inject.Inject; /** * This class contains custom scoping description. * - * See https://www.eclipse.org/Xtext/documentation/303_runtime_concepts.html#scoping + * See + * https://www.eclipse.org/Xtext/documentation/303_runtime_concepts.html#scoping * on how and when to use it. */ public class TPLan2ScopeProvider extends TDLScopeProvider { @Inject private IQualifiedNameConverter qualifiedNameConverter; + public Iterator getContainerContents(Element context) { + if (context instanceof org.etsi.mts.tdl.structuredobjectives.Element) { + StructuredTestObjective to = ((org.etsi.mts.tdl.structuredobjectives.Element) context).getTestObjective(); + if (to == null) + return Collections.emptyIterator(); + return to.eAllContents(); + } + return super.getContainerContents(context); + } + + public List getContainerParameters(Element context) { + if (context instanceof org.etsi.mts.tdl.structuredobjectives.Element) { + return new BasicEList<>(); + } + return super.getContainerParameters(context); + } + @Override public IScope getScope(EObject context, EReference reference) { // if (PackageableElement.class.isAssignableFrom(reference.getEType().getInstanceClass()) @@ -64,17 +63,21 @@ public class TPLan2ScopeProvider extends TDLScopeProvider { // IScope scope = Scopes.scopeFor(elements); // return scope; // } - + if (Parameter.class.isAssignableFrom(reference.getEType().getInstanceClass())) { if (context instanceof Content) { if (context.eContainer() instanceof LiteralValue) { - if (((LiteralValue)context.eContainer()).getDataType() instanceof StructuredDataType) { - IScope scope = Scopes.scopeFor(((StructuredDataType)((LiteralValue)context.eContainer()).getDataType()).allMembers()); + if (((LiteralValue) context.eContainer()).getDataType() instanceof StructuredDataType) { + IScope scope = Scopes + .scopeFor(((StructuredDataType) ((LiteralValue) context.eContainer()).getDataType()) + .allMembers()); return scope; } } else if (context.eContainer() instanceof Content) { - if (((Content)context.eContainer()).getMember().getDataType() instanceof StructuredDataType) { - IScope scope = Scopes.scopeFor(((StructuredDataType)((Content)context.eContainer()).getMember().getDataType()).allMembers()); + if (((Content) context.eContainer()).getMember().getDataType() instanceof StructuredDataType) { + IScope scope = Scopes.scopeFor( + ((StructuredDataType) ((Content) context.eContainer()).getMember().getDataType()) + .allMembers()); return scope; } } @@ -85,15 +88,17 @@ public class TPLan2ScopeProvider extends TDLScopeProvider { StructuredTestObjective sto = EcoreUtil2.getContainerOfType(context, StructuredTestObjective.class); List literalValues = new ArrayList<>(); if (sto.getInitialConditions() != null) { - literalValues.addAll(EcoreUtil2.getAllContentsOfType(sto.getInitialConditions(), LiteralValue.class)); + literalValues + .addAll(EcoreUtil2.getAllContentsOfType(sto.getInitialConditions(), LiteralValue.class)); } if (sto.getExpectedBehaviour() != null) { - literalValues.addAll(EcoreUtil2.getAllContentsOfType(sto.getExpectedBehaviour(), LiteralValue.class)); + literalValues + .addAll(EcoreUtil2.getAllContentsOfType(sto.getExpectedBehaviour(), LiteralValue.class)); } if (sto.getFinalConditions() != null) { literalValues.addAll(EcoreUtil2.getAllContentsOfType(sto.getFinalConditions(), LiteralValue.class)); } - + IScope scope = Scopes.scopeFor(literalValues); return scope; } else if (context instanceof ContentReference) { @@ -104,7 +109,7 @@ public class TPLan2ScopeProvider extends TDLScopeProvider { } } else { } - + IScope scope = super.getScope(context, reference); return scope; } diff --git a/plugins/org.etsi.mts.tdl.asn2tdl/.classpath b/plugins/org.etsi.mts.tdl.asn2tdl/.classpath index 0fae5bdae99e885dc916ad630dd17c6ce5b787d5..55ba7d0360dd1041daacbd0193fab6d15a204fb8 100644 --- a/plugins/org.etsi.mts.tdl.asn2tdl/.classpath +++ b/plugins/org.etsi.mts.tdl.asn2tdl/.classpath @@ -1,13 +1,9 @@ - - - - - + - + diff --git a/plugins/org.etsi.mts.tdl.asn2tdl/.project b/plugins/org.etsi.mts.tdl.asn2tdl/.project index 993d95b2175a747a81608bb79ba213ba21c51944..b615db44daeedd64f3d9a43336f199ab857aa268 100644 --- a/plugins/org.etsi.mts.tdl.asn2tdl/.project +++ b/plugins/org.etsi.mts.tdl.asn2tdl/.project @@ -20,9 +20,26 @@ + + org.eclipse.m2e.core.maven2Builder + + + + org.eclipse.m2e.core.maven2Nature org.eclipse.pde.PluginNature org.eclipse.jdt.core.javanature + + + 1681418411852 + + 30 + + org.eclipse.core.resources.regexFilterMatcher + node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__ + + + diff --git a/plugins/org.etsi.mts.tdl.asn2tdl/.settings/org.eclipse.core.resources.prefs b/plugins/org.etsi.mts.tdl.asn2tdl/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000000000000000000000000000000000000..99f26c0203a7844de00dbfc56e6a35d8ed3c022c --- /dev/null +++ b/plugins/org.etsi.mts.tdl.asn2tdl/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/plugins/org.etsi.mts.tdl.asn2tdl/.settings/org.eclipse.jdt.core.prefs b/plugins/org.etsi.mts.tdl.asn2tdl/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000000000000000000000000000000000000..7adc0fb9a0d32bd6b4e3ce6f305ab7165208865c --- /dev/null +++ b/plugins/org.etsi.mts.tdl.asn2tdl/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,10 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=11 +org.eclipse.jdt.core.compiler.compliance=11 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning +org.eclipse.jdt.core.compiler.release=enabled +org.eclipse.jdt.core.compiler.source=11 diff --git a/plugins/org.etsi.mts.tdl.asn2tdl/.settings/org.eclipse.m2e.core.prefs b/plugins/org.etsi.mts.tdl.asn2tdl/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000000000000000000000000000000000000..f897a7f1cb2389f85fe6381425d29f0a9866fb65 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.asn2tdl/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/plugins/org.etsi.mts.tdl.asn2tdl/META-INF/MANIFEST.MF b/plugins/org.etsi.mts.tdl.asn2tdl/META-INF/MANIFEST.MF index 33d5376a93e05a1d75ce59f3e0624706754a56a1..407d3443e36ffa92436b6874a07d2f9d8cdd6603 100644 --- a/plugins/org.etsi.mts.tdl.asn2tdl/META-INF/MANIFEST.MF +++ b/plugins/org.etsi.mts.tdl.asn2tdl/META-INF/MANIFEST.MF @@ -15,4 +15,3 @@ Export-Package: org.etsi.mts.tdl.asn2tdl Bundle-ClassPath: lib/antlr-2.7.7.jar, lib/asn1bean-compiler-1.12.1-SNAPSHOT.jar, . -Bundle-RequiredExecutionEnvironment: JavaSE-1.8 diff --git a/plugins/org.etsi.mts.tdl.asn2tdl/build.properties b/plugins/org.etsi.mts.tdl.asn2tdl/build.properties index aa16fd967c34df8b357fc5a251399b7b41984c21..0f7a4435856cebcafeeab2ecada1a3f76f718d2e 100644 --- a/plugins/org.etsi.mts.tdl.asn2tdl/build.properties +++ b/plugins/org.etsi.mts.tdl.asn2tdl/build.properties @@ -1,5 +1,5 @@ source.. = src/ -output.. = bin/ +output.. = target/classes/ bin.includes = META-INF/,\ .,\ lib/,\ diff --git a/plugins/org.etsi.mts.tdl.asn2tdl/pom.xml b/plugins/org.etsi.mts.tdl.asn2tdl/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..a48d432b8ded7177d1271c5b52f43575ca9b3dc8 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.asn2tdl/pom.xml @@ -0,0 +1,19 @@ + + 4.0.0 + + org.etsi.mts.tdl + org.etsi.mts.tdl.parent + 1.0.0-SNAPSHOT + ../../org.etsi.mts.tdl.parent + + + org.etsi.mts.tdl.asn2tdl + eclipse-plugin + + + + maven-compiler-plugin + + + + \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.common/.classpath b/plugins/org.etsi.mts.tdl.common/.classpath index eca7bdba8f03f22510b7980a94dbfe10c16c0901..685a6999c9acba0d0158b0929d7a4d384644452e 100644 --- a/plugins/org.etsi.mts.tdl.common/.classpath +++ b/plugins/org.etsi.mts.tdl.common/.classpath @@ -1,7 +1,11 @@ - + + + + + - + diff --git a/plugins/org.etsi.mts.tdl.common/.project b/plugins/org.etsi.mts.tdl.common/.project index e3eceb4c269e1dac398005d668d11f8dcda030c8..c5af8fce1eaf228e19a768658defc5edd9f75a02 100644 --- a/plugins/org.etsi.mts.tdl.common/.project +++ b/plugins/org.etsi.mts.tdl.common/.project @@ -20,9 +20,26 @@ + + org.eclipse.m2e.core.maven2Builder + + + + org.eclipse.m2e.core.maven2Nature org.eclipse.pde.PluginNature org.eclipse.jdt.core.javanature + + + 1681412457721 + + 30 + + org.eclipse.core.resources.regexFilterMatcher + node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__ + + + diff --git a/plugins/org.etsi.mts.tdl.common/.settings/org.eclipse.core.resources.prefs b/plugins/org.etsi.mts.tdl.common/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000000000000000000000000000000000000..99f26c0203a7844de00dbfc56e6a35d8ed3c022c --- /dev/null +++ b/plugins/org.etsi.mts.tdl.common/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/plugins/org.etsi.mts.tdl.common/.settings/org.eclipse.jdt.core.prefs b/plugins/org.etsi.mts.tdl.common/.settings/org.eclipse.jdt.core.prefs index c872bd038503c9d8d28340ed4e64db93110da44b..a58ebdcad300d0a088dcbd63941d2c89e78a4f98 100644 --- a/plugins/org.etsi.mts.tdl.common/.settings/org.eclipse.jdt.core.prefs +++ b/plugins/org.etsi.mts.tdl.common/.settings/org.eclipse.jdt.core.prefs @@ -1,10 +1,15 @@ eclipse.preferences.version=1 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 -org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate +org.eclipse.jdt.core.compiler.codegen.targetPlatform=11 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=11 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate org.eclipse.jdt.core.compiler.problem.assertIdentifier=error org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled org.eclipse.jdt.core.compiler.problem.enumIdentifier=error org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning -org.eclipse.jdt.core.compiler.release=disabled -org.eclipse.jdt.core.compiler.source=1.8 +org.eclipse.jdt.core.compiler.release=enabled +org.eclipse.jdt.core.compiler.source=11 diff --git a/plugins/org.etsi.mts.tdl.common/.settings/org.eclipse.m2e.core.prefs b/plugins/org.etsi.mts.tdl.common/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000000000000000000000000000000000000..f897a7f1cb2389f85fe6381425d29f0a9866fb65 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.common/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/plugins/org.etsi.mts.tdl.common/META-INF/MANIFEST.MF b/plugins/org.etsi.mts.tdl.common/META-INF/MANIFEST.MF index 02d714c47cb323fa97c618847b8a5dcc5b4a7da8..fd3a49539fa5085f0a0c69483d2ffded694b893a 100644 --- a/plugins/org.etsi.mts.tdl.common/META-INF/MANIFEST.MF +++ b/plugins/org.etsi.mts.tdl.common/META-INF/MANIFEST.MF @@ -4,8 +4,11 @@ Bundle-Name: Common Bundle-SymbolicName: org.etsi.mts.tdl.common Bundle-Version: 1.0.0.qualifier Automatic-Module-Name: org.etsi.mts.tdl.common -Bundle-RequiredExecutionEnvironment: JavaSE-1.8 Require-Bundle: org.eclipse.xtext, - org.etsi.mts.tdl.model -Export-Package: org.etsi.mts.tdl.scoping, + org.etsi.mts.tdl.model, + org.eclipse.core.runtime, + org.eclipse.osgi +Export-Package: org.etsi.mts.tdl, + org.etsi.mts.tdl.resources, + org.etsi.mts.tdl.scoping, org.etsi.mts.tdl.transform diff --git a/plugins/org.etsi.mts.tdl.common/build.properties b/plugins/org.etsi.mts.tdl.common/build.properties index 34d2e4d2dad529ceaeb953bfcdb63c51d69ffed2..56d776555503f2905e0642aae5be7938371a965d 100644 --- a/plugins/org.etsi.mts.tdl.common/build.properties +++ b/plugins/org.etsi.mts.tdl.common/build.properties @@ -1,4 +1,4 @@ source.. = src/ -output.. = bin/ +output.. = target/classes/ bin.includes = META-INF/,\ . diff --git a/plugins/org.etsi.mts.tdl.common/pom.xml b/plugins/org.etsi.mts.tdl.common/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..a67f13dd9a8547ddcaa8ba05e3b5bc8d893713ab --- /dev/null +++ b/plugins/org.etsi.mts.tdl.common/pom.xml @@ -0,0 +1,19 @@ + + 4.0.0 + + org.etsi.mts.tdl + org.etsi.mts.tdl.parent + 1.0.0-SNAPSHOT + ../../org.etsi.mts.tdl.parent + + + org.etsi.mts.tdl.common + eclipse-plugin + + + + maven-compiler-plugin + + + + \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.common/src/org/etsi/mts/tdl/EString2XtextConverter.java b/plugins/org.etsi.mts.tdl.common/src/org/etsi/mts/tdl/EString2XtextConverter.java new file mode 100644 index 0000000000000000000000000000000000000000..cc19c22c73c0777c234b179e89d8f2312a53e5bc --- /dev/null +++ b/plugins/org.etsi.mts.tdl.common/src/org/etsi/mts/tdl/EString2XtextConverter.java @@ -0,0 +1,24 @@ +package org.etsi.mts.tdl; + +import org.eclipse.xtext.common.services.Ecore2XtextTerminalConverters; +import org.eclipse.xtext.conversion.IValueConverter; +import org.eclipse.xtext.conversion.ValueConverter; +import org.eclipse.xtext.conversion.impl.AbstractNullSafeConverter; +import org.eclipse.xtext.nodemodel.INode; + +public class EString2XtextConverter extends Ecore2XtextTerminalConverters { + @ValueConverter(rule = "EString") + public IValueConverter EString() { + return new AbstractNullSafeConverter() { + @Override + protected String internalToValue(String string, INode node) { + return STRING().toValue(string, node); + } + + @Override + protected String internalToString(String value) { + return STRING().toString(value); + } + }; + } +} \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.common/src/org/etsi/mts/tdl/TDLValueConverterService.java b/plugins/org.etsi.mts.tdl.common/src/org/etsi/mts/tdl/TDLValueConverterService.java new file mode 100644 index 0000000000000000000000000000000000000000..9a6a56fec45d7ab8473de775f5692d3f2052e8c7 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.common/src/org/etsi/mts/tdl/TDLValueConverterService.java @@ -0,0 +1,82 @@ +package org.etsi.mts.tdl; + +import org.eclipse.xtext.conversion.IValueConverter; +import org.eclipse.xtext.conversion.ValueConverter; +import org.eclipse.xtext.conversion.ValueConverterException; +import org.eclipse.xtext.conversion.impl.AbstractValueConverter; +import org.eclipse.xtext.nodemodel.INode; + +public class TDLValueConverterService extends EString2XtextConverter { + + private IdentifierValueConverter identifierValueConverter; + private QIdentifierValueConverter qidentifierValueConverter; + + @ValueConverter(rule = "org.etsi.mts.tdl.TDLtx.Identifier") + public IValueConverter Identifier() { + if (this.identifierValueConverter == null) + this.identifierValueConverter = new IdentifierValueConverter(this.ID()); + return this.identifierValueConverter; + } + + @ValueConverter(rule = "Identifier") + public IValueConverter TDLtxIdentifier() { + return this.Identifier(); + } + + @ValueConverter(rule = "org.etsi.mts.tdl.TDLtx.QIdentifier") + public IValueConverter QIdentifier() { + if (this.qidentifierValueConverter == null) + this.qidentifierValueConverter = new QIdentifierValueConverter(this.ID()); + return this.qidentifierValueConverter; + } + + @ValueConverter(rule = "QIdentifier") + public IValueConverter TDLtxQIdentifier() { + return this.QIdentifier(); + } +} + +class IdentifierValueConverter extends AbstractValueConverter { + private IValueConverter idValueConverter; + + public IdentifierValueConverter(IValueConverter iValueConverter) { + this.idValueConverter = iValueConverter; + } + + @Override + public String toValue(String string, INode node) throws ValueConverterException { + return this.idValueConverter.toValue(string, node); + } + + @Override + public String toString(String value) throws ValueConverterException { + return this.idValueConverter.toString(value); + } + +} + + +class QIdentifierValueConverter extends IdentifierValueConverter { + + public QIdentifierValueConverter(IValueConverter iValueConverter) { + super(iValueConverter); + } + + @Override + public String toValue(String string, INode node) throws ValueConverterException { + String[] parts = string.split("\\."); + for (int i = 0; i < parts.length; i++) { + parts[i] = super.toValue(parts[i], node); + } + return String.join(".", parts); + } + + @Override + public String toString(String value) throws ValueConverterException { + String[] parts = value.split("\\."); + for (int i = 0; i < parts.length; i++) { + parts[i] = super.toString(parts[i]); + } + return String.join(".", parts); + } +} \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.common/src/org/etsi/mts/tdl/resources/ResourceHandler.java b/plugins/org.etsi.mts.tdl.common/src/org/etsi/mts/tdl/resources/ResourceHandler.java new file mode 100644 index 0000000000000000000000000000000000000000..59f0de159fc1f44ad87bde96606caa471d88e1dd --- /dev/null +++ b/plugins/org.etsi.mts.tdl.common/src/org/etsi/mts/tdl/resources/ResourceHandler.java @@ -0,0 +1,71 @@ +package org.etsi.mts.tdl.resources; + +import java.io.File; +import java.io.IOException; +import java.net.URI; +import java.net.URISyntaxException; +import java.net.URL; +import java.util.Enumeration; + +import org.eclipse.core.runtime.Platform; +import org.osgi.framework.Bundle; + +public class ResourceHandler { + public static URI getSourceUri(Class c, String bundleName, String source) throws URISyntaxException { + URI uri = new File(source).toURI(); + //FIXED: also for TO? -> should work with all now + if (Platform.isRunning()) { + //System.out.println("Running as plugin..."); + Bundle bundle = Platform.getBundle(bundleName); + URL url = bundle.getEntry(source); + uri = url.toURI(); + } else { + //WS + //TODO: this does not work with exported JAR + +// String binPath=this.getClass().getProtectionDomain().getCodeSource().getLocation().getPath(); +// String projectPath = new File(binPath).getParent(); +// uri = new File(projectPath+"/"+source).toURI(); + uri = getResourceFile(c, source); + } + return uri; + } + + //TODO: simplify + public static URI getResourceFile(Class c, String relativePath) + { + URI uri = null; + URL location = c.getProtectionDomain().getCodeSource().getLocation(); + String codeLocation = location.toString(); + try{ + if (codeLocation.endsWith(".jar")) { + //Call from jar + //DONE: this does not work.. -> fixed + //should get file out of jar / bundle instead + //TODO: simplify and merge with above, test other cases + //TODO: generalise for use in other cases, e.g. for docx and others? + try { + Enumeration resources = ClassLoader.getSystemResources(relativePath.replaceAll("epsilon/", "")); + URL nextElement = resources.nextElement(); + uri = nextElement.toURI(); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } +// Path path = Paths.get(location.toURI()).resolve("../classes/" + relativePath.replaceAll("epsilon/", "")).normalize(); +// file = path.toFile(); +// System.out.println("File: "+file); + }else{ + //Call from IDE + //TODO: remove hardcoded container directory filtering + URL resource = c.getClassLoader().getResource(relativePath.replaceAll("(epsilon|resource)/", "")); + uri = resource.toURI(); +// file = new File(resource.getPath()); + } + }catch(URISyntaxException ex){ + ex.printStackTrace(); + } + return uri; + } + +} diff --git a/plugins/org.etsi.mts.tdl.common/src/org/etsi/mts/tdl/scoping/TDLQualifiedNameConverter.java b/plugins/org.etsi.mts.tdl.common/src/org/etsi/mts/tdl/scoping/TDLQualifiedNameConverter.java new file mode 100644 index 0000000000000000000000000000000000000000..6709fd63630dbea9456bfd374747cb1458691efa --- /dev/null +++ b/plugins/org.etsi.mts.tdl.common/src/org/etsi/mts/tdl/scoping/TDLQualifiedNameConverter.java @@ -0,0 +1,18 @@ +package org.etsi.mts.tdl.scoping; + +import org.eclipse.xtext.naming.IQualifiedNameConverter; +import org.eclipse.xtext.naming.QualifiedName; + +public class TDLQualifiedNameConverter extends IQualifiedNameConverter.DefaultImpl{ + @Override + public String toString(QualifiedName qualifiedName) { + // TODO not sure why this was for but e.g. imported packages should use qualified names + /* + if (qualifiedName == null) + throw new IllegalArgumentException("Qualified name cannot be null"); + return qualifiedName.getLastSegment().toString(); + */ + return super.toString(qualifiedName); + } + +} diff --git a/plugins/org.etsi.mts.tdl.common/src/org/etsi/mts/tdl/scoping/TDLScopeProvider.java b/plugins/org.etsi.mts.tdl.common/src/org/etsi/mts/tdl/scoping/TDLScopeProvider.java index f026bdb9d89c22fdb243f0a686b0e1077abc1e65..f79f66f25e2bae8f03d92dd6a4c156c30651df42 100644 --- a/plugins/org.etsi.mts.tdl.common/src/org/etsi/mts/tdl/scoping/TDLScopeProvider.java +++ b/plugins/org.etsi.mts.tdl.common/src/org/etsi/mts/tdl/scoping/TDLScopeProvider.java @@ -1,6 +1,10 @@ package org.etsi.mts.tdl.scoping; +import java.util.ArrayList; +import java.util.Collections; import java.util.HashSet; +import java.util.Iterator; +import java.util.List; import java.util.Set; import org.eclipse.emf.common.util.BasicEList; @@ -17,7 +21,6 @@ import org.eclipse.xtext.scoping.Scopes; import org.eclipse.xtext.scoping.impl.AbstractDeclarativeScopeProvider; import org.etsi.mts.tdl.Action; import org.etsi.mts.tdl.ActionReference; -import org.etsi.mts.tdl.Assignment; import org.etsi.mts.tdl.Behaviour; import org.etsi.mts.tdl.Block; import org.etsi.mts.tdl.CollectionDataType; @@ -51,6 +54,7 @@ import org.etsi.mts.tdl.PackageableElement; import org.etsi.mts.tdl.Parameter; import org.etsi.mts.tdl.ParameterBinding; import org.etsi.mts.tdl.ParameterMapping; +import org.etsi.mts.tdl.PredefinedFunctionCall; import org.etsi.mts.tdl.ProcedureCall; import org.etsi.mts.tdl.ProcedureSignature; import org.etsi.mts.tdl.SimpleDataInstance; @@ -71,8 +75,12 @@ import org.etsi.mts.tdl.tdlPackage; import org.etsi.mts.tdl.extendedconfigurations.ComponentReference; import org.etsi.mts.tdl.extendedconfigurations.ExtendedGateReference; import org.etsi.mts.tdl.extendedconfigurations.TestConfigurationInstance; +import org.etsi.mts.tdl.structuredobjectives.Content; +import org.etsi.mts.tdl.structuredobjectives.ContentReference; import org.etsi.mts.tdl.structuredobjectives.EntityReference; import org.etsi.mts.tdl.structuredobjectives.EventSequence; +import org.etsi.mts.tdl.structuredobjectives.LiteralValue; +import org.etsi.mts.tdl.structuredobjectives.LiteralValueReference; import org.etsi.mts.tdl.structuredobjectives.StructuredTestObjective; import com.google.common.base.Function; @@ -88,6 +96,20 @@ import com.google.inject.Inject; public class TDLScopeProvider extends AbstractDeclarativeScopeProvider { @Inject private IQualifiedNameConverter qualifiedNameConverter; + + public Iterator getContainerContents(Element context) { + TestDescription td = context.getParentTestDescription(); + if (td == null) + return Collections.emptyIterator(); + return td.eAllContents(); + } + + public List getContainerParameters(Element context) { + TestDescription td = context.getParentTestDescription(); + if (td == null) + return Collections.emptyList(); + return td.getFormalParameter(); + } @Override public IScope getScope(EObject context, EReference reference) { @@ -272,6 +294,9 @@ public class TDLScopeProvider extends AbstractDeclarativeScopeProvider { if (((DataElementMapping)context.eContainer()).getMappableDataElement() instanceof StructuredDataType) { IScope scope = Scopes.scopeFor(((StructuredDataType)((DataElementMapping)context.eContainer()).getMappableDataElement()).allMembers()); return scope; + } else if (((DataElementMapping)context.eContainer()).getMappableDataElement() instanceof StructuredDataInstance) { + IScope scope = Scopes.scopeFor(((StructuredDataType) ((StructuredDataInstance)((DataElementMapping)context.eContainer()).getMappableDataElement()).getDataType()).allMembers()); + return scope; } else if (((DataElementMapping)context.eContainer()).getMappableDataElement() instanceof Action) { IScope scope = Scopes.scopeFor(((Action)((DataElementMapping)context.eContainer()).getMappableDataElement()).getFormalParameter()); return scope; @@ -486,9 +511,8 @@ public class TDLScopeProvider extends AbstractDeclarativeScopeProvider { return scope; } } else if (context instanceof TimeLabelUse) { - TestDescription testDescription = ((Element) context).getParentTestDescription(); Set labels = new HashSet(); - testDescription.eAllContents().forEachRemaining(e -> { + getContainerContents((Element) context).forEachRemaining(e -> { if (e instanceof TimeLabel) labels.add((TimeLabel) e); }); @@ -529,9 +553,12 @@ public class TDLScopeProvider extends AbstractDeclarativeScopeProvider { if (context instanceof DataElementUse) { EList elements = new BasicEList<>(); elements.addAll(getScopedElementsOfType(context, MappableDataElement.class)); - TestDescription testDescription = ((DataElementUse) context).getParentTestDescription(); - if (testDescription!=null) { - elements.addAll(testDescription.getFormalParameter()); + elements.addAll(getContainerParameters((Element) context)); + //TODO: filter enums +// if + DataType dataType = ((DataElementUse) context).resolveDataType(); + if (dataType instanceof EnumDataType) { + elements.removeIf(e->(e instanceof SimpleDataInstance) && ((SimpleDataInstance)e).getDataType() != dataType); } // elements.addAll(getScopedElementsOfType(context, FormalParameter.class)); // elements.addAll(getScopedElementsOfType(context, StructuredDataType.class)); @@ -540,7 +567,15 @@ public class TDLScopeProvider extends AbstractDeclarativeScopeProvider { //EList elements = ; //return Scopes.scopeFor(dataElement.eContents()); } + if (context instanceof DataElementMapping) { + //TODO: handle qualified names?! + } + if (context instanceof PredefinedFunctionCall) { + //TODO: handle qualified names?! + } + + if (context instanceof ComponentReference && reference.getEType().getInstanceClass() == ComponentInstance.class) { TestConfigurationInstance configuration = ((ComponentReference) context).getConfiguration(); if (configuration.getConfiguration()!=null) { @@ -556,7 +591,23 @@ public class TDLScopeProvider extends AbstractDeclarativeScopeProvider { IScope scope = Scopes.scopeFor(configuration.getComponentInstance()); return scope; } - } + } + if (context instanceof LiteralValueReference) { + //TODO: why unsupported operation? +// StructuredTestObjective to = ((LiteralValue) context).getTestObjective(); + StructuredTestObjective to = EcoreUtil2.getContainerOfType(context, StructuredTestObjective.class); + List values = EcoreUtil2.getAllContentsOfType(to, LiteralValue.class); + IScope scope = Scopes.scopeFor(values); + return scope; + } + if (context instanceof ContentReference) { + //TODO: why unsupported operation? +// StructuredTestObjective to = ((LiteralValue) context).getTestObjective(); + StructuredTestObjective to = EcoreUtil2.getContainerOfType(context, StructuredTestObjective.class); + List values = EcoreUtil2.getAllContentsOfType(to, Content.class); + IScope scope = Scopes.scopeFor(values); + return scope; + } return super.getScope(context, reference); } diff --git a/plugins/org.etsi.mts.tdl.common/src/org/etsi/mts/tdl/scoping/TdlQualifiedNameProvider.java b/plugins/org.etsi.mts.tdl.common/src/org/etsi/mts/tdl/scoping/TdlQualifiedNameProvider.java new file mode 100644 index 0000000000000000000000000000000000000000..9ebf9c72e12bebc3dfd20f101cdad5f11e4cb179 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.common/src/org/etsi/mts/tdl/scoping/TdlQualifiedNameProvider.java @@ -0,0 +1,24 @@ +package org.etsi.mts.tdl.scoping; + +import org.eclipse.emf.ecore.EObject; +import org.eclipse.xtext.naming.DefaultDeclarativeQualifiedNameProvider; +import org.eclipse.xtext.naming.QualifiedName; +import org.etsi.mts.tdl.Element; +import org.etsi.mts.tdl.NamedElement; + +public class TdlQualifiedNameProvider extends DefaultDeclarativeQualifiedNameProvider { + @Override + public QualifiedName getFullyQualifiedName(EObject obj) { + if (obj instanceof NamedElement) { + String qNameStr = ((NamedElement) obj).getQualifiedName(); + QualifiedName qName = QualifiedName.create(qNameStr.split("::")); + return qName; + + } else if (obj instanceof Element) { + String name = ((Element) obj).getName(); + if (name != null) + return QualifiedName.create(name); + } + return super.getFullyQualifiedName(obj); + } +} diff --git a/plugins/org.etsi.mts.tdl.common/src/org/etsi/mts/tdl/transform/AbstractTranslator.java b/plugins/org.etsi.mts.tdl.common/src/org/etsi/mts/tdl/transform/AbstractTranslator.java index 4a6212c518d0a5146ef0a1898f6d0b1947e02365..39d497eaff823fb3ca8011edca37325d21628727 100644 --- a/plugins/org.etsi.mts.tdl.common/src/org/etsi/mts/tdl/transform/AbstractTranslator.java +++ b/plugins/org.etsi.mts.tdl.common/src/org/etsi/mts/tdl/transform/AbstractTranslator.java @@ -1,5 +1,6 @@ package org.etsi.mts.tdl.transform; +import java.util.List; import java.util.Optional; import java.util.TreeMap; import java.util.function.Predicate; @@ -10,6 +11,7 @@ import org.etsi.mts.tdl.Annotation; import org.etsi.mts.tdl.AnnotationType; import org.etsi.mts.tdl.Constraint; import org.etsi.mts.tdl.ConstraintType; +import org.etsi.mts.tdl.DataElementMapping; import org.etsi.mts.tdl.DataResourceMapping; import org.etsi.mts.tdl.DataType; import org.etsi.mts.tdl.Element; @@ -18,7 +20,10 @@ import org.etsi.mts.tdl.EnumDataType; import org.etsi.mts.tdl.NamedElement; import org.etsi.mts.tdl.Package; import org.etsi.mts.tdl.PackageableElement; +import org.etsi.mts.tdl.Parameter; +import org.etsi.mts.tdl.ParameterMapping; import org.etsi.mts.tdl.SimpleDataType; +import org.etsi.mts.tdl.StructuredDataInstance; import org.etsi.mts.tdl.StructuredDataType; import org.etsi.mts.tdl.tdlFactory; import org.etsi.mts.tdl.tdlPackage; @@ -32,10 +37,16 @@ public abstract class AbstractTranslator { protected SimpleDataType referencedType; protected boolean useQualifiers = true; + protected boolean fullPrefix = false; + protected String sourceMappingTag = "SOURCE_MAPPING"; + protected String targetMappingTag = "TARGET_MAPPING"; + public AbstractTranslator() { super(); } + public abstract void translate(String targetFilename) throws Exception; + public void initTargetResource(String name) { generatedPackage = tdlFactory.eINSTANCE.createPackage(); generatedPackage.setName("generated_from_"+name); @@ -52,35 +63,47 @@ public abstract class AbstractTranslator { } protected DataType getDataTypeFor(String name) { - return getTypeFor(cleanName(name), tdlPackage.Literals.DATA_TYPE); + return getTypeFor(getCleanName(name), tdlPackage.Literals.DATA_TYPE); } protected SimpleDataType getSimpleDataTypeFor(String name) { - return getTypeFor(cleanName(name), tdlPackage.Literals.SIMPLE_DATA_TYPE); + return getTypeFor(getCleanName(name), tdlPackage.Literals.SIMPLE_DATA_TYPE); } protected EnumDataType getEnumDataTypeFor(String name) { - return getTypeFor(cleanName(name), tdlPackage.Literals.ENUM_DATA_TYPE); + return getTypeFor(getCleanName(name), tdlPackage.Literals.ENUM_DATA_TYPE); } protected StructuredDataType getStructuredDataTypeFor(String name) { - return getTypeFor(cleanName(name), tdlPackage.Literals.STRUCTURED_DATA_TYPE); + return getTypeFor(getCleanName(name), tdlPackage.Literals.STRUCTURED_DATA_TYPE); + } + + protected StructuredDataInstance getStructuredDataInstanceFor(String name) { + return getTypeFor(getCleanName(name), tdlPackage.Literals.STRUCTURED_DATA_INSTANCE); } - public String cleanName(String name) { + protected String idStartDigitRegex = "\\A\\d"; + protected String idInvalidCharRegex = "\\W"; + public static String cleanName(String name) { //TODO: use keywords filter? - if (name.equals("Message") || name.equals("Time") || name.equals("type") || name.equals("name") || name.equals("instance") ) { +// List keywords = List.of("Message", "Time", "Type", "type", "name", "instance", "size", "component"); + List keywords = List.of("Message", "Time", "Type", "instance", "size", "component"); + if (keywords.contains(name)) { name = "^"+name; } name = name.replaceAll("-", "_") .replaceAll(" ", "_") + .replaceAll(":", "_") .replaceAll("\\.", "_"); return name; } + public String getCleanName(String name) { + return cleanName(name); + } @SuppressWarnings("unchecked") protected T getTypeFor(String name, EClass targetType) { - String cleanName = cleanName(name); + String cleanName = getCleanName(name); //TODO: move to ASN2TDL specialisation TreeMap mappings = new TreeMap<>(); mappings.put("AsnInteger", "Integer"); @@ -104,7 +127,7 @@ public abstract class AbstractTranslator { Optional optional = generatedPackage.getPackagedElement().stream() .filter(e -> targetType.isInstance(e) && - e.getName().equals(cleanName(name))) + e.getName().equals(getCleanName(name))) .findFirst(); T generatedType = null; if (optional.isPresent()) { @@ -130,7 +153,7 @@ public abstract class AbstractTranslator { @SuppressWarnings("unchecked") protected T getContentWithName(String name, NamedElement container, EClass targetType) { - String cleanName = cleanName(name); + String cleanName = getCleanName(name); T content = findContentWithName(cleanName, container, targetType); if (content == null) { content = (T) tdlFactory.eINSTANCE.create(targetType); @@ -160,7 +183,7 @@ public abstract class AbstractTranslator { } protected void annotateWith(final DataType generatedType, String annotationName) { - AnnotationType annotationType = getTypeFor(cleanName(annotationName), tdlPackage.Literals.ANNOTATION_TYPE); + AnnotationType annotationType = getTypeFor(getCleanName(annotationName), tdlPackage.Literals.ANNOTATION_TYPE); if (!generatedType.getAnnotation().stream().anyMatch(a->a.getKey()==annotationType)) { Annotation annotation = tdlFactory.eINSTANCE.createAnnotation(); annotation.setKey(annotationType); @@ -169,14 +192,31 @@ public abstract class AbstractTranslator { } protected void constrainWith(final DataType generatedType, String constraintName) { - ConstraintType constraintType = getTypeFor(cleanName(constraintName), tdlPackage.Literals.CONSTRAINT_TYPE); + ConstraintType constraintType = getTypeFor(getCleanName(constraintName), tdlPackage.Literals.CONSTRAINT_TYPE); if (!generatedType.getConstraint().stream().anyMatch(a->a.getType()==constraintType)) { Constraint constraint = tdlFactory.eINSTANCE.createConstraint(); constraint.setType(constraintType); generatedType.getConstraint().add(constraint); } } - + + protected DataElementMapping addDataElementMapping(String uri, DataType dataType, String tag) { + DataElementMapping mapping = getTypeFor(dataType.getName()+"_"+tag, tdlPackage.Literals.DATA_ELEMENT_MAPPING); + mapping.setMappableDataElement(dataType); + mapping.setElementURI(uri); + mapping.setDataResourceMapping(drm); + return mapping; + } + + protected void addParameterMapping(DataElementMapping mapping, Parameter p, String uri) { + Optional opm = getContentWithPredicate(e->e.getParameter() == p, mapping, ParameterMapping.class); + if (opm.isEmpty()) { + ParameterMapping pm = (ParameterMapping) tdlFactory.eINSTANCE.create(tdlPackage.Literals.PARAMETER_MAPPING); + pm.setParameter(p); + pm.setParameterURI(uri.replaceAll("\\^", "")); + mapping.getParameterMapping().add(pm); + } + } public Resource getTargetResource() { return targetResource; diff --git a/plugins/org.etsi.mts.tdl.constraints.helper/.classpath b/plugins/org.etsi.mts.tdl.constraints.helper/.classpath new file mode 100644 index 0000000000000000000000000000000000000000..c6941bc2ce8065148ea53a0cb7c42236c33bd5dd --- /dev/null +++ b/plugins/org.etsi.mts.tdl.constraints.helper/.classpath @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/plugins/org.etsi.mts.tdl.constraints.helper/.project b/plugins/org.etsi.mts.tdl.constraints.helper/.project new file mode 100644 index 0000000000000000000000000000000000000000..f215f01cbc9124129d82cad6bb378b67c3ffa832 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.constraints.helper/.project @@ -0,0 +1,45 @@ + + + org.etsi.mts.tdl.constraints.helper + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.eclipse.m2e.core.maven2Nature + org.eclipse.pde.PluginNature + org.eclipse.jdt.core.javanature + + + + 1681418411860 + + 30 + + org.eclipse.core.resources.regexFilterMatcher + node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__ + + + + diff --git a/plugins/org.etsi.mts.tdl.constraints.helper/.settings/org.eclipse.core.resources.prefs b/plugins/org.etsi.mts.tdl.constraints.helper/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000000000000000000000000000000000000..99f26c0203a7844de00dbfc56e6a35d8ed3c022c --- /dev/null +++ b/plugins/org.etsi.mts.tdl.constraints.helper/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/plugins/org.etsi.mts.tdl.constraints.helper/.settings/org.eclipse.jdt.core.prefs b/plugins/org.etsi.mts.tdl.constraints.helper/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000000000000000000000000000000000000..c9545f06a4120d5b4a1228fb19f67a1171bc0f5b --- /dev/null +++ b/plugins/org.etsi.mts.tdl.constraints.helper/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,9 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=11 +org.eclipse.jdt.core.compiler.compliance=11 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning +org.eclipse.jdt.core.compiler.release=enabled +org.eclipse.jdt.core.compiler.source=11 diff --git a/plugins/org.etsi.mts.tdl.constraints.helper/.settings/org.eclipse.m2e.core.prefs b/plugins/org.etsi.mts.tdl.constraints.helper/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000000000000000000000000000000000000..f897a7f1cb2389f85fe6381425d29f0a9866fb65 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.constraints.helper/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/plugins/org.etsi.mts.tdl.constraints.helper/META-INF/MANIFEST.MF b/plugins/org.etsi.mts.tdl.constraints.helper/META-INF/MANIFEST.MF new file mode 100644 index 0000000000000000000000000000000000000000..7ca98a58d6991ef4436ea8a2b90cfa33103d3359 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.constraints.helper/META-INF/MANIFEST.MF @@ -0,0 +1,7 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: TDL Constraints Helper +Bundle-SymbolicName: org.etsi.mts.tdl.constraints.helper +Bundle-Version: 1.0.0.qualifier +Bundle-Vendor: European Telecommunications Standards Institute (ETSI) +Automatic-Module-Name: org.etsi.mts.tdl.constraints.helper diff --git a/plugins/org.etsi.mts.tdl.constraints.helper/README.md b/plugins/org.etsi.mts.tdl.constraints.helper/README.md new file mode 100644 index 0000000000000000000000000000000000000000..92db7cf05a93d8d828b4cc903615e16fc6119b7d --- /dev/null +++ b/plugins/org.etsi.mts.tdl.constraints.helper/README.md @@ -0,0 +1,9 @@ +# TDL Constraint Helper + +This project extracts OCL constraints from the TDL specifications (in `.docx` format) and transforms them into EVL and OCL specifications. To use, place the TDL specifications under `resources` and indicate the path in the `main` method. It may be adapted to take the filename as argument in the future. There also the desired output format can be selected. + +This tool is intended to help with the maintenance, implementation, and validation of the constraints. The generated EVL or OCL specifications are used in the constraints implementation. The generated EVL or OCL files can be adapted to fix errors or address other issues and the adapted files can then be compared to identify issues that need to be backported to the specification. Ideally, the constraints extracted and transformed from the specification shall word directly, but typos or other issues may get in the way. + +The extraction and transformation relies on correct and consistent formatting, therefore it is important to address such issues first and make sure that all constraints are identified, extracted, and transformed correctly. Tracked changes may need to be accepted first. In the future, some preliminary validation to ensure that the documents are suitable for processing may be added. + +The implementation of the tool makes use of the Apache POI and related libraries to process the Word versions of the specifications. \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.constraints.helper/build.properties b/plugins/org.etsi.mts.tdl.constraints.helper/build.properties new file mode 100644 index 0000000000000000000000000000000000000000..56d776555503f2905e0642aae5be7938371a965d --- /dev/null +++ b/plugins/org.etsi.mts.tdl.constraints.helper/build.properties @@ -0,0 +1,4 @@ +source.. = src/ +output.. = target/classes/ +bin.includes = META-INF/,\ + . diff --git a/plugins/org.etsi.mts.tdl.constraints.helper/lib/commons-collections4-4.2.jar b/plugins/org.etsi.mts.tdl.constraints.helper/lib/commons-collections4-4.2.jar new file mode 100644 index 0000000000000000000000000000000000000000..73a4f3f2ef61bb0178aaf9a3cd9ac9a78dbac700 Binary files /dev/null and b/plugins/org.etsi.mts.tdl.constraints.helper/lib/commons-collections4-4.2.jar differ diff --git a/plugins/org.etsi.mts.tdl.constraints.helper/lib/commons-compress-1.18.jar b/plugins/org.etsi.mts.tdl.constraints.helper/lib/commons-compress-1.18.jar new file mode 100644 index 0000000000000000000000000000000000000000..e401046b5a6e5b1779fa8f50cc39dcd51a7da137 Binary files /dev/null and b/plugins/org.etsi.mts.tdl.constraints.helper/lib/commons-compress-1.18.jar differ diff --git a/plugins/org.etsi.mts.tdl.constraints.helper/lib/poi-4.0.1.jar b/plugins/org.etsi.mts.tdl.constraints.helper/lib/poi-4.0.1.jar new file mode 100644 index 0000000000000000000000000000000000000000..be092979bd1bcd8a4d396b1b635e69b797be9c31 Binary files /dev/null and b/plugins/org.etsi.mts.tdl.constraints.helper/lib/poi-4.0.1.jar differ diff --git a/plugins/org.etsi.mts.tdl.constraints.helper/lib/poi-ooxml-4.0.1.jar b/plugins/org.etsi.mts.tdl.constraints.helper/lib/poi-ooxml-4.0.1.jar new file mode 100644 index 0000000000000000000000000000000000000000..282a1a52db8955484df99ce3b961e35372305889 Binary files /dev/null and b/plugins/org.etsi.mts.tdl.constraints.helper/lib/poi-ooxml-4.0.1.jar differ diff --git a/plugins/org.etsi.mts.tdl.constraints.helper/lib/poi-ooxml-schemas-4.0.1.jar b/plugins/org.etsi.mts.tdl.constraints.helper/lib/poi-ooxml-schemas-4.0.1.jar new file mode 100644 index 0000000000000000000000000000000000000000..49509b28716688ef951efa6237912194f48445cb Binary files /dev/null and b/plugins/org.etsi.mts.tdl.constraints.helper/lib/poi-ooxml-schemas-4.0.1.jar differ diff --git a/plugins/org.etsi.mts.tdl.constraints.helper/lib/xmlbeans-3.0.2.jar b/plugins/org.etsi.mts.tdl.constraints.helper/lib/xmlbeans-3.0.2.jar new file mode 100644 index 0000000000000000000000000000000000000000..f371911ef9139aa970b74ef2a7acacf826f4c677 Binary files /dev/null and b/plugins/org.etsi.mts.tdl.constraints.helper/lib/xmlbeans-3.0.2.jar differ diff --git a/plugins/org.etsi.mts.tdl.constraints.helper/pom.xml b/plugins/org.etsi.mts.tdl.constraints.helper/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..6696082532b927e0deaeb65e7b3dcd96704fdff5 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.constraints.helper/pom.xml @@ -0,0 +1,19 @@ + + 4.0.0 + + org.etsi.mts.tdl + org.etsi.mts.tdl.parent + 1.0.0-SNAPSHOT + ../../org.etsi.mts.tdl.parent + + + org.etsi.mts.tdl.constraints.helper + eclipse-plugin + + + + maven-compiler-plugin + + + + \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.constraints.helper/resources/generated/tdl-generated-ETSI-ES-203-119-1-V1.5.1.evl b/plugins/org.etsi.mts.tdl.constraints.helper/resources/generated/tdl-generated-ETSI-ES-203-119-1-V1.5.1.evl new file mode 100644 index 0000000000000000000000000000000000000000..0071369bbb79be2233e62241184463a9e2d902c3 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.constraints.helper/resources/generated/tdl-generated-ETSI-ES-203-119-1-V1.5.1.evl @@ -0,0 +1,1667 @@ +import "../library/common.eol"; +import "../library/helper.eol"; +import "../library/debug.eol"; + +context Element { + //[There are no constraints specified.] +} + +context NamedElement { + //Mandatory name + constraint MandatoryName { + check: not self.name.oclIsUndefined() and self.name.size() > 0 + message: self.prefix() + + "A 'NamedElement' shall have the 'name' property set and the 'name' shall be not an empty String." + } + + //Distinguishable qualified names + constraint DistinquishableName { + check: NamedElement.allInstances()->one(e | e.qualifiedName = self.qualifiedName) + message: self.prefix() + + "All qualified names of instances of 'NamedElement's shall be distinguishable within a TDL model." + } + + //[NOTE: It is up to the concrete syntax definition and tooling to resolve any name clashes between instances of the same meta-class in the qualified name.] +} + +context PackageableElement { + //[There are no constraints specified.] +} + +context Package { + //No cyclic imports + constraint CyclicImports { + check: self.`import`->asOrderedSet()->closure(i | i.importedPackage.`import`)->forAll(i | + i.importedPackage <> self) + message: self.prefix() + + "A 'Package' shall not import itself directly or indirectly." + } + +} + +context ElementImport { + //Consistency of imported elements + constraint ConsistentImports { + check: self.importedElement->forAll(e | self.importedPackage.packagedElement->includes(e)) + message: self.prefix() + + "All imported 'PackageableElement's referenced by an 'ElementImport' shall be directly owned by the imported 'Package'." + } + + //[Figure 5.2: Miscellaneous elements] +} + +context Comment { + //No nested comments + constraint CommentNestedComments { + check: self.comment->isEmpty() + message: self.prefix() + + "A 'Comment' shall not contain 'Comment's." + } + + //No annotations to comments + constraint CommentNestedAnnotations { + check: self.annotation->isEmpty() + message: self.prefix() + + "A 'Comment' shall not contain 'Annotation's." + } + +} + +context Annotation { + //No nested annotations + constraint AnnotationNestedAnnotations { + check: self.annotation->isEmpty() + message: self.prefix() + + "An 'Annotation' shall not contain 'Annotation's" + } + + //No comments to annotations + constraint AnnotationNestedComments { + check: self.comment->isEmpty() + message: self.prefix() + + "An 'Annotation' shall not contain 'Comment's." + } + +} + +context AnnotationType { + //[There are no constraints specified.] +} + +context TestObjective { + //[There are no constraints specified.] +} + +context Extension { + //Inherit from element of the same meta-class + constraint Extension { + check: self.container().oclIsTypeOf(self.extending.oclType()) + message: self.prefix() + + "The element containing an 'Extension' and the element in the 'extending' property shall have the same meta-class." + } + +} + +context ConstraintType { + //[There are no constraints specified.] +} + +context Constraint { + //Effectively static quantifiers + constraint StaticQuantifiers { + check: self.quantifer.forAll(q | q.isEffectivelyStatic()) + message: self.prefix() + + "All 'DataUse's specified as 'quantifier's shall be effectively static." + } + + //Empty arguments for quantifiers + constraint StaticQuantifiers { + check: self.quantifer.forAll(q | q.argument.isEmpty()) + message: self.prefix() + + "The 'argument' sets for all 'DataUse's specified as 'quantifier's shall be empty." + } + + //Constraint applicability for 'union' and 'uniontype' + constraint ConstraintApplicabilityUnionUniontype { + check: (self.type.name = 'union' or self.type.name = 'uniontype') + implies self.container().oclIsTypeOf(StructuredDataType) + message: self.prefix() + + "The predefined 'ConstraintType's 'union' and 'uniontype' shall be applied to 'StructuredDataType's only. " + } + + //Constraint applicability for 'range' and 'format' + constraint ConstraintApplicabilityRangeFormat { + check: (self.type.name = 'range' or self.type.name = 'format') + implies (self.container().oclIsTypeOf(SimpleDataType) + or (self.container().oclIsTypeOf(Member) + and self.container().oclAsTypeOf(Member).dataType.oclIsTypeOf(SimpleDataType))) + message: self.prefix() + + "The predefined 'ConstraintType's 'range' and 'format' shall be applied to 'SimpleDataType's and 'Member's with a 'SimpleDataType' 'dataType' only. " + } + + //Constraint applicability for 'length', 'minLength', and 'maxLength' + constraint ConstraintApplicabilityLength { + check: (self.type.name = 'length' or self.type.name = 'minLength' or self.type.name = 'maxLength') + implies (self.container().oclIsTypeOf(SimpleDataType) + or self.container().oclIsTypeOf(CollectionDataType) + or (self.container().oclIsTypeOf(Member) + and self.container().oclAsTypeOf(Member).dataType.oclIsTypeOf(SimpleDataType)) + and self.container().oclAsTypeOf(Member).dataType.oclIsTypeOf(CollectionDataType))) + message: self.prefix() + + "The predefined 'ConstraintType's 'length', 'minLength', and 'maxLength' shall be applied to 'CollectionDataType's, 'SimpleDataType's and 'Member's with a 'SimpleDataType' or a 'CollectionDataType' 'dataType' only. " + } + + //Quantifiers for 'length', 'minLength', and 'maxLength' + constraint ConstraintQuantifierLength { + check: (self.type.name = 'length' or self.type.name = 'minLength' or self.type.name = 'maxLength') + implies (self.quantifier->size() = 1 + and self.quantifier->forAll(q | q.resloveDataType().conformsTo('Integer'))) + message: self.prefix() + + "The predefined 'ConstraintType's 'length', 'minLength', and 'maxLength' shall be used with exactly one 'quantifier' resolved to an instance conforming to the predefined 'Integer' 'DataType'. " + } + + //Quantifiers for 'range' + constraint ConstraintQuantifierRange { + check: (self.type.name = 'length') + implies (self.quantifier->size() = 2 + and self.quantifier->forAll(q | q.resloveDataType().conformsTo('Integer'))) + message: self.prefix() + + "The predefined 'ConstraintType' 'range' shall be used with exactly two 'quantifier's resolved to instance conforming to the predefined 'Integer' 'DataType'. " + } + +} + +context DataResourceMapping { + //[There are no constraints specified.] +} + +context MappableDataElement { + //[There are no constraints specified.] +} + +context DataElementMapping { + //Restricted use of 'ParameterMapping' + constraint ParameterMappingType { + check: self.parameterMapping->size() = 0 + or (self.mappableDataElement.oclIsTypeOf(StructuredDataType) + and self.parameterMapping->forAll(p | + self.mappableDataElement.allMembers()->includes(p.parameter))) + or (self.mappableDataElement.oclIsKindOf(Action) + and self.parameterMapping->forAll(p | + self.mappableDataElement.formalParameter->includes(p.parameter))) + message: self.prefix() + + "A set of 'ParameterMapping's may only be provided if 'mappableDataElement' refers to a 'StructuredDataType', an 'Action' or a 'Function' definition and the 'mappableDataElement' contains the mapped 'Parameters'." + } + + //All parameters shall be mapped + constraint ParameterMappingType { + check: (self.mappableDataElement.oclIsTypeOf(SimpleDataType) + or (self.mappableDataElement.oclIsTypeOf(StructuredDataType) + and self.mappableDataElement.member->forAll(p | + self.parameterMapping->exists(m | m.parameter = p))) + or (self.mappableDataElement.oclIsKindOf(Action) + and self.mappableDataElement.formalParameter->forAll(p | + self.parameterMapping->exists(m | m.parameter = p))) + and self.parameterMapping->forAll(p | + self.mappableDataElement.formalParameter->includes(p.parameter))) + message: self.prefix() + + "If the 'mappableDataElement' refers to a 'StructuredDataType', an 'Action' or a 'Function' definition, all the 'Parameters' contained in the 'mappableDataElement' shall be mapped." + } + +} + +context ParameterMapping { + //[There are no constraints specified.] + //[Figure 6.2: Basic data concepts and simple data] +} + +context DataType { + //[There are no constraints specified.] +} + +context DataInstance { + //[There are no constraints specified.] +} + +context SimpleDataType { + //[There are no constraints specified.] +} + +context SimpleDataInstance { + //SimpleDataInstance shall refer to SimpleDataType + constraint SimpleDataInstanceType { + check: self.dataType.oclIsKindOf(SimpleDataType) + message: self.prefix() + + "The inherited reference 'dataType' from 'DataInstance' shall refer to instances of 'SimpleDataType' solely." + } + + //[Figure 6.3: Structured data type and instance] +} + +context StructuredDataType { + //Different member names in a structured data type + constraint DistinguishableMemberNames { + check: self.allMembers()->isUnique(e | e.name) + message: self.prefix() + + "All 'Member' names of a 'StructuredDataType' (including the names of inherited 'Members') shall be distinguishable." + } + +} + +context Member { + //[There are no constraints specified.] +} + +context StructuredDataInstance { + //StructuredDataInstance shall refer to StructuredDataType + constraint StructuredDataInstance { + check: self.dataType.oclIsTypeOf(StructuredDataType) + message: self.prefix() + + "The inherited reference 'dataType' from 'DataInstance' shall refer to instances of 'StructuredDataType' solely." + } + + //'Member' of the 'StructuredDataType' + constraint ExistingMemberOfDataType { + check: self.memberAssignment->forAll(a | self.dataType.allMembers()->includes(a.member)) + message: self.prefix() + + "The referenced 'Member' shall be contained in or inherited by the 'StructuredDataType' that the 'StructuredDataInstance', which contains this 'MemberAssignment', refers to." + } + + //Unique assignments for each 'Member' of the 'StructuredDataType' + constraint UniqueMemberAssignments { + check: self.memberAssignment->isUnique(m | m.member) + message: self.prefix() + + "There shall be at most one 'memberAssignment' for each 'Member' of the 'StructuredDataType' that the 'StructuredDataInstance', which contains this 'MemberAssignment', refers to." + } + + //'union' constraint on the type of the 'StructuredDataInstance' + constraint StructuredDataInstanceUnionConstraint { + check: not self.dataType.allConstraints->exists(c | c.type.name = 'union') + or self.memberAssignment->size() <= 1 + message: self.prefix() + + "If the 'dataType' of the 'StructuredDataInstance' has the predefined constraint 'union' then the 'memberAssignment' shall not contain more than one 'MemberAssignment'." + } + + //'uniontype' constraint on the type of the 'StructuredDataInstance' + constraint StructuredDataInstanceUniontypeConstraint { + check: not self.dataType.allConstraints->exists(c | c.type.name = 'uniontype') + or self.memberAssignment->forAll(m | self.dataType.member.contains(m) + or self.dataType.extension->one(e | + e.extending.oclAsType(StructuredDataType).allMembers()->contains(m))) + message: self.prefix() + + "If the 'dataType' of 'StructuredDataInstance' has the predefined constraint 'uniontype' then there shall only be 'MemberAssignment' for the 'Member's of the 'dataType' itself or of at most one of the 'StructuredDataType's which the 'dataType' is extending." + } + +} + +context MemberAssignment { + //Type of a 'memberSpec' shall conform to the type of the 'member' + constraint MatchingMemberDataType { + check: self.memberSpec.resolveDataType().conformsTo(self.member.dataType) + message: self.prefix() + + "The 'DataType' of the 'DataUse' of 'memberSpec' shall conform to the 'DataType' of the 'Member' of the 'MemberAssignment'." + } + + //Restricted use of 'OmitValue' for optional 'Member's only + constraint OmitValueUse { + check: (self.memberSpec.oclIsTypeOf(OmitValue) or self.memberSpec.oclIsTypeOf(AnyValueOrOmit)) + implies self.member.isOptional = true + message: self.prefix() + + "A non-optional 'Member' shall have a 'DataUse' specification assigned to it that is different from 'OmitValue' and 'AnyValueOrOmit'." + } + + //Static data use in 'memberSpec' + constraint StaticDataInMemberSpec { + check: self.memberSpec.isEffectivelyStatic() + message: self.prefix() + + "The 'memberSpec' and all of its 'ParameterBinding's shall be effectively static. " + } + + //[Figure 6.4: Collection data] +} + +context CollectionDataType { + //No multidimensional collections + constraint NoMultidimensionalCollections { + check: not self.itemType.oclIsKindOf(CollectionDataType) + message: self.prefix() + + "The 'itemType' shall not be an instance of 'CollectionDataType'. " + } + +} + +context CollectionDataInstance { + //CollectionDataInstance shall refer to CollectionDataType + constraint CollectionDataInstanceType { + check: self.dataType.oclIsKindOf(CollectionDataType) + message: self.prefix() + + "The inherited reference 'dataType' from 'DataInstance' shall refer to instances of 'CollectionDataType' solely." + } + + //Type of items in the 'CollectionDataInstance' + constraint CollectionDataInstanceItemType { + check: self.item.forAll(i | + i.resolveDataType().conformsTo(self.dataType.oclAsType(CollectionDataType).itemType)) + message: self.prefix() + + "The items in 'CollectionDataInstance' shall conform to the 'itemType' of the 'CollectionDataType' that is defined as the 'dataType' of this 'CollectionDataInstance'. " + } + + //Static data use in 'item' + constraint StaticDataInItem { + check: self.item.forAll(i | i.isEffectivelyStatic()) + message: self.prefix() + + "The DataUse's in 'item' and all of the respective 'ParameterBinding's shall be effectively static. " + } + + //Length constraint of the 'CollectionDataInstance' + constraint CollectionDataInstanceLengthConstraint { + check: true //This constraint cannot be expressed formally. + message: self.prefix() + + "If the 'dataType' 'CollectionType' contains the predefined constraint 'length' then the length of this 'CollectionDataInstance' shall be equal to the 'quantifier' of that 'Constraint'." + } + + //[Figure 6.5: Procedure and procedure parameter] +} + +context ProcedureSignature { + //[There are no constraints specified.] +} + +context ProcedureParameter { + //[There are no constraints specified.] +} + +context ParameterKind { + //[There are no constraints specified.] + //[Figure 6.6: Action, function, parameter and variable] +} + +context Parameter { + //[There are no constraints specified.] +} + +context FormalParameter { + //[There are no constraints specified.] +} + +context Variable { + //[There are no constraints specified.] +} + +context Action { + //[There are no constraints specified.] +} + +context Function { + //[There are no constraints specified.] +} + +context UnassignedMemberTreatment { + //[There are no constraints specified.] +} + +context PredefinedFunction { + //[There are no constraints specified.] +} + +context EnumDataType { + //SimpleDataInstance container in EnumDataType + constraint EnumDataInstanceContainment { + check: OclInvalid + message: self.prefix() + + "A 'SimpleDataInstance' whose 'dataType' property refers to an 'EnumDataType' shall be contained in that 'EnumDataType'." + } + + //No extensions for EnumDataType + constraint EnumDataTypeExtensions { + check: OclInvalid + message: self.prefix() + + "The 'extension' property of an 'EnumDataType' shall be empty." + } + +} + +context DataUse { + //Occurrence of 'argument' and 'reduction' + constraint ArgumentReductionLists { + check: self.argument.isEmpty() or self.reduction.isEmpty() or self.oclIsTypeOf(FunctionCall) + message: self.prefix() + + "Only in case of a 'FunctionCall' both the 'argument' list and the 'reduction' list may be provided, otherwise either the 'argument' list, the 'reduction' list, or none of them shall be provided." + } + + //Structured data types in 'reduction' set + constraint ReductionMembers { + check: not self.resolveDataType().isKindOf(StructuredDataType) + or self.reduction->isEmpty() + or self.resolveDataType().allMembers()->includes(self.reduction->first().member) + and self.reduction->select(m | self.reduction->indexOf(m) > 0)->forAll(m | + self.reduction->at(self.reduction->indexOf(m)-1).member.dataType.isKindOf(StructuredDataType) + and self.reduction->at(self.reduction->indexOf(m)-1).member.dataType.allMembers() + ->includes(m.member)) + message: self.prefix() + + "The 'Member' referenced by the 'MemberReference' at index i of a 'reduction' shall be contained in or inherited by the 'StructuredDataType' of the 'Member' referenced by the 'MemberReference' at index (i - 1) of that 'reduction'." + } + + //No member with collection index in the first element in reduction + constraint FirstReduction { + check: self.reduction->first().member.oclIsUndefined() or self.reduction->first().collectionIndex.oclIsUndefined() + message: self.prefix() + + "The first 'MemberReference' in reduction shall not specify both member and collectionIndex. " + } + +} + +context ParameterBinding { + //Matching data type + constraint ParameterBindingTypes { + check: self.dataUse.resolveDataType().conformsTo(self.parameter.dataType) + message: self.prefix() + + "The provided 'DataUse' shall conform to the 'DataType' of the referenced 'Parameter'." + } + + //Use of a 'StructuredDataInstance' with non-optional 'Member's + constraint OmitValueParameter { + check: self.parameter.oclIsTypeOf(Member) and self.parameter.oclAsType(Member).isOptional = false + implies not self.dataUse.oclIsTypeOf(OmitValue) and not self.dataUse.oclIsTypeOf(AnyValueOrOmit) + message: self.prefix() + + "A non-optional 'Member' of a 'StructuredDataType' shall have a 'DataUse' specification assigned to it that is different from 'OmitValue' or 'AnyValueOrOmit'." + } + +} + +context MemberReference { + //Collection index expressions for collections only + constraint CollectioinIndex { + check: self.collectionIndex.oclIsUndefined() + or self.container().oclAsType(DataUse).resolveDataType().oclIsKindOf(CollectionDataType) + message: self.prefix() + + "If the type of the related 'DataUse' is not 'CollectionDataType' then the collectionIndex shall be undefined. " + } + + //Either member or collection index is required + constraint MemberOrReduction { + check: not self.member.oclIsUndefined() or not self.collectionIndex.oclIsUndefined() + message: self.prefix() + + "Either the member or collectionIndex shall be specified. " + } + +} + +context StaticDataUse { + //[There are no constraints specified.] +} + +context DataInstanceUse { + //'DataInstance' reference or non-empty 'argument' or non-empty 'item' + constraint DataInstanceOrArgumentsOrItems { + check: not self.dataInstance.oclIsUndefined() or not self.argument->isEmpty() or not self.item->isEmpty() + message: self.prefix() + + "If a 'dataInstance' is not specified, either a non-empty 'argument' set or a non-empty 'item' set shall be specified." + } + + //Valid 'DataType' for items + constraint DataTypeOfItemsInDataInstance { + check: self.item.forAll(i | i.resolveDataType().conformsTo(self.resolveDataType().oclAsType(CollectionDataType).itemType)) + message: self.prefix() + + "The items in the 'item' property shall conform to the 'itemType' of the resolved 'CollectionDataType'." + } + + //No 'item' if 'dataInstance' is specified + constraint NoItemWithDataInstance { + check: not self.dataInstance.oclIsUndefined() and self.item->isEmpty() + message: self.prefix() + + "The 'item' property shall be empty if the 'dataInstance' property is specified." + } + +} + +context SpecialValueUse { + //Empty 'argument' and 'reduction' sets + constraint SpecialValueArgumentReduction { + check: self.reduction->isEmpty() and self.argument->isEmpty() + message: self.prefix() + + "The 'argument' and 'reduction' sets shall be empty." + } + +} + +context AnyValue { + //[There are no constraints specified.] +} + +context AnyValueOrOmit { + //[There are no constraints specified.] +} + +context OmitValue { + //[There are no constraints specified.] + //[Figure 6.8: Dynamic data use] +} + +context DynamicDataUse { + //[There are no constraints specified.] +} + +context FunctionCall { + //Matching parameters + constraint FunctionCallParameters { + check: self.`function`.formalParameter->forAll(p | self.argument->exists(a | a.parameter = p)) + message: self.prefix() + + "All 'FormalParameter's of the invoked 'Function' shall be bound." + } + +} + +context FormalParameterUse { + //[There are no constraints specified.] +} + +context VariableUse { + //Local variables of tester components only + constraint VariableUseComponentRole { + check: self.componentInstance.type.allVariables()->includes(self.variable) + and self.componentInstance.role = ComponentInstanceRole::Tester + message: self.prefix() + + "All variables used in a 'DataUse' specification via a 'VariableUse' shall be local to the same 'componentInstance' and the 'componentInstance' shall be in the role 'Tester'." + } + +} + +context PredefinedFunctionCall { + //Compatible actual parameters + constraint PredefinedFunctionCallParameters { + check: true //This constraint cannot be expressed formally. + message: self.prefix() + + "The number and type of actual parameters shall be compatible with the formal parameters of the invoked 'PredefinedFunction' according to the specification of the 'PredefinedFunction'." + } + + //Empty 'argument' and 'reduction' sets + constraint PredefinedFunctionCallArgumentReduction { + check: self.reduction->isEmpty() and self.argument->isEmpty() + message: self.prefix() + + "The 'argument' and 'reduction' sets shall be empty." + } + +} + +context LiteralValueUse { + //Exactly one value specification + constraint SpecifiedLiteralValue { + check: not self.value.oclIsUndefined() + xor not self.intValue.oclIsUndefined() + xor not self.boolValue.oclIsUndefined() + message: self.prefix() + + "There shall be exactly one value specification, where either the 'value', or the 'intValue', or the 'boolValue' property is be specified, but not more than one of them." + } + + //Empty 'argument' and 'reduction' sets if not 'dataType' + constraint LiteralValueArgumentReduction { + check: (self.dataType.oclIsUndefined()) + implies (self.reduction->isEmpty() and self.argument->isEmpty()) + message: self.prefix() + + "If 'dataType' is not specified then the 'argument' and 'reduction' sets shall be empty." + } + + //Integer type for integer value + constraint LiteralValueIntType { + check: not self.intValue.oclIsUndefined() + implies (self.dataType.oclIsUndefined() or self.dataType.conformsTo('Integer')) + message: self.prefix() + + "If 'intValue' is specified then the 'dataType' is either unspecified or the specified 'DataType' conforms to predefined type 'Integer'." + } + + //Boolean type for Boolean value + constraint LiteralValueBoolType { + check: not self.intValue.oclIsUndefined() + implies (self.dataType.oclIsUndefined() or self.dataType.conformsTo('Boolean')) + message: self.prefix() + + "If 'boolValue' is specified then the 'dataType' is either unspecified or the specified 'DataType' conforms to predefined type 'Boolean'." + } + +} + +context DataElementUse { + //'DataElement' reference or non-empty 'argument' or non-empty 'item' + constraint DataInstanceOrArgumentsOrItemsInDataElementUse { + check: not (self.dataElement.oclIsUndefined() and self.argument->isEmpty() and self.item->isEmpty()) + and not (self.dataElement.oclIsKindOf(StructuredDataType) and self.argument->isEmpty()) + and not (self.dataElement.oclIsKindOf(CollectionDataType) and self.item->isEmpty()) + message: self.prefix() + + "If a 'dataElement' is not specified, or if the 'dataElement' is resolved to a 'StructuredDataType' or a 'CollectionDataType', either a non-empty 'argument' set or a non-empty 'item' set shall be specified." + } + + //Valid 'DataType' for items + constraint DataTypeOfItemsInDataInstance { + check: self.item.forAll(i | i.resolveDataType().conformsTo(self.resolveDataType().oclAsType(CollectionDataType).itemType)) + message: self.prefix() + + "The items in the 'item' property shall conform to the 'itemType' of the resolved 'CollectionDataType'." + } + + //Only 'item' if the resolved data type is 'CollectionDataType' + constraint ItemOnlyWithCollectionDataType { + check: ((self.dataElement.oclIsKindOf(CollectionDataType)) + or self.dataElement.oclIsUndefined()) + and not self.item->isEmpty()) + or self.item->isEmpty() + message: self.prefix() + + "The 'item' property shall be non-empty if the 'dataElement' property is resolved to a 'CollectionDataType'." + } + + //Matching parameters for 'Function's + constraint FunctionCallParameters { + check: not self.dataElement.oclIsKindOf(Function) + or self.dataElement.oclAsType(Function).formalParameter->forAll(p | self.argument->exists(a | a.parameter = p)) + message: self.prefix() + + "All 'FormalParameter's shall be bound if the 'dataElement' refers to a a 'Function'." + } + +} + +context Time { + //[There are no constraints specified.] +} + +context TimeLabel { + //[There are no constraints specified.] +} + +context TimeLabelUse { + //Empty 'argument' and 'reduction' sets + constraint TimeLabelArgumentReduction { + check: self.reduction->isEmpty() and self.argument->isEmpty() + message: self.prefix() + + "The 'argument' and 'reduction' sets shall be empty." + } + + //'TimeLabel's only within the same 'TestDescription' when local ordering is used + constraint TimeLabelLocallyOrdered { + check: self.getParentTestDescription.isLocallyOrdered = true + or self.timeLabel.getParentTestDescription() = self.getParentTestDescription() + message: self.prefix() + + "When local ordering is used, 'TimeLabel's shall only be used within the same test description. " + } + +} + +context TimeLabelUseKind { + //[There are no constraints specified.] +} + +context TimeConstraint { + //Time constraint expression of type Boolean + constraint TimeConstraintType { + check: self.timeConstraintExpression.resolveDataType().name = 'Boolean' + message: self.prefix() + + "The expression given in the 'DataUse' specification shall evaluate to predefined type 'Boolean'." + } + + //Use of local variables only + constraint TimeConstraintVariables { + check: self.timeConstraintExpression.argument + ->closure(a | a.dataUse.argument)->collect(pb | pb.dataUse) + ->union(self.timeConstraintExpression.argument)) + ->select(du | du.oclIsKindOf(VariableUse)) + ->forAll(du | self.container().getParticipatingComponents().includes( + du.oclAsType(VariableUse).componentInstance)) + message: self.prefix() + + "The expression given in the 'DataUse' specification shall contain only 'Variable's that are local to the 'AtomicBehaviour' that contains this 'TimeConstraint'. That is, all 'VariableUse's shall reference the 'ComponentInstance's which participate in the 'AtomicBehaviour'." + } + + //Use of local time labels only + constraint TimeConstraintTimeLabels { + check: self.timeConstraintExpression.argument + ->closure(a | a.dataUse.argument)->collect(pb | pb.dataUse) + ->union(self.timeConstraintExpression.argument)) + ->select(du | du.oclIsKindOf(TimeLabelUse)) + ->forAll(du | self.container().getParticipatingComponents().includesAll( + du.oclAsType(TimeLabelUse).timeLabel.container().getParticipatingComponents())) + message: self.prefix() + + "In case of locally ordered 'TestDescription', the expression given in the 'DataUse' specification shall contain only 'TimeLabel's that are local to the 'AtomicBehaviour' that contains this 'TimeConstraint'. That is, all 'TimeLabel's shall be contained in 'AtomicBehaviour's involving the 'ComponentInstance's which participate in the 'AtomicBehaviour' that contains this 'TimeConstraint." + } + + //[Figure 7.2: Time operations] +} + +context TimeOperation { + //Component required in locally ordered test description + constraint TimeOperationComponent { + check: self.getParentTestDescription.isLocallyOrdered + implies not self.componentInstance.oclIsUndefined() + message: self.prefix() + + "If the 'TimeOperation' is contained in a locally ordered 'TestDescription' then the 'componentInstance' shall be specified." + } + + //Time operations on tester components only + constraint TimeOperationComponentRole { + check: (not self.componentInstance.oclIsUndefined() + and self.componentInstance.role = ComponentInstanceRole::Tester) + or (self.oclIsTypeOf(Quiescence) + and not self.gateReference.oclIsUndefined() + and self.gateReference.component.role.name = ComponentInstanceRole::Tester) + message: self.prefix() + + "A 'TimeOperation' shall be performed only on a 'ComponentInstance' in the role 'Tester'." + } + + //'Time' data type for period expression + constraint TimePeriodType { + check: self.period.resolveDataType().oclIsKindOf(Time) + message: self.prefix() + + "The 'DataUse' expression assigned to the 'period' shall evaluate to a data instance of the 'Time' data type." + } + +} + +context Wait { + //[There are no constraints specified.] +} + +context Quiescence { + //Exclusive use of gate reference or component instance + constraint QuiescenceTarget { + check: self.gateReference.oclIsUndefined() xor self.componentInstance.oclIsUndefined() + message: self.prefix() + + "If a 'GateReference' is provided, a 'ComponentInstance' shall not be provided and vice versa." + } + + //[Figure 7.3: Timer and timer operations] +} + +context Timer { + //[There are no constraints specified.] +} + +context TimerOperation { + //Timer operations on tester components only + constraint TimerOperationComponentRole { + check: self.componentInstance.role = ComponentInstanceRole::Tester + message: self.prefix() + + "A 'TimerOperation' shall be performed only on a 'ComponentInstance' in the role 'Tester'." + } + +} + +context TimerStart { + //'Time' data type for period expression + constraint TimerPeriodType { + check: self.period.resolveDataType().oclIsKindOf(Time) + message: self.prefix() + + "The 'DataUse' expression assigned to the 'period' shall evaluate to a data instance of the 'Time' data type." + } + +} + +context TimerStop { + //[There are no constraints specified.] +} + +context TimeOut { + //[There are no constraints specified.] +} + +context GateType { + //Compatible 'DataType's. + constraint GateType { + check: self.kind = GateTypeKind::Procedure and self.allDataTypes()->forAll(t | + t.oclIsTypeOf(ProcedureSignature)) + or self.kind = GateTypeKind::Message and self.allDataTypes()->forAll(t | t.oclIsTypeOf(StructuredDataType) + or t.oclIsKindOf(SimpleDataType) or t.oclIsTypeOf(CollectionDataType)) + message: self.prefix() + + "The 'DateType's specified for the 'GateType' shall correspond the kind of the 'GateType'. For 'GateType' of kind 'Procedure' only 'ProcedureSignature's shall be specified as data types. For 'GateType' of kind 'Message' only 'StructuredDataType's, 'SimpleDataType's and 'CollectionDataType's shall be specified as data types. " + } + +} + +context GateTypeKind { + //[There are no constraints specified.] +} + +context GateInstance { + //[There are no constraints specified.] +} + +context ComponentType { + //[There are no constraints specified.] + //[Figure 8.2: Test configuration] +} + +context ComponentInstance { + //[There are no constraints specified.] +} + +context ComponentInstanceRole { + //[There are no constraints specified.] +} + +context GateReference { + //Gate instance of the referred component instance + constraint GateInstanceReference { + check: self.component.type.allGates()->includes(self.gate) + message: self.prefix() + + "The referred 'GateInstance' shall be contained in the 'ComponentType' of the referred 'ComponentInstance'." + } + +} + +context Connection { + //Self-loop connections are not permitted + constraint NoSelfLoop { + check: self.endPoint->forAll(e1 | self.endPoint->one(e2 | e1.gate = e2.gate + and e1.component = e2.component)) + message: self.prefix() + + "The 'endPoint's of a 'Connection' shall not be the same. Two endpoints are the same if both, the referred 'ComponentInstance's and the referred 'GateInstance's, are identical." + } + + //Consistent type of a connection + constraint ConsistentConnectionType { + check: self.endPoint->at(0).gate.type = self.endPoint->at(1).gate.type + message: self.prefix() + + "The 'GateInstance's of the two 'endPoint's of a 'Connection' shall refer to the same 'GateType'." + } + +} + +context TestConfiguration { + //'TestConfiguration' and components roles + constraint ComponentRoles { + check: self.componentInstance->exists(c | c.role = ComponentInstanceRole::Tester) + and self.componentInstance->exists(c | c.role = ComponentInstanceRole::SUT) + message: self.prefix() + + "A 'TestConfiguration' shall contain at least one 'Tester' and one 'SUT' 'ComponentInstance'." + } + + //Only 'Connection's between own 'ComponentInstance's + constraint OwnedComponents { + check: self.connection->forAll(c | + self.componentInstance->includes(c.endPoint->at(0).component) + and self.componentInstance->includes(c.endPoint->at(1).component)) + message: self.prefix() + + "A 'TestConfiguration' shall only contain 'Connection's between gates of its own 'ComponentInstance's. " + } + + //Minimal 'TestConfiguration' + constraint MinimalTestConfiguration { + check: self.connection->exists(c | + (c.endPoint->at(0).component.role = ComponentInstanceRole::Tester + and c.endPoint->at(1).component.role = ComponentInstanceRole::SUT) + or (c.endPoint->at(0).component.role = ComponentInstanceRole::SUT + and c.endPoint->at(1).component.role = ComponentInstanceRole::Tester)) + message: self.prefix() + + "Each 'TestConfiguration' shall specify at least one 'Connection' that connects a 'GateInstance' of a 'ComponentInstance' in the role 'Tester' with a 'GateInstance' of a 'ComponentInstance' in the role 'SUT'." + } + + //At most one connection between any two 'GateInstance'/'ComponentInstance' pairs + constraint UniqueConnections { + check: self.connection->forAll(c1 | self.connection->one(c2 | + (c1.endPoint->at(0).component = c2.endPoint->at(0).component + and c1.endPoint->at(0).gate = c2.endPoint->at(0).gate + and c1.endPoint->at(1).component = c2.endPoint->at(1).component + and c1.endPoint->at(1).gate = c2.endPoint->at(1).gate) + + or (c1.endPoint->at(1).component = c2.endPoint->at(0).component + and c1.endPoint->at(1).gate = c2.endPoint->at(0).gate + and c1.endPoint->at(0).component = c2.endPoint->at(1).component + and c1.endPoint->at(0).gate = c2.endPoint->at(1).gate))) + message: self.prefix() + + "Given the set of 'Connection's contained in a 'TestConfiguration'. There shall be no two 'Connection's containing 'GateReference's that in turn refer to identical pairs of 'GateInstance'/'ComponentInstance'." + } + +} + +context TestDescription { + //[There are no constraints specified.] +} + +context BehaviourDescription { + //[There are no constraints specified.] +} + +context Behaviour { + //[There are no constraints specified.] +} + +context Block { + //Guard shall evaluate to Boolean + constraint GuardType { + check: self.`guard`.oclIsUndefined() or self.`guard`.resolveDataType().name = 'Boolean' + message: self.prefix() + + "The type of 'guard' shall be 'Boolean'." + } + + //No directly contained 'ExceptionalBehaviour's and 'PeriodicBehaviour's. + constraint AllowedBehaviourTypes { + check: self.behaviour.forAll(b | + not b.oclIsTypeOf(ExceptionalBehaviour) and not b.oclIsTypeOf(PeriodicBehaviour)) + message: self.prefix() + + "A 'Block' shall not contain 'ExceptionalBehaviour's and 'PeriodicBehaviour's." + } + + //Guard for each participating tester in locally ordered test descriptions + constraint GuardsForParticipatingComponents { + check: self.getParticipatingComponents()->reject(c | c.role = ComponentInstanceRole::SUT) + ->forAll(c | self.`guard`->exists(ex | ex.componentInstance = c)) + or not self.getParentTestDescription().isLocallyOrdered + message: self.prefix() + + "If the 'Block' is contained in a locally ordered 'TestDescription' then a guard shall be specified for every participating 'ComponentInstance' in the associated 'TestConfiguration' that has the role 'Tester' or there shall be no guards at all. " + } + + //Single guard in totally ordered test description + constraint SingleTotalGuard { + check: self.getParentTestDescription().isLocallyOrdered or self.`guard`->size() <= 1 + message: self.prefix() + + "If the 'Block' is contained in a totally ordered 'TestDescription' then there shall not be more than one guard. " + } + +} + +context LocalExpression { + //Local expressions in locally ordered test descriptions have 'ComponentInstance' specified + constraint LocalExpressionComponent { + check: self.getParentTestDescription().isLocallyOrdered + implies not self.componentInstance.oclIsUndefined() + message: self.prefix() + + "If the 'LocalExpression' is contained in a locally ordered 'TestDescription' then the componentInstance shall be specified. " + } + + //Only local variables and time labels in case of locally ordered test description + constraint LocalVariablesAndTimersInExpression { + check: self.expression.argument + ->closure(a | a.dataUse.argument)->collect(pb | pb.dataUse) + ->union(self.expression.argument)) + ->including(self.expression)) + ->select(du | du.oclIsKindOf(VariableUse)) + ->forAll(du | du.oclAsType(VariableUse).componentInstance = self.componentInstance)) + and self.expression.argument + ->closure(a | a.dataUse.argument)->collect(pb | pb.dataUse) + ->union(self.expression.argument)) + ->including(self.expression)) + ->select(du | du.oclIsKindOf(TimeLabelUse)) + ->forAll(du | du.oclAsType(TimeLabelUse).timeLabel.container() + .getParticipatingComponents.includes(self.componentInstance)) + message: self.prefix() + + "If the componentInstance is specified then all 'Variable's and 'TimeLabel's used in the expression shall be local to that 'ComponentInstance'." + } + +} + +context CombinedBehaviour { + //[There are no constraints specified.] +} + +context SingleCombinedBehaviour { + //[There are no constraints specified.] +} + +context CompoundBehaviour { + //[There are no constraints specified.] +} + +context BoundedLoopBehaviour { + //No guard constraint + constraint BoundedGuard { + check: self.block.`guard`.oclIsUndefined() + message: self.prefix() + + "The 'Block' of a 'BoundedLoopBehaviour' shall not have a 'guard'." + } + + //Iteration number shall be countable and positive + constraint LoopIteration { + check: self.numIteration.forAll(e | e.expression.resolveDataType().conformsTo('Integer')) + message: self.prefix() + + "The expression assigned to the 'numIteration' property shall evaluate to a countable 'SimpleDataInstance' of an arbitrary user-defined data type, e.g. a positive Integer value." + } + + //Iteration count in locally ordered test descriptions + constraint IterationCountsForParticipatingComponents { + check: self.block.getParticipatingComponents()->reject(c | c.role = ComponentInstanceRole::SUT) + ->forAll(c | self.numIteration->exists(ex | ex.componentInstance = c)) + or not self.getParentTestDescription().isLocallyOrdered + message: self.prefix() + + "If the 'BoundedLoopBehaviour' is contained in a locally ordered 'TestDescription' then a numIteration shall be specified for every participating 'ComponentInstance' that has the role 'Tester'." + } + + //Single numIteration in totally ordered test description + constraint SingleTotalIterationCount { + check: self.getParentTestDescription().isLocallyOrdered or self.numIteration->size() = 1 + message: self.prefix() + + "If the 'BoundedLoopBehaviour' is contained in a totally ordered 'TestDescription' then there shall be exactly one numIteration." + } + +} + +context UnboundedLoopBehaviour { + //[There are no constraints specified.] +} + +context OptionalBehaviour { + //First 'AtomicBehaviour' in block allowed + constraint OptionalBehaviourStart { + check: self.block.behaviour->first().oclIsKindOf(Interaction) + and self.block.behaviour->first().oclAsType(Interaction) + ->collect(i | i.sourceGate.component->union(i.target.targetGate.component)) + ->forAll(c | c.role = ComponentInstanceRole::Tester) + message: self.prefix() + + "The block of an 'OptionalBehaviour' shall start with a tester-to-tester 'Interaction'. " + } + + //No other testers except the participants of starting 'Interaction' within 'OptionalBehaviour' in locally ordered 'TestDescription' + constraint OptionalBehaviourParticipation { + check: let initial = self.block.behaviour->first().oclAsTypeOf(Interaction), + initialComponents = initial->collect(i | i.sourceGate.component->union(i.target.targetGate.component)), + optionals = self.block->closure( + b | b.behaviour + ->select(oclIsKindOf(SingleCombinedBehaviour)).oclAsType(SingleCombinedBehaviour).block + ->union(b.behaviour + ->select(oclIsKindOf(MultipleCombinedBehaviour)).oclAsType(MultipleCombinedBehaviour).block) + ).behaviour->select(oclIsKindOf(OptionalBehaviour)).oclAsType(OptionalBehaviour), + optionalTargets = optionals.block->first().target.targetGate.component + in + self.block.getParticipatingComponents() + ->forAll(c | initialComponents->includes(c) or optionalTargets->includes(c)) + or not self.getParentTestDescription().isLocallyOrdered + message: self.prefix() + + "If an 'OptionalBehaviour' is included in a locally ordered 'TestDescription' then no other tester 'ComponentInstance' shall participate in the block of the 'OptionalBehaviour' than the source and target of the starting 'Interaction' except when being a target of the starting 'Interaction' in a nested 'OptionalBehaviour'. " + } + +} + +context MultipleCombinedBehaviour { + //[There are no constraints specified.] +} + +context AlternativeBehaviour { + //Number of 'Block's + constraint AlternativeBlockCount { + check: self.block->size() > 1 + message: self.prefix() + + "An 'AlternativeBehaviour' shall contain at least two 'Block's. " + } + + //First behaviour of 'Block's + constraint FirstBlockBehaviour { + check: self.block->forAll(b | b.behaviour->first().isTesterInputEvent()) + message: self.prefix() + + "Each block of an 'AlternativeBehaviour' shall start with a tester-input event. " + } + + //Same component if locally ordered + constraint AlternativeBlocksComponent { + check: let initial = self.block.behaviour->first() in + Set{} + ->including(initial->select(oclIsKindOf(Interaction)).oclAsType(Interaction).target.targetGate.component) + ->including(initial->select(oclIsKindOf(Quiescence)).oclAsType(Quiescence).componentInstance) + -> including(initial->select(oclIsKindOf(TimeOut)).oclAsType(TimeOut).componentInstance) + ->size() = 1 or not self.getParentTestDescription().isLocallyOrdered + message: self.prefix() + + "If the containing 'TestDescription' is locally ordered then all 'Block's shall start with a tester-input event of the same 'ComponentInstance'. " + } + + //Tester participating in locally ordered case + constraint AlternativeBehaviourParticipation { + check: let initial = self.block.behaviour->first(), + targetComponent = Set{} + ->including(initial->select(oclIsKindOf(Interaction)).oclAsType(Interaction).target.targetGate.component) + ->including(initial->select(oclIsKindOf(Quiescence)).oclAsType(Quiescence).componentInstance) + -> including(initial->select(oclIsKindOf(TimeOut)).oclAsType(TimeOut).componentInstance), + nonOptionalBlocks = self.block->closure( + b | b.behaviour->reject(oclIsKindOf(OptionalBehaviour)) + ->select(oclIsKindOf(SingleCombinedBehaviour)).oclAsType(SingleCombinedBehaviour).block + ->union(b.behaviour->reject(oclIsKindOf(OptionalBehaviour)) + ->select(oclIsKindOf(MultipleCombinedBehaviour)).oclAsType(MultipleCombinedBehaviour).block) + ) + in + targetComponent->includesAll( + nonOptionalBlocks.getParticipatingComponents()->reject(c | c.role = ComponentInstanceRole::SUT)) + or not self.getParentTestDescription().isLocallyOrdered + message: self.prefix() + + "If the 'AlternativeBehaviour' is contained in a locally ordered 'TestDescription' then no other tester 'ComponentInstance' shall participate in any block than the target of the first tester-input event and 'ComponentInstance's participating in blocks of contained 'OptionalBehaviour's. " + } + + //OptionalBehaviour in locally ordered case + constraint OptionalAlternativeBehaviour { + check: let initial = self.block.behaviour->first(), + targetComponent = Set{} + ->including(initial->select(oclIsKindOf(Interaction)).oclAsType(Interaction).target.targetGate.component) + ->including(initial->select(oclIsKindOf(Quiescence)).oclAsType(Quiescence).componentInstance) + -> including(initial->select(oclIsKindOf(TimeOut)).oclAsType(TimeOut).componentInstance) + in + self.block.behaviour->select(oclIsKindOf(OptionalBehaviour)).block + ->first().oclAsType(Interaction).sourceGate.component->forAll(c | c = targetComponent) + or not self.getParentTestDescription().isLocallyOrdered + message: self.prefix() + + "A block of an 'AlternativeBehaviour' if the containing 'TestDescription' is locally ordered, shall only contain 'OptionalBehaviour'(s) whose source 'ComponentInstance' is the same as the target of the first tester-input event of that 'Block'. " + } + +} + +context ConditionalBehaviour { + //Guard for 'ConditionalBehaviour' with single block + constraint ConditionalFirstGuard { + check: self.block->size() > 1 or not self.block->first().`guard`.oclIsUndefined() + message: self.prefix() + + "If there is only one 'Block' specified, it shall have a 'guard'." + } + + //Possible else block for 'ConditionalBehaviour' with multiple blocks + constraint ConditionalLastGuard { + check: self.block->size() = 1 + or self.block->forAll(b | b = self.block->last() or not b.`guard`.oclIsUndefined()) + message: self.prefix() + + "All 'Block's specified, except the last one, shall have a 'guard'." + } + +} + +context ParallelBehaviour { + //Number of blocks in 'ParallelBehaviour' + constraint ParallelBlockCount { + check: self.block->size() > 1 + message: self.prefix() + + "There shall be at least two 'Block's specified." + } + + //[Figure 9.3: Exceptional and periodic behaviour] +} + +context ExceptionalBehaviour { + //First 'AtomicBehaviour' in block allowed + constraint FirstExceptionalBehaviour { + check: self.block.behaviour->first().isTesterInputEvent() + message: self.prefix() + + "The block of an 'ExceptionalBehaviour' shall start with a tester-input event." + } + + //Guarded component shall be a 'Tester' component + constraint ExceptionalGuardedComponent { + check: self.guardedComponent.oclIsUndefined() or self.guardedComponent.role = ComponentInstanceRole::Tester + message: self.prefix() + + "The 'guardedComponent' shall refer to a 'ComponentInstance' with the role of 'Tester'." + } + + //Same component if locally ordered and guarded component present + constraint ExceptionalGuardedandTargetComponent { + check: let initial = self.block.behaviour->first(), + targetComponent = Set{} + ->including(initial->select(oclIsKindOf(Interaction)).oclAsType(Interaction).target.targetGate.component) + ->including(initial->select(oclIsKindOf(Quiescence)).oclAsType(Quiescence).componentInstance) + -> including(initial->select(oclIsKindOf(TimeOut)).oclAsType(TimeOut).componentInstance) + in + guardedComponent->includesAll(targetComponent()) + or not self.getParentTestDescription().isLocallyOrdered + message: self.prefix() + + "If the containing 'TestDescription' is locally ordered and guardedComponent is specified then the 'Block's shall start with tester-input event of the same 'ComponentInstance' as specified in guardedComponent. " + } + + //Tester participating in locally ordered case + constraint ExceptionalBehaviourParticipation { + check: let initial = self.block.behaviour->first(), + targetComponent = Set{} + ->including(initial->select(oclIsKindOf(Interaction)).oclAsType(Interaction).target.targetGate.component) + ->including(initial->select(oclIsKindOf(Quiescence)).oclAsType(Quiescence).componentInstance) + -> including(initial->select(oclIsKindOf(TimeOut)).oclAsType(TimeOut).componentInstance), + nonOptionalBlocks = self.block->closure( + b | b.behaviour->reject(oclIsKindOf(OptionalBehaviour)) + ->select(oclIsKindOf(SingleCombinedBehaviour)).oclAsType(SingleCombinedBehaviour).block + ->union(b.behaviour->reject(oclIsKindOf(OptionalBehaviour)) + ->select(oclIsKindOf(MultipleCombinedBehaviour)).oclAsType(MultipleCombinedBehaviour).block) + ) + in + targetComponent->includesAll( + nonOptionalBlocks.getParticipatingComponents()->reject(c | c.role = ComponentInstanceRole::SUT)) + or not self.getParentTestDescription().isLocallyOrdered + message: self.prefix() + + "If the 'ExceptionalBehaviour' is contained in a locally ordered 'TestDescription' then no other tester 'ComponentInstance' shall participate in any block than the target of the first tester-input event and 'ComponentInstance's participating in blocks of contained 'OptionalBehaviour's . " + } + + //OptionalBehaviour in locally ordered case + constraint OptionalExceptionalBehaviour { + check: let initial = self.block.behaviour->first(), + targetComponent = Set{} + ->including(initial->select(oclIsKindOf(Interaction)).oclAsType(Interaction).target.targetGate.component) + ->including(initial->select(oclIsKindOf(Quiescence)).oclAsType(Quiescence).componentInstance) + -> including(initial->select(oclIsKindOf(TimeOut)).oclAsType(TimeOut).componentInstance) + in + self.block.behaviour->select(oclIsKindOf(OptionalBehaviour)).block + ->first().oclAsType(Interaction).sourceGate.component->forAll(c | c = targetComponent) + or not self.getParentTestDescription().isLocallyOrdered + message: self.prefix() + + "A block of an 'ExceptionalBehaviour' if the containing 'TestDescription' is locally ordered, shall only contain 'OptionalBehaviour'(s) whose source 'ComponentInstance' is the same as the target of the first tester-input event of that 'Block'. " + } + +} + +context DefaultBehaviour { + //[There are no constraints specified.] +} + +context InterruptBehaviour { + //[There are no constraints specified.] +} + +context PeriodicBehaviour { + //'Time' data type for period expression + constraint PeriodType { + check: self.period.resolveDataType().oclIsKindOf(Time) + message: self.prefix() + + "The 'DataUse' expression assigned to the 'period' shall evaluate to a data instance of the 'Time' data type." + } + + //Period for each tester in locally ordered test descriptions + constraint PeriodForParticipatingComponents { + check: self.block.getParticipatingComponents()->reject(c | c.role = ComponentInstanceRole::SUT) + ->forAll(c | self.period->exists(ex | ex.componentInstance = c)) + or not self.getParentTestDescription().isLocallyOrdered + message: self.prefix() + + "If the 'PeriodicBehaviour' is contained in a locally ordered 'TestDescription' then a period shall be specified for every 'ComponentInstance' that has the role 'Tester' and for which there is a behaviour in the contained 'Block'. " + } + +} + +context AtomicBehaviour { + //[There are no constraints specified.] +} + +context Break { + //Break in conditional behaviour only + constraint ConditionalBreak { + check: self.container().container().oclIsKindOf(ConditionalBehaviour) + message: self.prefix() + + "A 'Break' shall be contained directly in the block of a 'ConditionalBehaviour'. " + } + + //No behaviours after break + constraint ConditionalBreak { + check: self.container().oclAsType(Block).behaviour->last() = self + message: self.prefix() + + "A 'Break' shall be the last behaviour in the containing 'Block'. " + } + +} + +context Stop { + //[There are no constraints specified.] +} + +context VerdictAssignment { + //Verdict of type 'Verdict' + constraint VerdictType { + check: self.verdict.resolveDataType().name = 'Verdict' + message: self.prefix() + + "The 'verdict' shall evaluate to a, possibly predefined, instance of a 'SimpleDataInstance' of data type 'Verdict'." + } + + //No 'SpecialValueUse' + constraint VerdictNoSpecialValueUse { + check: not self.verdict.oclIsKindOf(SpecialValueUse) + message: self.prefix() + + "The 'verdict' shall not evaluate to an instance of a 'SpecialValueUse'." + } + +} + +context Assertion { + //Boolean condition + constraint AssertionOtherwise { + check: self.condition.resolveDataType().name = 'Boolean' + message: self.prefix() + + "The 'condition' shall evaluate to predefined 'DataType' 'Boolean'." + } + + //Otherwise of type 'Verdict' + constraint AssertionVerdict { + check: self.otherwise.oclIsUndefined() or self.otherwise.resolveDataType().name = 'Verdict' + message: self.prefix() + + "The 'otherwise' shall evaluate to a, possibly predefined, instance of a 'SimpleDataInstance' of data type 'Verdict'." + } + + //No 'SpecialValueUse' + constraint AssertionNoSpecialValueUse { + check: not self.otherwise.oclIsKindOf(SpecialValueUse) + message: self.prefix() + + "The 'otherwise' shall not evaluate to an instance of a 'SpecialValueUse'." + } + + //[Figure 9.5: Interaction behaviour] +} + +context Interaction { + //Gate references of an interaction shall be connected + constraint ConnectedInteractionGates { + check: self.target.forAll(t | + self.getParentTestDescription().testConfiguration.connection->exists(c | + (c.endPoint->at(0).gate = self.sourceGate.gate + and c.endPoint->at(0).component = self.sourceGate.component + and c.endPoint->at(1).gate = t.targetGate.gate + and c.endPoint->at(1).component = t.targetGate.component) + + or (c.endPoint->at(1).gate = self.sourceGate.gate + and c.endPoint->at(1).component = self.sourceGate.component + and c.endPoint->at(0).gate = t.targetGate.gate + and c.endPoint->at(0).component = t.targetGate.component))) + message: self.prefix() + + "The 'GateReference's that act as source or target(s) of an 'Interaction' shall be interconnected by a 'Connection' which is contained in the 'TestConfiguration' referenced by the 'TestDescription' containing the 'Interaction'." + } + +} + +context Message { + //'DataType' resolvable + constraint DataTypeResolvable { + check: not self.argument.oclIsUndefined() + message: self.prefix() + + "If the 'argument' is 'DataInstanceUse', either the 'dataType' property or the 'dataInstance' property shall be provided. If the 'argument' is a 'DataElementUse', the 'dataElement' property shall be provided." + } + + //Type of message argument + constraint MessageArgumentAndGateType { + check: (self.argument.oclIsKindOf(AnyValue) + and self.argument.dataType.oclIsUndefined()) + or (self.sourceGate.gate.type.allDataTypes()-> exists(t | self.argument.resolveDataType().conformsTo(t)) + and self.target.forAll(t | t.targetGate.gate.type.allDataTypes()->exists(t | self.argument.resolveDataType().conformsTo(t)))) + message: self.prefix() + + "The 'DataUse' specification referred to in the 'argument' shall match one of the 'DataType's referenced in the 'GateType' definition of the 'GateInstance's referred to by the source and target 'GateReference's of the 'Interaction'." + } + + //Use of variables in the 'argument' specification + constraint MessageArgumentVariableUse { + check: (not self.argument.oclIsKindOf(VariableUse) + or (self.sourceGate.component = self.argument.oclAsType(VariableUse).componentInstance + or self.target->exists(t | + t.targetGate.component = self.argument.oclAsType(VariableUse).componentInstance))) + + and self.argument.argument->forAll(a | + not a.dataUse.oclIsKindOf(VariableUse) + or (self.sourceGate.component = a.dataUse.oclAsType(VariableUse).componentInstance + or self.target->exists(t | + t.targetGate.component = a.dataUse.oclAsType(VariableUse).componentInstance))) + + and self.argument.argument->closure(a | a.dataUse.argument)->forAll(a | + not a.dataUse.oclIsKindOf(VariableUse) + or (self.sourceGate.component = a.dataUse.oclAsType(VariableUse).componentInstance + or self.target->exists(t | + t.targetGate.component = a.dataUse.oclAsType(VariableUse).componentInstance))) + message: self.prefix() + + "The use of 'Variable's in the 'DataUse' specification shall be restricted to 'Variable's of 'ComponentInstance's that participate in this 'Message' via the provided 'GateReference's." + } + + //Conforming data type for 'argument' and 'variable' + constraint MessageArgumentAndVariableType { + check: self.target.forAll(t | t.variable.oclIsUndefined() + or not self.argument.resolveDataType().oclIsUndefined() + and self.argument.resolveDataType().conformsTo(t.variable.dataType)) + message: self.prefix() + + "If a 'Variable' is specified for a 'Target', the 'DataType' of 'DataUse' specification of the 'argument' shall conform to the 'DataType's of referenced 'Variable's of all 'Target's." + } + +} + +context ProcedureCall { + //Only point-to-point procedure calls + constraint ProcedureCallTargetCount { + check: self.target->size() = 1 + message: self.prefix() + + "The 'target' of 'ProcedureCall' shall contain exactly one 'Target'. " + } + + //Each call has a reply + constraint ProcedureCallHasReply { + check: ProcedureCall.allInstances()->exists(pc | pc.replyTo = self) + message: self.prefix() + + "For every 'ProcedureCall' with empty 'replyTo' there shall be one or more 'ProcedureCall's that have this 'ProcedureCall' as 'replyTo'. " + } + + //Call and reply within the same 'TestDescription' + constraint ProcedureCallHasReply { + check: self.replyTo.oclIsUndefined() + or self.replyTo.getTestDescription() = self.getTestDescription() + message: self.prefix() + + "The 'ProcedureCall' referenced in the 'replyTo' shall be within the same 'TestDescription' as this 'ProcedureCall'. " + } + + //Call and reply between same components + constraint ProcedureCallReplyGates { + check: ProcedureCall.allInstances()->select(pc | pc.replyTo = self)->forAll( + reply | + reply.target->forAll(t | t.targetGate.component = self.sourceGate.component) + and reply.target->forAll(t | t.targetGate.gate = self.sourceGate.gate) + and self.target->forAll(t | t.targetGate.component = reply.sourceGate.component) + and self.target->forAll(t | t.targetGate.gate = reply.sourceGate.gate)) + message: self.prefix() + + "The 'sourceGate' and 'target' of a 'ProcedureCall' with 'replyTo' shall match the 'target' and 'sourceGate' of the 'ProcedureCall' in the 'replyTo'. That is, corresponding 'GateReference's shall be the equal. " + } + + //Synchronous procedure calls + constraint ProcedureCallSynchronousCalling { + check: let source = self.sourceGate.component, + affectingBehaviours = self.container().oclAsType(Block).behaviour + ->reject(b | b.oclIsKindOf(ActionBehaviour) + and b.oclAsType(ActionBehaviour).componentInstance <> source) + ->reject(b | b.oclIsKindOf(Interaction) + and b.oclAsType(Interaction).sourceGate.component <> source + and b.oclAsType(Interaction).target->forAll(t | t.targetGate.component <> source)) + ->reject(b| b.oclIsKindOf(TestDescriptionReference) + and (not b.oclAsType(TestDescriptionReference).componentInstanceBinding->isEmpty() + and not b.oclAsType(TestDescriptionReference).componentInstanceBinding + .actualComponent->includes(self))), + following = affectingBehaviours ->at(affectingBehaviours->indexOf(self) + 1) + in (following.oclIsKindOf(ProcedureCall) and following.oclAsType(ProcedureCall).replyto = self) + or (following.oclIsKindOf(AlternativeBehaviour) + and following.oclAsType(AlternativeBehaviour).block->exists( + b | b.behaviour->first().oclIsKindOf(ProcedureCall) + and b.behaviour->first().oclAsType(ProcedureCall).replyto = self)) + message: self.prefix() + + "A 'ProcedureCall' with empty 'replyTo' shall not be followed by any behaviour in which the component specified in the 'sourceGate' is participating, other than a 'ProcedureCall' that specifies this 'ProcedureCall' as 'replyTo' or an 'AlternativeBehaviour' that contains such a 'ProcedureCall' in the beginning of a 'block'. " + } + + //Type of procedure call + constraint ProcedureCallSignatureInGateTypes { + check: self.sourceGate.gate.type.allDataTypes()->includes(self.signature) + and self.target->forAll(targetGate.gate.type.allDataTypes()->includes(self.signature)) + message: self.prefix() + + "The 'ProcedureSignature' referred to in the 'procedure' shall be one of the 'DataType's referenced in the 'GateType' definition of the 'GateInstance's referred to by the source and target 'GateReference's of the 'ProcedureCall'. " + } + + //No mixing of parameters + constraint ProcedureParameterKind { + check: self.argument->collect(pb | pb.parameter.oclAsType(ProcedureParameter).kind) + ->asSet()->size() <= 1 + message: self.prefix() + + "All 'ParameterBinding's specified in the 'argument' shall refer to 'ProcedureParameter's of the same 'ParameterKind'. " + } + + //Matching procedure arguments + constraint ProcedureCallArguments { + check: (self.replyTo.oclIsUndefined() and self.signature.parameter->select(p | p.kind = ParameterKind::In) + ->forAll(p | self.argument.parameter->includes(p))) + or (not self.replyTo.oclIsUndefined() and self.signature.parameter->reject(p | p.kind = ParameterKind::In) + ->forAll(p | self.argument.parameter->includes(p))) + message: self.prefix() + + "For a 'ProcedureCall' with empty 'replyTo' there shall be one 'ParameterBinding' instance in the 'argument' for each 'ProcedureParameter' with kind 'In' in the associated 'ProcedureSignature'. For a 'ProcedureCall' with 'replyTo' there shall be one 'ParameterBinding' instance in the 'argument' for each 'ProcedureParameter' with kind 'Out' or 'Exception' in the associated 'ProcedureSignature'. " + } + + //Use of variables in the 'argument' specification + constraint ProcedureCallVariableUse { + check: self.argument + ->closure(pb | pb.dataUse.argument)->union(self.argument)->collect(pb | pb.dataUse) + ->select(du | du.oclIsKindOf(VariableUse)) + ->forAll(du | self.getParticipatingComponents().includes( + du.oclAsType(VariableUse).componentInstance)) + message: self.prefix() + + "The use of 'Variable's in the 'DataUse' specifications in 'ParameterBinding's shall be restricted to 'Variable's of 'ComponentInstance's that participate in this 'ProcedureCall' via the provided 'GateReference's. " + } + + //Reply not starting event of exceptional behaviour + constraint ProcedureCallReplyNotInExceptional { + check: self.replyTo.oclIsUndefined() or not self.container().container().oclIsKindOf(ExceptionalBehaviour) + message: self.prefix() + + "A 'ProcedureCall' that specifies replyTo shall not be the first behaviour of a block in an 'ExceptionalBehaviour'. " + } + +} + +context Target { + //Variable and target gate of the same component instance + constraint TargetComponent { + check: self.valueAssignment->isEmpty() + or self.targetGate.component.type.allVariables()->includesAll(self.valueAssignment.variable) + message: self.prefix() + + "The 'Variable's referenced by 'valueAssignment' shall exist in the same 'ComponentType' as the 'GateInstance' that is referred to by the 'GateReference' of the 'targetGate'." + } + + //Variable of a tester component only + constraint TargetVariableComponentRole { + check: self.valueAssignment->isEmpty () or self.targetGate.component.role = ComponentInstanceRole::Tester + message: self.prefix() + + "If a 'ValueAssignment' is specified, the 'ComponentInstance' referenced by 'targetGate' shall be in the role 'Tester'." + } + +} + +context ValueAssignment { + //Conforming data type for 'parameter' and 'variable' + constraint AssignedParamterType { + check: self.parameter.oclIsUndefined() or self.parameter.dataType.conformsTo(self.variable.dataType) + message: self.prefix() + + "If the 'parameter' is specified then its type shall conform to the type of the 'variable'. " + } + + //Parameter of associated procedure signature + constraint AssignedProcedureParameter { + check: self.parameter.oclIsUndefined() + or (self.container().container().oclIsKindOf(ProcedureCall) and + self.container().container().oclAsType(ProcedureCall).signature.parameter->includes(self.parameter)) + message: self.prefix() + + "If the 'parameter' is specified then it shall be contained in the 'ProcedureSignature' that is referred in the 'signature' ot the 'ProcedureCall' containing this 'ValueAssignment'." + } + + //[Figure 9.6: Test description reference] +} + +context TestDescriptionReference { + //All test description parameters bound + constraint AllTestDescriptionParametersBound { + check: self.testDescription.formalParameter->forAll(p | self.argument->exists(a | a.parameter = p)) + message: self.prefix() + + "For each 'FormalParameter' defined in 'formalParameter of' the referenced 'TestDescription' there shall be a 'ParameterBinding' in 'argument' that refers to that 'FormalParameter' in 'parameter'." + } + + //No use of variables in arguments + constraint NoVariablesInLocallyOrderedTestDescriptionReference { + check: self.argument.collect(pb | pb.dataUse).forAll(du | + not du.oclIsKindOf(VariableUse) + and du.argument->forAll(a | not a.dataUse.oclIsKindOf(VariableUse)) + and du.argument->closure(a | a.dataUse.argument)->forAll(a | + not a.dataUse.oclIsKindOf(VariableUse))) + message: self.prefix() + + "In locally ordered 'TestDescription's, 'DataUse' expressions used to describe arguments shall not contain variables directly or indirectly in 'TestDescriptionReference's." + } + + //No use of time labels in arguments + constraint NoTimeLabelsInLocallyOrderedTestDescriptionReference { + check: self.argument.collect(pb | pb.dataUse).forAll(du | + not du.oclIsKindOf(TimeLabelUse) + and du.argument->forAll(a | not a.dataUse.oclIsKindOf(TimeLabelUse)) + and du.argument->closure(a | a.dataUse.argument)->forAll(a | + not a.dataUse.oclIsKindOf(TimeLabelUse))) + message: self.prefix() + + "In locally ordered 'TestDescription's, 'DataUse' expressions used to describe arguments shall not contain time labels directly or indirectly in 'TestDescriptionReference's." + } + + //Restriction to 1:1 component instance bindings + constraint UniqueComponentBindings { + check: self.componentInstanceBinding->isEmpty() + or self.componentInstanceBinding->forAll(b | + self.componentInstanceBinding->one(c | + c.formalComponent = b.formalComponent or c.actualComponent = b.actualComponent)) + message: self.prefix() + + "If component instance bindings are provided, the component instances referred to in the bindings shall occur at most once for the given test description reference." + } + + //Compatible test configurations + constraint CompatibleConfiguration { + check: self.testDescription.testConfiguration.compatibleWith( + self.getParentTestDescription().testConfiguration, self.componentInstanceBinding) + message: self.prefix() + + "The 'TestConfiguration' of the referenced (invoked) 'TestDescription' shall be compatible with the 'TestConfiguration' of the referencing (invoking) 'TestDescription' under the provided 'ComponentInstanceBinding's between the 'ComponentInstance's of the 'TestConfiguration's of referenced and referencing 'TestDescription's. " + } + + //No combining of local and total ordering + constraint LocalAndTotalOrdering { + check: self.getParentTestDescription().isLocallyOrdered = self.testDescription.isLocallyOrdered + message: self.prefix() + + "The referenced 'TestDescription' shall have the same ordering assumption as the referencing 'TestDescription'." + } + +} + +context ComponentInstanceBinding { + //Conforming component types + constraint BindingComponentTypes { + check: self.actualComponent.type.conformsTo(self.formalComponent.type) + message: self.prefix() + + "The 'ComponentType' of the actual 'ComponentInstance' shall conform to 'ComponentType' of the formal 'ComponentInstance." + } + + //Matching component instance roles + constraint BindingComponentRoles { + check: self.formalComponent.role = self.actualComponent.role + message: self.prefix() + + "Both, the formal and the actual component instances, shall have the same 'ComponentInstanceRole' assigned to." + } + + //[Figure 9.7: Action behaviour concepts] +} + +context ActionBehaviour { + //'ActionBehaviour' on 'Tester' components only + constraint ActionBehaviourComponentRole { + check: self.componentInstance.oclIsUndefined() or self.componentInstance.role = ComponentInstanceRole::Tester + message: self.prefix() + + "The 'ComponentInstance' that an 'ActionBehaviour' refers to shall be of role 'Tester'." + } + + //Known 'componentInstance' with locally-ordered behaviour + constraint ActionBehaviourComponentInstance { + check: not self.componentInstance.oclIsUndefined() or not self.getParentTestDescription().isLocallyOrdered + message: self.prefix() + + "The 'ComponentInstance' that an 'ActionBehaviour' refers to shall be specified if the 'ActionBehaviour' is used within a locally-ordered 'TestDescription'." + } + +} + +context ActionReference { + //All action parameters bound + constraint AllActionParametersBound { + check: self.action.formalParameter->forAll(p | self.argument.parameter->includes(p)) + message: self.prefix() + + "For each 'FormalParameter' defined in 'formalParameter of' the referenced 'Action' there shall be a 'ParameterBinding' in 'argument' that refers to that 'FormalParameter' in 'parameter'. " + } + + //No 'Function's in 'ActionReference' + constraint ActionReferenceFunction { + check: not self.action.oclIsTypeOf(Function) + message: self.prefix() + + "The referenced 'Action' shall not be a 'Function'." + } + +} + +context InlineAction { + //[There are no constraints specified.] +} + +context Assignment { + //Conforming data type + constraint AssignmentDataType { + check: self.expression.resolveDataType().conformsTo(self.variable.variable.dataType) + message: self.prefix() + + "The provided 'DataUse' expression shall conform to the 'DataType' of the referenced 'Variable'." + } + + //Empty 'argument' set for 'variable' + constraint AssignmentVariableArgument { + check: self.variable.argument->isEmpty() + message: self.prefix() + + "The 'argument' and 'reduction' sets shall be empty." + } + +} diff --git a/plugins/org.etsi.mts.tdl.constraints.helper/resources/generated/tdl-generated-ETSI-ES-203-119-1-V1.6.1.evl b/plugins/org.etsi.mts.tdl.constraints.helper/resources/generated/tdl-generated-ETSI-ES-203-119-1-V1.6.1.evl new file mode 100644 index 0000000000000000000000000000000000000000..5131260ed73d57cc92be89644edd5ef19d395214 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.constraints.helper/resources/generated/tdl-generated-ETSI-ES-203-119-1-V1.6.1.evl @@ -0,0 +1,1622 @@ +import "../library/common.eol"; +import "../library/helper.eol"; +import "../library/debug.eol"; + +context Element { + //[There are no constraints specified.] +} + +context NamedElement { + //Mandatory name + constraint MandatoryName { + check: not self.name.oclIsUndefined() and self.name.size() > 0 + message: self.prefix() + + "A 'NamedElement' shall have the 'name' property set and the 'name' shall be not an empty String." + } + + //Distinguishable qualified names + constraint DistinquishableName { + check: NamedElement.allInstances()->one(e | e.qualifiedName = self.qualifiedName) + message: self.prefix() + + "All qualified names of instances of 'NamedElement's shall be distinguishable within a TDL model." + } + + //[NOTE: It is up to the concrete syntax definition and tooling to resolve any name clashes between instances of the same meta-class in the qualified name.] +} + +context PackageableElement { + //[There are no constraints specified.] +} + +context Package { + //No cyclic imports + constraint CyclicImports { + check: self.`import`->asOrderedSet()->closure(i | i.importedPackage.`import`)->forAll(i | + i.importedPackage <> self) + message: self.prefix() + + "A 'Package' shall not import itself directly or indirectly." + } + +} + +context ElementImport { + //Consistency of imported elements + constraint ConsistentImports { + check: self.importedElement->forAll(e | self.importedPackage.packagedElement->includes(e)) + message: self.prefix() + + "All imported 'PackageableElement's referenced by an 'ElementImport' shall be directly owned by the imported 'Package'." + } + + //[Figure 5.2: Miscellaneous elements] +} + +context Comment { + //No nested comments + constraint CommentNestedComments { + check: self.comment->isEmpty() + message: self.prefix() + + "A 'Comment' shall not contain 'Comment's." + } + + //No annotations to comments + constraint CommentNestedAnnotations { + check: self.annotation->isEmpty() + message: self.prefix() + + "A 'Comment' shall not contain 'Annotation's." + } + +} + +context Annotation { + //No nested annotations + constraint AnnotationNestedAnnotations { + check: self.annotation->isEmpty() + message: self.prefix() + + "An 'Annotation' shall not contain 'Annotation's" + } + + //No comments to annotations + constraint AnnotationNestedComments { + check: self.comment->isEmpty() + message: self.prefix() + + "An 'Annotation' shall not contain 'Comment's." + } + +} + +context AnnotationType { + //[There are no constraints specified.] +} + +context TestObjective { + //[There are no constraints specified.] +} + +context Extension { + //Inherit from element of the same meta-class + constraint Extension { + check: self.container().oclType() = self.extending.oclType() + message: self.prefix() + + "The element containing an 'Extension' and the element in the 'extending' property shall have the same meta-class." + } + +} + +context ConstraintType { + //[There are no constraints specified.] +} + +context Constraint { + //Effectively static quantifiers + constraint StaticQuantifiers { + check: self.quantifier->forAll(q | q.isEffectivelyStatic()) + message: self.prefix() + + "All 'DataUse's specified as 'quantifier's shall be effectively static." + } + + //Empty arguments for quantifiers + constraint NoArgumentQuantifiers { + check: self.quantifier->forAll(q | q.argument->isEmpty()) + message: self.prefix() + + "The 'argument' sets for all 'DataUse's specified as 'quantifier's shall be empty." + } + + //Constraint applicability for 'union' and 'uniontype' + constraint ConstraintApplicabilityUnionUniontype { + check: (self.type.name = 'union' or self.type.name = 'uniontype') + implies self.container().oclIsTypeOf(StructuredDataType) + message: self.prefix() + + "The predefined 'ConstraintType's 'union' and 'uniontype' shall be applied to 'StructuredDataType's only. " + } + + //Constraint applicability for 'range' and 'format' + constraint ConstraintApplicabilityRangeFormat { + check: (self.type.name = 'range' or self.type.name = 'format') + implies (self.container().oclIsTypeOf(SimpleDataType) + or (self.container().oclIsTypeOf(Member) + and self.container().oclAsType(Member).dataType.oclIsTypeOf(SimpleDataType))) + message: self.prefix() + + "The predefined 'ConstraintType's 'range' and 'format' shall be applied to 'SimpleDataType's and 'Member's with a 'SimpleDataType' 'dataType' only. " + } + + //Constraint applicability for 'length', 'minLength', and 'maxLength' + constraint ConstraintApplicabilityLength { + check: (self.type.name = 'length' or self.type.name = 'minLength' or self.type.name = 'maxLength') + implies (self.container().oclIsTypeOf(SimpleDataType) + or self.container().oclIsTypeOf(CollectionDataType) + or (self.container().oclIsTypeOf(Member) + and self.container().oclAsType(Member).dataType.oclIsTypeOf(SimpleDataType)) + and self.container().oclAsType(Member).dataType.oclIsTypeOf(CollectionDataType)) + message: self.prefix() + + "The predefined 'ConstraintType's 'length', 'minLength', and 'maxLength' shall be applied to 'CollectionDataType's, 'SimpleDataType's and 'Member's with a 'SimpleDataType' or a 'CollectionDataType' 'dataType' only. " + } + + //Quantifiers for 'length', 'minLength', and 'maxLength' + constraint ConstraintQuantifierLength { + check: (self.type.name = 'length' or self.type.name = 'minLength' or self.type.name = 'maxLength') + implies (self.quantifier->size() = 1 + and self.quantifier->forAll(q | q.resolveDataType().conformsTo('Integer'))) + message: self.prefix() + + "The predefined 'ConstraintType's 'length', 'minLength', and 'maxLength' shall be used with exactly one 'quantifier' resolved to an instance conforming to the predefined 'Integer' 'DataType'. " + } + + //Quantifiers for 'range' + constraint ConstraintQuantifierRange { + check: (self.type.name = 'length') + implies (self.quantifier->size() = 2 + and self.quantifier->forAll(q | q.resolveDataType().conformsTo('Integer'))) + message: self.prefix() + + "The predefined 'ConstraintType' 'range' shall be used with exactly two 'quantifier's resolved to instance conforming to the predefined 'Integer' 'DataType'. " + } + +} + +context DataResourceMapping { + //[There are no constraints specified.] +} + +context MappableDataElement { + //[There are no constraints specified.] +} + +context DataElementMapping { + //Restricted use of 'ParameterMapping' + constraint ParameterMappingType { + check: self.parameterMapping->size() = 0 + or (self.mappableDataElement.oclIsTypeOf(StructuredDataType) + and self.parameterMapping->forAll(p | + self.mappableDataElement.oclAsType(StructuredDataType).allMembers()->includes(p.parameter))) + or (self.mappableDataElement.oclIsKindOf(Action) + and self.parameterMapping->forAll(p | + self.mappableDataElement.oclAsType(Action).formalParameter->includes(p.parameter))) + message: self.prefix() + + "A set of 'ParameterMapping's may only be provided if 'mappableDataElement' refers to a 'StructuredDataType', an 'Action' or a 'Function' definition and the 'mappableDataElement' contains the mapped 'Parameters'." + } + + //All parameters shall be mapped + constraint ParameterMappings { + check: (self.mappableDataElement.oclIsKindOf(SimpleDataType) or self.mappableDataElement.oclIsKindOf(DataInstance) + or (self.mappableDataElement.oclIsTypeOf(StructuredDataType) + and self.mappableDataElement.oclAsType(StructuredDataType).member->forAll(p | + self.parameterMapping->exists(m | m.parameter = p))) + or (self.mappableDataElement.oclIsKindOf(Action) + and self.mappableDataElement.oclAsType(Action).formalParameter->forAll(p | + self.parameterMapping->exists(m | m.parameter = p)) + and self.parameterMapping->forAll(p | + self.mappableDataElement.oclAsType(Action).formalParameter->includes(p.parameter)))) + message: self.prefix() + + "If the 'mappableDataElement' refers to a 'StructuredDataType', an 'Action' or a 'Function' definition, all the 'Parameters' contained in the 'mappableDataElement' shall be mapped." + } + +} + +context ParameterMapping { + //[There are no constraints specified.] + //[Figure 6.2: Basic data concepts and simple data] +} + +context DataType { + //[There are no constraints specified.] +} + +context DataInstance { + //[There are no constraints specified.] +} + +context SimpleDataType { + //[There are no constraints specified.] +} + +context SimpleDataInstance { + //SimpleDataInstance shall refer to SimpleDataType + constraint SimpleDataInstanceType { + check: self.dataType.oclIsKindOf(SimpleDataType) + message: self.prefix() + + "The inherited reference 'dataType' from 'DataInstance' shall refer to instances of 'SimpleDataType' solely." + } + + //SimpleDataInstance container in EnumDataType + constraint EnumDataInstanceContainment { + check: not self.dataType.oclIsKindOf(EnumDataType) or self.eContainer() = self.dataType + message: self.prefix() + + "A 'SimpleDataInstance' whose 'dataType' property refers to an 'EnumDataType' shall be contained in that 'EnumDataType'." + } + + //[Figure 6.3: Structured data type and instance] +} + +context StructuredDataType { + //Different member names in a structured data type + constraint DistinguishableMemberNames { + check: self.allMembers()->collect(e | e.name).isUnique() + message: self.prefix() + + "All 'Member' names of a 'StructuredDataType' (including the names of inherited 'Members') shall be distinguishable." + } + +} + +context Member { + //[There are no constraints specified.] +} + +context StructuredDataInstance { + //StructuredDataInstance shall refer to StructuredDataType + constraint StructuredDataInstance { + check: self.dataType.oclIsTypeOf(StructuredDataType) + message: self.prefix() + + "The inherited reference 'dataType' from 'DataInstance' shall refer to instances of 'StructuredDataType' solely." + } + + //'Member' of the 'StructuredDataType' + constraint ExistingMemberOfDataType { + check: self.memberAssignment->forAll(a | self.dataType.oclAsType(StructuredDataType).allMembers()->includes(a.member)) + message: self.prefix() + + "The referenced 'Member' shall be contained in or inherited by the 'StructuredDataType' that the 'StructuredDataInstance', which contains this 'MemberAssignment', refers to." + } + + //Unique assignments for each 'Member' of the 'StructuredDataType' + constraint UniqueMemberAssignments { + check: self.memberAssignment->collect(m | m.member).isUnique() + message: self.prefix() + + "There shall be at most one 'memberAssignment' for each 'Member' of the 'StructuredDataType' that the 'StructuredDataInstance', which contains this 'MemberAssignment', refers to." + } + + //'union' constraint on the type of the 'StructuredDataInstance' + constraint StructuredDataInstanceUnionConstraint { + check: not self.dataType.allConstraints()->exists(c | c.type.name = 'union') + or self.memberAssignment->size() <= 1 + message: self.prefix() + + "If the 'dataType' of the 'StructuredDataInstance' has the predefined constraint 'union' then the 'memberAssignment' shall not contain more than one 'MemberAssignment'." + } + + //'uniontype' constraint on the type of the 'StructuredDataInstance' + constraint StructuredDataInstanceUniontypeConstraint { + check: not self.dataType.allConstraints()->exists(c | c.type.name = 'uniontype') + or self.memberAssignment->forAll(m | self.dataType.oclAsType(StructuredDataType).member->includes(m) + or self.dataType.oclAsType(StructuredDataType).extension->one(e | + e.extending.oclAsType(StructuredDataType).allMembers()->includes(m))) + message: self.prefix() + + "If the 'dataType' of 'StructuredDataInstance' has the predefined constraint 'uniontype' then there shall only be 'MemberAssignment' for the 'Member's of the 'dataType' itself or of at most one of the 'StructuredDataType's which the 'dataType' is extending." + } + +} + +context MemberAssignment { + //Type of a 'memberSpec' shall conform to the type of the 'member' + constraint MatchingMemberDataType { + check: self.memberSpec.resolveDataType().conformsTo(self.member.dataType) + message: self.prefix() + + "The 'DataType' of the 'DataUse' of 'memberSpec' shall conform to the 'DataType' of the 'Member' of the 'MemberAssignment'." + } + + //Restricted use of 'OmitValue' for optional 'Member's only + constraint OmitValueUse { + check: (self.memberSpec.oclIsTypeOf(OmitValue) or self.memberSpec.oclIsTypeOf(AnyValueOrOmit)) + implies self.member.isOptional = true + message: self.prefix() + + "A non-optional 'Member' shall have a 'DataUse' specification assigned to it that is different from 'OmitValue' and 'AnyValueOrOmit'." + } + + //Static data use in 'memberSpec' + constraint StaticDataInMemberSpec { + check: self.memberSpec.isEffectivelyStatic() + message: self.prefix() + + "The 'memberSpec' and all of its 'ParameterBinding's shall be effectively static. " + } + + //[Figure 6.4: Collection data] +} + +context CollectionDataType { + //No multidimensional collections + constraint NoMultidimensionalCollections { + check: not self.itemType.oclIsKindOf(CollectionDataType) + message: self.prefix() + + "The 'itemType' shall not be an instance of 'CollectionDataType'. " + } + +} + +context CollectionDataInstance { + //CollectionDataInstance shall refer to CollectionDataType + constraint CollectionDataInstanceType { + check: self.dataType.oclIsKindOf(CollectionDataType) + message: self.prefix() + + "The inherited reference 'dataType' from 'DataInstance' shall refer to instances of 'CollectionDataType' solely." + } + + //Type of items in the 'CollectionDataInstance' + constraint CollectionDataInstanceItemType { + check: self.item->forAll(i | + i.resolveDataType().conformsTo(self.dataType.oclAsType(CollectionDataType).itemType)) + message: self.prefix() + + "The items in 'CollectionDataInstance' shall conform to the 'itemType' of the 'CollectionDataType' that is defined as the 'dataType' of this 'CollectionDataInstance'. " + } + + //Static data use in 'item' + constraint StaticDataInItem { + check: self.item->forAll(i | i.isEffectivelyStatic()) + message: self.prefix() + + "The DataUse's in 'item' and all of the respective 'ParameterBinding's shall be effectively static. " + } + + //Length constraint of the 'CollectionDataInstance' + constraint CollectionDataInstanceLengthConstraint { + check: true //This constraint cannot be expressed formally. + message: self.prefix() + + "If the 'dataType' 'CollectionType' contains the predefined constraint 'length' then the length of this 'CollectionDataInstance' shall be equal to the 'quantifier' of that 'Constraint'." + } + + //[Figure 6.5: Procedure and procedure parameter] +} + +context ProcedureSignature { + //[There are no constraints specified.] +} + +context ProcedureParameter { + //[There are no constraints specified.] +} + +context Parameter { + //[There are no constraints specified.] +} + +context FormalParameter { + //[There are no constraints specified.] +} + +context Variable { + //[There are no constraints specified.] +} + +context Action { + //[There are no constraints specified.] +} + +context Function { + //[There are no constraints specified.] +} + +context PredefinedFunction { + //[There are no constraints specified.] +} + +context EnumDataType { + //No extensions for EnumDataType + constraint EnumDataTypeExtensions { + check: self.extension.oclIsUndefined() + message: self.prefix() + + "The 'extension' property of an 'EnumDataType' shall be empty." + } + +} + +context DataUse { + //Occurrence of 'argument' and 'reduction' + constraint ArgumentReductionLists { + check: self.argument->isEmpty() or self.reduction->isEmpty() or self.oclIsTypeOf(FunctionCall) + message: self.prefix() + + "Only in case of a 'FunctionCall' both the 'argument' list and the 'reduction' list may be provided, otherwise either the 'argument' list, the 'reduction' list, or none of them shall be provided." + } + + //Structured data types in 'reduction' set + constraint ReductionMembers { + check: not self.resolveDataType().oclIsKindOf(StructuredDataType) + or self.reduction->isEmpty() + or self.resolveDataType().oclAsType(StructuredDataType).allMembers()->includes(self.reduction->first().member) + and self.reduction->select(m | self.reduction->indexOf(m) > 1)->forAll(m | + self.reduction->at(self.reduction->indexOf(m)-1).member.dataType.oclIsKindOf(StructuredDataType) + and self.reduction->at(self.reduction->indexOf(m)-1).member.dataType.oclAsType(StructuredDataType).allMembers() + ->includes(m.member)) + message: self.prefix() + + "The 'Member' referenced by the 'MemberReference' at index i of a 'reduction' shall be contained in or inherited by the 'StructuredDataType' of the 'Member' referenced by the 'MemberReference' at index (i - 1) of that 'reduction'." + } + + //No member with collection index in the first element in reduction + constraint FirstReduction { + check: self.reduction->first().member.oclIsUndefined() or self.reduction->first().collectionIndex.oclIsUndefined() + message: self.prefix() + + "The first 'MemberReference' in reduction shall not specify both member and collectionIndex. " + } + +} + +context ParameterBinding { + //Matching data type + constraint ParameterBindingTypes { + check: self.dataUse.resolveDataType().conformsTo(self.parameter.dataType) + message: self.prefix() + + "The provided 'DataUse' shall conform to the 'DataType' of the referenced 'Parameter'." + } + + //Use of a 'StructuredDataInstance' with non-optional 'Member's + constraint OmitValueParameter { + check: self.parameter.oclIsTypeOf(Member) and self.parameter.oclAsType(Member).isOptional = false + implies not self.dataUse.oclIsTypeOf(OmitValue) and not self.dataUse.oclIsTypeOf(AnyValueOrOmit) + message: self.prefix() + + "A non-optional 'Member' of a 'StructuredDataType' shall have a 'DataUse' specification assigned to it that is different from 'OmitValue' or 'AnyValueOrOmit'." + } + +} + +context MemberReference { + //Collection index expressions for collections only + constraint CollectionIndex { + check: self.collectionIndex.oclIsUndefined() + or self.container().oclAsType(DataUse).resolveDataType().oclIsKindOf(CollectionDataType) + message: self.prefix() + + "If the type of the related 'DataUse' is not 'CollectionDataType' then the collectionIndex shall be undefined. " + } + + //Either member or collection index is required + constraint MemberOrReduction { + check: not self.member.oclIsUndefined() or not self.collectionIndex.oclIsUndefined() + message: self.prefix() + + "Either the member or collectionIndex shall be specified. " + } + +} + +context StaticDataUse { + //[There are no constraints specified.] +} + +context DataInstanceUse { + //'DataInstance' reference or non-empty 'argument' or non-empty 'item' + constraint DataInstanceOrArgumentsOrItems { + check: not self.dataInstance.oclIsUndefined() or not self.argument->isEmpty() or not self.item->isEmpty() + message: self.prefix() + + "If a 'dataInstance' is not specified, either a non-empty 'argument' set or a non-empty 'item' set shall be specified." + } + + //Valid 'DataType' for items + constraint DataTypeOfItemsInDataInstance { + check: self.item->forAll(i | i.resolveDataType().conformsTo(self.resolveDataType().oclAsType(CollectionDataType).itemType)) + message: self.prefix() + + "The items in the 'item' property shall conform to the 'itemType' of the resolved 'CollectionDataType'." + } + + //No 'item' if 'dataInstance' is specified + constraint NoItemWithDataInstance { + check: not self.dataInstance.oclIsUndefined() implies self.item->isEmpty() + message: self.prefix() + + "The 'item' property shall be empty if the 'dataInstance' property is specified." + } + +} + +context SpecialValueUse { + //Empty 'argument' and 'reduction' sets + constraint SpecialValueArgumentReduction { + check: self.reduction->isEmpty() and self.argument->isEmpty() + message: self.prefix() + + "The 'argument' and 'reduction' sets shall be empty." + } + +} + +context AnyValue { + //[There are no constraints specified.] +} + +context AnyValueOrOmit { + //[There are no constraints specified.] +} + +context OmitValue { + //[There are no constraints specified.] + //[Figure 6.8: Dynamic data use] +} + +context DynamicDataUse { + //[There are no constraints specified.] +} + +context FunctionCall { + //Matching parameters + constraint FunctionCallParameters { + check: self.`function`.formalParameter->forAll(p | self.argument->exists(a | a.parameter = p)) + message: self.prefix() + + "All 'FormalParameter's of the invoked 'Function' shall be bound." + } + +} + +context FormalParameterUse { + //[There are no constraints specified.] +} + +context VariableUse { + //Local variables of tester components only + constraint VariableUseComponentRole { + check: self.componentInstance.type.allVariables()->includes(self.variable) + and self.componentInstance.role = ComponentInstanceRole#Tester + message: self.prefix() + + "All variables used in a 'DataUse' specification via a 'VariableUse' shall be local to the same 'componentInstance' and the 'componentInstance' shall be in the role 'Tester'." + } + +} + +context PredefinedFunctionCall { + //Compatible actual parameters + constraint PredefinedFunctionCallParameters { + check: true //This constraint cannot be expressed formally. + message: self.prefix() + + "The number and type of actual parameters shall be compatible with the formal parameters of the invoked 'PredefinedFunction' according to the specification of the 'PredefinedFunction'." + } + + //Empty 'argument' and 'reduction' sets + constraint PredefinedFunctionCallArgumentReduction { + check: self.reduction->isEmpty() and self.argument->isEmpty() + message: self.prefix() + + "The 'argument' and 'reduction' sets shall be empty." + } + +} + +context LiteralValueUse { + //Exactly one value specification + constraint SpecifiedLiteralValue { + check: not self.value.oclIsUndefined() + xor not self.intValue.oclIsUndefined() + xor not self.boolValue.oclIsUndefined() + message: self.prefix() + + "There shall be exactly one value specification, where either the 'value', or the 'intValue', or the 'boolValue' property is be specified, but not more than one of them." + } + + //Empty 'argument' and 'reduction' sets if not 'dataType' + constraint LiteralValueArgumentReduction { + check: (self.dataType.oclIsUndefined()) + implies (self.reduction->isEmpty() and self.argument->isEmpty()) + message: self.prefix() + + "If 'dataType' is not specified then the 'argument' and 'reduction' sets shall be empty." + } + + //Integer type for integer value + constraint LiteralValueIntType { + check: not self.intValue.oclIsUndefined() + implies (self.dataType.oclIsUndefined() or self.dataType.oclIsKindOf(Time) or self.dataType.conformsTo('Integer')) + message: self.prefix() + + "If 'intValue' is specified then the 'dataType' is either unspecified or the specified 'DataType' is instanceof of 'Time' or conforms to predefined type 'Integer'." + } + + //Boolean type for Boolean value + constraint LiteralValueBoolType { + check: not self.boolValue.oclIsUndefined() + implies (self.dataType.oclIsUndefined() or self.dataType.conformsTo('Boolean')) + message: self.prefix() + + "If 'boolValue' is specified then the 'dataType' is either unspecified or the specified 'DataType' conforms to predefined type 'Boolean'." + } + +} + +context DataElementUse { + //'DataElement' reference or non-empty 'argument' or non-empty 'item' + constraint DataInstanceOrArgumentsOrItemsInDataElementUse { + check: not (self.dataElement.oclIsUndefined() and self.argument->isEmpty() and self.item->isEmpty()) + and not (self.dataElement.oclIsKindOf(StructuredDataType) and self.argument->isEmpty()) + and not (self.dataElement.oclIsKindOf(CollectionDataType) and self.item->isEmpty()) + message: self.prefix() + + "If a 'dataElement' is not specified, or if the 'dataElement' is resolved to a 'StructuredDataType' or a 'CollectionDataType', either a non-empty 'argument' set or a non-empty 'item' set shall be specified." + } + + //Valid 'DataType' for items + constraint DataTypeOfItemsInDataInstance { + check: self.item->forAll(i | i.resolveDataType().conformsTo(self.resolveDataType().oclAsType(CollectionDataType).itemType)) + message: self.prefix() + + "The items in the 'item' property shall conform to the 'itemType' of the resolved 'CollectionDataType'." + } + + //Only 'item' if the resolved data type is 'CollectionDataType' + constraint ItemOnlyWithCollectionDataType { + check: (((self.dataElement.oclIsKindOf(CollectionDataType)) + or self.dataElement.oclIsUndefined()) + and not self.item->isEmpty()) + or self.item->isEmpty() + message: self.prefix() + + "The 'item' property shall be non-empty if the 'dataElement' property is resolved to a 'CollectionDataType'." + } + + //Matching parameters for 'Function's + constraint FunctionCallParameters { + check: not self.dataElement.oclIsKindOf(Function) + or self.dataElement.oclAsType(Function).formalParameter->forAll(p | self.argument->exists(a | a.parameter = p)) + message: self.prefix() + + "All 'FormalParameter's shall be bound if the 'dataElement' refers to a 'Function'." + } + +} + +context Time { + //[There are no constraints specified.] +} + +context TimeLabel { + //[There are no constraints specified.] +} + +context TimeLabelUse { + //Empty 'argument' and 'reduction' sets + constraint TimeLabelArgumentReduction { + check: self.reduction->isEmpty() and self.argument->isEmpty() + message: self.prefix() + + "The 'argument' and 'reduction' sets shall be empty." + } + + //'TimeLabel's only within the same 'TestDescription' when local ordering is used + constraint TimeLabelLocallyOrdered { + check: self.getParentTestDescription().isLocallyOrdered = true + or self.timeLabel.getParentTestDescription() = self.getParentTestDescription() + message: self.prefix() + + "When local ordering is used, 'TimeLabel's shall only be used within the same test description. " + } + +} + +context TimeLabelUseKind { + //[There are no constraints specified.] +} + +context TimeConstraint { + //Time constraint expression of type Boolean + constraint TimeConstraintType { + check: self.timeConstraintExpression.resolveDataType().name = 'Boolean' + message: self.prefix() + + "The expression given in the 'DataUse' specification shall evaluate to predefined type 'Boolean'." + } + + //Use of local variables only + constraint TimeConstraintVariables { + check: self.timeConstraintExpression.argument + ->closure(a | a.dataUse.argument)->collect(pb | pb.dataUse) + ->union(self.timeConstraintExpression.argument) + ->select(du | du.oclIsKindOf(VariableUse)) + ->forAll(du | self.container().oclAsType(Behaviour).getParticipatingComponents()->includes( + du.oclAsType(VariableUse).componentInstance)) + message: self.prefix() + + "The expression given in the 'DataUse' specification shall contain only 'Variable's that are local to the 'AtomicBehaviour' that contains this 'TimeConstraint'. That is, all 'VariableUse's shall reference the 'ComponentInstance's which participate in the 'AtomicBehaviour'." + } + + //Use of local time labels only + constraint TimeConstraintTimeLabels { + check: self.timeConstraintExpression.argument + ->closure(a | a.dataUse.argument)->collect(pb | pb.dataUse) + ->union(self.timeConstraintExpression.argument) + ->select(du | du.oclIsKindOf(TimeLabelUse)) + ->forAll(du | self.container().oclAsType(Behaviour).getParticipatingComponents()->includesAll( + du.oclAsType(TimeLabelUse).timeLabel.container().oclAsType(Behaviour).getParticipatingComponents())) + message: self.prefix() + + "In case of locally ordered 'TestDescription', the expression given in the 'DataUse' specification shall contain only 'TimeLabel's that are local to the 'AtomicBehaviour' that contains this 'TimeConstraint'. That is, all 'TimeLabel's shall be contained in 'AtomicBehaviour's involving the 'ComponentInstance's which participate in the 'AtomicBehaviour' that contains this 'TimeConstraint." + } + + //[Figure 7.2: Time operations] +} + +context TimeOperation { + //Component required in locally ordered test description + constraint TimeOperationComponent { + check: self.getParentTestDescription().isLocallyOrdered + implies not self.componentInstance.oclIsUndefined() + message: self.prefix() + + "If the 'TimeOperation' is contained in a locally ordered 'TestDescription' then the 'componentInstance' shall be specified." + } + + //Time operations on tester components only + constraint TimeOperationComponentRole { + check: (not self.componentInstance.oclIsUndefined() + and self.componentInstance.role = ComponentInstanceRole#Tester) + or (self.oclIsTypeOf(Quiescence) + and not self.oclAsType(Quiescence).gateReference.oclIsUndefined() + and self.oclAsType(Quiescence).gateReference.component.role = ComponentInstanceRole#Tester) + message: self.prefix() + + "A 'TimeOperation' shall be performed only on a 'ComponentInstance' in the role 'Tester'." + } + + //'Time' data type for period expression + constraint TimePeriodType { + check: self.period.resolveDataType().oclIsKindOf(Time) + message: self.prefix() + + "The 'DataUse' expression assigned to the 'period' shall evaluate to a data instance of the 'Time' data type." + } + +} + +context Wait { + //[There are no constraints specified.] +} + +context Quiescence { + //Exclusive use of gate reference or component instance + constraint QuiescenceTarget { + check: self.gateReference.oclIsUndefined() xor self.componentInstance.oclIsUndefined() + message: self.prefix() + + "If a 'GateReference' is provided, a 'ComponentInstance' shall not be provided and vice versa." + } + + //[Figure 7.3: Timer and timer operations] +} + +context Timer { + //[There are no constraints specified.] +} + +context TimerOperation { + //Timer operations on tester components only + constraint TimerOperationComponentRole { + check: self.componentInstance.role = ComponentInstanceRole#Tester + message: self.prefix() + + "A 'TimerOperation' shall be performed only on a 'ComponentInstance' in the role 'Tester'." + } + +} + +context TimerStart { + //'Time' data type for period expression + constraint TimerPeriodType { + check: self.period.resolveDataType().oclIsKindOf(Time) + message: self.prefix() + + "The 'DataUse' expression assigned to the 'period' shall evaluate to a data instance of the 'Time' data type." + } + +} + +context TimerStop { + //[There are no constraints specified.] +} + +context TimeOut { + //[There are no constraints specified.] +} + +context GateType { + //Compatible 'DataType's. + constraint GateType { + check: (self.kind = GateTypeKind#Procedure and self.allDataTypes()->forAll(t | + t.oclIsTypeOf(ProcedureSignature))) + or (self.kind = GateTypeKind#Message and self.allDataTypes()->forAll(t | t.oclIsTypeOf(StructuredDataType) + or t.oclIsKindOf(SimpleDataType) or t.oclIsTypeOf(CollectionDataType))) + message: self.prefix() + + "The 'DateType's specified for the 'GateType' shall correspond the kind of the 'GateType'. For 'GateType' of kind 'Procedure' only 'ProcedureSignature's shall be specified as data types. For 'GateType' of kind 'Message' only 'StructuredDataType's, 'SimpleDataType's and 'CollectionDataType's shall be specified as data types. " + } + +} + +context GateInstance { + //[There are no constraints specified.] +} + +context ComponentType { + //[There are no constraints specified.] + //[Figure 8.2: Test configuration] +} + +context ComponentInstance { + //[There are no constraints specified.] +} + +context GateReference { + //Gate instance of the referred component instance + constraint GateInstanceReference { + check: self.component.type.allGates()->includes(self.gate) + message: self.prefix() + + "The referred 'GateInstance' shall be contained in the 'ComponentType' of the referred 'ComponentInstance'." + } + +} + +context Connection { + //Self-loop connections are not permitted + constraint NoSelfLoop { + check: self.endPoint->forAll(e1 | self.endPoint->one(e2 | e1.gate = e2.gate + and e1.component = e2.component)) + message: self.prefix() + + "The 'endPoint's of a 'Connection' shall not be the same. Two endpoints are the same if both, the referred 'ComponentInstance's and the referred 'GateInstance's, are identical." + } + + //Consistent type of a connection + constraint ConsistentConnectionType { + check: self. endPoint.gate.type->asSet()->size() = 1 + message: self.prefix() + + "The 'GateInstance's of the two 'endPoint's of a 'Connection' shall refer to the same 'GateType'." + } + +} + +context TestConfiguration { + //'TestConfiguration' and components roles + constraint ComponentRoles { + check: self.componentInstance->exists(c | c.role = ComponentInstanceRole#Tester) + and self.componentInstance->exists(c | c.role = ComponentInstanceRole#SUT) + message: self.prefix() + + "A 'TestConfiguration' shall contain at least one 'Tester' and one 'SUT' 'ComponentInstance'." + } + + //Only 'Connection's between own 'ComponentInstance's + constraint OwnedComponents { + check: self.connection->forAll(c | + self.componentInstance->includesAll(c.endPoint.component)) + message: self.prefix() + + "A 'TestConfiguration' shall only contain 'Connection's between gates of its own 'ComponentInstance's. " + } + + //Minimal 'TestConfiguration' + constraint MinimalTestConfiguration { + check: self.connection->exists(c | + c.endPoint.component.role->includesAll(Set{ComponentInstanceRole#SUT, ComponentInstanceRole#Tester})) + message: self.prefix() + + "Each 'TestConfiguration' shall specify at least one 'Connection' that connects a 'GateInstance' of a 'ComponentInstance' in the role 'Tester' with a 'GateInstance' of a 'ComponentInstance' in the role 'SUT'." + } + + //At most one connection between any two 'GateInstance'/'ComponentInstance' pairs + constraint UniqueConnections { + check: self.connection->forAll(c1 | self.connection->one(c2 | + not c1.endPoint->reject(ep1 | not c2.endPoint->exists(ep2 | + ep1.component = ep2.component and ep1.gate = ep2.gate + ))->isEmpty())) + message: self.prefix() + + "Given the set of 'Connection's contained in a 'TestConfiguration'. There shall be no two 'Connection's containing 'GateReference's that in turn refer to identical pairs of 'GateInstance'/'ComponentInstance'." + } + +} + +context TestDescription { + //[There are no constraints specified.] +} + +context BehaviourDescription { + //[There are no constraints specified.] +} + +context Behaviour { + //[There are no constraints specified.] +} + +context Block { + //Guard shall evaluate to Boolean + constraint GuardType { + check: self.`guard` ->forAll(g | g.expression.resolveDataType().name = 'Boolean') + message: self.prefix() + + "The type of 'guard' shall be 'Boolean'." + } + + //No directly contained 'ExceptionalBehaviour's and 'PeriodicBehaviour's. + constraint AllowedBehaviourTypes { + check: self.behaviour->forAll(b | + not b.oclIsTypeOf(ExceptionalBehaviour) and not b.oclIsTypeOf(PeriodicBehaviour)) + message: self.prefix() + + "A 'Block' shall not contain 'ExceptionalBehaviour's and 'PeriodicBehaviour's." + } + + //Guard for each participating tester in locally ordered test descriptions + constraint GuardsForParticipatingComponents { + check: self.`guard`->size() = 0 + or self.getParticipatingComponents()->reject(c | c.role = ComponentInstanceRole#SUT) + ->forAll(c | self.`guard`->exists(ex | ex.componentInstance = c)) + or not self.getParentTestDescription().isLocallyOrdered + message: self.prefix() + + "If the 'Block' is contained in a locally ordered 'TestDescription' then a guard shall be specified for every participating 'ComponentInstance' in the associated 'TestConfiguration' that has the role 'Tester' or there shall be no guards at all. " + } + + //Single guard in totally ordered test description + constraint SingleTotalGuard { + check: self.getParentTestDescription().isLocallyOrdered or self.`guard`->size() <= 1 + message: self.prefix() + + "If the 'Block' is contained in a totally ordered 'TestDescription' then there shall not be more than one guard. " + } + +} + +context LocalExpression { + //Local expressions in locally ordered test descriptions have 'ComponentInstance' specified + constraint LocalExpressionComponent { + check: self.getParentTestDescription().isLocallyOrdered + implies not self.componentInstance.oclIsUndefined() + message: self.prefix() + + "If the 'LocalExpression' is contained in a locally ordered 'TestDescription' then the componentInstance shall be specified. " + } + + //Only local variables and time labels in case of locally ordered test description + constraint LocalVariablesAndTimersInExpression { + check: self.expression.argument + ->closure(a | a.dataUse.argument)->collect(pb | pb.dataUse) + ->union(self.expression.argument) + ->including(self.expression) + ->select(du | du.oclIsKindOf(VariableUse)) + ->forAll(du | du.oclAsType(VariableUse).componentInstance = self.componentInstance) + and self.expression.argument + ->closure(a | a.dataUse.argument)->collect(pb | pb.dataUse) + ->union(self.expression.argument) + ->including(self.expression) + ->select(du | du.oclIsKindOf(TimeLabelUse)) + ->forAll(du | du.oclAsType(TimeLabelUse).timeLabel.container().oclAsType(Behaviour) + .getParticipatingComponents()->includes(self.componentInstance)) + message: self.prefix() + + "If the componentInstance is specified then all 'Variable's and 'TimeLabel's used in the expression shall be local to that 'ComponentInstance'." + } + +} + +context CombinedBehaviour { + //[There are no constraints specified.] +} + +context SingleCombinedBehaviour { + //[There are no constraints specified.] +} + +context CompoundBehaviour { + //[There are no constraints specified.] +} + +context BoundedLoopBehaviour { + //No guard constraint + constraint BoundedGuard { + check: self.block->forAll(b | b.`guard`.oclIsUndefined()) + message: self.prefix() + + "The 'Block' of a 'BoundedLoopBehaviour' shall not have a 'guard'." + } + + //Iteration number shall be countable and positive + constraint LoopIteration { + check: self.numIteration->forAll(e | e.expression.resolveDataType().conformsTo('Integer')) + message: self.prefix() + + "The expression assigned to the 'numIteration' property shall evaluate to a countable 'SimpleDataInstance' of an arbitrary user-defined data type, e.g. a positive Integer value." + } + + //Iteration count in locally ordered test descriptions + constraint IterationCountsForParticipatingComponents { + check: self.block.getParticipatingComponents()->reject(c | c.role = ComponentInstanceRole#SUT) + ->forAll(c | self.numIteration->exists(ex | ex.componentInstance = c)) + or not self.getParentTestDescription().isLocallyOrdered + message: self.prefix() + + "If the 'BoundedLoopBehaviour' is contained in a locally ordered 'TestDescription' then a numIteration shall be specified for every participating 'ComponentInstance' that has the role 'Tester'." + } + + //Single numIteration in totally ordered test description + constraint SingleTotalIterationCount { + check: self.getParentTestDescription().isLocallyOrdered or self.numIteration->size() = 1 + message: self.prefix() + + "If the 'BoundedLoopBehaviour' is contained in a totally ordered 'TestDescription' then there shall be exactly one numIteration." + } + +} + +context UnboundedLoopBehaviour { + //[There are no constraints specified.] +} + +context OptionalBehaviour { + //First 'AtomicBehaviour' in block allowed + constraint OptionalBehaviourStart { + check: self.block.behaviour->first().oclIsKindOf(Interaction) + and self.block.behaviour->first().oclAsType(Interaction) + ->collect(i | i.sourceGate.component->union(i.target.targetGate.component)) + ->forAll(c | c.role = ComponentInstanceRole#Tester) + message: self.prefix() + + "The block of an 'OptionalBehaviour' shall start with a tester-to-tester 'Interaction'. " + } + + //No other testers except the participants of starting 'Interaction' within 'OptionalBehaviour' in locally ordered 'TestDescription' + constraint OptionalBehaviourParticipation { + check { var initial = self.block.behaviour->first().oclAsType(Interaction); + var initialComponents = initial->collect(i | i.sourceGate.component->union(i.target.targetGate.component)); + var optionals = self.block->closure( + b | b.behaviour + ->select(oclIsKindOf(SingleCombinedBehaviour)).oclAsType(SingleCombinedBehaviour).block + ->union(b.behaviour + ->select(oclIsKindOf(MultipleCombinedBehaviour)).oclAsType(MultipleCombinedBehaviour).block) + ).behaviour->select(oclIsKindOf(OptionalBehaviour)).oclAsType(OptionalBehaviour); + var optionalTargets = optionals.block->select(b | b.behaviour->select(i | i.oclIsKindOf(Interaction))->first().oclAsType(Interaction).target.targetGate.component); self.block.getParticipatingComponents() + ->forAll(c | initialComponents->includes(c) or optionalTargets->includes(c)) + or not self.getParentTestDescription().isLocallyOrdered; } + message: self.prefix() + + "If an 'OptionalBehaviour' is included in a locally ordered 'TestDescription' then no other tester 'ComponentInstance' shall participate in the block of the 'OptionalBehaviour' than the source and target of the starting 'Interaction' except when being a target of the starting 'Interaction' in a nested 'OptionalBehaviour'. " + } + +} + +context MultipleCombinedBehaviour { + //[There are no constraints specified.] +} + +context AlternativeBehaviour { + //Number of 'Block's + constraint AlternativeBlockCount { + check: self.block->size() > 1 + message: self.prefix() + + "An 'AlternativeBehaviour' shall contain at least two 'Block's. " + } + + //First behaviour of 'Block's + constraint FirstBlockBehaviour { + check: self.block->forAll(b | b.behaviour->first().isTesterInputEvent()) + message: self.prefix() + + "Each block of an 'AlternativeBehaviour' shall start with a tester-input event. " + } + + //Same component if locally ordered + constraint AlternativeBlocksComponent { + check { var initial = self.block.behaviour->first(); Set{} + ->including(initial->select(oclIsKindOf(Interaction)).oclAsType(Interaction).target.targetGate.component) + ->including(initial->select(oclIsKindOf(Quiescence)).oclAsType(Quiescence).componentInstance) + -> including(initial->select(oclIsKindOf(TimeOut)).oclAsType(TimeOut).componentInstance) + ->size() = 1 or not self.getParentTestDescription().isLocallyOrdered; } + message: self.prefix() + + "If the containing 'TestDescription' is locally ordered then all 'Block's shall start with a tester-input event of the same 'ComponentInstance'. " + } + + //Tester participating in locally ordered case + constraint AlternativeBehaviourParticipation { + check { var initial = self.block.behaviour->first(); + var targetComponent = Set{} + ->including(initial->select(oclIsKindOf(Interaction)).oclAsType(Interaction).target.targetGate.component) + ->including(initial->select(oclIsKindOf(Quiescence)).oclAsType(Quiescence).componentInstance) + -> including(initial->select(oclIsKindOf(TimeOut)).oclAsType(TimeOut).componentInstance); + var nonOptionalBlocks = self.block->closure( + b | b.behaviour->reject(oclIsKindOf(OptionalBehaviour)) + ->select(oclIsKindOf(SingleCombinedBehaviour)).oclAsType(SingleCombinedBehaviour).block + ->union(b.behaviour->reject(oclIsKindOf(OptionalBehaviour)) + ->select(oclIsKindOf(MultipleCombinedBehaviour)).oclAsType(MultipleCombinedBehaviour).block) + ); targetComponent->includesAll( + nonOptionalBlocks.getParticipatingComponents()->reject(c | c.role = ComponentInstanceRole#SUT)) + or not self.getParentTestDescription().isLocallyOrdered; } + message: self.prefix() + + "If the 'AlternativeBehaviour' is contained in a locally ordered 'TestDescription' then no other tester 'ComponentInstance' shall participate in any block than the target of the first tester-input event and 'ComponentInstance's participating in blocks of contained 'OptionalBehaviour's. " + } + + //OptionalBehaviour in locally ordered case + constraint OptionalAlternativeBehaviour { + check { var initial = self.block.behaviour->first(); + var targetComponent = Set{} + ->including(initial->select(oclIsKindOf(Interaction)).oclAsType(Interaction).target.targetGate.component) + ->including(initial->select(oclIsKindOf(Quiescence)).oclAsType(Quiescence).componentInstance) + -> including(initial->select(oclIsKindOf(TimeOut)).oclAsType(TimeOut).componentInstance); self.block.behaviour->select(oclIsKindOf(OptionalBehaviour)) .oclAsType(OptionalBehaviour).block + ->first().oclAsType(Interaction).sourceGate.component->forAll(c | targetComponent->includes(c)) + or not self.getParentTestDescription().isLocallyOrdered; } + message: self.prefix() + + "A block of an 'AlternativeBehaviour' if the containing 'TestDescription' is locally ordered, shall only contain 'OptionalBehaviour'(s) whose source 'ComponentInstance' is the same as the target of the first tester-input event of that 'Block'. " + } + +} + +context ConditionalBehaviour { + //Guard for 'ConditionalBehaviour' with single block + constraint ConditionalFirstGuard { + check: self.block->size() > 1 or self.block->first().`guard`->size() > 1 + message: self.prefix() + + "If there is only one 'Block' specified, it shall have a 'guard'." + } + + //Possible else block for 'ConditionalBehaviour' with multiple blocks + constraint ConditionalLastGuard { + check: self.block->size() = 1 + or self.block->forAll(b | b = self.block->last() or b.`guard` ->size() > 1) + message: self.prefix() + + "All 'Block's specified, except the last one, shall have a 'guard'." + } + +} + +context ParallelBehaviour { + //Number of blocks in 'ParallelBehaviour' + constraint ParallelBlockCount { + check: self.block->size() > 1 + message: self.prefix() + + "There shall be at least two 'Block's specified." + } + + //[Figure 9.3: Exceptional and periodic behaviour] +} + +context ExceptionalBehaviour { + //First 'AtomicBehaviour' in block allowed + constraint FirstExceptionalBehaviour { + check: self.block.behaviour->first().isTesterInputEvent() + message: self.prefix() + + "The block of an 'ExceptionalBehaviour' shall start with a tester-input event." + } + + //Guarded component shall be a 'Tester' component + constraint ExceptionalGuardedComponent { + check: self.guardedComponent.oclIsUndefined() or self.guardedComponent.role = ComponentInstanceRole#Tester + message: self.prefix() + + "The 'guardedComponent' shall refer to a 'ComponentInstance' with the role of 'Tester'." + } + + //Same component if locally ordered and guarded component present + constraint ExceptionalGuardedandTargetComponent { + check { var initial = self.block.behaviour->first(); + var targetComponent = Set{} + ->including(initial->select(oclIsKindOf(Interaction)).oclAsType(Interaction).target.targetGate.component) + ->including(initial->select(oclIsKindOf(Quiescence)).oclAsType(Quiescence).componentInstance) + -> including(initial->select(oclIsKindOf(TimeOut)).oclAsType(TimeOut).componentInstance); guardedComponent->includesAll(targetComponent) + or not self.getParentTestDescription().isLocallyOrdered; } + message: self.prefix() + + "If the containing 'TestDescription' is locally ordered and guardedComponent is specified then the 'Block's shall start with tester-input event of the same 'ComponentInstance' as specified in guardedComponent. " + } + + //Tester participating in locally ordered case + constraint ExceptionalBehaviourParticipation { + check { var initial = self.block.behaviour->first(); + var targetComponent = Set{} + ->including(initial->select(oclIsKindOf(Interaction)).oclAsType(Interaction).target.targetGate.component) + ->including(initial->select(oclIsKindOf(Quiescence)).oclAsType(Quiescence).componentInstance) + -> including(initial->select(oclIsKindOf(TimeOut)).oclAsType(TimeOut).componentInstance); + var nonOptionalBlocks = self.block->closure( + b | b.behaviour->reject(oclIsKindOf(OptionalBehaviour)) + ->select(oclIsKindOf(SingleCombinedBehaviour)).oclAsType(SingleCombinedBehaviour).block + ->union(b.behaviour->reject(oclIsKindOf(OptionalBehaviour)) + ->select(oclIsKindOf(MultipleCombinedBehaviour)).oclAsType(MultipleCombinedBehaviour).block) + ); targetComponent->includesAll( + nonOptionalBlocks.getParticipatingComponents()->reject(c | c.role = ComponentInstanceRole#SUT)) + or not self.getParentTestDescription().isLocallyOrdered; } + message: self.prefix() + + "If the 'ExceptionalBehaviour' is contained in a locally ordered 'TestDescription' then no other tester 'ComponentInstance' shall participate in any block than the target of the first tester-input event and 'ComponentInstance's participating in blocks of contained 'OptionalBehaviour's . " + } + + //OptionalBehaviour in locally ordered case + constraint OptionalExceptionalBehaviour { + check { var initial = self.block.behaviour->first(); + var targetComponent = Set{} + ->including(initial->select(oclIsKindOf(Interaction)).oclAsType(Interaction).target.targetGate.component) + ->including(initial->select(oclIsKindOf(Quiescence)).oclAsType(Quiescence).componentInstance) + -> including(initial->select(oclIsKindOf(TimeOut)).oclAsType(TimeOut).componentInstance); self.block.behaviour->select(oclIsKindOf(OptionalBehaviour)).oclAsType(OptionalBehaviour).block + ->first().oclAsType(Interaction).sourceGate.component->forAll(c | targetComponent->includes(c)) + or not self.getParentTestDescription().isLocallyOrdered; } + message: self.prefix() + + "A block of an 'ExceptionalBehaviour' if the containing 'TestDescription' is locally ordered, shall only contain 'OptionalBehaviour'(s) whose source 'ComponentInstance' is the same as the target of the first tester-input event of that 'Block'. " + } + +} + +context DefaultBehaviour { + //[There are no constraints specified.] +} + +context InterruptBehaviour { + //[There are no constraints specified.] +} + +context PeriodicBehaviour { + //'Time' data type for period expression + constraint PeriodType { + check: self.period->forAll(e | e.expression.resolveDataType().oclIsKindOf(Time)) + message: self.prefix() + + "The 'DataUse' expression assigned to the 'period' shall evaluate to a data instance of the 'Time' data type." + } + + //Period for each tester in locally ordered test descriptions + constraint PeriodForParticipatingComponents { + check: self.block.getParticipatingComponents()->reject(c | c.role = ComponentInstanceRole#SUT) + ->forAll(c | self.period->exists(ex | ex.componentInstance = c)) + or not self.getParentTestDescription().isLocallyOrdered + message: self.prefix() + + "If the 'PeriodicBehaviour' is contained in a locally ordered 'TestDescription' then a period shall be specified for every 'ComponentInstance' that has the role 'Tester' and for which there is a behaviour in the contained 'Block'. " + } + +} + +context AtomicBehaviour { + //[There are no constraints specified.] +} + +context Break { + //Break in conditional behaviour only + constraint ConditionalBreak { + check: self.container().container().oclIsKindOf(ConditionalBehaviour) + message: self.prefix() + + "A 'Break' shall be contained directly in the block of a 'ConditionalBehaviour'. " + } + + //No behaviours after break + constraint BreakIsLast { + check: self.container().oclAsType(Block).behaviour->last() = self + message: self.prefix() + + "A 'Break' shall be the last behaviour in the containing 'Block'. " + } + +} + +context Stop { + //[There are no constraints specified.] +} + +context VerdictAssignment { + //Verdict of type 'Verdict' + constraint VerdictType { + check: self.verdict.resolveDataType().name = 'Verdict' + message: self.prefix() + + "The 'verdict' shall evaluate to a, possibly predefined, instance of a 'SimpleDataInstance' of data type 'Verdict'." + } + + //No 'SpecialValueUse' + constraint VerdictNoSpecialValueUse { + check: not self.verdict.oclIsKindOf(SpecialValueUse) + message: self.prefix() + + "The 'verdict' shall not evaluate to an instance of a 'SpecialValueUse'." + } + +} + +context Assertion { + //Boolean condition + constraint AssertionOtherwise { + check: self.condition.resolveDataType().name = 'Boolean' + message: self.prefix() + + "The 'condition' shall evaluate to predefined 'DataType' 'Boolean'." + } + + //Otherwise of type 'Verdict' + constraint AssertionVerdict { + check: self.otherwise.oclIsUndefined() or self.otherwise.resolveDataType().name = 'Verdict' + message: self.prefix() + + "The 'otherwise' shall evaluate to a, possibly predefined, instance of a 'SimpleDataInstance' of data type 'Verdict'." + } + + //No 'SpecialValueUse' + constraint AssertionNoSpecialValueUse { + check: self.otherwise.oclIsUndefined() or not self.otherwise.oclIsKindOf(SpecialValueUse) + message: self.prefix() + + "The 'otherwise' shall not evaluate to an instance of a 'SpecialValueUse'." + } + + //[Figure 9.5: Interaction behaviour] +} + +context Interaction { + //Gate references of an interaction shall be connected + constraint ConnectedInteractionGates { + check: self.target->forAll(t | + self.getParentTestDescription().testConfiguration.connection->exists(c | + not c.endPoint->reject(ep | + (ep.component = self.sourceGate.component and ep.gate = self.sourceGate.component) or + (ep.component = t.targetGate.component and ep.gate = t.targetGate.gate) + )->isEmpty())) + message: self.prefix() + + "The 'GateReference's that act as source or target(s) of an 'Interaction' shall be interconnected by a 'Connection' which is contained in the 'TestConfiguration' referenced by the 'TestDescription' containing the 'Interaction'." + } + +} + +context Message { + //'DataType' resolvable + constraint DataTypeResolvable { + check: not self.argument.oclIsUndefined() + message: self.prefix() + + "If the 'argument' is 'DataInstanceUse', either the 'dataType' property or the 'dataInstance' property shall be provided. If the 'argument' is a 'DataElementUse', the 'dataElement' property shall be provided." + } + + //Type of message argument + constraint MessageArgumentAndGateType { + check: (self.argument.oclIsKindOf(AnyValue) + and self.argument. resolveDataType().oclIsUndefined()) + or (self.sourceGate.gate.type.allDataTypes()-> exists(t | self.argument.resolveDataType().conformsTo(t)) + and self.target->forAll(t | t.targetGate.gate.type.allDataTypes()->exists(t | self.argument.resolveDataType().conformsTo(t)))) + message: self.prefix() + + "The 'DataUse' specification referred to in the 'argument' shall match one of the 'DataType's referenced in the 'GateType' definition of the 'GateInstance's referred to by the source and target 'GateReference's of the 'Interaction'." + } + + //Use of variables in the 'argument' specification + constraint MessageArgumentVariableUse { + check: (not self.argument.oclIsKindOf(VariableUse) + or (self.sourceGate.component = self.argument.oclAsType(VariableUse).componentInstance + or self.target->exists(t | + t.targetGate.component = self.argument.oclAsType(VariableUse).componentInstance))) + + and self.argument.argument->forAll(a | + not a.dataUse.oclIsKindOf(VariableUse) + or (self.sourceGate.component = a.dataUse.oclAsType(VariableUse).componentInstance + or self.target->exists(t | + t.targetGate.component = a.dataUse.oclAsType(VariableUse).componentInstance))) + + and self.argument.argument->closure(a | a.dataUse.argument)->forAll(a | + not a.dataUse.oclIsKindOf(VariableUse) + or (self.sourceGate.component = a.dataUse.oclAsType(VariableUse).componentInstance + or self.target->exists(t | + t.targetGate.component = a.dataUse.oclAsType(VariableUse).componentInstance))) + message: self.prefix() + + "The use of 'Variable's in the 'DataUse' specification shall be restricted to 'Variable's of 'ComponentInstance's that participate in this 'Message' via the provided 'GateReference's." + } + + //Conforming data type for 'argument' and 'variable' + constraint MessageArgumentAndVariableType { + check: self.target->forAll(t | t.valueAssignment->size() = 0 + or not self.argument.resolveDataType().oclIsUndefined() + and t.valueAssignment->forAll(v | self.argument.resolveDataType().conformsTo(v.variable.dataType))) + message: self.prefix() + + "If a 'Variable' is specified for a 'Target', the 'DataType' of 'DataUse' specification of the 'argument' shall conform to the 'DataType's of referenced 'Variable's of all 'Target's." + } + +} + +context ProcedureCall { + //Only point-to-point procedure calls + constraint ProcedureCallTargetCount { + check: self.target->size() = 1 + message: self.prefix() + + "The 'target' of 'ProcedureCall' shall contain exactly one 'Target'. " + } + + //Each call has a reply + constraint ProcedureCallHasReply { + check: ProcedureCall.allInstances()->exists(pc | pc.replyTo = self) + message: self.prefix() + + "For every 'ProcedureCall' with empty 'replyTo' there shall be one or more 'ProcedureCall's that have this 'ProcedureCall' as 'replyTo'. " + } + + //Call and reply within the same 'TestDescription' + constraint ProcedureCallAndReply { + check: self.replyTo.oclIsUndefined() + or self.replyTo.getParentTestDescription() = self.getParentTestDescription() + message: self.prefix() + + "The 'ProcedureCall' referenced in the 'replyTo' shall be within the same 'TestDescription' as this 'ProcedureCall'. " + } + + //Call and reply between same components + constraint ProcedureCallReplyGates { + check: ProcedureCall.allInstances()->select(pc | pc.replyTo = self)->forAll( + reply | + reply.target->forAll(t | t.targetGate.component = self.sourceGate.component) + and reply.target->forAll(t | t.targetGate.gate = self.sourceGate.gate) + and self.target->forAll(t | t.targetGate.component = reply.sourceGate.component) + and self.target->forAll(t | t.targetGate.gate = reply.sourceGate.gate)) + message: self.prefix() + + "The 'sourceGate' and 'target' of a 'ProcedureCall' with 'replyTo' shall match the 'target' and 'sourceGate' of the 'ProcedureCall' in the 'replyTo'. That is, corresponding 'GateReference's shall be the equal. " + } + + //Synchronous procedure calls + constraint ProcedureCallSynchronousCalling { + check { var source = self.sourceGate.component; + var affectingBehaviours = self.container().oclAsType(Block).behaviour + ->reject(b | b.oclIsKindOf(ActionBehaviour) + and b.oclAsType(ActionBehaviour).componentInstance <> source) + ->reject(b | b.oclIsKindOf(Interaction) + and b.oclAsType(Interaction).sourceGate.component <> source + and b.oclAsType(Interaction).target->forAll(t | t.targetGate.component <> source)) + ->reject(b| b.oclIsKindOf(TestDescriptionReference) + and (not b.oclAsType(TestDescriptionReference).componentInstanceBinding->isEmpty() + and not b.oclAsType(TestDescriptionReference).componentInstanceBinding + .actualComponent->includes(self))); + var following = affectingBehaviours ->at(affectingBehaviours->indexOf(self) + 1);(following.oclIsKindOf(ProcedureCall) and following.oclAsType(ProcedureCall).replyTo = self) + or (following.oclIsKindOf(AlternativeBehaviour) + and following.oclAsType(AlternativeBehaviour).block->exists( + b | b.behaviour->first().oclIsKindOf(ProcedureCall) + and b.behaviour->first().oclAsType(ProcedureCall).replyTo = self)); } + message: self.prefix() + + "A 'ProcedureCall' with empty 'replyTo' shall not be followed by any behaviour in which the component specified in the 'sourceGate' is participating, other than a 'ProcedureCall' that specifies this 'ProcedureCall' as 'replyTo' or an 'AlternativeBehaviour' that contains such a 'ProcedureCall' in the beginning of a 'block'. " + } + + //Type of procedure call + constraint ProcedureCallSignatureInGateTypes { + check: self.sourceGate.gate.type.allDataTypes()->includes(self.signature) + and self.target->forAll(targetGate.gate.type.allDataTypes()->includes(self.signature)) + message: self.prefix() + + "The 'ProcedureSignature' referred to in the 'procedure' shall be one of the 'DataType's referenced in the 'GateType' definition of the 'GateInstance's referred to by the source and target 'GateReference's of the 'ProcedureCall'. " + } + + //No mixing of parameters + constraint ProcedureParameterKind { + check: self.argument->collect(pb | pb.parameter.oclAsType(ProcedureParameter).kind) + ->asSet()->size() <= 1 + message: self.prefix() + + "All 'ParameterBinding's specified in the 'argument' shall refer to 'ProcedureParameter's of the same 'ParameterKind'. " + } + + //Matching procedure arguments + constraint ProcedureCallArguments { + check: (self.replyTo.oclIsUndefined() and self.signature.parameter->select(p | p.kind = ParameterKind#In) + ->forAll(p | self.argument.parameter->includes(p))) + or (not self.replyTo.oclIsUndefined() and self.signature.parameter->reject(p | p.kind = ParameterKind#In) + ->forAll(p | self.argument.parameter->includes(p))) + message: self.prefix() + + "For a 'ProcedureCall' with empty 'replyTo' there shall be one 'ParameterBinding' instance in the 'argument' for each 'ProcedureParameter' with kind 'In' in the associated 'ProcedureSignature'. For a 'ProcedureCall' with 'replyTo' there shall be one 'ParameterBinding' instance in the 'argument' for each 'ProcedureParameter' with kind 'Out' or 'Exception' in the associated 'ProcedureSignature'. " + } + + //Use of variables in the 'argument' specification + constraint ProcedureCallVariableUse { + check: self.argument + ->closure(pb | pb.dataUse.argument)->union(self.argument)->collect(pb | pb.dataUse) + ->select(du | du.oclIsKindOf(VariableUse)) + ->forAll(du | self.getParticipatingComponents()->includes( + du.oclAsType(VariableUse).componentInstance)) + message: self.prefix() + + "The use of 'Variable's in the 'DataUse' specifications in 'ParameterBinding's shall be restricted to 'Variable's of 'ComponentInstance's that participate in this 'ProcedureCall' via the provided 'GateReference's. " + } + + //Reply not starting event of exceptional behaviour + constraint ProcedureCallReplyNotInExceptional { + check: self.replyTo.oclIsUndefined() or not self.container().container().oclIsKindOf(ExceptionalBehaviour) + message: self.prefix() + + "A 'ProcedureCall' that specifies replyTo shall not be the first behaviour of a block in an 'ExceptionalBehaviour'. " + } + +} + +context Target { + //Variable and target gate of the same component instance + constraint TargetComponent { + check: self.valueAssignment->isEmpty() + or self.targetGate.component.type.allVariables()->includesAll(self.valueAssignment.variable) + message: self.prefix() + + "The 'Variable's referenced by 'valueAssignment' shall exist in the same 'ComponentType' as the 'GateInstance' that is referred to by the 'GateReference' of the 'targetGate'." + } + + //Variable of a tester component only + constraint TargetVariableComponentRole { + check: self.valueAssignment->isEmpty () or self.targetGate.component.role = ComponentInstanceRole#Tester + message: self.prefix() + + "If a 'ValueAssignment' is specified, the 'ComponentInstance' referenced by 'targetGate' shall be in the role 'Tester'." + } + +} + +context ValueAssignment { + //Conforming data type for 'parameter' and 'variable' + constraint AssignedParamterType { + check: self.parameter.oclIsUndefined() or self.parameter.dataType.conformsTo(self.variable.dataType) + message: self.prefix() + + "If the 'parameter' is specified then its type shall conform to the type of the 'variable'. " + } + + //Parameter of associated procedure signature + constraint AssignedProcedureParameter { + check: self.parameter.oclIsUndefined() + or (self.container().container().oclIsKindOf(ProcedureCall) and + self.container().container().oclAsType(ProcedureCall).signature.parameter->includes(self.parameter)) + message: self.prefix() + + "If the 'parameter' is specified then it shall be contained in the 'ProcedureSignature' that is referred in the 'signature' ot the 'ProcedureCall' containing this 'ValueAssignment'." + } + + //[Figure 9.6: Test description reference] +} + +context TestDescriptionReference { + //All test description parameters bound + constraint AllTestDescriptionParametersBound { + check: self.testDescription.formalParameter->forAll(p | self.argument->exists(a | a.parameter = p)) + message: self.prefix() + + "For each 'FormalParameter' defined in 'formalParameter of' the referenced 'TestDescription' there shall be a 'ParameterBinding' in 'argument' that refers to that 'FormalParameter' in 'parameter'." + } + + //No use of variables in arguments + constraint NoVariablesInLocallyOrderedTestDescriptionReference { + check: self.argument. dataUse->forAll(du | + not du.oclIsKindOf(VariableUse) + and du.argument->forAll(a | not a.dataUse.oclIsKindOf(VariableUse)) + and du.argument->closure(a | a.dataUse.argument)->forAll(a | + not a.dataUse.oclIsKindOf(VariableUse))) + message: self.prefix() + + "In locally ordered 'TestDescription's, 'DataUse' expressions used to describe arguments shall not contain variables directly or indirectly in 'TestDescriptionReference's." + } + + //No use of time labels in arguments + constraint NoTimeLabelsInLocallyOrderedTestDescriptionReference { + check: self.argument.dataUse->forAll(du | + not du.oclIsKindOf(TimeLabelUse) + and du.argument->forAll(a | not a.dataUse.oclIsKindOf(TimeLabelUse)) + and du.argument->closure(a | a.dataUse.argument)->forAll(a | + not a.dataUse.oclIsKindOf(TimeLabelUse))) + message: self.prefix() + + "In locally ordered 'TestDescription's, 'DataUse' expressions used to describe arguments shall not contain time labels directly or indirectly in 'TestDescriptionReference's." + } + + //Restriction to 1:1 component instance bindings + constraint UniqueComponentBindings { + check: self.componentInstanceBinding->isEmpty() + or self.componentInstanceBinding->forAll(b | + self.componentInstanceBinding->one(c | + c.formalComponent = b.formalComponent or c.actualComponent = b.actualComponent)) + message: self.prefix() + + "If component instance bindings are provided, the component instances referred to in the bindings shall occur at most once for the given test description reference." + } + + //Compatible test configurations + constraint CompatibleConfiguration { + check: self.testDescription.testConfiguration.compatibleWith( + self.getParentTestDescription().testConfiguration, self.componentInstanceBinding) + message: self.prefix() + + "The 'TestConfiguration' of the referenced (invoked) 'TestDescription' shall be compatible with the 'TestConfiguration' of the referencing (invoking) 'TestDescription' under the provided 'ComponentInstanceBinding's between the 'ComponentInstance's of the 'TestConfiguration's of referenced and referencing 'TestDescription's. " + } + + //No combining of local and total ordering + constraint LocalAndTotalOrdering { + check: self.getParentTestDescription().isLocallyOrdered = self.testDescription.isLocallyOrdered + message: self.prefix() + + "The referenced 'TestDescription' shall have the same ordering assumption as the referencing 'TestDescription'." + } + +} + +context ComponentInstanceBinding { + //Conforming component types + constraint BindingComponentTypes { + check: self.actualComponent.type.conformsTo(self.formalComponent.type) + message: self.prefix() + + "The 'ComponentType' of the actual 'ComponentInstance' shall conform to 'ComponentType' of the formal 'ComponentInstance." + } + + //Matching component instance roles + constraint BindingComponentRoles { + check: self.formalComponent.role = self.actualComponent.role + message: self.prefix() + + "Both, the formal and the actual component instances, shall have the same 'ComponentInstanceRole' assigned to." + } + + //[Figure 9.7: Action behaviour concepts] +} + +context ActionBehaviour { + //'ActionBehaviour' on 'Tester' components only + constraint ActionBehaviourComponentRole { + check: self.componentInstance.oclIsUndefined() or self.componentInstance.role = ComponentInstanceRole#Tester + message: self.prefix() + + "The 'ComponentInstance' that an 'ActionBehaviour' refers to shall be of role 'Tester'." + } + + //Known 'componentInstance' with locally-ordered behaviour + constraint ActionBehaviourComponentInstance { + check: not self.componentInstance.oclIsUndefined() or not self.getParentTestDescription().isLocallyOrdered + message: self.prefix() + + "The 'ComponentInstance' that an 'ActionBehaviour' refers to shall be specified if the 'ActionBehaviour' is used within a locally-ordered 'TestDescription'." + } + +} + +context ActionReference { + //All action parameters bound + constraint AllActionParametersBound { + check: self.action.formalParameter->forAll(p | self.argument.parameter->includes(p)) + message: self.prefix() + + "For each 'FormalParameter' defined in 'formalParameter of' the referenced 'Action' there shall be a 'ParameterBinding' in 'argument' that refers to that 'FormalParameter' in 'parameter'. " + } + + //No 'Function's in 'ActionReference' + constraint ActionReferenceFunction { + check: not self.action.oclIsTypeOf(Function) + message: self.prefix() + + "The referenced 'Action' shall not be a 'Function'." + } + +} + +context InlineAction { + //[There are no constraints specified.] +} + +context Assignment { + //Conforming data type + constraint AssignmentDataType { + check: self.expression.resolveDataType().conformsTo(self.variable.variable.dataType) + message: self.prefix() + + "The provided 'DataUse' expression shall conform to the 'DataType' of the referenced 'Variable'." + } + + //Empty 'argument' set for 'variable' + constraint AssignmentVariableArgument { + check: self.variable.argument->isEmpty() + message: self.prefix() + + "The 'argument' and 'reduction' sets shall be empty." + } + +} diff --git a/plugins/org.etsi.mts.tdl.constraints.helper/resources/generated/tdl-generated-ETSI-ES-203-119-1-V1.6.1.ocl b/plugins/org.etsi.mts.tdl.constraints.helper/resources/generated/tdl-generated-ETSI-ES-203-119-1-V1.6.1.ocl new file mode 100644 index 0000000000000000000000000000000000000000..6bc9670bce411dcbc698b997ae450d48a4ef8175 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.constraints.helper/resources/generated/tdl-generated-ETSI-ES-203-119-1-V1.6.1.ocl @@ -0,0 +1,1152 @@ +import 'http://www.etsi.org/spec/TDL/1.4.1' + +package tdl + +context NamedElement + -- Mandatory name + inv MandatoryName ('A \'NamedElement\' shall have the \'name\' property set and the \'name\' shall be not an empty String.' + self.toString()): + not self.name.oclIsUndefined() and self.name.size() > 0 + + + -- Distinguishable qualified names + inv DistinquishableName ('All qualified names of instances of \'NamedElement\'s shall be distinguishable within a TDL model.' + self.toString()): + NamedElement.allInstances()->one(e | e.qualifiedName = self.qualifiedName) + + + -- [NOTE: It is up to the concrete syntax definition and tooling to resolve any name clashes between instances of the same meta-class in the qualified name.] + + +context Package + -- No cyclic imports + inv CyclicImports ('A \'Package\' shall not import itself directly or indirectly.' + self.toString()): + self.import->asOrderedSet()->closure(i | i.importedPackage.import)->forAll(i | + i.importedPackage <> self) + + + + +context ElementImport + -- Consistency of imported elements + inv ConsistentImports ('All imported \'PackageableElement\'s referenced by an \'ElementImport\' shall be directly owned by the imported \'Package\'.' + self.toString()): + self.importedElement->forAll(e | self.importedPackage.packagedElement->includes(e)) + + + -- [Figure 5.2: Miscellaneous elements] + + +context Comment + -- No nested comments + inv CommentNestedComments ('A \'Comment\' shall not contain \'Comment\'s.' + self.toString()): + self.comment->isEmpty() + + + -- No annotations to comments + inv CommentNestedAnnotations ('A \'Comment\' shall not contain \'Annotation\'s.' + self.toString()): + self.annotation->isEmpty() + + + + +context Annotation + -- No nested annotations + inv AnnotationNestedAnnotations ('An \'Annotation\' shall not contain \'Annotation\'s' + self.toString()): + self.annotation->isEmpty() + + + -- No comments to annotations + inv AnnotationNestedComments ('An \'Annotation\' shall not contain \'Comment\'s.' + self.toString()): + self.comment->isEmpty() + + + + +context Extension + -- Inherit from element of the same meta-class + inv Extension ('The element containing an \'Extension\' and the element in the \'extending\' property shall have the same meta-class.' + self.toString()): + self.container().oclType() = self.extending.oclType() + + + + +context Constraint + -- Effectively static quantifiers + inv StaticQuantifiers ('All \'DataUse\'s specified as \'quantifier\'s shall be effectively static.' + self.toString()): + self.quantifier->forAll(q | q.isEffectivelyStatic()) + + + -- Empty arguments for quantifiers + inv NoArgumentQuantifiers ('The \'argument\' sets for all \'DataUse\'s specified as \'quantifier\'s shall be empty.' + self.toString()): + self.quantifier->forAll(q | q.argument->isEmpty()) + + + -- Constraint applicability for 'union' and 'uniontype' + inv ConstraintApplicabilityUnionUniontype ('The predefined \'ConstraintType\'s \'union\' and \'uniontype\' shall be applied to \'StructuredDataType\'s only. ' + self.toString()): + (self.type.name = 'union' or self.type.name = 'uniontype') + implies self.container().oclIsTypeOf(StructuredDataType) + + + -- Constraint applicability for 'range' and 'format' + inv ConstraintApplicabilityRangeFormat ('The predefined \'ConstraintType\'s \'range\' and \'format\' shall be applied to \'SimpleDataType\'s and \'Member\'s with a \'SimpleDataType\' \'dataType\' only. ' + self.toString()): + (self.type.name = 'range' or self.type.name = 'format') + implies (self.container().oclIsTypeOf(SimpleDataType) + or (self.container().oclIsTypeOf(Member) + and self.container().oclAsType(Member).dataType.oclIsTypeOf(SimpleDataType))) + + + -- Constraint applicability for 'length', 'minLength', and 'maxLength' + inv ConstraintApplicabilityLength ('The predefined \'ConstraintType\'s \'length\', \'minLength\', and \'maxLength\' shall be applied to \'CollectionDataType\'s, \'SimpleDataType\'s and \'Member\'s with a \'SimpleDataType\' or a \'CollectionDataType\' \'dataType\' only. ' + self.toString()): + (self.type.name = 'length' or self.type.name = 'minLength' or self.type.name = 'maxLength') + implies (self.container().oclIsTypeOf(SimpleDataType) + or self.container().oclIsTypeOf(CollectionDataType) + or (self.container().oclIsTypeOf(Member) + and self.container().oclAsType(Member).dataType.oclIsTypeOf(SimpleDataType)) + and self.container().oclAsType(Member).dataType.oclIsTypeOf(CollectionDataType)) + + + -- Quantifiers for 'length', 'minLength', and 'maxLength' + inv ConstraintQuantifierLength ('The predefined \'ConstraintType\'s \'length\', \'minLength\', and \'maxLength\' shall be used with exactly one \'quantifier\' resolved to an instance conforming to the predefined \'Integer\' \'DataType\'. ' + self.toString()): + (self.type.name = 'length' or self.type.name = 'minLength' or self.type.name = 'maxLength') + implies (self.quantifier->size() = 1 + and self.quantifier->forAll(q | q.resolveDataType().conformsTo('Integer'))) + + + -- Quantifiers for 'range' + inv ConstraintQuantifierRange ('The predefined \'ConstraintType\' \'range\' shall be used with exactly two \'quantifier\'s resolved to instance conforming to the predefined \'Integer\' \'DataType\'. ' + self.toString()): + (self.type.name = 'length') + implies (self.quantifier->size() = 2 + and self.quantifier->forAll(q | q.resolveDataType().conformsTo('Integer'))) + + + + +context DataElementMapping + -- Restricted use of 'ParameterMapping' + inv ParameterMappingType ('A set of \'ParameterMapping\'s may only be provided if \'mappableDataElement\' refers to a \'StructuredDataType\', an \'Action\' or a \'Function\' definition and the \'mappableDataElement\' contains the mapped \'Parameters\'.' + self.toString()): + self.parameterMapping->size() = 0 + or (self.mappableDataElement.oclIsTypeOf(StructuredDataType) + and self.parameterMapping->forAll(p | + self.mappableDataElement.oclAsType(StructuredDataType).allMembers()->includes(p.parameter))) + or (self.mappableDataElement.oclIsKindOf(Action) + and self.parameterMapping->forAll(p | + self.mappableDataElement.oclAsType(Action).formalParameter->includes(p.parameter))) + + + -- All parameters shall be mapped + inv ParameterMappings ('If the \'mappableDataElement\' refers to a \'StructuredDataType\', an \'Action\' or a \'Function\' definition, all the \'Parameters\' contained in the \'mappableDataElement\' shall be mapped.' + self.toString()): + (self.mappableDataElement.oclIsKindOf(SimpleDataType) or self.mappableDataElement.oclIsKindOf(DataInstance) + or (self.mappableDataElement.oclIsTypeOf(StructuredDataType) + and self.mappableDataElement.oclAsType(StructuredDataType).member->forAll(p | + self.parameterMapping->exists(m | m.parameter = p))) + or (self.mappableDataElement.oclIsKindOf(Action) + and self.mappableDataElement.oclAsType(Action).formalParameter->forAll(p | + self.parameterMapping->exists(m | m.parameter = p)) + and self.parameterMapping->forAll(p | + self.mappableDataElement.oclAsType(Action).formalParameter->includes(p.parameter)))) + + + + +context SimpleDataInstance + -- SimpleDataInstance shall refer to SimpleDataType + inv SimpleDataInstanceType ('The inherited reference \'dataType\' from \'DataInstance\' shall refer to instances of \'SimpleDataType\' solely.' + self.toString()): + self.dataType.oclIsKindOf(SimpleDataType) + + + -- SimpleDataInstance container in EnumDataType + inv EnumDataInstanceContainment ('A \'SimpleDataInstance\' whose \'dataType\' property refers to an \'EnumDataType\' shall be contained in that \'EnumDataType\'.' + self.toString()): + not self.dataType.oclIsKindOf(EnumDataType) or self.oclContainer() = self.dataType + + + -- [Figure 6.3: Structured data type and instance] + + +context StructuredDataType + -- Different member names in a structured data type + inv DistinguishableMemberNames ('All \'Member\' names of a \'StructuredDataType\' (including the names of inherited \'Members\') shall be distinguishable.' + self.toString()): + self.allMembers()->isUnique(e | e.name) + + + + +context StructuredDataInstance + -- StructuredDataInstance shall refer to StructuredDataType + inv StructuredDataInstance ('The inherited reference \'dataType\' from \'DataInstance\' shall refer to instances of \'StructuredDataType\' solely.' + self.toString()): + self.dataType.oclIsTypeOf(StructuredDataType) + + + -- 'Member' of the 'StructuredDataType' + inv ExistingMemberOfDataType ('The referenced \'Member\' shall be contained in or inherited by the \'StructuredDataType\' that the \'StructuredDataInstance\', which contains this \'MemberAssignment\', refers to.' + self.toString()): + self.memberAssignment->forAll(a | self.dataType.oclAsType(StructuredDataType).allMembers()->includes(a.member)) + + + -- Unique assignments for each 'Member' of the 'StructuredDataType' + inv UniqueMemberAssignments ('There shall be at most one \'memberAssignment\' for each \'Member\' of the \'StructuredDataType\' that the \'StructuredDataInstance\', which contains this \'MemberAssignment\', refers to.' + self.toString()): + self.memberAssignment->isUnique(m | m.member) + + + -- 'union' constraint on the type of the 'StructuredDataInstance' + inv StructuredDataInstanceUnionConstraint ('If the \'dataType\' of the \'StructuredDataInstance\' has the predefined constraint \'union\' then the \'memberAssignment\' shall not contain more than one \'MemberAssignment\'.' + self.toString()): + not self.dataType.allConstraints()->exists(c | c.type.name = 'union') + or self.memberAssignment->size() <= 1 + + + -- 'uniontype' constraint on the type of the 'StructuredDataInstance' + inv StructuredDataInstanceUniontypeConstraint ('If the \'dataType\' of \'StructuredDataInstance\' has the predefined constraint \'uniontype\' then there shall only be \'MemberAssignment\' for the \'Member\'s of the \'dataType\' itself or of at most one of the \'StructuredDataType\'s which the \'dataType\' is extending.' + self.toString()): + not self.dataType.allConstraints()->exists(c | c.type.name = 'uniontype') + or self.memberAssignment->forAll(m | self.dataType.oclAsType(StructuredDataType).member->includes(m) + or self.dataType.oclAsType(StructuredDataType).extension->one(e | + e.extending.oclAsType(StructuredDataType).allMembers()->includes(m))) + + + + +context MemberAssignment + -- Type of a 'memberSpec' shall conform to the type of the 'member' + inv MatchingMemberDataType ('The \'DataType\' of the \'DataUse\' of \'memberSpec\' shall conform to the \'DataType\' of the \'Member\' of the \'MemberAssignment\'.' + self.toString()): + self.memberSpec.resolveDataType().conformsTo(self.member.dataType) + + + -- Restricted use of 'OmitValue' for optional 'Member's only + inv OmitValueUse ('A non-optional \'Member\' shall have a \'DataUse\' specification assigned to it that is different from \'OmitValue\' and \'AnyValueOrOmit\'.' + self.toString()): + (self.memberSpec.oclIsTypeOf(OmitValue) or self.memberSpec.oclIsTypeOf(AnyValueOrOmit)) + implies self.member.isOptional = true + + + -- Static data use in 'memberSpec' + inv StaticDataInMemberSpec ('The \'memberSpec\' and all of its \'ParameterBinding\'s shall be effectively static. ' + self.toString()): + self.memberSpec.isEffectivelyStatic() + + + -- [Figure 6.4: Collection data] + + +context CollectionDataType + -- No multidimensional collections + inv NoMultidimensionalCollections ('The \'itemType\' shall not be an instance of \'CollectionDataType\'. ' + self.toString()): + not self.itemType.oclIsKindOf(CollectionDataType) + + + + +context CollectionDataInstance + -- CollectionDataInstance shall refer to CollectionDataType + inv CollectionDataInstanceType ('The inherited reference \'dataType\' from \'DataInstance\' shall refer to instances of \'CollectionDataType\' solely.' + self.toString()): + self.dataType.oclIsKindOf(CollectionDataType) + + + -- Type of items in the 'CollectionDataInstance' + inv CollectionDataInstanceItemType ('The items in \'CollectionDataInstance\' shall conform to the \'itemType\' of the \'CollectionDataType\' that is defined as the \'dataType\' of this \'CollectionDataInstance\'. ' + self.toString()): + self.item->forAll(i | + i.resolveDataType().conformsTo(self.dataType.oclAsType(CollectionDataType).itemType)) + + + -- Static data use in 'item' + inv StaticDataInItem ('The DataUse\'s in \'item\' and all of the respective \'ParameterBinding\'s shall be effectively static. ' + self.toString()): + self.item->forAll(i | i.isEffectivelyStatic()) + + + -- Length constraint of the 'CollectionDataInstance' + inv CollectionDataInstanceLengthConstraint ('If the \'dataType\' \'CollectionType\' contains the predefined constraint \'length\' then the length of this \'CollectionDataInstance\' shall be equal to the \'quantifier\' of that \'Constraint\'.' + self.toString()): + true --This constraint cannot be expressed formally. + + + -- [Figure 6.5: Procedure and procedure parameter] + + +context EnumDataType + -- No extensions for EnumDataType + inv EnumDataTypeExtensions ('The \'extension\' property of an \'EnumDataType\' shall be empty.' + self.toString()): + self.extension.oclIsUndefined() + + + + +context DataUse + -- Occurrence of 'argument' and 'reduction' + inv ArgumentReductionLists ('Only in case of a \'FunctionCall\' both the \'argument\' list and the \'reduction\' list may be provided, otherwise either the \'argument\' list, the \'reduction\' list, or none of them shall be provided.' + self.toString()): + self.argument->isEmpty() or self.reduction->isEmpty() or self.oclIsTypeOf(FunctionCall) + + + -- Structured data types in 'reduction' set + inv ReductionMembers ('The \'Member\' referenced by the \'MemberReference\' at index i of a \'reduction\' shall be contained in or inherited by the \'StructuredDataType\' of the \'Member\' referenced by the \'MemberReference\' at index (i - 1) of that \'reduction\'.' + self.toString()): + not self.resolveDataType().oclIsKindOf(StructuredDataType) + or self.reduction->isEmpty() + or self.resolveDataType().oclAsType(StructuredDataType).allMembers()->includes(self.reduction->first().member) + and self.reduction->select(m | self.reduction->indexOf(m) > 1)->forAll(m | + self.reduction->at(self.reduction->indexOf(m)-1).member.dataType.oclIsKindOf(StructuredDataType) + and self.reduction->at(self.reduction->indexOf(m)-1).member.dataType.oclAsType(StructuredDataType).allMembers() + ->includes(m.member)) + + + -- No member with collection index in the first element in reduction + inv FirstReduction ('The first \'MemberReference\' in reduction shall not specify both member and collectionIndex. ' + self.toString()): + self.reduction->first().member.oclIsUndefined() or self.reduction->first().collectionIndex.oclIsUndefined() + + + + +context ParameterBinding + -- Matching data type + inv ParameterBindingTypes ('The provided \'DataUse\' shall conform to the \'DataType\' of the referenced \'Parameter\'.' + self.toString()): + self.dataUse.resolveDataType().conformsTo(self.parameter.dataType) + + + -- Use of a 'StructuredDataInstance' with non-optional 'Member's + inv OmitValueParameter ('A non-optional \'Member\' of a \'StructuredDataType\' shall have a \'DataUse\' specification assigned to it that is different from \'OmitValue\' or \'AnyValueOrOmit\'.' + self.toString()): + self.parameter.oclIsTypeOf(Member) and self.parameter.oclAsType(Member).isOptional = false + implies not self.dataUse.oclIsTypeOf(OmitValue) and not self.dataUse.oclIsTypeOf(AnyValueOrOmit) + + + + +context MemberReference + -- Collection index expressions for collections only + inv CollectionIndex ('If the type of the related \'DataUse\' is not \'CollectionDataType\' then the collectionIndex shall be undefined. ' + self.toString()): + self.collectionIndex.oclIsUndefined() + or self.container().oclAsType(DataUse).resolveDataType().oclIsKindOf(CollectionDataType) + + + -- Either member or collection index is required + inv MemberOrReduction ('Either the member or collectionIndex shall be specified. ' + self.toString()): + not self.member.oclIsUndefined() or not self.collectionIndex.oclIsUndefined() + + + + +context DataInstanceUse + -- 'DataInstance' reference or non-empty 'argument' or non-empty 'item' + inv DataInstanceOrArgumentsOrItems ('If a \'dataInstance\' is not specified, either a non-empty \'argument\' set or a non-empty \'item\' set shall be specified.' + self.toString()): + not self.dataInstance.oclIsUndefined() or not self.argument->isEmpty() or not self.item->isEmpty() + + + -- Valid 'DataType' for items + inv DataTypeOfItemsInDataInstance ('The items in the \'item\' property shall conform to the \'itemType\' of the resolved \'CollectionDataType\'.' + self.toString()): + self.item->forAll(i | i.resolveDataType().conformsTo(self.resolveDataType().oclAsType(CollectionDataType).itemType)) + + + -- No 'item' if 'dataInstance' is specified + inv NoItemWithDataInstance ('The \'item\' property shall be empty if the \'dataInstance\' property is specified.' + self.toString()): + not self.dataInstance.oclIsUndefined() implies self.item->isEmpty() + + + + +context SpecialValueUse + -- Empty 'argument' and 'reduction' sets + inv SpecialValueArgumentReduction ('The \'argument\' and \'reduction\' sets shall be empty.' + self.toString()): + self.reduction->isEmpty() and self.argument->isEmpty() + + + + +context FunctionCall + -- Matching parameters + inv FunctionCallParameters ('All \'FormalParameter\'s of the invoked \'Function\' shall be bound.' + self.toString()): + self.function.formalParameter->forAll(p | self.argument->exists(a | a.parameter = p)) + + + + +context VariableUse + -- Local variables of tester components only + inv VariableUseComponentRole ('All variables used in a \'DataUse\' specification via a \'VariableUse\' shall be local to the same \'componentInstance\' and the \'componentInstance\' shall be in the role \'Tester\'.' + self.toString()): + self.componentInstance.type.allVariables()->includes(self.variable) + and self.componentInstance.role = ComponentInstanceRole::Tester + + + + +context PredefinedFunctionCall + -- Compatible actual parameters + inv PredefinedFunctionCallParameters ('The number and type of actual parameters shall be compatible with the formal parameters of the invoked \'PredefinedFunction\' according to the specification of the \'PredefinedFunction\'.' + self.toString()): + true --This constraint cannot be expressed formally. + + + -- Empty 'argument' and 'reduction' sets + inv PredefinedFunctionCallArgumentReduction ('The \'argument\' and \'reduction\' sets shall be empty.' + self.toString()): + self.reduction->isEmpty() and self.argument->isEmpty() + + + + +context LiteralValueUse + -- Exactly one value specification + inv SpecifiedLiteralValue ('There shall be exactly one value specification, where either the \'value\', or the \'intValue\', or the \'boolValue\' property is be specified, but not more than one of them.' + self.toString()): + not self.value.oclIsUndefined() + xor not self.intValue.oclIsUndefined() + xor not self.boolValue.oclIsUndefined() + + + -- Empty 'argument' and 'reduction' sets if not 'dataType' + inv LiteralValueArgumentReduction ('If \'dataType\' is not specified then the \'argument\' and \'reduction\' sets shall be empty.' + self.toString()): + (self.dataType.oclIsUndefined()) + implies (self.reduction->isEmpty() and self.argument->isEmpty()) + + + -- Integer type for integer value + inv LiteralValueIntType ('If \'intValue\' is specified then the \'dataType\' is either unspecified or the specified \'DataType\' is instanceof of \'Time\' or conforms to predefined type \'Integer\'.' + self.toString()): + not self.intValue.oclIsUndefined() + implies (self.dataType.oclIsUndefined() or self.dataType.oclIsKindOf(Time) or self.dataType.conformsTo('Integer')) + + + -- Boolean type for Boolean value + inv LiteralValueBoolType ('If \'boolValue\' is specified then the \'dataType\' is either unspecified or the specified \'DataType\' conforms to predefined type \'Boolean\'.' + self.toString()): + not self.boolValue.oclIsUndefined() + implies (self.dataType.oclIsUndefined() or self.dataType.conformsTo('Boolean')) + + + + +context DataElementUse + -- 'DataElement' reference or non-empty 'argument' or non-empty 'item' + inv DataInstanceOrArgumentsOrItemsInDataElementUse ('If a \'dataElement\' is not specified, or if the \'dataElement\' is resolved to a \'StructuredDataType\' or a \'CollectionDataType\', either a non-empty \'argument\' set or a non-empty \'item\' set shall be specified.' + self.toString()): + not (self.dataElement.oclIsUndefined() and self.argument->isEmpty() and self.item->isEmpty()) + and not (self.dataElement.oclIsKindOf(StructuredDataType) and self.argument->isEmpty()) + and not (self.dataElement.oclIsKindOf(CollectionDataType) and self.item->isEmpty()) + + + -- Valid 'DataType' for items + inv DataTypeOfItemsInDataInstance ('The items in the \'item\' property shall conform to the \'itemType\' of the resolved \'CollectionDataType\'.' + self.toString()): + self.item->forAll(i | i.resolveDataType().conformsTo(self.resolveDataType().oclAsType(CollectionDataType).itemType)) + + + -- Only 'item' if the resolved data type is 'CollectionDataType' + inv ItemOnlyWithCollectionDataType ('The \'item\' property shall be non-empty if the \'dataElement\' property is resolved to a \'CollectionDataType\'.' + self.toString()): + (((self.dataElement.oclIsKindOf(CollectionDataType)) + or self.dataElement.oclIsUndefined()) + and not self.item->isEmpty()) + or self.item->isEmpty() + + + -- Matching parameters for 'Function's + inv FunctionCallParameters ('All \'FormalParameter\'s shall be bound if the \'dataElement\' refers to a \'Function\'.' + self.toString()): + not self.dataElement.oclIsKindOf(Function) + or self.dataElement.oclAsType(Function).formalParameter->forAll(p | self.argument->exists(a | a.parameter = p)) + + + + +context TimeLabelUse + -- Empty 'argument' and 'reduction' sets + inv TimeLabelArgumentReduction ('The \'argument\' and \'reduction\' sets shall be empty.' + self.toString()): + self.reduction->isEmpty() and self.argument->isEmpty() + + + -- 'TimeLabel's only within the same 'TestDescription' when local ordering is used + inv TimeLabelLocallyOrdered ('When local ordering is used, \'TimeLabel\'s shall only be used within the same test description. ' + self.toString()): + self.getParentTestDescription().isLocallyOrdered = true + or self.timeLabel.getParentTestDescription() = self.getParentTestDescription() + + + + +context TimeConstraint + -- Time constraint expression of type Boolean + inv TimeConstraintType ('The expression given in the \'DataUse\' specification shall evaluate to predefined type \'Boolean\'.' + self.toString()): + self.timeConstraintExpression.resolveDataType().name = 'Boolean' + + + -- Use of local variables only + inv TimeConstraintVariables ('The expression given in the \'DataUse\' specification shall contain only \'Variable\'s that are local to the \'AtomicBehaviour\' that contains this \'TimeConstraint\'. That is, all \'VariableUse\'s shall reference the \'ComponentInstance\'s which participate in the \'AtomicBehaviour\'.' + self.toString()): + self.timeConstraintExpression.argument + ->closure(a | a.dataUse.argument)->collect(pb | pb.dataUse) + ->union(self.timeConstraintExpression.argument) + ->select(du | du.oclIsKindOf(VariableUse)) + ->forAll(du | self.container().oclAsType(Behaviour).getParticipatingComponents()->includes( + du.oclAsType(VariableUse).componentInstance)) + + + -- Use of local time labels only + inv TimeConstraintTimeLabels ('In case of locally ordered \'TestDescription\', the expression given in the \'DataUse\' specification shall contain only \'TimeLabel\'s that are local to the \'AtomicBehaviour\' that contains this \'TimeConstraint\'. That is, all \'TimeLabel\'s shall be contained in \'AtomicBehaviour\'s involving the \'ComponentInstance\'s which participate in the \'AtomicBehaviour\' that contains this \'TimeConstraint.' + self.toString()): + self.timeConstraintExpression.argument + ->closure(a | a.dataUse.argument)->collect(pb | pb.dataUse) + ->union(self.timeConstraintExpression.argument) + ->select(du | du.oclIsKindOf(TimeLabelUse)) + ->forAll(du | self.container().oclAsType(Behaviour).getParticipatingComponents()->includesAll( + du.oclAsType(TimeLabelUse).timeLabel.container().oclAsType(Behaviour).getParticipatingComponents())) + + + -- [Figure 7.2: Time operations] + + +context TimeOperation + -- Component required in locally ordered test description + inv TimeOperationComponent ('If the \'TimeOperation\' is contained in a locally ordered \'TestDescription\' then the \'componentInstance\' shall be specified.' + self.toString()): + self.getParentTestDescription().isLocallyOrdered + implies not self.componentInstance.oclIsUndefined() + + + -- Time operations on tester components only + inv TimeOperationComponentRole ('A \'TimeOperation\' shall be performed only on a \'ComponentInstance\' in the role \'Tester\'.' + self.toString()): + (not self.componentInstance.oclIsUndefined() + and self.componentInstance.role = ComponentInstanceRole::Tester) + or (self.oclIsTypeOf(Quiescence) + and not self.oclAsType(Quiescence).gateReference.oclIsUndefined() + and self.oclAsType(Quiescence).gateReference.component.role = ComponentInstanceRole::Tester) + + + -- 'Time' data type for period expression + inv TimePeriodType ('The \'DataUse\' expression assigned to the \'period\' shall evaluate to a data instance of the \'Time\' data type.' + self.toString()): + self.period.resolveDataType().oclIsKindOf(Time) + + + + +context Quiescence + -- Exclusive use of gate reference or component instance + inv QuiescenceTarget ('If a \'GateReference\' is provided, a \'ComponentInstance\' shall not be provided and vice versa.' + self.toString()): + self.gateReference.oclIsUndefined() xor self.componentInstance.oclIsUndefined() + + + -- [Figure 7.3: Timer and timer operations] + + +context TimerOperation + -- Timer operations on tester components only + inv TimerOperationComponentRole ('A \'TimerOperation\' shall be performed only on a \'ComponentInstance\' in the role \'Tester\'.' + self.toString()): + self.componentInstance.role = ComponentInstanceRole::Tester + + + + +context TimerStart + -- 'Time' data type for period expression + inv TimerPeriodType ('The \'DataUse\' expression assigned to the \'period\' shall evaluate to a data instance of the \'Time\' data type.' + self.toString()): + self.period.resolveDataType().oclIsKindOf(Time) + + + + +context GateType + -- Compatible 'DataType's. + inv GateType ('The \'DateType\'s specified for the \'GateType\' shall correspond the kind of the \'GateType\'. For \'GateType\' of kind \'Procedure\' only \'ProcedureSignature\'s shall be specified as data types. For \'GateType\' of kind \'Message\' only \'StructuredDataType\'s, \'SimpleDataType\'s and \'CollectionDataType\'s shall be specified as data types. ' + self.toString()): + (self.kind = GateTypeKind::Procedure and self.allDataTypes()->forAll(t | + t.oclIsTypeOf(ProcedureSignature))) + or (self.kind = GateTypeKind::Message and self.allDataTypes()->forAll(t | t.oclIsTypeOf(StructuredDataType) + or t.oclIsKindOf(SimpleDataType) or t.oclIsTypeOf(CollectionDataType))) + + + + +context GateReference + -- Gate instance of the referred component instance + inv GateInstanceReference ('The referred \'GateInstance\' shall be contained in the \'ComponentType\' of the referred \'ComponentInstance\'.' + self.toString()): + self.component.type.allGates()->includes(self.gate) + + + + +context Connection + -- Self-loop connections are not permitted + inv NoSelfLoop ('The \'endPoint\'s of a \'Connection\' shall not be the same. Two endpoints are the same if both, the referred \'ComponentInstance\'s and the referred \'GateInstance\'s, are identical.' + self.toString()): + self.endPoint->forAll(e1 | self.endPoint->one(e2 | e1.gate = e2.gate + and e1.component = e2.component)) + + + -- Consistent type of a connection + inv ConsistentConnectionType ('The \'GateInstance\'s of the two \'endPoint\'s of a \'Connection\' shall refer to the same \'GateType\'.' + self.toString()): + self. endPoint.gate.type->asSet()->size() = 1 + + + + +context TestConfiguration + -- 'TestConfiguration' and components roles + inv ComponentRoles ('A \'TestConfiguration\' shall contain at least one \'Tester\' and one \'SUT\' \'ComponentInstance\'.' + self.toString()): + self.componentInstance->exists(c | c.role = ComponentInstanceRole::Tester) + and self.componentInstance->exists(c | c.role = ComponentInstanceRole::SUT) + + + -- Only 'Connection's between own 'ComponentInstance's + inv OwnedComponents ('A \'TestConfiguration\' shall only contain \'Connection\'s between gates of its own \'ComponentInstance\'s. ' + self.toString()): + self.connection->forAll(c | + self.componentInstance->includesAll(c.endPoint.component)) + + + -- Minimal 'TestConfiguration' + inv MinimalTestConfiguration ('Each \'TestConfiguration\' shall specify at least one \'Connection\' that connects a \'GateInstance\' of a \'ComponentInstance\' in the role \'Tester\' with a \'GateInstance\' of a \'ComponentInstance\' in the role \'SUT\'.' + self.toString()): + self.connection->exists(c | + c.endPoint.component.role->includesAll(Set{ComponentInstanceRole::SUT, ComponentInstanceRole::Tester})) + + + -- At most one connection between any two 'GateInstance'/'ComponentInstance' pairs + inv UniqueConnections ('Given the set of \'Connection\'s contained in a \'TestConfiguration\'. There shall be no two \'Connection\'s containing \'GateReference\'s that in turn refer to identical pairs of \'GateInstance\'/\'ComponentInstance\'.' + self.toString()): + self.connection->forAll(c1 | self.connection->one(c2 | + not c1.endPoint->reject(ep1 | not c2.endPoint->exists(ep2 | + ep1.component = ep2.component and ep1.gate = ep2.gate + ))->isEmpty())) + + + + +context Block + -- Guard shall evaluate to Boolean + inv GuardType ('The type of \'guard\' shall be \'Boolean\'.' + self.toString()): + self.guard ->forAll(g | g.expression.resolveDataType().name = 'Boolean') + + + -- No directly contained 'ExceptionalBehaviour's and 'PeriodicBehaviour's. + inv AllowedBehaviourTypes ('A \'Block\' shall not contain \'ExceptionalBehaviour\'s and \'PeriodicBehaviour\'s.' + self.toString()): + self.behaviour->forAll(b | + not b.oclIsTypeOf(ExceptionalBehaviour) and not b.oclIsTypeOf(PeriodicBehaviour)) + + + -- Guard for each participating tester in locally ordered test descriptions + inv GuardsForParticipatingComponents ('If the \'Block\' is contained in a locally ordered \'TestDescription\' then a guard shall be specified for every participating \'ComponentInstance\' in the associated \'TestConfiguration\' that has the role \'Tester\' or there shall be no guards at all. ' + self.toString()): + self.guard->size() = 0 + or self.getParticipatingComponents()->reject(c | c.role = ComponentInstanceRole::SUT) + ->forAll(c | self.guard->exists(ex | ex.componentInstance = c)) + or not self.getParentTestDescription().isLocallyOrdered + + + -- Single guard in totally ordered test description + inv SingleTotalGuard ('If the \'Block\' is contained in a totally ordered \'TestDescription\' then there shall not be more than one guard. ' + self.toString()): + self.getParentTestDescription().isLocallyOrdered or self.guard->size() <= 1 + + + + +context LocalExpression + -- Local expressions in locally ordered test descriptions have 'ComponentInstance' specified + inv LocalExpressionComponent ('If the \'LocalExpression\' is contained in a locally ordered \'TestDescription\' then the componentInstance shall be specified. ' + self.toString()): + self.getParentTestDescription().isLocallyOrdered + implies not self.componentInstance.oclIsUndefined() + + + -- Only local variables and time labels in case of locally ordered test description + inv LocalVariablesAndTimersInExpression ('If the componentInstance is specified then all \'Variable\'s and \'TimeLabel\'s used in the expression shall be local to that \'ComponentInstance\'.' + self.toString()): + self.expression.argument + ->closure(a | a.dataUse.argument)->collect(pb | pb.dataUse) + ->union(self.expression.argument) + ->including(self.expression) + ->select(du | du.oclIsKindOf(VariableUse)) + ->forAll(du | du.oclAsType(VariableUse).componentInstance = self.componentInstance) + and self.expression.argument + ->closure(a | a.dataUse.argument)->collect(pb | pb.dataUse) + ->union(self.expression.argument) + ->including(self.expression) + ->select(du | du.oclIsKindOf(TimeLabelUse)) + ->forAll(du | du.oclAsType(TimeLabelUse).timeLabel.container().oclAsType(Behaviour) + .getParticipatingComponents()->includes(self.componentInstance)) + + + + +context BoundedLoopBehaviour + -- No guard constraint + inv BoundedGuard ('The \'Block\' of a \'BoundedLoopBehaviour\' shall not have a \'guard\'.' + self.toString()): + self.block->forAll(b | b.guard.oclIsUndefined()) + + + -- Iteration number shall be countable and positive + inv LoopIteration ('The expression assigned to the \'numIteration\' property shall evaluate to a countable \'SimpleDataInstance\' of an arbitrary user-defined data type, e.g. a positive Integer value.' + self.toString()): + self.numIteration->forAll(e | e.expression.resolveDataType().conformsTo('Integer')) + + + -- Iteration count in locally ordered test descriptions + inv IterationCountsForParticipatingComponents ('If the \'BoundedLoopBehaviour\' is contained in a locally ordered \'TestDescription\' then a numIteration shall be specified for every participating \'ComponentInstance\' that has the role \'Tester\'.' + self.toString()): + self.block.getParticipatingComponents()->reject(c | c.role = ComponentInstanceRole::SUT) + ->forAll(c | self.numIteration->exists(ex | ex.componentInstance = c)) + or not self.getParentTestDescription().isLocallyOrdered + + + -- Single numIteration in totally ordered test description + inv SingleTotalIterationCount ('If the \'BoundedLoopBehaviour\' is contained in a totally ordered \'TestDescription\' then there shall be exactly one numIteration.' + self.toString()): + self.getParentTestDescription().isLocallyOrdered or self.numIteration->size() = 1 + + + + +context OptionalBehaviour + -- First 'AtomicBehaviour' in block allowed + inv OptionalBehaviourStart ('The block of an \'OptionalBehaviour\' shall start with a tester-to-tester \'Interaction\'. ' + self.toString()): + self.block.behaviour->first().oclIsKindOf(Interaction) + and self.block.behaviour->first().oclAsType(Interaction) + ->collect(i | i.sourceGate.component->union(i.target.targetGate.component)) + ->forAll(c | c.role = ComponentInstanceRole::Tester) + + + -- No other testers except the participants of starting 'Interaction' within 'OptionalBehaviour' in locally ordered 'TestDescription' + inv OptionalBehaviourParticipation ('If an \'OptionalBehaviour\' is included in a locally ordered \'TestDescription\' then no other tester \'ComponentInstance\' shall participate in the block of the \'OptionalBehaviour\' than the source and target of the starting \'Interaction\' except when being a target of the starting \'Interaction\' in a nested \'OptionalBehaviour\'. ' + self.toString()): + let initial = self.block.behaviour->first().oclAsType(Interaction), + initialComponents = initial->collect(i | i.sourceGate.component->union(i.target.targetGate.component)), + optionals = self.block->closure( + b | b.behaviour + ->select(oclIsKindOf(SingleCombinedBehaviour)).oclAsType(SingleCombinedBehaviour).block + ->union(b.behaviour + ->select(oclIsKindOf(MultipleCombinedBehaviour)).oclAsType(MultipleCombinedBehaviour).block) + ).behaviour->select(oclIsKindOf(OptionalBehaviour)).oclAsType(OptionalBehaviour), + optionalTargets = optionals.block->select(b | b.behaviour->select(i | i.oclIsKindOf(Interaction))->first().oclAsType(Interaction).target.targetGate.component) + in + self.block.getParticipatingComponents() + ->forAll(c | initialComponents->includes(c) or optionalTargets->includes(c)) + or not self.getParentTestDescription().isLocallyOrdered + + + + +context AlternativeBehaviour + -- Number of 'Block's + inv AlternativeBlockCount ('An \'AlternativeBehaviour\' shall contain at least two \'Block\'s. ' + self.toString()): + self.block->size() > 1 + + + -- First behaviour of 'Block's + inv FirstBlockBehaviour ('Each block of an \'AlternativeBehaviour\' shall start with a tester-input event. ' + self.toString()): + self.block->forAll(b | b.behaviour->first().isTesterInputEvent()) + + + -- Same component if locally ordered + inv AlternativeBlocksComponent ('If the containing \'TestDescription\' is locally ordered then all \'Block\'s shall start with a tester-input event of the same \'ComponentInstance\'. ' + self.toString()): + let initial = self.block.behaviour->first() in + Set{} + ->including(initial->select(oclIsKindOf(Interaction)).oclAsType(Interaction).target.targetGate.component) + ->including(initial->select(oclIsKindOf(Quiescence)).oclAsType(Quiescence).componentInstance) + -> including(initial->select(oclIsKindOf(TimeOut)).oclAsType(TimeOut).componentInstance) + ->size() = 1 or not self.getParentTestDescription().isLocallyOrdered + + + -- Tester participating in locally ordered case + inv AlternativeBehaviourParticipation ('If the \'AlternativeBehaviour\' is contained in a locally ordered \'TestDescription\' then no other tester \'ComponentInstance\' shall participate in any block than the target of the first tester-input event and \'ComponentInstance\'s participating in blocks of contained \'OptionalBehaviour\'s. ' + self.toString()): + let initial = self.block.behaviour->first(), + targetComponent = Set{} + ->including(initial->select(oclIsKindOf(Interaction)).oclAsType(Interaction).target.targetGate.component) + ->including(initial->select(oclIsKindOf(Quiescence)).oclAsType(Quiescence).componentInstance) + -> including(initial->select(oclIsKindOf(TimeOut)).oclAsType(TimeOut).componentInstance), + nonOptionalBlocks = self.block->closure( + b | b.behaviour->reject(oclIsKindOf(OptionalBehaviour)) + ->select(oclIsKindOf(SingleCombinedBehaviour)).oclAsType(SingleCombinedBehaviour).block + ->union(b.behaviour->reject(oclIsKindOf(OptionalBehaviour)) + ->select(oclIsKindOf(MultipleCombinedBehaviour)).oclAsType(MultipleCombinedBehaviour).block) + ) + in + targetComponent->includesAll( + nonOptionalBlocks.getParticipatingComponents()->reject(c | c.role = ComponentInstanceRole::SUT)) + or not self.getParentTestDescription().isLocallyOrdered + + + -- OptionalBehaviour in locally ordered case + inv OptionalAlternativeBehaviour ('A block of an \'AlternativeBehaviour\' if the containing \'TestDescription\' is locally ordered, shall only contain \'OptionalBehaviour\'(s) whose source \'ComponentInstance\' is the same as the target of the first tester-input event of that \'Block\'. ' + self.toString()): + let initial = self.block.behaviour->first(), + targetComponent = Set{} + ->including(initial->select(oclIsKindOf(Interaction)).oclAsType(Interaction).target.targetGate.component) + ->including(initial->select(oclIsKindOf(Quiescence)).oclAsType(Quiescence).componentInstance) + -> including(initial->select(oclIsKindOf(TimeOut)).oclAsType(TimeOut).componentInstance) + in + self.block.behaviour->select(oclIsKindOf(OptionalBehaviour)) .oclAsType(OptionalBehaviour).block + ->first().oclAsType(Interaction).sourceGate.component->forAll(c | targetComponent->includes(c)) + or not self.getParentTestDescription().isLocallyOrdered + + + + +context ConditionalBehaviour + -- Guard for 'ConditionalBehaviour' with single block + inv ConditionalFirstGuard ('If there is only one \'Block\' specified, it shall have a \'guard\'.' + self.toString()): + self.block->size() > 1 or self.block->first().guard->size() > 1 + + + -- Possible else block for 'ConditionalBehaviour' with multiple blocks + inv ConditionalLastGuard ('All \'Block\'s specified, except the last one, shall have a \'guard\'.' + self.toString()): + self.block->size() = 1 + or self.block->forAll(b | b = self.block->last() or b.guard ->size() > 1) + + + + +context ParallelBehaviour + -- Number of blocks in 'ParallelBehaviour' + inv ParallelBlockCount ('There shall be at least two \'Block\'s specified.' + self.toString()): + self.block->size() > 1 + + + -- [Figure 9.3: Exceptional and periodic behaviour] + + +context ExceptionalBehaviour + -- First 'AtomicBehaviour' in block allowed + inv FirstExceptionalBehaviour ('The block of an \'ExceptionalBehaviour\' shall start with a tester-input event.' + self.toString()): + self.block.behaviour->first().isTesterInputEvent() + + + -- Guarded component shall be a 'Tester' component + inv ExceptionalGuardedComponent ('The \'guardedComponent\' shall refer to a \'ComponentInstance\' with the role of \'Tester\'.' + self.toString()): + self.guardedComponent.oclIsUndefined() or self.guardedComponent.role = ComponentInstanceRole::Tester + + + -- Same component if locally ordered and guarded component present + inv ExceptionalGuardedandTargetComponent ('If the containing \'TestDescription\' is locally ordered and guardedComponent is specified then the \'Block\'s shall start with tester-input event of the same \'ComponentInstance\' as specified in guardedComponent. ' + self.toString()): + let initial = self.block.behaviour->first(), + targetComponent = Set{} + ->including(initial->select(oclIsKindOf(Interaction)).oclAsType(Interaction).target.targetGate.component) + ->including(initial->select(oclIsKindOf(Quiescence)).oclAsType(Quiescence).componentInstance) + -> including(initial->select(oclIsKindOf(TimeOut)).oclAsType(TimeOut).componentInstance) + in + guardedComponent->includesAll(targetComponent) + or not self.getParentTestDescription().isLocallyOrdered + + + -- Tester participating in locally ordered case + inv ExceptionalBehaviourParticipation ('If the \'ExceptionalBehaviour\' is contained in a locally ordered \'TestDescription\' then no other tester \'ComponentInstance\' shall participate in any block than the target of the first tester-input event and \'ComponentInstance\'s participating in blocks of contained \'OptionalBehaviour\'s . ' + self.toString()): + let initial = self.block.behaviour->first(), + targetComponent = Set{} + ->including(initial->select(oclIsKindOf(Interaction)).oclAsType(Interaction).target.targetGate.component) + ->including(initial->select(oclIsKindOf(Quiescence)).oclAsType(Quiescence).componentInstance) + -> including(initial->select(oclIsKindOf(TimeOut)).oclAsType(TimeOut).componentInstance), + nonOptionalBlocks = self.block->closure( + b | b.behaviour->reject(oclIsKindOf(OptionalBehaviour)) + ->select(oclIsKindOf(SingleCombinedBehaviour)).oclAsType(SingleCombinedBehaviour).block + ->union(b.behaviour->reject(oclIsKindOf(OptionalBehaviour)) + ->select(oclIsKindOf(MultipleCombinedBehaviour)).oclAsType(MultipleCombinedBehaviour).block) + ) + in + targetComponent->includesAll( + nonOptionalBlocks.getParticipatingComponents()->reject(c | c.role = ComponentInstanceRole::SUT)) + or not self.getParentTestDescription().isLocallyOrdered + + + -- OptionalBehaviour in locally ordered case + inv OptionalExceptionalBehaviour ('A block of an \'ExceptionalBehaviour\' if the containing \'TestDescription\' is locally ordered, shall only contain \'OptionalBehaviour\'(s) whose source \'ComponentInstance\' is the same as the target of the first tester-input event of that \'Block\'. ' + self.toString()): + let initial = self.block.behaviour->first(), + targetComponent = Set{} + ->including(initial->select(oclIsKindOf(Interaction)).oclAsType(Interaction).target.targetGate.component) + ->including(initial->select(oclIsKindOf(Quiescence)).oclAsType(Quiescence).componentInstance) + -> including(initial->select(oclIsKindOf(TimeOut)).oclAsType(TimeOut).componentInstance) + in + self.block.behaviour->select(oclIsKindOf(OptionalBehaviour)).oclAsType(OptionalBehaviour).block + ->first().oclAsType(Interaction).sourceGate.component->forAll(c | targetComponent->includes(c)) + or not self.getParentTestDescription().isLocallyOrdered + + + + +context PeriodicBehaviour + -- 'Time' data type for period expression + inv PeriodType ('The \'DataUse\' expression assigned to the \'period\' shall evaluate to a data instance of the \'Time\' data type.' + self.toString()): + self.period->forAll(e | e.expression.resolveDataType().oclIsKindOf(Time)) + + + -- Period for each tester in locally ordered test descriptions + inv PeriodForParticipatingComponents ('If the \'PeriodicBehaviour\' is contained in a locally ordered \'TestDescription\' then a period shall be specified for every \'ComponentInstance\' that has the role \'Tester\' and for which there is a behaviour in the contained \'Block\'. ' + self.toString()): + self.block.getParticipatingComponents()->reject(c | c.role = ComponentInstanceRole::SUT) + ->forAll(c | self.period->exists(ex | ex.componentInstance = c)) + or not self.getParentTestDescription().isLocallyOrdered + + + + +context Break + -- Break in conditional behaviour only + inv ConditionalBreak ('A \'Break\' shall be contained directly in the block of a \'ConditionalBehaviour\'. ' + self.toString()): + self.container().container().oclIsKindOf(ConditionalBehaviour) + + + -- No behaviours after break + inv BreakIsLast ('A \'Break\' shall be the last behaviour in the containing \'Block\'. ' + self.toString()): + self.container().oclAsType(Block).behaviour->last() = self + + + + +context VerdictAssignment + -- Verdict of type 'Verdict' + inv VerdictType ('The \'verdict\' shall evaluate to a, possibly predefined, instance of a \'SimpleDataInstance\' of data type \'Verdict\'.' + self.toString()): + self.verdict.resolveDataType().name = 'Verdict' + + + -- No 'SpecialValueUse' + inv VerdictNoSpecialValueUse ('The \'verdict\' shall not evaluate to an instance of a \'SpecialValueUse\'.' + self.toString()): + not self.verdict.oclIsKindOf(SpecialValueUse) + + + + +context Assertion + -- Boolean condition + inv AssertionOtherwise ('The \'condition\' shall evaluate to predefined \'DataType\' \'Boolean\'.' + self.toString()): + self.condition.resolveDataType().name = 'Boolean' + + + -- Otherwise of type 'Verdict' + inv AssertionVerdict ('The \'otherwise\' shall evaluate to a, possibly predefined, instance of a \'SimpleDataInstance\' of data type \'Verdict\'.' + self.toString()): + self.otherwise.oclIsUndefined() or self.otherwise.resolveDataType().name = 'Verdict' + + + -- No 'SpecialValueUse' + inv AssertionNoSpecialValueUse ('The \'otherwise\' shall not evaluate to an instance of a \'SpecialValueUse\'.' + self.toString()): + self.otherwise.oclIsUndefined() or not self.otherwise.oclIsKindOf(SpecialValueUse) + + + -- [Figure 9.5: Interaction behaviour] + + +context Interaction + -- Gate references of an interaction shall be connected + inv ConnectedInteractionGates ('The \'GateReference\'s that act as source or target(s) of an \'Interaction\' shall be interconnected by a \'Connection\' which is contained in the \'TestConfiguration\' referenced by the \'TestDescription\' containing the \'Interaction\'.' + self.toString()): + self.target->forAll(t | + self.getParentTestDescription().testConfiguration.connection->exists(c | + not c.endPoint->reject(ep | + (ep.component = self.sourceGate.component and ep.gate = self.sourceGate.component) or + (ep.component = t.targetGate.component and ep.gate = t.targetGate.gate) + )->isEmpty())) + + + + +context Message + -- 'DataType' resolvable + inv DataTypeResolvable ('If the \'argument\' is \'DataInstanceUse\', either the \'dataType\' property or the \'dataInstance\' property shall be provided. If the \'argument\' is a \'DataElementUse\', the \'dataElement\' property shall be provided.' + self.toString()): + not self.argument.oclIsUndefined() + + + -- Type of message argument + inv MessageArgumentAndGateType ('The \'DataUse\' specification referred to in the \'argument\' shall match one of the \'DataType\'s referenced in the \'GateType\' definition of the \'GateInstance\'s referred to by the source and target \'GateReference\'s of the \'Interaction\'.' + self.toString()): + (self.argument.oclIsKindOf(AnyValue) + and self.argument. resolveDataType().oclIsUndefined()) + or (self.sourceGate.gate.type.allDataTypes()-> exists(t | self.argument.resolveDataType().conformsTo(t)) + and self.target->forAll(t | t.targetGate.gate.type.allDataTypes()->exists(t | self.argument.resolveDataType().conformsTo(t)))) + + + -- Use of variables in the 'argument' specification + inv MessageArgumentVariableUse ('The use of \'Variable\'s in the \'DataUse\' specification shall be restricted to \'Variable\'s of \'ComponentInstance\'s that participate in this \'Message\' via the provided \'GateReference\'s.' + self.toString()): + (not self.argument.oclIsKindOf(VariableUse) + or (self.sourceGate.component = self.argument.oclAsType(VariableUse).componentInstance + or self.target->exists(t | + t.targetGate.component = self.argument.oclAsType(VariableUse).componentInstance))) + + and self.argument.argument->forAll(a | + not a.dataUse.oclIsKindOf(VariableUse) + or (self.sourceGate.component = a.dataUse.oclAsType(VariableUse).componentInstance + or self.target->exists(t | + t.targetGate.component = a.dataUse.oclAsType(VariableUse).componentInstance))) + + and self.argument.argument->closure(a | a.dataUse.argument)->forAll(a | + not a.dataUse.oclIsKindOf(VariableUse) + or (self.sourceGate.component = a.dataUse.oclAsType(VariableUse).componentInstance + or self.target->exists(t | + t.targetGate.component = a.dataUse.oclAsType(VariableUse).componentInstance))) + + + -- Conforming data type for 'argument' and 'variable' + inv MessageArgumentAndVariableType ('If a \'Variable\' is specified for a \'Target\', the \'DataType\' of \'DataUse\' specification of the \'argument\' shall conform to the \'DataType\'s of referenced \'Variable\'s of all \'Target\'s.' + self.toString()): + self.target->forAll(t | t.valueAssignment->size() = 0 + or not self.argument.resolveDataType().oclIsUndefined() + and t.valueAssignment->forAll(v | self.argument.resolveDataType().conformsTo(v.variable.dataType))) + + + + +context ProcedureCall + -- Only point-to-point procedure calls + inv ProcedureCallTargetCount ('The \'target\' of \'ProcedureCall\' shall contain exactly one \'Target\'. ' + self.toString()): + self.target->size() = 1 + + + -- Each call has a reply + inv ProcedureCallHasReply ('For every \'ProcedureCall\' with empty \'replyTo\' there shall be one or more \'ProcedureCall\'s that have this \'ProcedureCall\' as \'replyTo\'. ' + self.toString()): + ProcedureCall.allInstances()->exists(pc | pc.replyTo = self) + + + -- Call and reply within the same 'TestDescription' + inv ProcedureCallAndReply ('The \'ProcedureCall\' referenced in the \'replyTo\' shall be within the same \'TestDescription\' as this \'ProcedureCall\'. ' + self.toString()): + self.replyTo.oclIsUndefined() + or self.replyTo.getParentTestDescription() = self.getParentTestDescription() + + + -- Call and reply between same components + inv ProcedureCallReplyGates ('The \'sourceGate\' and \'target\' of a \'ProcedureCall\' with \'replyTo\' shall match the \'target\' and \'sourceGate\' of the \'ProcedureCall\' in the \'replyTo\'. That is, corresponding \'GateReference\'s shall be the equal. ' + self.toString()): + ProcedureCall.allInstances()->select(pc | pc.replyTo = self)->forAll( + reply | + reply.target->forAll(t | t.targetGate.component = self.sourceGate.component) + and reply.target->forAll(t | t.targetGate.gate = self.sourceGate.gate) + and self.target->forAll(t | t.targetGate.component = reply.sourceGate.component) + and self.target->forAll(t | t.targetGate.gate = reply.sourceGate.gate)) + + + -- Synchronous procedure calls + inv ProcedureCallSynchronousCalling ('A \'ProcedureCall\' with empty \'replyTo\' shall not be followed by any behaviour in which the component specified in the \'sourceGate\' is participating, other than a \'ProcedureCall\' that specifies this \'ProcedureCall\' as \'replyTo\' or an \'AlternativeBehaviour\' that contains such a \'ProcedureCall\' in the beginning of a \'block\'. ' + self.toString()): + let source = self.sourceGate.component, + affectingBehaviours = self.container().oclAsType(Block).behaviour + ->reject(b | b.oclIsKindOf(ActionBehaviour) + and b.oclAsType(ActionBehaviour).componentInstance <> source) + ->reject(b | b.oclIsKindOf(Interaction) + and b.oclAsType(Interaction).sourceGate.component <> source + and b.oclAsType(Interaction).target->forAll(t | t.targetGate.component <> source)) + ->reject(b| b.oclIsKindOf(TestDescriptionReference) + and (not b.oclAsType(TestDescriptionReference).componentInstanceBinding->isEmpty() + and not b.oclAsType(TestDescriptionReference).componentInstanceBinding + .actualComponent->includes(self))), + following = affectingBehaviours ->at(affectingBehaviours->indexOf(self) + 1) + in (following.oclIsKindOf(ProcedureCall) and following.oclAsType(ProcedureCall).replyTo = self) + or (following.oclIsKindOf(AlternativeBehaviour) + and following.oclAsType(AlternativeBehaviour).block->exists( + b | b.behaviour->first().oclIsKindOf(ProcedureCall) + and b.behaviour->first().oclAsType(ProcedureCall).replyTo = self)) + + + -- Type of procedure call + inv ProcedureCallSignatureInGateTypes ('The \'ProcedureSignature\' referred to in the \'procedure\' shall be one of the \'DataType\'s referenced in the \'GateType\' definition of the \'GateInstance\'s referred to by the source and target \'GateReference\'s of the \'ProcedureCall\'. ' + self.toString()): + self.sourceGate.gate.type.allDataTypes()->includes(self.signature) + and self.target->forAll(targetGate.gate.type.allDataTypes()->includes(self.signature)) + + + -- No mixing of parameters + inv ProcedureParameterKind ('All \'ParameterBinding\'s specified in the \'argument\' shall refer to \'ProcedureParameter\'s of the same \'ParameterKind\'. ' + self.toString()): + self.argument->collect(pb | pb.parameter.oclAsType(ProcedureParameter).kind) + ->asSet()->size() <= 1 + + + -- Matching procedure arguments + inv ProcedureCallArguments ('For a \'ProcedureCall\' with empty \'replyTo\' there shall be one \'ParameterBinding\' instance in the \'argument\' for each \'ProcedureParameter\' with kind \'In\' in the associated \'ProcedureSignature\'. For a \'ProcedureCall\' with \'replyTo\' there shall be one \'ParameterBinding\' instance in the \'argument\' for each \'ProcedureParameter\' with kind \'Out\' or \'Exception\' in the associated \'ProcedureSignature\'. ' + self.toString()): + (self.replyTo.oclIsUndefined() and self.signature.parameter->select(p | p.kind = ParameterKind::In) + ->forAll(p | self.argument.parameter->includes(p))) + or (not self.replyTo.oclIsUndefined() and self.signature.parameter->reject(p | p.kind = ParameterKind::In) + ->forAll(p | self.argument.parameter->includes(p))) + + + -- Use of variables in the 'argument' specification + inv ProcedureCallVariableUse ('The use of \'Variable\'s in the \'DataUse\' specifications in \'ParameterBinding\'s shall be restricted to \'Variable\'s of \'ComponentInstance\'s that participate in this \'ProcedureCall\' via the provided \'GateReference\'s. ' + self.toString()): + self.argument + ->closure(pb | pb.dataUse.argument)->union(self.argument)->collect(pb | pb.dataUse) + ->select(du | du.oclIsKindOf(VariableUse)) + ->forAll(du | self.getParticipatingComponents()->includes( + du.oclAsType(VariableUse).componentInstance)) + + + -- Reply not starting event of exceptional behaviour + inv ProcedureCallReplyNotInExceptional ('A \'ProcedureCall\' that specifies replyTo shall not be the first behaviour of a block in an \'ExceptionalBehaviour\'. ' + self.toString()): + self.replyTo.oclIsUndefined() or not self.container().container().oclIsKindOf(ExceptionalBehaviour) + + + + +context Target + -- Variable and target gate of the same component instance + inv TargetComponent ('The \'Variable\'s referenced by \'valueAssignment\' shall exist in the same \'ComponentType\' as the \'GateInstance\' that is referred to by the \'GateReference\' of the \'targetGate\'.' + self.toString()): + self.valueAssignment->isEmpty() + or self.targetGate.component.type.allVariables()->includesAll(self.valueAssignment.variable) + + + -- Variable of a tester component only + inv TargetVariableComponentRole ('If a \'ValueAssignment\' is specified, the \'ComponentInstance\' referenced by \'targetGate\' shall be in the role \'Tester\'.' + self.toString()): + self.valueAssignment->isEmpty () or self.targetGate.component.role = ComponentInstanceRole::Tester + + + + +context ValueAssignment + -- Conforming data type for 'parameter' and 'variable' + inv AssignedParamterType ('If the \'parameter\' is specified then its type shall conform to the type of the \'variable\'. ' + self.toString()): + self.parameter.oclIsUndefined() or self.parameter.dataType.conformsTo(self.variable.dataType) + + + -- Parameter of associated procedure signature + inv AssignedProcedureParameter ('If the \'parameter\' is specified then it shall be contained in the \'ProcedureSignature\' that is referred in the \'signature\' ot the \'ProcedureCall\' containing this \'ValueAssignment\'.' + self.toString()): + self.parameter.oclIsUndefined() + or (self.container().container().oclIsKindOf(ProcedureCall) and + self.container().container().oclAsType(ProcedureCall).signature.parameter->includes(self.parameter)) + + + -- [Figure 9.6: Test description reference] + + +context TestDescriptionReference + -- All test description parameters bound + inv AllTestDescriptionParametersBound ('For each \'FormalParameter\' defined in \'formalParameter of\' the referenced \'TestDescription\' there shall be a \'ParameterBinding\' in \'argument\' that refers to that \'FormalParameter\' in \'parameter\'.' + self.toString()): + self.testDescription.formalParameter->forAll(p | self.argument->exists(a | a.parameter = p)) + + + -- No use of variables in arguments + inv NoVariablesInLocallyOrderedTestDescriptionReference ('In locally ordered \'TestDescription\'s, \'DataUse\' expressions used to describe arguments shall not contain variables directly or indirectly in \'TestDescriptionReference\'s.' + self.toString()): + self.argument. dataUse->forAll(du | + not du.oclIsKindOf(VariableUse) + and du.argument->forAll(a | not a.dataUse.oclIsKindOf(VariableUse)) + and du.argument->closure(a | a.dataUse.argument)->forAll(a | + not a.dataUse.oclIsKindOf(VariableUse))) + + + -- No use of time labels in arguments + inv NoTimeLabelsInLocallyOrderedTestDescriptionReference ('In locally ordered \'TestDescription\'s, \'DataUse\' expressions used to describe arguments shall not contain time labels directly or indirectly in \'TestDescriptionReference\'s.' + self.toString()): + self.argument.dataUse->forAll(du | + not du.oclIsKindOf(TimeLabelUse) + and du.argument->forAll(a | not a.dataUse.oclIsKindOf(TimeLabelUse)) + and du.argument->closure(a | a.dataUse.argument)->forAll(a | + not a.dataUse.oclIsKindOf(TimeLabelUse))) + + + -- Restriction to 1:1 component instance bindings + inv UniqueComponentBindings ('If component instance bindings are provided, the component instances referred to in the bindings shall occur at most once for the given test description reference.' + self.toString()): + self.componentInstanceBinding->isEmpty() + or self.componentInstanceBinding->forAll(b | + self.componentInstanceBinding->one(c | + c.formalComponent = b.formalComponent or c.actualComponent = b.actualComponent)) + + + -- Compatible test configurations + inv CompatibleConfiguration ('The \'TestConfiguration\' of the referenced (invoked) \'TestDescription\' shall be compatible with the \'TestConfiguration\' of the referencing (invoking) \'TestDescription\' under the provided \'ComponentInstanceBinding\'s between the \'ComponentInstance\'s of the \'TestConfiguration\'s of referenced and referencing \'TestDescription\'s. ' + self.toString()): + self.testDescription.testConfiguration.compatibleWith( + self.getParentTestDescription().testConfiguration, self.componentInstanceBinding) + + + -- No combining of local and total ordering + inv LocalAndTotalOrdering ('The referenced \'TestDescription\' shall have the same ordering assumption as the referencing \'TestDescription\'.' + self.toString()): + self.getParentTestDescription().isLocallyOrdered = self.testDescription.isLocallyOrdered + + + + +context ComponentInstanceBinding + -- Conforming component types + inv BindingComponentTypes ('The \'ComponentType\' of the actual \'ComponentInstance\' shall conform to \'ComponentType\' of the formal \'ComponentInstance.' + self.toString()): + self.actualComponent.type.conformsTo(self.formalComponent.type) + + + -- Matching component instance roles + inv BindingComponentRoles ('Both, the formal and the actual component instances, shall have the same \'ComponentInstanceRole\' assigned to.' + self.toString()): + self.formalComponent.role = self.actualComponent.role + + + -- [Figure 9.7: Action behaviour concepts] + + +context ActionBehaviour + -- 'ActionBehaviour' on 'Tester' components only + inv ActionBehaviourComponentRole ('The \'ComponentInstance\' that an \'ActionBehaviour\' refers to shall be of role \'Tester\'.' + self.toString()): + self.componentInstance.oclIsUndefined() or self.componentInstance.role = ComponentInstanceRole::Tester + + + -- Known 'componentInstance' with locally-ordered behaviour + inv ActionBehaviourComponentInstance ('The \'ComponentInstance\' that an \'ActionBehaviour\' refers to shall be specified if the \'ActionBehaviour\' is used within a locally-ordered \'TestDescription\'.' + self.toString()): + not self.componentInstance.oclIsUndefined() or not self.getParentTestDescription().isLocallyOrdered + + + + +context ActionReference + -- All action parameters bound + inv AllActionParametersBound ('For each \'FormalParameter\' defined in \'formalParameter of\' the referenced \'Action\' there shall be a \'ParameterBinding\' in \'argument\' that refers to that \'FormalParameter\' in \'parameter\'. ' + self.toString()): + self.action.formalParameter->forAll(p | self.argument.parameter->includes(p)) + + + -- No 'Function's in 'ActionReference' + inv ActionReferenceFunction ('The referenced \'Action\' shall not be a \'Function\'.' + self.toString()): + not self.action.oclIsTypeOf(Function) + + + + +context Assignment + -- Conforming data type + inv AssignmentDataType ('The provided \'DataUse\' expression shall conform to the \'DataType\' of the referenced \'Variable\'.' + self.toString()): + self.expression.resolveDataType().conformsTo(self.variable.variable.dataType) + + + -- Empty 'argument' set for 'variable' + inv AssignmentVariableArgument ('The \'argument\' and \'reduction\' sets shall be empty.' + self.toString()): + self.variable.argument->isEmpty() + + + + + +endpackage diff --git a/plugins/org.etsi.mts.tdl.constraints.helper/resources/generated/tdl-generated-ETSI-ES-203-119-4-V1.4.1.evl b/plugins/org.etsi.mts.tdl.constraints.helper/resources/generated/tdl-generated-ETSI-ES-203-119-4-V1.4.1.evl new file mode 100644 index 0000000000000000000000000000000000000000..dd4880af55895052f8d064e408a4f2bf8df1c466 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.constraints.helper/resources/generated/tdl-generated-ETSI-ES-203-119-4-V1.4.1.evl @@ -0,0 +1,339 @@ +import "../library/common.eol"; +import "../library/helper.eol"; +import "../library/debug.eol"; + +context Entity { + //[There are no constraints specified.] +} + +context Event { + //[There are no constraints specified.] +} + +context PICS { + //[There are no constraints specified.] +} + +context StructuredTestObjective { + //[There are no constraints specified.] +} + +context PICSReference { + //Combining Multiple 'PICSReference's + constraint MultiplePICS { + check: self.container().picsReference->size() < 2 + or self.container().picsReference->forAll(p | + self.container().picsReference->at(0) = p + or (not p.comment->isEmpty() + and (p.comment->first().body = 'and' + or p.comment->first().body = 'or'))) + message: self.prefix() + + "A 'Comment' with body containing an 'and' or 'or' shall be attached to the 'PICSReference' as a Boolean operand if there are two or more 'PICSReference's and it is not the first 'PICSReference'." + } + +} + +context InitialConditions { + //[There are no constraints specified.] +} + +context ExpectedBehaviour { + //[There are no constraints specified.] +} + +context FinalConditions { + //[There are no constraints specified.] +} + +context EventSequence { + //[There are no constraints specified.] +} + +context RepeatedEventSequence { + //Either 'repetitions', or 'interval' or neither shall be specified + constraint RepetitionOrInterval { + check: self.repetitions.oclIsUndefined() or self.interval.oclIsUndefined() + message: self.prefix() + + "At most one of the optional properties 'repetitions' or 'interval' shall be defined." + } + + //The 'repetitions' 'Value' shall be countable and positive + constraint RepetitionCount { + check: true //This constraint cannot be expressed in OCL + message: self.prefix() + + "The expression assigned to the 'repetitions' property shall evaluate to a positive and countable 'Value'." + } + + //The 'interval' 'Value' shall be countable and positive + constraint RepetitionInterval { + check: true //This constraint cannot be expressed in OCL + message: self.prefix() + + "The expression assigned to the 'repetitions' property shall evaluate to a positive and countable 'Value'" + } + +} + +context EventOccurrence { + //Combining Multiple 'EventOccurrence's + constraint MultipleEventOccurrences { + check: self.container().oclIsTypeOf(EventSpecificationTemplate) + or self.container().events->size() < 2 + or self.container().events->forAll(o | + self.container().events->at(0) = o + or (not o.comment->isEmpty() + and (o.comment->first().body = 'and' + or o.comment->first().body = 'or'))) + message: self.prefix() + + "A 'Comment' with body containing an 'and' or 'or' shall be attached to the 'EventOccurrence' as an operand if there are two or more 'EventOccurrence's and it is not the first 'EventOccurrence'." + } + +} + +context EventOccurrenceSpecification { + //[There are no constraints specified.] +} + +context EntityReference { + //An 'Entity' or a 'ComponentInstance' shall be referenced. + constraint EntityOrComponentInstance { + check: (not self.entity.oclIsUndefined() and self.component.oclIsUndefined()) + or (self.entity.oclIsUndefined() and not self.component.oclIsUndefined()) + message: self.prefix() + + "There shall be a reference to an 'Entity' or a 'ComponentInstance' but not both." + } + +} + +context EventReference { + //[There are no constraints specified.] +} + +context Value { + //[There are no constraints specified.] +} + +context LiteralValue { + //[There are no constraints specified.] +} + +context Content { + //No nested 'Content's if 'Value' is provided + constraint ContentOrValue { + check: self.content->isEmpty() or self.value.oclIsUndefined() + message: self.prefix() + + "Either nested 'Content's or 'Value' may be specified within 'Content', but not both." + } + +} + +context LiteralValueReference { + //Referenced 'LiteralValue' visibility + constraint VisibleValue { + check: self.getTestObjective().contains(self.content) + and self.getTestObjective().indexOf(self.content) < self.getTestObjective().indexOf(self) + message: self.prefix() + + "Only 'LiteralValue's defined within previous 'EventOccurrence's of the containing 'StructuredTestObjective' may be referenced." + } + +} + +context ContentReference { + //Referenced 'Content' visibility + constraint VisibleContent { + check: self.getTestObjective().contains(self.content) + and self.getTestObjective().indexOf(self.content) < self.getTestObjective().indexOf(self) + message: self.prefix() + + "Only 'Content' defined within previous 'EventOccurrence's of the containing 'StructuredTestObjective' may be referenced." + } + +} + +context DataReference { + //'DataUse' restrictions within 'DataReference' + constraint DataReferenceContents { + check: self.content.oclIsTypeOf(StaticDataUse) + message: self.prefix() + + "Only 'StaticDataUse' may be used directly or indirectly in 'ParameterBinding's of the 'StaticDataUse' within a 'DataReference'." + } + + //[and self.content.argument->forAll(a | a.dataUse.oclIsKindOf(StaticDataUse))] + //[and self.content.argument->closure(a |] + //[a.dataUse.argument)->forAll(a|a.dataUse.oclIsKindOf(StaticDataUse))] + //[No 'reduction' within 'DataReference', The 'reduction' property of 'StaticDataUse' inherited from 'DataUse' shall not be used within a 'DataReference'., inv: DataReferenceReduction:] + //[self.content.reduction->isEmpty()] +} + +context EventSpecificationTemplate { + //[There are no constraints specified.] +} + +context EventTemplateOccurrence { + //'EntityReference' of referenced 'EventSpecificationTemplate' + constraint EntityTemplateOccurrenceConsistency { + check: self.entityBinding->forAll(b | + (not b.templateEntity.entity.oclIsUndefined() + and (b.templateEntity.entity = + self.eventTemplate.eventSpecification.entityReference.entity)) + or (not b.templateEntity.component.oclIsUndefined() + and (b.templateEntity.component = + self.eventTemplate.eventSpecification.entityReference.component) + or self.eventTemplate.eventSpecification.oppositeEntityReference->exists(e | + (not b.templateEntity.entity.oclIsUndefined() + and (e.entity = b.templateEntity.entity)) + or (not b.templateEntity.component.oclIsUndefined() + and (e.component = b.templateEntity.component))))) + message: self.prefix() + + "If 'EntityBinding's are provided, the 'Entity's or 'ComponentInstance's referenced in the 'templateEntity' properties shall also be referenced by one of the 'EntityReferences' in the 'EventOccurrenceSpecification' of the 'EventSpecificationTemplate' referenced in the 'EventTemplateOccurrence'." + } + +} + +context EntityBinding { + //[There are no constraints specified.] +} + +context StructuredTestObjectiveVariant { + //[There are no constraints specified.] +} + +context Variants { + //[There are no constraints specified.] +} + +context VariantBinding { + //Referenced 'Value' of 'VariantBinding' + constraint VariantBindingValues { + check: self.value.oclIsTypeOf(LiteralValueReference) implies + self.value.oclAsType(LiteralValueReference).content.getTestObjective() = self.getTestObjective() + and + or self.value.oclIsKindOf(ContentReference) implies + self.value.oclAsType(ContentReference).content.getTestObjective() = self.getTestObjective() + message: self.prefix() + + "If the 'value' property references a 'LiteralValue' or 'Content' element, the referenced element shall be contained in the 'StructuredTestObjective' containing the 'VariantBinding'." + } + +} + +context Entity { + //[There are no constraints specified.] +} + +context Event { + //[There are no constraints specified.] +} + +context PICS { + //[There are no constraints specified.] +} + +context Comment { + //[Default comment label, The Qualifier label only applies to 'Comment's that do not match the conditions for any of the other qualifier labels.] +} + +context StructuredTestObjective { + //[Spaces in the 'name' of an 'Element' and the 'body' of a 'Comment' , A 'name' of an 'Element' or a 'body' of a 'Comment' shall be enclosed in single or double quotes when the corresponding 'Element' or 'Comment' is contained within a 'PICSReference' or an 'EventSequence'.] +} + +context EventSequence { + //[There are no constraints specified.] +} + +context RepeatedEventSequence { + //[There are no constraints specified.] +} + +context EventOccurrence { + //[There are no constraints specified.] +} + +context EventOccurrenceSpecification { + //[There are no constraints specified.] +} + +context EntityReference { + //[There are no constraints specified.] +} + +context EventReference { + //[There are no constraints specified.] +} + +context Value { + //[There are no constraints specified.] +} + +context LiteralValue { + //[There are no constraints specified.] +} + +context Content { + //[There are no constraints specified.] +} + +context LiteralValueReference { + //[There are no constraints specified.] +} + +context ContentReference { + //[There are no constraints specified.] +} + +context DataReference { + //[There are no constraints specified.] +} + +context StaticDataUse { + //[There are no constraints specified.] +} + +context AnyValue { + //[There are no constraints specified.] +} + +context AnyValueOrOmit { + //[There are no constraints specified.] +} + +context OmitValue { + //[There are no constraints specified.] +} + +context DataInstanceUse { + //[There are no constraints specified.] +} + +context ParameterBinding { + //[There are no constraints specified.] +} + +context TimeLabel { + //[There are no constraints specified.] +} + +context TimeConstraint { + //[There are no constraints specified.] +} + +context EventSpecificationTemplate { + //[There are no constraints specified.] +} + +context EventTemplateOccurrence { + //[There are no constraints specified.] +} + +context EntityBinding { + //[There are no constraints specified.] +} + +context StructuredTestObjectiveVariant { + //[There are no constraints specified.] +} + +context Variants { + //[There are no constraints specified.] +} + +context VariantBinding { + //[There are no constraints specified.] +} diff --git a/plugins/org.etsi.mts.tdl.constraints.helper/src/org/etsi/mts/tdl/constraints/helper/ConstraintExporter.java b/plugins/org.etsi.mts.tdl.constraints.helper/src/org/etsi/mts/tdl/constraints/helper/ConstraintExporter.java new file mode 100644 index 0000000000000000000000000000000000000000..2e5a2ff88a8e7dea433276af651f433a2869332b --- /dev/null +++ b/plugins/org.etsi.mts.tdl.constraints.helper/src/org/etsi/mts/tdl/constraints/helper/ConstraintExporter.java @@ -0,0 +1,249 @@ +package org.etsi.mts.tdl.constraints.helper; + +import java.io.File; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.StandardOpenOption; +import java.util.Arrays; +import java.util.Collection; +import java.util.Iterator; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import org.etsi.mts.tdl.document.model.Content; +import org.etsi.mts.tdl.document.model.Document; + +public class ConstraintExporter { + + private String generatedConstraints = ""; + + private OutputFormat format; + + enum OutputFormat { + EVL, OCL + } + + public static void main(String[] args) { + + OutputFormat format = OutputFormat.EVL; + String filename = "resources/es_20311901v010501p.docx"; + filename = "resources/es_20311904v010401p.docx"; + String[] extraImports = new String[0]; + String generatedPackage = "tdl"; + + for (int i = 0; i < args.length; i++) { + if (args[i].equalsIgnoreCase("--format")) + if (args.length > i + 1) { + if (args[i + 1].equalsIgnoreCase("ocl")) + format = OutputFormat.OCL; + } + if (args[i].equalsIgnoreCase("--in")) + if (args.length > i + 1) { + filename = args[i + 1]; + } + if (args[i].equalsIgnoreCase("--import")) + if (args.length > i + 1) { + extraImports = args[i + 1].split(","); + } + if (args[i].equalsIgnoreCase("--generated-package")) + if (args.length > i + 1) { + generatedPackage = args[i + 1]; + } + } + + Document doc = DocumentHandler.loadDocument(new File(filename).getAbsolutePath()); + ConstraintExporter exporter = new ConstraintExporter(); + exporter.format = format; + String title = doc.getTitle(); + title = title.replaceAll(" ", "-"); + String targetPath = "resources/generated/tdl-generated-" + title + + (format == OutputFormat.EVL ? ".evl" : ".ocl"); + exporter.exportConstraints(doc, generatedPackage, extraImports, targetPath); + } + + public void exportConstraints(Document doc, String generatedPackage, String[] extraImports, String generatedConstraintsPath) { + generatedConstraints = ""; + String imports = ""; + if (this.format == OutputFormat.OCL) { + imports = "import 'http://www.etsi.org/spec/TDL/1.4.1'\n"; + for (String imp : extraImports) { + imports += "import '" + imp + "'\n"; + } + imports += "\n"; + imports += "package " + generatedPackage + "\n\n"; + } else + imports = "import \"../library/common.eol\";\n" + "import \"../library/helper.eol\";\n" + + "import \"../library/debug.eol\";\n" + "\n"; + generatedConstraints += imports; + processDocumentModel(doc); + if (this.format == OutputFormat.OCL) + generatedConstraints += "\n" + "endpackage" + "\n"; + Path gcp = Path.of(generatedConstraintsPath); + try { + Files.write(gcp, Arrays.asList(generatedConstraints.split("\n")), StandardOpenOption.WRITE, + StandardOpenOption.CREATE, StandardOpenOption.TRUNCATE_EXISTING); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + private void processDocumentModel(Content c) { + // DONE: Escape keywords + // DONE: Export to file tdl-gen.evl (separate function) + // TODO: Rename old one to tdl-ref.evl + // TODO: Compare / Merge latest -> tdl.evl + // TODO: Backport changes to source word document, + // based on diff to tdl-gen.evl + // generate again and repeat + // -> in progress... + // TODO: Test with change marks + // TODO: Clean up all the lets + // DONE: Handle special case of CompatibleConfiguration or + // TODO: Restructure so that no special handling is needed in the future + + for (Content cx : c.getContent()) { + if (cx.getText().equals("Constraints")) { + String content = getConstraint(cx); + generatedConstraints += content; + } + processDocumentModel(cx); + } + } + + private String getConstraint(Content cx) { + if (this.format == OutputFormat.OCL) + return getOclConstraint(cx); + else + return getEvlConstraint(cx); + } + + //TODO: enums shall be excluded + Collection ignoreClasses = Arrays.asList("ParameterKind", "UnassignedMemberTreatment", "GateTypeKind", "ComponentInstanceRole"); + Pattern letPattern = Pattern.compile("\\s*let(.+?)\\s*in\\s(.*)", Pattern.DOTALL); + Pattern isUniquePattern = Pattern.compile("->isUnique\\((.+?)\\)", Pattern.DOTALL); + Pattern wsPattern = Pattern.compile("(\\s*)(.*)", Pattern.DOTALL); + + private String getEvlConstraint(Content cx) { + String className = cx.getParent().getText().replaceAll(".+\\s", ""); + if (ignoreClasses.contains(className)) + return ""; + String content = "context " + className + " {" + "\n"; + for (Content cs : cx.getContent()) { + var lines = Arrays.asList(cs.getText().split("\n")); + var idIndex = 2; + if (lines.size() > 3) { + var title = lines.get(0); + var description = lines.get(1); + if (!lines.get(2).trim().startsWith("inv:")) { + if (lines.get(0).trim().startsWith("inv:")) { + idIndex = 0; + title = ""; + description = ""; + } +// ListIterator linesIterator = lines.listIterator(2); +// String next = linesIterator.next(); +// while (linesIterator.hasNext() && !next.trim().startsWith("inv:")) { +// description+="\n //"+next; +// idIndex++; +// } + } + var id = lines.get(idIndex).replaceAll("inv: ", "").replaceAll(":", ""); + var ocl = String.join("\n ", lines.subList(idIndex + 1, lines.size())) + .replaceAll("(import|function|guard)([\\W])", "`$1`$2") + .replaceAll("::", "#") + .replaceAll("oclContainer", "eContainer") + // .replaceAll("\\s+", " ") + ; + + if (ocl.trim().startsWith("This")) { + ocl = " true" + " //" + ocl.trim(); + } + + Matcher m = letPattern.matcher(ocl); + boolean isStatementBlock = false; + if (m.matches()) { + isStatementBlock = true; + + String vars = m.group(1); + String expr = m.group(2); + + ocl = "{ "; + String[] varDeclarations = vars.split(","); + for (String v : varDeclarations) { + // Not functional, just makes the output nicer + Matcher wsm = wsPattern.matcher(v); + if (wsm.matches()) + ocl += wsm.group(1) + "var " + wsm.group(2) + ";"; + else + ocl += "var " + v + ";"; + } + + ocl += expr + ";"; + ocl += " }"; + } + + Matcher m2 = isUniquePattern.matcher(ocl); + // Use . not -> otherwise Epsilon won't execute imported operation + ocl = m2.replaceAll("->collect($1).isUnique()"); + + content += " //" + title + "\n"; + content += " constraint " + id + " {" + "\n"; + content += " check" + (isStatementBlock ? " " : ": ") + ocl + "\n"; + content += " message: self.prefix() + \n" + " \"" + description + "\"" + "\n"; + content += " }\n" + "\n"; + } else { + content += " //" + lines + "\n"; + } + } + content += "}\n" + "\n"; + return content; + } + + private String getOclConstraint(Content cx) { + String content = "context " + cx.getParent().getText().replaceAll(".+\\s", "") + "\n"; + boolean hasConstraints = false; + for (Content cs : cx.getContent()) { + var lines = Arrays.asList(cs.getText().split("\n")); + var idIndex = 2; + if (lines.size() > 3) { + var title = lines.get(0); + var description = lines.get(1); + if (!lines.get(2).trim().startsWith("inv:")) { + if (lines.get(0).trim().startsWith("inv:")) { + idIndex = 0; + title = ""; + description = ""; + } + } + var id = lines.get(idIndex).replaceAll("inv: ", "").replaceAll(":", ""); + var ocl = String.join("\n ", lines.subList(idIndex + 1, lines.size())) +// .replaceAll("(import|function|guard)([\\W])", "`$1`$2") + // .replaceAll("\\s+", " ") + ; +// ocl = ocl.replaceAll("OclInvalid", "true"); + + if (ocl.trim().startsWith("This")) { + ocl = " true" + " --" + ocl.trim(); + } + + //Escape reserved words + ocl = Pattern.compile("(?<=\\.)(body)(?=\\s|\\.|-|\\))").matcher(ocl).replaceAll("_'$1'"); + + content += " -- " + title + "\n"; + content += " inv " + id + " ('" + description.replaceAll("\\'", "\\\\\\'") + "' + self.toString()):\n"; + content += " " + ocl + "\n"; + content += " \n\n"; + hasConstraints = true; + } else { + content += " -- " + lines + "\n"; + } + } + if (!hasConstraints) + return ""; + content += "\n" + "\n"; + return content; + } + +} diff --git a/plugins/org.etsi.mts.tdl.constraints.helper/src/org/etsi/mts/tdl/constraints/helper/DocumentHandler.java b/plugins/org.etsi.mts.tdl.constraints.helper/src/org/etsi/mts/tdl/constraints/helper/DocumentHandler.java new file mode 100644 index 0000000000000000000000000000000000000000..720faf21a46debda026db7d98f0ccfa36054a5db --- /dev/null +++ b/plugins/org.etsi.mts.tdl.constraints.helper/src/org/etsi/mts/tdl/constraints/helper/DocumentHandler.java @@ -0,0 +1,129 @@ +package org.etsi.mts.tdl.constraints.helper; + +import java.io.File; +import java.io.FileInputStream; +import java.util.ArrayList; +import java.util.List; + +import org.apache.poi.xwpf.usermodel.IBodyElement; +import org.apache.poi.xwpf.usermodel.XWPFDocument; +import org.apache.poi.xwpf.usermodel.XWPFParagraph; +import org.apache.poi.xwpf.usermodel.XWPFStyle; +import org.apache.poi.xwpf.usermodel.XWPFTable; +import org.etsi.mts.tdl.document.model.Content; +import org.etsi.mts.tdl.document.model.Document; + +public class DocumentHandler { + public static Document loadDocument(String filename) { + Document doc = new Document(); + try { + if (!filename.endsWith(".docx") && !filename.startsWith("~$")) { + return null; + } + + File file = new File(filename); + FileInputStream fis = new FileInputStream(file.getAbsolutePath()); + XWPFDocument document = new XWPFDocument(fis); + + List bodyElements = document.getBodyElements(); + + int currentLevel = 0; + + doc.setFilename(filename); + doc.setTitle(document.getProperties().getCoreProperties().getTitle()); + Content p = doc; + Content toc = null; + for (IBodyElement e : bodyElements) { + if (e instanceof XWPFParagraph) { + String text = ((XWPFParagraph) e).getText().trim(); +// System.out.println(text); +// if (text.startsWith("8.2.1")) { +// System.out.println("hit"); +// } + if (((XWPFParagraph) e).getStyle()!=null + && (document.getStyles().getStyle(((XWPFParagraph) e).getStyleID()).getName().startsWith("heading") + || document.getStyles().getStyle(((XWPFParagraph) e).getStyleID()).getName().matches("[Hh]\\d")) + ) { + XWPFStyle style = document.getStyles().getStyle(((XWPFParagraph) e).getStyleID()); + String level = + style.getName() + .replaceAll("heading", "") + .replaceAll("h", "") + .replaceAll("H", "") + .trim(); + int l = Integer.parseInt(level); + if (l == 8 && text.startsWith("Annex")) { + l = 1; + } +// if (l == 6) { +// System.out.println(text); +// } + + if (l > currentLevel) { + p = new Content(p, text); + } else if (l < currentLevel) { + ArrayList parents = new ArrayList<>(); + Content nextParent = p.getParent(); + while (nextParent!=null) { + parents.add(nextParent); + nextParent = nextParent.getParent(); + } +// if (text.startsWith("8.2.2")) { +// System.out.println("hit"); +// System.out.println(parents); +// } + p = parents.get(parents.size()-l-1); + +// for (int i = currentLevel; i > l; i--) { +// if (p.getParent().getParent()!=null) { +//// System.out.println(p); +// p = p.getParent(); +//// System.out.println(p); +// } +// } + p = new Content(p.getParent(), text); + p.setText(text); + } else { + p = new Content(p.getParent(), text); + } + currentLevel = l; + } else { + if (!text.isEmpty()) { + XWPFParagraph paragraph = (XWPFParagraph)e; + if (paragraph.getStyle()!=null) { + XWPFStyle style = paragraph.getDocument().getStyles().getStyle(paragraph.getStyleID()); + if (style.getName().startsWith("toc")) { + String tocToken = ":Table of Contents:"; + if (toc == null) { + toc = new Content(doc, tocToken); + } + Content txt = new Content(toc, text); + } else { + Content txt = new Content(p, text); + } + } else { + Content txt = new Content(p, text); + } + + } + } + } else if (e instanceof XWPFTable) { + XWPFTable table = (XWPFTable) e; + String text = table.getText(); + for (String l:text.split("\n")) { + Content txt = new Content(p, l); + } + //getAttributes(table, p.getParent()); + } else { + } + } + + document.close(); + fis.close(); + } catch (Exception e) { + e.printStackTrace(); + } + return doc; + } + +} diff --git a/plugins/org.etsi.mts.tdl.constraints.helper/src/org/etsi/mts/tdl/document/model/Attribute.java b/plugins/org.etsi.mts.tdl.constraints.helper/src/org/etsi/mts/tdl/document/model/Attribute.java new file mode 100644 index 0000000000000000000000000000000000000000..7376beac8db4abdfb32478abc0f7bf1a5da80604 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.constraints.helper/src/org/etsi/mts/tdl/document/model/Attribute.java @@ -0,0 +1,44 @@ +package org.etsi.mts.tdl.document.model; + +import java.io.Serializable; + +public class Attribute implements Serializable { + private static final long serialVersionUID = -7633083088506037867L; + String name; + String qualifier; + String cardinality; + String type; + String description; + + public String getQualifier() { + return qualifier; + } + public void setQualifier(String qualifier) { + this.qualifier = qualifier; + } + public String getCardinality() { + return cardinality; + } + public void setCardinality(String cardinality) { + this.cardinality = cardinality; + } + public String getType() { + return type; + } + public void setType(String type) { + this.type = type; + } + public String getDescription() { + return description; + } + public void setDescription(String description) { + this.description = description; + } + public String getName() { + return name; + } + public void setName(String name) { + this.name = name; + } + +} diff --git a/plugins/org.etsi.mts.tdl.constraints.helper/src/org/etsi/mts/tdl/document/model/Content.java b/plugins/org.etsi.mts.tdl.constraints.helper/src/org/etsi/mts/tdl/document/model/Content.java new file mode 100644 index 0000000000000000000000000000000000000000..630cd82a3e5fd2ee57ebfcf8749ea08966e725f1 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.constraints.helper/src/org/etsi/mts/tdl/document/model/Content.java @@ -0,0 +1,84 @@ +package org.etsi.mts.tdl.document.model; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +public class Content implements Serializable { + private static final long serialVersionUID = 5798123716729347047L; + Content parent; + List content = new ArrayList<>(); + List attributes = new ArrayList<>(); + List notes = new ArrayList<>(); + String text; + public Content() { + + } + + public Content(Content p, String text) { + this(p, text, true); + } + public Content(Content p, String text, boolean index) { + this.setParent(p); + this.setText(text); + getDocument().index(this); + } + + public Content getParent() { + return parent; + } + public void setParent(Content parent) { + this.parent = parent; + this.parent.getContent().add(this); + } + public List getContent() { + return content; + } + public void setContent(List content) { + this.content = content; + } + public String getText() { + return text; + } + public void setText(String text) { + this.text = text; + } + public Document getDocument() { + if (getParent()!=null) { + return getParent().getDocument(); + } else if (this instanceof Document) { + return (Document)this; + } + return null; + } + public String getContentText() { + String output = getText(); + for (Content c:getContent()) { + output+="\n"+c.getContentText(); + } + return output; + } + + @Override + public String toString() { + return "Content: " + text + ""; + } + + public List getAttributes() { + return attributes; + } + + public void setAttributes(List attributes) { + this.attributes = attributes; + } + + public List getNotes() { + return notes; + } + + public void setNotes(List notes) { + this.notes = notes; + } + + +} diff --git a/plugins/org.etsi.mts.tdl.constraints.helper/src/org/etsi/mts/tdl/document/model/Document.java b/plugins/org.etsi.mts.tdl.constraints.helper/src/org/etsi/mts/tdl/document/model/Document.java new file mode 100644 index 0000000000000000000000000000000000000000..6714f338c01fea02d14408bc45e0ac496cbcf854 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.constraints.helper/src/org/etsi/mts/tdl/document/model/Document.java @@ -0,0 +1,32 @@ +package org.etsi.mts.tdl.document.model; + +import java.util.LinkedHashMap; +import java.util.TreeMap; + +public class Document extends Content { + private static final long serialVersionUID = -886387704081982886L; + TreeMap index = new TreeMap<>(); + public LinkedHashMap meta = new LinkedHashMap<>(); + String filename; + String title; + public String getFilename() { + return filename; + } + public void setFilename(String filename) { + this.filename = filename; + } + public String getTitle() { + return title; + } + public void setTitle(String title) { + this.title = title; + } + public void index(Content c) { + if (c.getText()!=null && !c.getText().isEmpty()) { + index.put(c.getText(), c); + } + } + public Content get(String title) { + return index.get(title); + } +} diff --git a/plugins/org.etsi.mts.tdl.constraints.helper/src/org/etsi/mts/tdl/document/model/Note.java b/plugins/org.etsi.mts.tdl.constraints.helper/src/org/etsi/mts/tdl/document/model/Note.java new file mode 100644 index 0000000000000000000000000000000000000000..39e72c551552b59b2023effb65ec6e472143e143 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.constraints.helper/src/org/etsi/mts/tdl/document/model/Note.java @@ -0,0 +1,23 @@ +package org.etsi.mts.tdl.document.model; + +import java.io.Serializable; + +public class Note implements Serializable { + private static final long serialVersionUID = -5614908858514674827L; + String content; + + public String getContent() { + return content; + } + + public void setContent(String content) { + this.content = content; + } + + @Override + public String toString() { + return "Note [content=" + content + "]"; + } + + +} diff --git a/plugins/org.etsi.mts.tdl.constraints.ui/.classpath b/plugins/org.etsi.mts.tdl.constraints.ui/.classpath index 2869279ea3b40554d75a2a2ac7ffa357f9f0f72e..685a6999c9acba0d0158b0929d7a4d384644452e 100644 --- a/plugins/org.etsi.mts.tdl.constraints.ui/.classpath +++ b/plugins/org.etsi.mts.tdl.constraints.ui/.classpath @@ -1,11 +1,11 @@ - + - + diff --git a/plugins/org.etsi.mts.tdl.constraints.ui/.project b/plugins/org.etsi.mts.tdl.constraints.ui/.project index 51bfcfeb0ea0c69c6df82351b72fc0228d4d2435..0ab4d13adcfa4cfe2baaff68f123fe11daebf9aa 100644 --- a/plugins/org.etsi.mts.tdl.constraints.ui/.project +++ b/plugins/org.etsi.mts.tdl.constraints.ui/.project @@ -20,9 +20,26 @@ + + org.eclipse.m2e.core.maven2Builder + + + + org.eclipse.m2e.core.maven2Nature org.eclipse.pde.PluginNature org.eclipse.jdt.core.javanature + + + 1681418408697 + + 30 + + org.eclipse.core.resources.regexFilterMatcher + node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__ + + + diff --git a/plugins/org.etsi.mts.tdl.constraints.ui/META-INF/MANIFEST.MF b/plugins/org.etsi.mts.tdl.constraints.ui/META-INF/MANIFEST.MF index 102fd2636ef7021295356c3629c2d6e8f455d5e9..60165ba221d44c51139e45f105636a5a6068e938 100644 --- a/plugins/org.etsi.mts.tdl.constraints.ui/META-INF/MANIFEST.MF +++ b/plugins/org.etsi.mts.tdl.constraints.ui/META-INF/MANIFEST.MF @@ -21,7 +21,10 @@ Require-Bundle: org.eclipse.ui, org.eclipse.epsilon.etl.engine, org.eclipse.epsilon.profiling, org.eclipse.epsilon.eol.tools, + org.eclipse.ocl.xtext.completeocl.ui, + org.eclipse.ocl.xtext.essentialocl.ui, com.google.inject, - org.eclipse.xtext.ui + org.eclipse.xtext.ui, + org.etsi.mts.tdl.model Bundle-ActivationPolicy: lazy -Bundle-RequiredExecutionEnvironment: JavaSE-1.8 +Bundle-RequiredExecutionEnvironment: JavaSE-11 diff --git a/plugins/org.etsi.mts.tdl.constraints.ui/build.properties b/plugins/org.etsi.mts.tdl.constraints.ui/build.properties index 0d3d3a745d49c12500fb77bdc372b76e8bf624de..6f4455d0e120b77b0904d2835d63f30dcde30b90 100644 --- a/plugins/org.etsi.mts.tdl.constraints.ui/build.properties +++ b/plugins/org.etsi.mts.tdl.constraints.ui/build.properties @@ -1,5 +1,5 @@ source.. = src/ -output.. = bin/ +output.. = target/classes/ bin.includes = plugin.xml,\ META-INF/,\ .,\ diff --git a/plugins/org.etsi.mts.tdl.constraints.ui/plugin.xml b/plugins/org.etsi.mts.tdl.constraints.ui/plugin.xml index 4ee459c7bf064facc838188e01d219f4f0c76969..6ee872f196a772c68e951b219eb2be5c8fff7637 100644 --- a/plugins/org.etsi.mts.tdl.constraints.ui/plugin.xml +++ b/plugins/org.etsi.mts.tdl.constraints.ui/plugin.xml @@ -13,6 +13,11 @@ id="org.etsi.mts.tdl.constraints.ui.commands.validateCommand" name="Validate TDL model"> + + @@ -21,6 +26,13 @@ class="org.etsi.mts.tdl.constraints.ui.handlers.ValidationHandler"> + + + + + + + + + + + + + + + + + + diff --git a/plugins/org.etsi.mts.tdl.constraints.ui/pom.xml b/plugins/org.etsi.mts.tdl.constraints.ui/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..bda17f889796c663785a7f1c655144f69fc721e2 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.constraints.ui/pom.xml @@ -0,0 +1,19 @@ + + 4.0.0 + + org.etsi.mts.tdl + org.etsi.mts.tdl.parent + 1.0.0-SNAPSHOT + ../../org.etsi.mts.tdl.parent + + + org.etsi.mts.tdl.constraints.ui + eclipse-plugin + + + + maven-compiler-plugin + + + + \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.constraints.ui/src/org/etsi/mts/tdl/constraints/ui/handlers/ToggleValidationHandler.java b/plugins/org.etsi.mts.tdl.constraints.ui/src/org/etsi/mts/tdl/constraints/ui/handlers/ToggleValidationHandler.java new file mode 100644 index 0000000000000000000000000000000000000000..1baf2970c33d6f2fa2b5f05ecf87f67ab9bc0245 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.constraints.ui/src/org/etsi/mts/tdl/constraints/ui/handlers/ToggleValidationHandler.java @@ -0,0 +1,117 @@ +package org.etsi.mts.tdl.constraints.ui.handlers; + +import java.net.URI; +import java.util.Collection; + +import org.eclipse.core.commands.AbstractHandler; +import org.eclipse.core.commands.ExecutionEvent; +import org.eclipse.core.commands.ExecutionException; +import org.eclipse.core.runtime.preferences.InstanceScope; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.EValidator; +import org.eclipse.emf.ecore.util.EObjectValidator; +import org.eclipse.epsilon.evl.emf.validation.CompositeEValidator; +import org.eclipse.epsilon.evl.emf.validation.EvlValidator; +import org.eclipse.ui.preferences.ScopedPreferenceStore; +import org.etsi.mts.tdl.tdlPackage; + +public class ToggleValidationHandler extends AbstractHandler { + private static boolean initialised; + private static EvlValidator evlValidator; + + //TODO: for some reason seems to hang now.. + @Override + public Object execute(ExecutionEvent event) throws ExecutionException { + ScopedPreferenceStore s = new ScopedPreferenceStore(new InstanceScope(), "org.etsi.mts.tdl.constraints.ui.autoValidation"); + boolean enabled = s.getBoolean("enabled"); + //TODO: some constraints seems to be providing strange errors + //TODO: maintain state across menu toolbar and others + //TODO: maintain state across launches + if (!enabled) { + try { + init(); + registerValidator(tdlPackage.eINSTANCE); + enabled = true; + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } else { + stop(); + enabled = false; + } + s.setValue("enabled", enabled); + return null; + } + + public static void stop() { + EPackage ePackage = tdlPackage.eINSTANCE; + EValidator existingValidator = EValidator.Registry.INSTANCE.getEValidator(ePackage); + if (existingValidator instanceof CompositeEValidator) { + //TODO: check for evl validators? + ((CompositeEValidator) existingValidator).getDelegates().remove(evlValidator); + Collection delegates = ((CompositeEValidator) existingValidator).getDelegates(); + //TODO: make more robust + delegates.removeIf(d -> d instanceof EvlValidator); + } else { + if (existingValidator == null) { + existingValidator = EObjectValidator.INSTANCE; + } + CompositeEValidator newValidator = new CompositeEValidator(); + newValidator.getDelegates().add(existingValidator); + newValidator.getDelegates().add(evlValidator); + EValidator.Registry.INSTANCE.put(ePackage, newValidator); + } + + } + + public static void init() throws Exception { + if (initialised) { + return; + } + //TODO: goes a bit in circles + //TODO: extract into an activator or something? also as command + //TODO: works in principle, occasionally causes hangs and strange errors though... + System.out.println("Init EVL validator.."); + // Assuming you have generated the metamodel code + EPackage ePackage = tdlPackage.eINSTANCE; + + // Pass a model name if your script uses it + // Pass a valid bundle ID as it used for reporting (if not in a plugin use your project name or similar) + + String modelName = "TDL"; //This seems to be important! Otherwise strange hangs occur -> TDL? + String bundleId = "org.etsi.mts.tdl.constraints"; + URI evlScriptURI = new URI("platform:/plugin/"+bundleId+"/constraints/tdl-generated-ETSI-ES-203-119-1-V1.5.1-fixed.evl"); + //TODO: try out extension point integration + //TODO: try out fixes -> can they be in a separate module? + //TODO: add other constraints for TO/TC + evlValidator = new EvlValidator( + evlScriptURI, modelName , ePackage.getNsURI(), bundleId); + + evlValidator.setShowErrorDialog(false); + //TODO: extract to optional on demand / auto validation + //TODO: this brings all the epsilon dependencies here as well + //-> effectively requires constraints to be installed.. shall be plugged in ideally.. + //-> check again extension point integration.. +// registerValidator(ePackage); + initialised = true; + } + + + //TODO: reorganise and reuse (from TDLtxValidator, shall migrate local Validator as well) + private static void registerValidator(EPackage ePackage) { + EValidator existingValidator = EValidator.Registry.INSTANCE.getEValidator(ePackage); + if (existingValidator instanceof CompositeEValidator) { + ((CompositeEValidator) existingValidator).getDelegates().add(evlValidator); + } else { + if (existingValidator == null) { + existingValidator = EObjectValidator.INSTANCE; + } + CompositeEValidator newValidator = new CompositeEValidator(); + newValidator.getDelegates().add(existingValidator); + newValidator.getDelegates().add(evlValidator); + EValidator.Registry.INSTANCE.put(ePackage, newValidator); + } + } + +} diff --git a/plugins/org.etsi.mts.tdl.constraints.ui/src/org/etsi/mts/tdl/constraints/ui/handlers/ValidationHandler.java b/plugins/org.etsi.mts.tdl.constraints.ui/src/org/etsi/mts/tdl/constraints/ui/handlers/ValidationHandler.java index df7df47a6bdbcbc0a0dab17eb1f3c561d5dc67c5..5f9af791bb32ace51992e3ebbac600fa7bf08d3d 100644 --- a/plugins/org.etsi.mts.tdl.constraints.ui/src/org/etsi/mts/tdl/constraints/ui/handlers/ValidationHandler.java +++ b/plugins/org.etsi.mts.tdl.constraints.ui/src/org/etsi/mts/tdl/constraints/ui/handlers/ValidationHandler.java @@ -17,8 +17,6 @@ import org.eclipse.core.runtime.CoreException; import org.eclipse.emf.common.util.URI; import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.resource.Resource; -import org.eclipse.emf.ecore.resource.ResourceSet; -import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; import org.eclipse.epsilon.evl.execute.UnsatisfiedConstraint; import org.eclipse.jface.dialogs.MessageDialog; import org.eclipse.jface.viewers.ISelection; @@ -30,13 +28,13 @@ import org.eclipse.ui.handlers.HandlerUtil; import org.eclipse.ui.part.FileEditorInput; import org.eclipse.xtext.nodemodel.ICompositeNode; import org.eclipse.xtext.nodemodel.util.NodeModelUtils; -import org.eclipse.xtext.resource.IResourceServiceProvider; import org.eclipse.xtext.resource.XtextResource; import org.eclipse.xtext.resource.XtextResourceSet; -import org.eclipse.xtext.ui.resource.IResourceSetProvider; -import org.eclipse.xtext.ui.resource.XtextResourceSetProvider; import org.etsi.mts.tdl.constraints.evl.Validator; +import com.google.inject.Guice; +import com.google.inject.Injector; + /** * Our sample handler extends AbstractHandler, an IHandler base class. * @see org.eclipse.core.commands.IHandler @@ -76,18 +74,8 @@ public class ValidationHandler extends AbstractHandler { if (file !=null) { URI uri = URI.createPlatformResourceURI(file.getFullPath().toString(), true); - ResourceSet rs = new ResourceSetImpl(); - - //DONE: recommended manner for loading xtext resources, does not work for non-xtext resources -> use default resource set for the time being - IResourceServiceProvider resourceServiceProvider = IResourceServiceProvider.Registry.INSTANCE - .getResourceServiceProvider(uri); - if (resourceServiceProvider != null) { - XtextResourceSetProvider rsp = (XtextResourceSetProvider) resourceServiceProvider - .get(IResourceSetProvider.class); - rs = (XtextResourceSet) rsp.get(project); - } - - + Injector injector = Guice.createInjector(); + XtextResourceSet rs = injector.getInstance(XtextResourceSet.class); Resource r = rs.getResource(uri, true); //DONE: either here or in Validator -> currently Validator // EcoreUtil.resolveAll(xr); @@ -116,10 +104,6 @@ public class ValidationHandler extends AbstractHandler { + e.getMessage().replaceAll("\n.+epsilon/", "\n at (epsilon/"); } //DONE: Add custom scrollable dialog -// MessageDialog.openInformation( -// Display.getDefault().getActiveShell(), -// "Validation Results", -// messages); ScrollableMessageDialog sdialog = new ScrollableMessageDialog(Display.getDefault().getActiveShell(), "Validation Results", null, "The following constraint violations occurred while validating '"+uri.lastSegment()+"':", MessageDialog.INFORMATION, new String[]{"OK"}, 0, messages); sdialog.open(); } diff --git a/plugins/org.etsi.mts.tdl.constraints/.classpath b/plugins/org.etsi.mts.tdl.constraints/.classpath index 31ffc48de1618af16ca6766cd5813786337b9539..f93bdfe27fc01579b1a0a28e42f10778c102e155 100644 --- a/plugins/org.etsi.mts.tdl.constraints/.classpath +++ b/plugins/org.etsi.mts.tdl.constraints/.classpath @@ -1,8 +1,9 @@ - + - + + diff --git a/plugins/org.etsi.mts.tdl.constraints/.project b/plugins/org.etsi.mts.tdl.constraints/.project index 3636cb64baec9c1cd76270ca92ea2749b48b1158..dc747bdd8e202d64ce0deebac0ba58b83057eed3 100644 --- a/plugins/org.etsi.mts.tdl.constraints/.project +++ b/plugins/org.etsi.mts.tdl.constraints/.project @@ -20,9 +20,26 @@ + + org.eclipse.m2e.core.maven2Builder + + + + org.eclipse.m2e.core.maven2Nature org.eclipse.pde.PluginNature org.eclipse.jdt.core.javanature + + + 1681418408672 + + 30 + + org.eclipse.core.resources.regexFilterMatcher + node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__ + + + diff --git a/plugins/org.etsi.mts.tdl.constraints/.settings/org.eclipse.core.resources.prefs b/plugins/org.etsi.mts.tdl.constraints/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000000000000000000000000000000000000..99f26c0203a7844de00dbfc56e6a35d8ed3c022c --- /dev/null +++ b/plugins/org.etsi.mts.tdl.constraints/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/plugins/org.etsi.mts.tdl.constraints/.settings/org.eclipse.jdt.core.prefs b/plugins/org.etsi.mts.tdl.constraints/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000000000000000000000000000000000000..7adc0fb9a0d32bd6b4e3ce6f305ab7165208865c --- /dev/null +++ b/plugins/org.etsi.mts.tdl.constraints/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,10 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=11 +org.eclipse.jdt.core.compiler.compliance=11 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning +org.eclipse.jdt.core.compiler.release=enabled +org.eclipse.jdt.core.compiler.source=11 diff --git a/plugins/org.etsi.mts.tdl.constraints/.settings/org.eclipse.m2e.core.prefs b/plugins/org.etsi.mts.tdl.constraints/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000000000000000000000000000000000000..f897a7f1cb2389f85fe6381425d29f0a9866fb65 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.constraints/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/plugins/org.etsi.mts.tdl.constraints/META-INF/MANIFEST.MF b/plugins/org.etsi.mts.tdl.constraints/META-INF/MANIFEST.MF index 35d1ce745b0d5813f5022fdfd799c26c585e30d1..8f0100f63aa4552059f7aff399b6d83d2cd7153d 100644 --- a/plugins/org.etsi.mts.tdl.constraints/META-INF/MANIFEST.MF +++ b/plugins/org.etsi.mts.tdl.constraints/META-INF/MANIFEST.MF @@ -17,7 +17,8 @@ Require-Bundle: org.eclipse.emf.common, org.eclipse.emf.ecore;visibility:=reexport, org.eclipse.emf.ecore.xmi, org.etsi.mts.tdl.model, + org.etsi.mts.tdl.common, org.eclipse.xtext, - org.eclipse.epsilon.common.dt + org.eclipse.epsilon.common.dt, + org.eclipse.ocl.xtext.completeocl Export-Package: org.etsi.mts.tdl.constraints.evl -Bundle-RequiredExecutionEnvironment: JavaSE-1.8 diff --git a/plugins/org.etsi.mts.tdl.constraints/build.properties b/plugins/org.etsi.mts.tdl.constraints/build.properties index 2670676c75e79650e1cd1d0de7907cd12753938a..bf76b6aee0b999ac8ac1a14a8a23a39a53b7dd61 100644 --- a/plugins/org.etsi.mts.tdl.constraints/build.properties +++ b/plugins/org.etsi.mts.tdl.constraints/build.properties @@ -1,7 +1,8 @@ source.. = src/,\ epsilon/ -output.. = bin/ +output.. = target/classes/ bin.includes = META-INF/,\ .,\ plugin.xml,\ - epsilon/ + epsilon/,\ + ocl/ diff --git a/plugins/org.etsi.mts.tdl.constraints/epsilon/constraints/tdl-generated-ETSI-ES-203-119-1-V1.5.1-fixed.evl b/plugins/org.etsi.mts.tdl.constraints/epsilon/constraints/tdl-generated-ETSI-ES-203-119-1-V1.5.1-fixed.evl index 68a7d3ffe27133ec71dd30958b0fec35cecbefac..4ac787604511495ed02f5aee925d4837903ec533 100644 --- a/plugins/org.etsi.mts.tdl.constraints/epsilon/constraints/tdl-generated-ETSI-ES-203-119-1-V1.5.1-fixed.evl +++ b/plugins/org.etsi.mts.tdl.constraints/epsilon/constraints/tdl-generated-ETSI-ES-203-119-1-V1.5.1-fixed.evl @@ -196,6 +196,8 @@ context DataElementMapping { //All parameters shall be mapped constraint ParameterMappingType { check: (self.mappableDataElement.oclIsTypeOf(SimpleDataType) + or self.mappableDataElement.oclIsTypeOf(CollectionDataType) //TODO: added CollectionDataType exclusion + or self.mappableDataElement.oclIsTypeOf(DataInstance)//TODO: added DataInstance exclusion or (self.mappableDataElement.oclIsTypeOf(StructuredDataType) and self.mappableDataElement.member->forAll(p | //TODO: allMembers()? self.parameterMapping->exists(m | m.parameter = p))) @@ -974,7 +976,7 @@ context Block { //TODO: Enum::Literal not supported -> use Enum#Literal check: (not self.`guard`.isEmpty() implies //TODO: constraint shall be relaxed when there are no guards self.getParticipatingComponents()->reject(c | c.role = ComponentInstanceRole#SUT) - ->forAll(c | self.`guard`->exists(ex | ex.scope = c)) //TODO: renamed componentInstance to scope + ->forAll(c | self.`guard`->exists(ex | ex.componentInstance = c)) //TODO: renamed componentInstance to scope ) or not self.getParentTestDescription().isLocallyOrdered message: self.prefix() + @@ -994,7 +996,7 @@ context LocalExpression { //Local expressions in locally ordered test descriptions have 'ComponentInstance' specified constraint LocalExpressionComponent { check: self.getParentTestDescription().isLocallyOrdered - implies not self.scope.oclIsUndefined() //TODO: renamed componentInstance to scope + implies not self.componentInstance.oclIsUndefined() //TODO: renamed componentInstance to scope message: self.prefix() + "If the 'LocalExpression' is contained in a locally ordered 'TestDescription' then the componentInstance shall be specified. " } @@ -1006,14 +1008,14 @@ context LocalExpression { ->includingAll(self.expression.argument) //TODO: remove extra parethesis; replace -> with . or union with includingAll ->including(self.expression) //TODO: remove extra parethesis ->select(du | du.oclIsKindOf(VariableUse)) //TODO: remove extra parethesis -> wrong, extra paren is on next line - ->forAll(du | du.oclAsType(VariableUse).componentInstance = self.scope) //TODO: renamed componentInstance to scope; + ->forAll(du | du.oclAsType(VariableUse).componentInstance = self.componentInstance) //TODO: renamed componentInstance to scope; and self.expression.argument ->closure(a | a.dataUse.argument)->collect(pb | pb.dataUse) ->includingAll(self.expression.argument) //TODO: remove extra parethesis; replace -> with . or union with includingAll ->including(self.expression) //TODO: remove extra parethesis ->select(du | du.oclIsKindOf(TimeLabelUse)) ->forAll(du | du.oclAsType(TimeLabelUse).timeLabel.container() - .getParticipatingComponents.includes(self.scope)) //TODO: renamed componentInstance to scope + .getParticipatingComponents.includes(self.componentInstance)) //TODO: renamed componentInstance to scope message: self.prefix() + "If the componentInstance is specified then all 'Variable's and 'TimeLabel's used in the expression shall be local to that 'ComponentInstance'." } @@ -1051,7 +1053,7 @@ context BoundedLoopBehaviour { constraint IterationCountsForParticipatingComponents { //TODO: Enum::Literal not supported -> use Enum#Literal check: self.block.getParticipatingComponents()->reject(c | c.role = ComponentInstanceRole#SUT) - ->forAll(c | self.numIteration->exists(ex | ex.scope = c)) //TODO: renamed componentInstance to scope + ->forAll(c | self.numIteration->exists(ex | ex.componentInstance = c)) //TODO: renamed componentInstance to scope or not self.getParentTestDescription().isLocallyOrdered message: self.prefix() + "If the 'BoundedLoopBehaviour' is contained in a locally ordered 'TestDescription' then a numIteration shall be specified for every participating 'ComponentInstance' that has the role 'Tester'." @@ -1326,7 +1328,7 @@ context PeriodicBehaviour { constraint PeriodForParticipatingComponents { //TODO: Enum::Literal not supported -> use Enum#Literal check: self.block.getParticipatingComponents()->reject(c | c.role = ComponentInstanceRole#SUT) - ->forAll(c | self.period->exists(ex | ex.scope = c)) //TODO: changed to scope, NOTE: specification still says componentInstance?! -> scope is outdated? => needs to be reverted! + ->forAll(c | self.period->exists(ex | ex.componentInstance = c)) //TODO: changed to scope, NOTE: specification still says componentInstance?! -> scope is outdated? => needs to be reverted! or not self.getParentTestDescription().isLocallyOrdered message: self.prefix() + "If the 'PeriodicBehaviour' is contained in a locally ordered 'TestDescription' then a period shall be specified for every 'ComponentInstance' that has the role 'Tester' and for which there is a behaviour in the contained 'Block'. " diff --git a/plugins/org.etsi.mts.tdl.constraints/epsilon/constraints/tdl-generated-ETSI-ES-203-119-1-V1.6.1.evl b/plugins/org.etsi.mts.tdl.constraints/epsilon/constraints/tdl-generated-ETSI-ES-203-119-1-V1.6.1.evl new file mode 100644 index 0000000000000000000000000000000000000000..67b2d3ca390ca7d719b9726e59bde20051ce4b36 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.constraints/epsilon/constraints/tdl-generated-ETSI-ES-203-119-1-V1.6.1.evl @@ -0,0 +1,1622 @@ +import "../library/common.eol"; +import "../library/helper.eol"; +import "../library/debug.eol"; + +context Element { + //[There are no constraints specified.] +} + +context NamedElement { + //Mandatory name + constraint MandatoryName { + check: not self.name.oclIsUndefined() and self.name.size() > 0 + message: self.prefix() + + "A 'NamedElement' shall have the 'name' property set and the 'name' shall be not an empty String." + } + + //Distinguishable qualified names + constraint DistinquishableName { + check: NamedElement.allInstances()->one(e | e.qualifiedName = self.qualifiedName) + message: self.prefix() + + "All qualified names of instances of 'NamedElement's shall be distinguishable within a TDL model." + } + + //[NOTE: It is up to the concrete syntax definition and tooling to resolve any name clashes between instances of the same meta-class in the qualified name.] +} + +context PackageableElement { + //[There are no constraints specified.] +} + +context Package { + //No cyclic imports + constraint CyclicImports { + check: self.`import`->asOrderedSet()->closure(i | i.importedPackage.`import`)->forAll(i | + i.importedPackage <> self) + message: self.prefix() + + "A 'Package' shall not import itself directly or indirectly." + } + +} + +context ElementImport { + //Consistency of imported elements + constraint ConsistentImports { + check: self.importedElement->forAll(e | self.importedPackage.packagedElement->includes(e)) + message: self.prefix() + + "All imported 'PackageableElement's referenced by an 'ElementImport' shall be directly owned by the imported 'Package'." + } + + //[Figure 5.2: Miscellaneous elements] +} + +context Comment { + //No nested comments + constraint CommentNestedComments { + check: self.comment->isEmpty() + message: self.prefix() + + "A 'Comment' shall not contain 'Comment's." + } + + //No annotations to comments + constraint CommentNestedAnnotations { + check: self.annotation->isEmpty() + message: self.prefix() + + "A 'Comment' shall not contain 'Annotation's." + } + +} + +context Annotation { + //No nested annotations + constraint AnnotationNestedAnnotations { + check: self.annotation->isEmpty() + message: self.prefix() + + "An 'Annotation' shall not contain 'Annotation's" + } + + //No comments to annotations + constraint AnnotationNestedComments { + check: self.comment->isEmpty() + message: self.prefix() + + "An 'Annotation' shall not contain 'Comment's." + } + +} + +context AnnotationType { + //[There are no constraints specified.] +} + +context TestObjective { + //[There are no constraints specified.] +} + +context Extension { + //Inherit from element of the same meta-class + constraint Extension { + check: self.container().oclType() = self.extending.oclType() + message: self.prefix() + + "The element containing an 'Extension' and the element in the 'extending' property shall have the same meta-class." + } + +} + +context ConstraintType { + //[There are no constraints specified.] +} + +context Constraint { + //Effectively static quantifiers + constraint StaticQuantifiers { + check: self.quantifier->forAll(q | q.isEffectivelyStatic()) + message: self.prefix() + + "All 'DataUse's specified as 'quantifier's shall be effectively static." + } + + //Empty arguments for quantifiers + constraint NoArgumentQuantifiers { + check: self.quantifier->forAll(q | q.argument->isEmpty()) + message: self.prefix() + + "The 'argument' sets for all 'DataUse's specified as 'quantifier's shall be empty." + } + + //Constraint applicability for 'union' and 'uniontype' + constraint ConstraintApplicabilityUnionUniontype { + check: (self.type.name = 'union' or self.type.name = 'uniontype') + implies self.container().oclIsTypeOf(StructuredDataType) + message: self.prefix() + + "The predefined 'ConstraintType's 'union' and 'uniontype' shall be applied to 'StructuredDataType's only. " + } + + //Constraint applicability for 'range' and 'format' + constraint ConstraintApplicabilityRangeFormat { + check: (self.type.name = 'range' or self.type.name = 'format') + implies (self.container().oclIsTypeOf(SimpleDataType) + or (self.container().oclIsTypeOf(Member) + and self.container().oclAsType(Member).dataType.oclIsTypeOf(SimpleDataType))) + message: self.prefix() + + "The predefined 'ConstraintType's 'range' and 'format' shall be applied to 'SimpleDataType's and 'Member's with a 'SimpleDataType' 'dataType' only. " + } + + //Constraint applicability for 'length', 'minLength', and 'maxLength' + constraint ConstraintApplicabilityLength { + check: (self.type.name = 'length' or self.type.name = 'minLength' or self.type.name = 'maxLength') + implies (self.container().oclIsTypeOf(SimpleDataType) + or self.container().oclIsTypeOf(CollectionDataType) + or (self.container().oclIsTypeOf(Member) + and self.container().oclAsType(Member).dataType.oclIsTypeOf(SimpleDataType)) + and self.container().oclAsType(Member).dataType.oclIsTypeOf(CollectionDataType)) + message: self.prefix() + + "The predefined 'ConstraintType's 'length', 'minLength', and 'maxLength' shall be applied to 'CollectionDataType's, 'SimpleDataType's and 'Member's with a 'SimpleDataType' or a 'CollectionDataType' 'dataType' only. " + } + + //Quantifiers for 'length', 'minLength', and 'maxLength' + constraint ConstraintQuantifierLength { + check: (self.type.name = 'length' or self.type.name = 'minLength' or self.type.name = 'maxLength') + implies (self.quantifier->size() = 1 + and self.quantifier->forAll(q | q.resolveDataType().conformsTo('Integer'))) + message: self.prefix() + + "The predefined 'ConstraintType's 'length', 'minLength', and 'maxLength' shall be used with exactly one 'quantifier' resolved to an instance conforming to the predefined 'Integer' 'DataType'. " + } + + //Quantifiers for 'range' + constraint ConstraintQuantifierRange { + check: (self.type.name = 'length') + implies (self.quantifier->size() = 2 + and self.quantifier->forAll(q | q.resolveDataType().conformsTo('Integer'))) + message: self.prefix() + + "The predefined 'ConstraintType' 'range' shall be used with exactly two 'quantifier's resolved to instance conforming to the predefined 'Integer' 'DataType'. " + } + +} + +context DataResourceMapping { + //[There are no constraints specified.] +} + +context MappableDataElement { + //[There are no constraints specified.] +} + +context DataElementMapping { + //Restricted use of 'ParameterMapping' + constraint ParameterMappingType { + check: self.parameterMapping->size() = 0 + or (self.mappableDataElement.oclIsTypeOf(StructuredDataType) + and self.parameterMapping->forAll(p | + self.mappableDataElement.oclAsType(StructuredDataType).allMembers()->includes(p.parameter))) + or (self.mappableDataElement.oclIsKindOf(Action) + and self.parameterMapping->forAll(p | + self.mappableDataElement.oclAsType(Action).formalParameter->includes(p.parameter))) + message: self.prefix() + + "A set of 'ParameterMapping's may only be provided if 'mappableDataElement' refers to a 'StructuredDataType', an 'Action' or a 'Function' definition and the 'mappableDataElement' contains the mapped 'Parameters'." + } + + //All parameters shall be mapped + constraint ParameterMappings { + check: (self.mappableDataElement.oclIsKindOf(SimpleDataType) or self.mappableDataElement.oclIsKindOf(DataInstance) + or (self.mappableDataElement.oclIsTypeOf(StructuredDataType) + and self.mappableDataElement.oclAsType(StructuredDataType).member->forAll(p | + self.parameterMapping->exists(m | m.parameter = p))) + or (self.mappableDataElement.oclIsKindOf(Action) + and self.mappableDataElement.oclAsType(Action).formalParameter->forAll(p | + self.parameterMapping->exists(m | m.parameter = p)) + and self.parameterMapping->forAll(p | + self.mappableDataElement.oclAsType(Action).formalParameter->includes(p.parameter)))) + message: self.prefix() + + "If the 'mappableDataElement' refers to a 'StructuredDataType', an 'Action' or a 'Function' definition, all the 'Parameters' contained in the 'mappableDataElement' shall be mapped." + } + +} + +context ParameterMapping { + //[There are no constraints specified.] + //[Figure 6.2: Basic data concepts and simple data] +} + +context DataType { + //[There are no constraints specified.] +} + +context DataInstance { + //[There are no constraints specified.] +} + +context SimpleDataType { + //[There are no constraints specified.] +} + +context SimpleDataInstance { + //SimpleDataInstance shall refer to SimpleDataType + constraint SimpleDataInstanceType { + check: self.dataType.oclIsKindOf(SimpleDataType) + message: self.prefix() + + "The inherited reference 'dataType' from 'DataInstance' shall refer to instances of 'SimpleDataType' solely." + } + + //SimpleDataInstance container in EnumDataType + constraint EnumDataInstanceContainment { + check: not self.dataType.oclIsKindOf(EnumDataType) or self.eContainer() = self.dataType + message: self.prefix() + + "A 'SimpleDataInstance' whose 'dataType' property refers to an 'EnumDataType' shall be contained in that 'EnumDataType'." + } + + //[Figure 6.3: Structured data type and instance] +} + +context StructuredDataType { + //Different member names in a structured data type + constraint DistinguishableMemberNames { + check: self.allMembers()->collect(e | e.name).isUnique() + message: self.prefix() + + "All 'Member' names of a 'StructuredDataType' (including the names of inherited 'Members') shall be distinguishable." + } + +} + +context Member { + //[There are no constraints specified.] +} + +context StructuredDataInstance { + //StructuredDataInstance shall refer to StructuredDataType + constraint StructuredDataInstance { + check: self.dataType.oclIsTypeOf(StructuredDataType) + message: self.prefix() + + "The inherited reference 'dataType' from 'DataInstance' shall refer to instances of 'StructuredDataType' solely." + } + + //'Member' of the 'StructuredDataType' + constraint ExistingMemberOfDataType { + check: self.memberAssignment->forAll(a | self.dataType.oclAsType(StructuredDataType).allMembers()->includes(a.member)) + message: self.prefix() + + "The referenced 'Member' shall be contained in or inherited by the 'StructuredDataType' that the 'StructuredDataInstance', which contains this 'MemberAssignment', refers to." + } + + //Unique assignments for each 'Member' of the 'StructuredDataType' + constraint UniqueMemberAssignments { + check: self.memberAssignment->collect(m | m.member).isUnique() + message: self.prefix() + + "There shall be at most one 'memberAssignment' for each 'Member' of the 'StructuredDataType' that the 'StructuredDataInstance', which contains this 'MemberAssignment', refers to." + } + + //'union' constraint on the type of the 'StructuredDataInstance' + constraint StructuredDataInstanceUnionConstraint { + check: not self.dataType.allConstraints()->exists(c | c.type.name = 'union') + or self.memberAssignment->size() <= 1 + message: self.prefix() + + "If the 'dataType' of the 'StructuredDataInstance' has the predefined constraint 'union' then the 'memberAssignment' shall not contain more than one 'MemberAssignment'." + } + + //'uniontype' constraint on the type of the 'StructuredDataInstance' + constraint StructuredDataInstanceUniontypeConstraint { + check: not self.dataType.allConstraints()->exists(c | c.type.name = 'uniontype') + or self.memberAssignment->forAll(m | self.dataType.oclAsType(StructuredDataType).member->includes(m) + or self.dataType.oclAsType(StructuredDataType).extension->one(e | + e.extending.oclAsType(StructuredDataType).allMembers()->includes(m))) + message: self.prefix() + + "If the 'dataType' of 'StructuredDataInstance' has the predefined constraint 'uniontype' then there shall only be 'MemberAssignment' for the 'Member's of the 'dataType' itself or of at most one of the 'StructuredDataType's which the 'dataType' is extending." + } + +} + +context MemberAssignment { + //Type of a 'memberSpec' shall conform to the type of the 'member' + constraint MatchingMemberDataType { + check: self.memberSpec.resolveDataType().conformsTo(self.member.dataType) + message: self.prefix() + + "The 'DataType' of the 'DataUse' of 'memberSpec' shall conform to the 'DataType' of the 'Member' of the 'MemberAssignment'." + } + + //Restricted use of 'OmitValue' for optional 'Member's only + constraint OmitValueUse { + check: (self.memberSpec.oclIsTypeOf(OmitValue) or self.memberSpec.oclIsTypeOf(AnyValueOrOmit)) + implies self.member.isOptional = true + message: self.prefix() + + "A non-optional 'Member' shall have a 'DataUse' specification assigned to it that is different from 'OmitValue' and 'AnyValueOrOmit'." + } + + //Static data use in 'memberSpec' + constraint StaticDataInMemberSpec { + check: self.memberSpec.isEffectivelyStatic() + message: self.prefix() + + "The 'memberSpec' and all of its 'ParameterBinding's shall be effectively static. " + } + + //[Figure 6.4: Collection data] +} + +context CollectionDataType { + //No multidimensional collections + constraint NoMultidimensionalCollections { + check: not self.itemType.oclIsKindOf(CollectionDataType) + message: self.prefix() + + "The 'itemType' shall not be an instance of 'CollectionDataType'. " + } + +} + +context CollectionDataInstance { + //CollectionDataInstance shall refer to CollectionDataType + constraint CollectionDataInstanceType { + check: self.dataType.oclIsKindOf(CollectionDataType) + message: self.prefix() + + "The inherited reference 'dataType' from 'DataInstance' shall refer to instances of 'CollectionDataType' solely." + } + + //Type of items in the 'CollectionDataInstance' + constraint CollectionDataInstanceItemType { + check: self.item->forAll(i | + i.resolveDataType().conformsTo(self.dataType.oclAsType(CollectionDataType).itemType)) + message: self.prefix() + + "The items in 'CollectionDataInstance' shall conform to the 'itemType' of the 'CollectionDataType' that is defined as the 'dataType' of this 'CollectionDataInstance'. " + } + + //Static data use in 'item' + constraint StaticDataInItem { + check: self.item->forAll(i | i.isEffectivelyStatic()) + message: self.prefix() + + "The DataUse's in 'item' and all of the respective 'ParameterBinding's shall be effectively static. " + } + + //Length constraint of the 'CollectionDataInstance' + constraint CollectionDataInstanceLengthConstraint { + check: true //This constraint cannot be expressed formally. + message: self.prefix() + + "If the 'dataType' 'CollectionType' contains the predefined constraint 'length' then the length of this 'CollectionDataInstance' shall be equal to the 'quantifier' of that 'Constraint'." + } + + //[Figure 6.5: Procedure and procedure parameter] +} + +context ProcedureSignature { + //[There are no constraints specified.] +} + +context ProcedureParameter { + //[There are no constraints specified.] +} + +context Parameter { + //[There are no constraints specified.] +} + +context FormalParameter { + //[There are no constraints specified.] +} + +context Variable { + //[There are no constraints specified.] +} + +context Action { + //[There are no constraints specified.] +} + +context Function { + //[There are no constraints specified.] +} + +context PredefinedFunction { + //[There are no constraints specified.] +} + +context EnumDataType { + //No extensions for EnumDataType + constraint EnumDataTypeExtensions { + check: self.extension.oclIsUndefined() + message: self.prefix() + + "The 'extension' property of an 'EnumDataType' shall be empty." + } + +} + +context DataUse { + //Occurrence of 'argument' and 'reduction' + constraint ArgumentReductionLists { + check: self.argument->isEmpty() or self.reduction->isEmpty() or self.oclIsTypeOf(FunctionCall) + message: self.prefix() + + "Only in case of a 'FunctionCall' both the 'argument' list and the 'reduction' list may be provided, otherwise either the 'argument' list, the 'reduction' list, or none of them shall be provided." + } + + //Structured data types in 'reduction' set + constraint ReductionMembers { + check: not self.resolveDataType().oclIsKindOf(StructuredDataType) + or self.reduction->isEmpty() + or self.resolveDataType().oclAsType(StructuredDataType).allMembers()->includes(self.reduction->first().member) + and self.reduction->select(m | self.reduction->indexOf(m) > 1)->forAll(m | + self.reduction->at(self.reduction->indexOf(m)-1).member.dataType.oclIsKindOf(StructuredDataType) + and self.reduction->at(self.reduction->indexOf(m)-1).member.dataType.oclAsType(StructuredDataType).allMembers() + ->includes(m.member)) + message: self.prefix() + + "The 'Member' referenced by the 'MemberReference' at index i of a 'reduction' shall be contained in or inherited by the 'StructuredDataType' of the 'Member' referenced by the 'MemberReference' at index (i - 1) of that 'reduction'." + } + + //No member with collection index in the first element in reduction + constraint FirstReduction { + check: self.reduction->isEmpty() or self.reduction->first().member.oclIsUndefined() or self.reduction->first().collectionIndex.oclIsUndefined() + message: self.prefix() + + "The first 'MemberReference' in reduction shall not specify both member and collectionIndex. " + } + +} + +context ParameterBinding { + //Matching data type + constraint ParameterBindingTypes { + check: self.dataUse.resolveDataType().conformsTo(self.parameter.dataType) + message: self.prefix() + + "The provided 'DataUse' shall conform to the 'DataType' of the referenced 'Parameter'." + } + + //Use of a 'StructuredDataInstance' with non-optional 'Member's + constraint OmitValueParameter { + check: self.parameter.oclIsTypeOf(Member) and self.parameter.oclAsType(Member).isOptional = false + implies not self.dataUse.oclIsTypeOf(OmitValue) and not self.dataUse.oclIsTypeOf(AnyValueOrOmit) + message: self.prefix() + + "A non-optional 'Member' of a 'StructuredDataType' shall have a 'DataUse' specification assigned to it that is different from 'OmitValue' or 'AnyValueOrOmit'." + } + +} + +context MemberReference { + //Collection index expressions for collections only + constraint CollectionIndex { + check: self.collectionIndex.oclIsUndefined() + or self.container().oclAsType(DataUse).resolveDataType().oclIsKindOf(CollectionDataType) + message: self.prefix() + + "If the type of the related 'DataUse' is not 'CollectionDataType' then the collectionIndex shall be undefined. " + } + + //Either member or collection index is required + constraint MemberOrReduction { + check: not self.member.oclIsUndefined() or not self.collectionIndex.oclIsUndefined() + message: self.prefix() + + "Either the member or collectionIndex shall be specified. " + } + +} + +context StaticDataUse { + //[There are no constraints specified.] +} + +context DataInstanceUse { + //'DataInstance' reference or non-empty 'argument' or non-empty 'item' + constraint DataInstanceOrArgumentsOrItems { + check: not self.dataInstance.oclIsUndefined() or not self.argument->isEmpty() or not self.item->isEmpty() + message: self.prefix() + + "If a 'dataInstance' is not specified, either a non-empty 'argument' set or a non-empty 'item' set shall be specified." + } + + //Valid 'DataType' for items + constraint DataTypeOfItemsInDataInstance { + check: self.item->forAll(i | i.resolveDataType().conformsTo(self.resolveDataType().oclAsType(CollectionDataType).itemType)) + message: self.prefix() + + "The items in the 'item' property shall conform to the 'itemType' of the resolved 'CollectionDataType'." + } + + //No 'item' if 'dataInstance' is specified + constraint NoItemWithDataInstance { + check: not self.dataInstance.oclIsUndefined() implies self.item->isEmpty() + message: self.prefix() + + "The 'item' property shall be empty if the 'dataInstance' property is specified." + } + +} + +context SpecialValueUse { + //Empty 'argument' and 'reduction' sets + constraint SpecialValueArgumentReduction { + check: self.reduction->isEmpty() and self.argument->isEmpty() + message: self.prefix() + + "The 'argument' and 'reduction' sets shall be empty." + } + +} + +context AnyValue { + //[There are no constraints specified.] +} + +context AnyValueOrOmit { + //[There are no constraints specified.] +} + +context OmitValue { + //[There are no constraints specified.] + //[Figure 6.8: Dynamic data use] +} + +context DynamicDataUse { + //[There are no constraints specified.] +} + +context FunctionCall { + //Matching parameters + constraint FunctionCallParameters { + check: self.`function`.formalParameter->forAll(p | self.argument->exists(a | a.parameter = p)) + message: self.prefix() + + "All 'FormalParameter's of the invoked 'Function' shall be bound." + } + +} + +context FormalParameterUse { + //[There are no constraints specified.] +} + +context VariableUse { + //Local variables of tester components only + constraint VariableUseComponentRole { + check: self.componentInstance.type.allVariables()->includes(self.variable) + and self.componentInstance.role = ComponentInstanceRole#Tester + message: self.prefix() + + "All variables used in a 'DataUse' specification via a 'VariableUse' shall be local to the same 'componentInstance' and the 'componentInstance' shall be in the role 'Tester'." + } + +} + +context PredefinedFunctionCall { + //Compatible actual parameters + constraint PredefinedFunctionCallParameters { + check: true //This constraint cannot be expressed formally. + message: self.prefix() + + "The number and type of actual parameters shall be compatible with the formal parameters of the invoked 'PredefinedFunction' according to the specification of the 'PredefinedFunction'." + } + + //Empty 'argument' and 'reduction' sets + constraint PredefinedFunctionCallArgumentReduction { + check: self.reduction->isEmpty() and self.argument->isEmpty() + message: self.prefix() + + "The 'argument' and 'reduction' sets shall be empty." + } + +} + +context LiteralValueUse { + //Exactly one value specification + constraint SpecifiedLiteralValue { + check: not self.value.oclIsUndefined() + xor not self.intValue.oclIsUndefined() + xor not self.boolValue.oclIsUndefined() + message: self.prefix() + + "There shall be exactly one value specification, where either the 'value', or the 'intValue', or the 'boolValue' property is be specified, but not more than one of them." + } + + //Empty 'argument' and 'reduction' sets if not 'dataType' + constraint LiteralValueArgumentReduction { + check: (self.dataType.oclIsUndefined()) + implies (self.reduction->isEmpty() and self.argument->isEmpty()) + message: self.prefix() + + "If 'dataType' is not specified then the 'argument' and 'reduction' sets shall be empty." + } + + //Integer type for integer value + constraint LiteralValueIntType { + check: not self.intValue.oclIsUndefined() + implies (self.dataType.oclIsUndefined() or self.dataType.oclIsKindOf(Time) or self.dataType.conformsTo('Integer')) + message: self.prefix() + + "If 'intValue' is specified then the 'dataType' is either unspecified or the specified 'DataType' is instanceof of 'Time' or conforms to predefined type 'Integer'." + } + + //Boolean type for Boolean value + constraint LiteralValueBoolType { + check: not self.boolValue.oclIsUndefined() + implies (self.dataType.oclIsUndefined() or self.dataType.conformsTo('Boolean')) + message: self.prefix() + + "If 'boolValue' is specified then the 'dataType' is either unspecified or the specified 'DataType' conforms to predefined type 'Boolean'." + } + +} + +context DataElementUse { + //'DataElement' reference or non-empty 'argument' or non-empty 'item' + constraint DataInstanceOrArgumentsOrItemsInDataElementUse { + check: not (self.dataElement.oclIsUndefined() and self.argument->isEmpty() and self.item->isEmpty()) + and not (self.dataElement.oclIsKindOf(StructuredDataType) and self.argument->isEmpty()) + and not (self.dataElement.oclIsKindOf(CollectionDataType) and self.item->isEmpty()) + message: self.prefix() + + "If a 'dataElement' is not specified, or if the 'dataElement' is resolved to a 'StructuredDataType' or a 'CollectionDataType', either a non-empty 'argument' set or a non-empty 'item' set shall be specified." + } + + //Valid 'DataType' for items + constraint DataTypeOfItemsInDataInstance { + check: self.item->forAll(i | i.resolveDataType().conformsTo(self.resolveDataType().oclAsType(CollectionDataType).itemType)) + message: self.prefix() + + "The items in the 'item' property shall conform to the 'itemType' of the resolved 'CollectionDataType'." + } + + //Only 'item' if the resolved data type is 'CollectionDataType' + constraint ItemOnlyWithCollectionDataType { + check: (((self.dataElement.oclIsKindOf(CollectionDataType)) + or self.dataElement.oclIsUndefined()) + and not self.item->isEmpty()) + or self.item->isEmpty() + message: self.prefix() + + "The 'item' property shall be non-empty if the 'dataElement' property is resolved to a 'CollectionDataType'." + } + + //Matching parameters for 'Function's + constraint FunctionCallParameters { + check: not self.dataElement.oclIsKindOf(Function) + or self.dataElement.oclAsType(Function).formalParameter->forAll(p | self.argument->exists(a | a.parameter = p)) + message: self.prefix() + + "All 'FormalParameter's shall be bound if the 'dataElement' refers to a 'Function'." + } + +} + +context Time { + //[There are no constraints specified.] +} + +context TimeLabel { + //[There are no constraints specified.] +} + +context TimeLabelUse { + //Empty 'argument' and 'reduction' sets + constraint TimeLabelArgumentReduction { + check: self.reduction->isEmpty() and self.argument->isEmpty() + message: self.prefix() + + "The 'argument' and 'reduction' sets shall be empty." + } + + //'TimeLabel's only within the same 'TestDescription' when local ordering is used + constraint TimeLabelLocallyOrdered { + check: self.getParentTestDescription().isLocallyOrdered = true + or self.timeLabel.getParentTestDescription() = self.getParentTestDescription() + message: self.prefix() + + "When local ordering is used, 'TimeLabel's shall only be used within the same test description. " + } + +} + +context TimeLabelUseKind { + //[There are no constraints specified.] +} + +context TimeConstraint { + //Time constraint expression of type Boolean + constraint TimeConstraintType { + check: self.timeConstraintExpression.resolveDataType().name = 'Boolean' + message: self.prefix() + + "The expression given in the 'DataUse' specification shall evaluate to predefined type 'Boolean'." + } + + //Use of local variables only + constraint TimeConstraintVariables { + check: self.timeConstraintExpression.argument + ->closure(a | a.dataUse.argument)->collect(pb | pb.dataUse) + ->union(self.timeConstraintExpression.argument) + ->select(du | du.oclIsKindOf(VariableUse)) + ->forAll(du | self.container().oclAsType(Behaviour).getParticipatingComponents()->includes( + du.oclAsType(VariableUse).componentInstance)) + message: self.prefix() + + "The expression given in the 'DataUse' specification shall contain only 'Variable's that are local to the 'AtomicBehaviour' that contains this 'TimeConstraint'. That is, all 'VariableUse's shall reference the 'ComponentInstance's which participate in the 'AtomicBehaviour'." + } + + //Use of local time labels only + constraint TimeConstraintTimeLabels { + check: self.timeConstraintExpression.argument + ->closure(a | a.dataUse.argument)->collect(pb | pb.dataUse) + ->union(self.timeConstraintExpression.argument) + ->select(du | du.oclIsKindOf(TimeLabelUse)) + ->forAll(du | self.container().oclAsType(Behaviour).getParticipatingComponents()->includesAll( + du.oclAsType(TimeLabelUse).timeLabel.container().oclAsType(Behaviour).getParticipatingComponents())) + message: self.prefix() + + "In case of locally ordered 'TestDescription', the expression given in the 'DataUse' specification shall contain only 'TimeLabel's that are local to the 'AtomicBehaviour' that contains this 'TimeConstraint'. That is, all 'TimeLabel's shall be contained in 'AtomicBehaviour's involving the 'ComponentInstance's which participate in the 'AtomicBehaviour' that contains this 'TimeConstraint." + } + + //[Figure 7.2: Time operations] +} + +context TimeOperation { + //Component required in locally ordered test description + constraint TimeOperationComponent { + check: self.getParentTestDescription().isLocallyOrdered + implies not self.componentInstance.oclIsUndefined() + message: self.prefix() + + "If the 'TimeOperation' is contained in a locally ordered 'TestDescription' then the 'componentInstance' shall be specified." + } + + //Time operations on tester components only + constraint TimeOperationComponentRole { + check: (not self.componentInstance.oclIsUndefined() + and self.componentInstance.role = ComponentInstanceRole#Tester) + or (self.oclIsTypeOf(Quiescence) + and not self.oclAsType(Quiescence).gateReference.oclIsUndefined() + and self.oclAsType(Quiescence).gateReference.component.role = ComponentInstanceRole#Tester) + message: self.prefix() + + "A 'TimeOperation' shall be performed only on a 'ComponentInstance' in the role 'Tester'." + } + + //'Time' data type for period expression + constraint TimePeriodType { + check: self.period.resolveDataType().oclIsKindOf(Time) + message: self.prefix() + + "The 'DataUse' expression assigned to the 'period' shall evaluate to a data instance of the 'Time' data type." + } + +} + +context Wait { + //[There are no constraints specified.] +} + +context Quiescence { + //Exclusive use of gate reference or component instance + constraint QuiescenceTarget { + check: self.gateReference.oclIsUndefined() xor self.componentInstance.oclIsUndefined() + message: self.prefix() + + "If a 'GateReference' is provided, a 'ComponentInstance' shall not be provided and vice versa." + } + + //[Figure 7.3: Timer and timer operations] +} + +context Timer { + //[There are no constraints specified.] +} + +context TimerOperation { + //Timer operations on tester components only + constraint TimerOperationComponentRole { + check: self.componentInstance.role = ComponentInstanceRole#Tester + message: self.prefix() + + "A 'TimerOperation' shall be performed only on a 'ComponentInstance' in the role 'Tester'." + } + +} + +context TimerStart { + //'Time' data type for period expression + constraint TimerPeriodType { + check: self.period.resolveDataType().oclIsKindOf(Time) + message: self.prefix() + + "The 'DataUse' expression assigned to the 'period' shall evaluate to a data instance of the 'Time' data type." + } + +} + +context TimerStop { + //[There are no constraints specified.] +} + +context TimeOut { + //[There are no constraints specified.] +} + +context GateType { + //Compatible 'DataType's. + constraint GateType { + check: (self.kind = GateTypeKind#Procedure and self.allDataTypes()->forAll(t | + t.oclIsTypeOf(ProcedureSignature))) + or (self.kind = GateTypeKind#Message and self.allDataTypes()->forAll(t | t.oclIsTypeOf(StructuredDataType) + or t.oclIsKindOf(SimpleDataType) or t.oclIsTypeOf(CollectionDataType))) + message: self.prefix() + + "The 'DateType's specified for the 'GateType' shall correspond the kind of the 'GateType'. For 'GateType' of kind 'Procedure' only 'ProcedureSignature's shall be specified as data types. For 'GateType' of kind 'Message' only 'StructuredDataType's, 'SimpleDataType's and 'CollectionDataType's shall be specified as data types. " + } + +} + +context GateInstance { + //[There are no constraints specified.] +} + +context ComponentType { + //[There are no constraints specified.] + //[Figure 8.2: Test configuration] +} + +context ComponentInstance { + //[There are no constraints specified.] +} + +context GateReference { + //Gate instance of the referred component instance + constraint GateInstanceReference { + check: self.component.type.allGates()->includes(self.gate) + message: self.prefix() + + "The referred 'GateInstance' shall be contained in the 'ComponentType' of the referred 'ComponentInstance'." + } + +} + +context Connection { + //Self-loop connections are not permitted + constraint NoSelfLoop { + check: self.endPoint->forAll(e1 | self.endPoint->one(e2 | e1.gate = e2.gate + and e1.component = e2.component)) + message: self.prefix() + + "The 'endPoint's of a 'Connection' shall not be the same. Two endpoints are the same if both, the referred 'ComponentInstance's and the referred 'GateInstance's, are identical." + } + + //Consistent type of a connection + constraint ConsistentConnectionType { + check: self. endPoint.gate.type->asSet()->size() = 1 + message: self.prefix() + + "The 'GateInstance's of the two 'endPoint's of a 'Connection' shall refer to the same 'GateType'." + } + +} + +context TestConfiguration { + //'TestConfiguration' and components roles + constraint ComponentRoles { + check: self.componentInstance->exists(c | c.role = ComponentInstanceRole#Tester) + and self.componentInstance->exists(c | c.role = ComponentInstanceRole#SUT) + message: self.prefix() + + "A 'TestConfiguration' shall contain at least one 'Tester' and one 'SUT' 'ComponentInstance'." + } + + //Only 'Connection's between own 'ComponentInstance's + constraint OwnedComponents { + check: self.connection->forAll(c | + self.componentInstance->includesAll(c.endPoint.component)) + message: self.prefix() + + "A 'TestConfiguration' shall only contain 'Connection's between gates of its own 'ComponentInstance's. " + } + + //Minimal 'TestConfiguration' + constraint MinimalTestConfiguration { + check: self.connection->exists(c | + c.endPoint.component.role->includesAll(Set{ComponentInstanceRole#SUT, ComponentInstanceRole#Tester})) + message: self.prefix() + + "Each 'TestConfiguration' shall specify at least one 'Connection' that connects a 'GateInstance' of a 'ComponentInstance' in the role 'Tester' with a 'GateInstance' of a 'ComponentInstance' in the role 'SUT'." + } + + //At most one connection between any two 'GateInstance'/'ComponentInstance' pairs + constraint UniqueConnections { + check: self.connection->forAll(c1 | self.connection->one(c2 | + not c1.endPoint->reject(ep1 | not c2.endPoint->exists(ep2 | + ep1.component = ep2.component and ep1.gate = ep2.gate + ))->isEmpty())) + message: self.prefix() + + "Given the set of 'Connection's contained in a 'TestConfiguration'. There shall be no two 'Connection's containing 'GateReference's that in turn refer to identical pairs of 'GateInstance'/'ComponentInstance'." + } + +} + +context TestDescription { + //[There are no constraints specified.] +} + +context BehaviourDescription { + //[There are no constraints specified.] +} + +context Behaviour { + //[There are no constraints specified.] +} + +context Block { + //Guard shall evaluate to Boolean + constraint GuardType { + check: self.`guard` ->forAll(g | g.expression.resolveDataType().name = 'Boolean') + message: self.prefix() + + "The type of 'guard' shall be 'Boolean'." + } + + //No directly contained 'ExceptionalBehaviour's and 'PeriodicBehaviour's. + constraint AllowedBehaviourTypes { + check: self.behaviour->forAll(b | + not b.oclIsTypeOf(ExceptionalBehaviour) and not b.oclIsTypeOf(PeriodicBehaviour)) + message: self.prefix() + + "A 'Block' shall not contain 'ExceptionalBehaviour's and 'PeriodicBehaviour's." + } + + //Guard for each participating tester in locally ordered test descriptions + constraint GuardsForParticipatingComponents { + check: self.`guard`->size() = 0 + or self.getParticipatingComponents()->reject(c | c.role = ComponentInstanceRole#SUT) + ->forAll(c | self.`guard`->exists(ex | ex.componentInstance = c)) + or not self.getParentTestDescription().isLocallyOrdered + message: self.prefix() + + "If the 'Block' is contained in a locally ordered 'TestDescription' then a guard shall be specified for every participating 'ComponentInstance' in the associated 'TestConfiguration' that has the role 'Tester' or there shall be no guards at all. " + } + + //Single guard in totally ordered test description + constraint SingleTotalGuard { + check: self.getParentTestDescription().isLocallyOrdered or self.`guard`->size() <= 1 + message: self.prefix() + + "If the 'Block' is contained in a totally ordered 'TestDescription' then there shall not be more than one guard. " + } + +} + +context LocalExpression { + //Local expressions in locally ordered test descriptions have 'ComponentInstance' specified + constraint LocalExpressionComponent { + check: self.getParentTestDescription().isLocallyOrdered + implies not self.componentInstance.oclIsUndefined() + message: self.prefix() + + "If the 'LocalExpression' is contained in a locally ordered 'TestDescription' then the componentInstance shall be specified. " + } + + //Only local variables and time labels in case of locally ordered test description + constraint LocalVariablesAndTimersInExpression { + check: self.expression.argument + ->closure(a | a.dataUse.argument)->collect(pb | pb.dataUse) + ->union(self.expression.argument) + ->including(self.expression) + ->select(du | du.oclIsKindOf(VariableUse)) + ->forAll(du | du.oclAsType(VariableUse).componentInstance = self.componentInstance) + and self.expression.argument + ->closure(a | a.dataUse.argument)->collect(pb | pb.dataUse) + ->union(self.expression.argument) + ->including(self.expression) + ->select(du | du.oclIsKindOf(TimeLabelUse)) + ->forAll(du | du.oclAsType(TimeLabelUse).timeLabel.container().oclAsType(Behaviour) + .getParticipatingComponents()->includes(self.componentInstance)) + message: self.prefix() + + "If the componentInstance is specified then all 'Variable's and 'TimeLabel's used in the expression shall be local to that 'ComponentInstance'." + } + +} + +context CombinedBehaviour { + //[There are no constraints specified.] +} + +context SingleCombinedBehaviour { + //[There are no constraints specified.] +} + +context CompoundBehaviour { + //[There are no constraints specified.] +} + +context BoundedLoopBehaviour { + //No guard constraint + constraint BoundedGuard { + check: self.block->forAll(b | b.`guard`.oclIsUndefined()) + message: self.prefix() + + "The 'Block' of a 'BoundedLoopBehaviour' shall not have a 'guard'." + } + + //Iteration number shall be countable and positive + constraint LoopIteration { + check: self.numIteration->forAll(e | e.expression.resolveDataType().conformsTo('Integer')) + message: self.prefix() + + "The expression assigned to the 'numIteration' property shall evaluate to a countable 'SimpleDataInstance' of an arbitrary user-defined data type, e.g. a positive Integer value." + } + + //Iteration count in locally ordered test descriptions + constraint IterationCountsForParticipatingComponents { + check: self.block.getParticipatingComponents()->reject(c | c.role = ComponentInstanceRole#SUT) + ->forAll(c | self.numIteration->exists(ex | ex.componentInstance = c)) + or not self.getParentTestDescription().isLocallyOrdered + message: self.prefix() + + "If the 'BoundedLoopBehaviour' is contained in a locally ordered 'TestDescription' then a numIteration shall be specified for every participating 'ComponentInstance' that has the role 'Tester'." + } + + //Single numIteration in totally ordered test description + constraint SingleTotalIterationCount { + check: self.getParentTestDescription().isLocallyOrdered or self.numIteration->size() = 1 + message: self.prefix() + + "If the 'BoundedLoopBehaviour' is contained in a totally ordered 'TestDescription' then there shall be exactly one numIteration." + } + +} + +context UnboundedLoopBehaviour { + //[There are no constraints specified.] +} + +context OptionalBehaviour { + //First 'AtomicBehaviour' in block allowed + constraint OptionalBehaviourStart { + check: self.block.behaviour->first().oclIsKindOf(Interaction) + and self.block.behaviour->first().oclAsType(Interaction) + ->collect(i | i.sourceGate.component->union(i.target.targetGate.component)) + ->forAll(c | c.role = ComponentInstanceRole#Tester) + message: self.prefix() + + "The block of an 'OptionalBehaviour' shall start with a tester-to-tester 'Interaction'. " + } + + //No other testers except the participants of starting 'Interaction' within 'OptionalBehaviour' in locally ordered 'TestDescription' + constraint OptionalBehaviourParticipation { + check { var initial = self.block.behaviour->first().oclAsType(Interaction); + var initialComponents = initial->collect(i | i.sourceGate.component->union(i.target.targetGate.component)); + var optionals = self.block->closure( + b | b.behaviour + ->select(oclIsKindOf(SingleCombinedBehaviour)).oclAsType(SingleCombinedBehaviour).block + ->union(b.behaviour + ->select(oclIsKindOf(MultipleCombinedBehaviour)).oclAsType(MultipleCombinedBehaviour).block) + ).behaviour->select(oclIsKindOf(OptionalBehaviour)).oclAsType(OptionalBehaviour); + var optionalTargets = optionals.block->select(b | b.behaviour->select(i | i.oclIsKindOf(Interaction))->first().oclAsType(Interaction).target.targetGate.component); self.block.getParticipatingComponents() + ->forAll(c | initialComponents->includes(c) or optionalTargets->includes(c)) + or not self.getParentTestDescription().isLocallyOrdered; } + message: self.prefix() + + "If an 'OptionalBehaviour' is included in a locally ordered 'TestDescription' then no other tester 'ComponentInstance' shall participate in the block of the 'OptionalBehaviour' than the source and target of the starting 'Interaction' except when being a target of the starting 'Interaction' in a nested 'OptionalBehaviour'. " + } + +} + +context MultipleCombinedBehaviour { + //[There are no constraints specified.] +} + +context AlternativeBehaviour { + //Number of 'Block's + constraint AlternativeBlockCount { + check: self.block->size() > 1 + message: self.prefix() + + "An 'AlternativeBehaviour' shall contain at least two 'Block's. " + } + + //First behaviour of 'Block's + constraint FirstBlockBehaviour { + check: self.block->forAll(b | b.behaviour->first().isTesterInputEvent()) + message: self.prefix() + + "Each block of an 'AlternativeBehaviour' shall start with a tester-input event. " + } + + //Same component if locally ordered + constraint AlternativeBlocksComponent { + check { var initial = self.block.behaviour->first(); Set{} + ->including(initial->select(oclIsKindOf(Interaction)).oclAsType(Interaction).target.targetGate.component) + ->including(initial->select(oclIsKindOf(Quiescence)).oclAsType(Quiescence).componentInstance) + -> including(initial->select(oclIsKindOf(TimeOut)).oclAsType(TimeOut).componentInstance) + ->size() = 1 or not self.getParentTestDescription().isLocallyOrdered; } + message: self.prefix() + + "If the containing 'TestDescription' is locally ordered then all 'Block's shall start with a tester-input event of the same 'ComponentInstance'. " + } + + //Tester participating in locally ordered case + constraint AlternativeBehaviourParticipation { + check { var initial = self.block.behaviour->first(); + var targetComponent = Set{} + ->including(initial->select(oclIsKindOf(Interaction)).oclAsType(Interaction).target.targetGate.component) + ->including(initial->select(oclIsKindOf(Quiescence)).oclAsType(Quiescence).componentInstance) + -> including(initial->select(oclIsKindOf(TimeOut)).oclAsType(TimeOut).componentInstance); + var nonOptionalBlocks = self.block->closure( + b | b.behaviour->reject(oclIsKindOf(OptionalBehaviour)) + ->select(oclIsKindOf(SingleCombinedBehaviour)).oclAsType(SingleCombinedBehaviour).block + ->union(b.behaviour->reject(oclIsKindOf(OptionalBehaviour)) + ->select(oclIsKindOf(MultipleCombinedBehaviour)).oclAsType(MultipleCombinedBehaviour).block) + ); targetComponent->includesAll( + nonOptionalBlocks.getParticipatingComponents()->reject(c | c.role = ComponentInstanceRole#SUT)) + or not self.getParentTestDescription().isLocallyOrdered; } + message: self.prefix() + + "If the 'AlternativeBehaviour' is contained in a locally ordered 'TestDescription' then no other tester 'ComponentInstance' shall participate in any block than the target of the first tester-input event and 'ComponentInstance's participating in blocks of contained 'OptionalBehaviour's. " + } + + //OptionalBehaviour in locally ordered case + constraint OptionalAlternativeBehaviour { + check { var initial = self.block.behaviour->first(); + var targetComponent = Set{} + ->including(initial->select(oclIsKindOf(Interaction)).oclAsType(Interaction).target.targetGate.component) + ->including(initial->select(oclIsKindOf(Quiescence)).oclAsType(Quiescence).componentInstance) + -> including(initial->select(oclIsKindOf(TimeOut)).oclAsType(TimeOut).componentInstance); self.block.behaviour->select(oclIsKindOf(OptionalBehaviour)) .oclAsType(OptionalBehaviour).block + ->first().oclAsType(Interaction).sourceGate.component->forAll(c | targetComponent->includes(c)) + or not self.getParentTestDescription().isLocallyOrdered; } + message: self.prefix() + + "A block of an 'AlternativeBehaviour' if the containing 'TestDescription' is locally ordered, shall only contain 'OptionalBehaviour'(s) whose source 'ComponentInstance' is the same as the target of the first tester-input event of that 'Block'. " + } + +} + +context ConditionalBehaviour { + //Guard for 'ConditionalBehaviour' with single block + constraint ConditionalFirstGuard { + check: self.block->size() > 1 or self.block->first().`guard`->size() > 1 + message: self.prefix() + + "If there is only one 'Block' specified, it shall have a 'guard'." + } + + //Possible else block for 'ConditionalBehaviour' with multiple blocks + constraint ConditionalLastGuard { + check: self.block->size() = 1 + or self.block->forAll(b | b = self.block->last() or b.`guard` ->size() > 1) + message: self.prefix() + + "All 'Block's specified, except the last one, shall have a 'guard'." + } + +} + +context ParallelBehaviour { + //Number of blocks in 'ParallelBehaviour' + constraint ParallelBlockCount { + check: self.block->size() > 1 + message: self.prefix() + + "There shall be at least two 'Block's specified." + } + + //[Figure 9.3: Exceptional and periodic behaviour] +} + +context ExceptionalBehaviour { + //First 'AtomicBehaviour' in block allowed + constraint FirstExceptionalBehaviour { + check: self.block.behaviour->first().isTesterInputEvent() + message: self.prefix() + + "The block of an 'ExceptionalBehaviour' shall start with a tester-input event." + } + + //Guarded component shall be a 'Tester' component + constraint ExceptionalGuardedComponent { + check: self.guardedComponent.oclIsUndefined() or self.guardedComponent.role = ComponentInstanceRole#Tester + message: self.prefix() + + "The 'guardedComponent' shall refer to a 'ComponentInstance' with the role of 'Tester'." + } + + //Same component if locally ordered and guarded component present + constraint ExceptionalGuardedandTargetComponent { + check { var initial = self.block.behaviour->first(); + var targetComponent = Set{} + ->including(initial->select(oclIsKindOf(Interaction)).oclAsType(Interaction).target.targetGate.component) + ->including(initial->select(oclIsKindOf(Quiescence)).oclAsType(Quiescence).componentInstance) + -> including(initial->select(oclIsKindOf(TimeOut)).oclAsType(TimeOut).componentInstance); guardedComponent->includesAll(targetComponent) + or not self.getParentTestDescription().isLocallyOrdered; } + message: self.prefix() + + "If the containing 'TestDescription' is locally ordered and guardedComponent is specified then the 'Block's shall start with tester-input event of the same 'ComponentInstance' as specified in guardedComponent. " + } + + //Tester participating in locally ordered case + constraint ExceptionalBehaviourParticipation { + check { var initial = self.block.behaviour->first(); + var targetComponent = Set{} + ->including(initial->select(oclIsKindOf(Interaction)).oclAsType(Interaction).target.targetGate.component) + ->including(initial->select(oclIsKindOf(Quiescence)).oclAsType(Quiescence).componentInstance) + -> including(initial->select(oclIsKindOf(TimeOut)).oclAsType(TimeOut).componentInstance); + var nonOptionalBlocks = self.block->closure( + b | b.behaviour->reject(oclIsKindOf(OptionalBehaviour)) + ->select(oclIsKindOf(SingleCombinedBehaviour)).oclAsType(SingleCombinedBehaviour).block + ->union(b.behaviour->reject(oclIsKindOf(OptionalBehaviour)) + ->select(oclIsKindOf(MultipleCombinedBehaviour)).oclAsType(MultipleCombinedBehaviour).block) + ); targetComponent->includesAll( + nonOptionalBlocks.getParticipatingComponents()->reject(c | c.role = ComponentInstanceRole#SUT)) + or not self.getParentTestDescription().isLocallyOrdered; } + message: self.prefix() + + "If the 'ExceptionalBehaviour' is contained in a locally ordered 'TestDescription' then no other tester 'ComponentInstance' shall participate in any block than the target of the first tester-input event and 'ComponentInstance's participating in blocks of contained 'OptionalBehaviour's . " + } + + //OptionalBehaviour in locally ordered case + constraint OptionalExceptionalBehaviour { + check { var initial = self.block.behaviour->first(); + var targetComponent = Set{} + ->including(initial->select(oclIsKindOf(Interaction)).oclAsType(Interaction).target.targetGate.component) + ->including(initial->select(oclIsKindOf(Quiescence)).oclAsType(Quiescence).componentInstance) + -> including(initial->select(oclIsKindOf(TimeOut)).oclAsType(TimeOut).componentInstance); self.block.behaviour->select(oclIsKindOf(OptionalBehaviour)).oclAsType(OptionalBehaviour).block + ->first().oclAsType(Interaction).sourceGate.component->forAll(c | targetComponent->includes(c)) + or not self.getParentTestDescription().isLocallyOrdered; } + message: self.prefix() + + "A block of an 'ExceptionalBehaviour' if the containing 'TestDescription' is locally ordered, shall only contain 'OptionalBehaviour'(s) whose source 'ComponentInstance' is the same as the target of the first tester-input event of that 'Block'. " + } + +} + +context DefaultBehaviour { + //[There are no constraints specified.] +} + +context InterruptBehaviour { + //[There are no constraints specified.] +} + +context PeriodicBehaviour { + //'Time' data type for period expression + constraint PeriodType { + check: self.period->forAll(e | e.expression.resolveDataType().oclIsKindOf(Time)) + message: self.prefix() + + "The 'DataUse' expression assigned to the 'period' shall evaluate to a data instance of the 'Time' data type." + } + + //Period for each tester in locally ordered test descriptions + constraint PeriodForParticipatingComponents { + check: self.block.getParticipatingComponents()->reject(c | c.role = ComponentInstanceRole#SUT) + ->forAll(c | self.period->exists(ex | ex.componentInstance = c)) + or not self.getParentTestDescription().isLocallyOrdered + message: self.prefix() + + "If the 'PeriodicBehaviour' is contained in a locally ordered 'TestDescription' then a period shall be specified for every 'ComponentInstance' that has the role 'Tester' and for which there is a behaviour in the contained 'Block'. " + } + +} + +context AtomicBehaviour { + //[There are no constraints specified.] +} + +context Break { + //Break in conditional behaviour only + constraint ConditionalBreak { + check: self.container().container().oclIsKindOf(ConditionalBehaviour) + message: self.prefix() + + "A 'Break' shall be contained directly in the block of a 'ConditionalBehaviour'. " + } + + //No behaviours after break + constraint BreakIsLast { + check: self.container().oclAsType(Block).behaviour->last() = self + message: self.prefix() + + "A 'Break' shall be the last behaviour in the containing 'Block'. " + } + +} + +context Stop { + //[There are no constraints specified.] +} + +context VerdictAssignment { + //Verdict of type 'Verdict' + constraint VerdictType { + check: self.verdict.resolveDataType().name = 'Verdict' + message: self.prefix() + + "The 'verdict' shall evaluate to a, possibly predefined, instance of a 'SimpleDataInstance' of data type 'Verdict'." + } + + //No 'SpecialValueUse' + constraint VerdictNoSpecialValueUse { + check: not self.verdict.oclIsKindOf(SpecialValueUse) + message: self.prefix() + + "The 'verdict' shall not evaluate to an instance of a 'SpecialValueUse'." + } + +} + +context Assertion { + //Boolean condition + constraint AssertionOtherwise { + check: self.condition.resolveDataType().name = 'Boolean' + message: self.prefix() + + "The 'condition' shall evaluate to predefined 'DataType' 'Boolean'." + } + + //Otherwise of type 'Verdict' + constraint AssertionVerdict { + check: self.otherwise.oclIsUndefined() or self.otherwise.resolveDataType().name = 'Verdict' + message: self.prefix() + + "The 'otherwise' shall evaluate to a, possibly predefined, instance of a 'SimpleDataInstance' of data type 'Verdict'." + } + + //No 'SpecialValueUse' + constraint AssertionNoSpecialValueUse { + check: self.otherwise.oclIsUndefined() or not self.otherwise.oclIsKindOf(SpecialValueUse) + message: self.prefix() + + "The 'otherwise' shall not evaluate to an instance of a 'SpecialValueUse'." + } + + //[Figure 9.5: Interaction behaviour] +} + +context Interaction { + //Gate references of an interaction shall be connected + constraint ConnectedInteractionGates { + check: self.target->forAll(t | + self.getParentTestDescription().testConfiguration.connection->exists(c | + not c.endPoint->reject(ep | + (ep.component = self.sourceGate.component and ep.gate = self.sourceGate.component) or + (ep.component = t.targetGate.component and ep.gate = t.targetGate.gate) + )->isEmpty())) + message: self.prefix() + + "The 'GateReference's that act as source or target(s) of an 'Interaction' shall be interconnected by a 'Connection' which is contained in the 'TestConfiguration' referenced by the 'TestDescription' containing the 'Interaction'." + } + +} + +context Message { + //'DataType' resolvable + constraint DataTypeResolvable { + check: not self.argument.oclIsUndefined() + message: self.prefix() + + "If the 'argument' is 'DataInstanceUse', either the 'dataType' property or the 'dataInstance' property shall be provided. If the 'argument' is a 'DataElementUse', the 'dataElement' property shall be provided." + } + + //Type of message argument + constraint MessageArgumentAndGateType { + check: (self.argument.oclIsKindOf(AnyValue) + and self.argument. resolveDataType().oclIsUndefined()) + or (self.sourceGate.gate.type.allDataTypes()-> exists(t | self.argument.resolveDataType().conformsTo(t)) + and self.target->forAll(t | t.targetGate.gate.type.allDataTypes()->exists(t | self.argument.resolveDataType().conformsTo(t)))) + message: self.prefix() + + "The 'DataUse' specification referred to in the 'argument' shall match one of the 'DataType's referenced in the 'GateType' definition of the 'GateInstance's referred to by the source and target 'GateReference's of the 'Interaction'." + } + + //Use of variables in the 'argument' specification + constraint MessageArgumentVariableUse { + check: (not self.argument.oclIsKindOf(VariableUse) + or (self.sourceGate.component = self.argument.oclAsType(VariableUse).componentInstance + or self.target->exists(t | + t.targetGate.component = self.argument.oclAsType(VariableUse).componentInstance))) + + and self.argument.argument->forAll(a | + not a.dataUse.oclIsKindOf(VariableUse) + or (self.sourceGate.component = a.dataUse.oclAsType(VariableUse).componentInstance + or self.target->exists(t | + t.targetGate.component = a.dataUse.oclAsType(VariableUse).componentInstance))) + + and self.argument.argument->closure(a | a.dataUse.argument)->forAll(a | + not a.dataUse.oclIsKindOf(VariableUse) + or (self.sourceGate.component = a.dataUse.oclAsType(VariableUse).componentInstance + or self.target->exists(t | + t.targetGate.component = a.dataUse.oclAsType(VariableUse).componentInstance))) + message: self.prefix() + + "The use of 'Variable's in the 'DataUse' specification shall be restricted to 'Variable's of 'ComponentInstance's that participate in this 'Message' via the provided 'GateReference's." + } + + //Conforming data type for 'argument' and 'variable' + constraint MessageArgumentAndVariableType { + check: self.target->forAll(t | t.valueAssignment->size() = 0 + or not self.argument.resolveDataType().oclIsUndefined() + and t.valueAssignment->forAll(v | self.argument.resolveDataType().conformsTo(v.variable.dataType))) + message: self.prefix() + + "If a 'Variable' is specified for a 'Target', the 'DataType' of 'DataUse' specification of the 'argument' shall conform to the 'DataType's of referenced 'Variable's of all 'Target's." + } + +} + +context ProcedureCall { + //Only point-to-point procedure calls + constraint ProcedureCallTargetCount { + check: self.target->size() = 1 + message: self.prefix() + + "The 'target' of 'ProcedureCall' shall contain exactly one 'Target'. " + } + + //Each call has a reply + constraint ProcedureCallHasReply { + check: ProcedureCall.allInstances()->exists(pc | pc.replyTo = self) + message: self.prefix() + + "For every 'ProcedureCall' with empty 'replyTo' there shall be one or more 'ProcedureCall's that have this 'ProcedureCall' as 'replyTo'. " + } + + //Call and reply within the same 'TestDescription' + constraint ProcedureCallAndReply { + check: self.replyTo.oclIsUndefined() + or self.replyTo.getParentTestDescription() = self.getParentTestDescription() + message: self.prefix() + + "The 'ProcedureCall' referenced in the 'replyTo' shall be within the same 'TestDescription' as this 'ProcedureCall'. " + } + + //Call and reply between same components + constraint ProcedureCallReplyGates { + check: ProcedureCall.allInstances()->select(pc | pc.replyTo = self)->forAll( + reply | + reply.target->forAll(t | t.targetGate.component = self.sourceGate.component) + and reply.target->forAll(t | t.targetGate.gate = self.sourceGate.gate) + and self.target->forAll(t | t.targetGate.component = reply.sourceGate.component) + and self.target->forAll(t | t.targetGate.gate = reply.sourceGate.gate)) + message: self.prefix() + + "The 'sourceGate' and 'target' of a 'ProcedureCall' with 'replyTo' shall match the 'target' and 'sourceGate' of the 'ProcedureCall' in the 'replyTo'. That is, corresponding 'GateReference's shall be the equal. " + } + + //Synchronous procedure calls + constraint ProcedureCallSynchronousCalling { + check { var source = self.sourceGate.component; + var affectingBehaviours = self.container().oclAsType(Block).behaviour + ->reject(b | b.oclIsKindOf(ActionBehaviour) + and b.oclAsType(ActionBehaviour).componentInstance <> source) + ->reject(b | b.oclIsKindOf(Interaction) + and b.oclAsType(Interaction).sourceGate.component <> source + and b.oclAsType(Interaction).target->forAll(t | t.targetGate.component <> source)) + ->reject(b| b.oclIsKindOf(TestDescriptionReference) + and (not b.oclAsType(TestDescriptionReference).componentInstanceBinding->isEmpty() + and not b.oclAsType(TestDescriptionReference).componentInstanceBinding + .actualComponent->includes(self))); + var following = affectingBehaviours ->at(affectingBehaviours->indexOf(self) + 1);(following.oclIsKindOf(ProcedureCall) and following.oclAsType(ProcedureCall).replyTo = self) + or (following.oclIsKindOf(AlternativeBehaviour) + and following.oclAsType(AlternativeBehaviour).block->exists( + b | b.behaviour->first().oclIsKindOf(ProcedureCall) + and b.behaviour->first().oclAsType(ProcedureCall).replyTo = self)); } + message: self.prefix() + + "A 'ProcedureCall' with empty 'replyTo' shall not be followed by any behaviour in which the component specified in the 'sourceGate' is participating, other than a 'ProcedureCall' that specifies this 'ProcedureCall' as 'replyTo' or an 'AlternativeBehaviour' that contains such a 'ProcedureCall' in the beginning of a 'block'. " + } + + //Type of procedure call + constraint ProcedureCallSignatureInGateTypes { + check: self.sourceGate.gate.type.allDataTypes()->includes(self.signature) + and self.target->forAll(targetGate.gate.type.allDataTypes()->includes(self.signature)) + message: self.prefix() + + "The 'ProcedureSignature' referred to in the 'procedure' shall be one of the 'DataType's referenced in the 'GateType' definition of the 'GateInstance's referred to by the source and target 'GateReference's of the 'ProcedureCall'. " + } + + //No mixing of parameters + constraint ProcedureParameterKind { + check: self.argument->collect(pb | pb.parameter.oclAsType(ProcedureParameter).kind) + ->asSet()->size() <= 1 + message: self.prefix() + + "All 'ParameterBinding's specified in the 'argument' shall refer to 'ProcedureParameter's of the same 'ParameterKind'. " + } + + //Matching procedure arguments + constraint ProcedureCallArguments { + check: (self.replyTo.oclIsUndefined() and self.signature.parameter->select(p | p.kind = ParameterKind#In) + ->forAll(p | self.argument.parameter->includes(p))) + or (not self.replyTo.oclIsUndefined() and self.signature.parameter->reject(p | p.kind = ParameterKind#In) + ->forAll(p | self.argument.parameter->includes(p))) + message: self.prefix() + + "For a 'ProcedureCall' with empty 'replyTo' there shall be one 'ParameterBinding' instance in the 'argument' for each 'ProcedureParameter' with kind 'In' in the associated 'ProcedureSignature'. For a 'ProcedureCall' with 'replyTo' there shall be one 'ParameterBinding' instance in the 'argument' for each 'ProcedureParameter' with kind 'Out' or 'Exception' in the associated 'ProcedureSignature'. " + } + + //Use of variables in the 'argument' specification + constraint ProcedureCallVariableUse { + check: self.argument + ->closure(pb | pb.dataUse.argument)->union(self.argument)->collect(pb | pb.dataUse) + ->select(du | du.oclIsKindOf(VariableUse)) + ->forAll(du | self.getParticipatingComponents()->includes( + du.oclAsType(VariableUse).componentInstance)) + message: self.prefix() + + "The use of 'Variable's in the 'DataUse' specifications in 'ParameterBinding's shall be restricted to 'Variable's of 'ComponentInstance's that participate in this 'ProcedureCall' via the provided 'GateReference's. " + } + + //Reply not starting event of exceptional behaviour + constraint ProcedureCallReplyNotInExceptional { + check: self.replyTo.oclIsUndefined() or not self.container().container().oclIsKindOf(ExceptionalBehaviour) + message: self.prefix() + + "A 'ProcedureCall' that specifies replyTo shall not be the first behaviour of a block in an 'ExceptionalBehaviour'. " + } + +} + +context Target { + //Variable and target gate of the same component instance + constraint TargetComponent { + check: self.valueAssignment->isEmpty() + or self.targetGate.component.type.allVariables()->includesAll(self.valueAssignment.variable) + message: self.prefix() + + "The 'Variable's referenced by 'valueAssignment' shall exist in the same 'ComponentType' as the 'GateInstance' that is referred to by the 'GateReference' of the 'targetGate'." + } + + //Variable of a tester component only + constraint TargetVariableComponentRole { + check: self.valueAssignment->isEmpty () or self.targetGate.component.role = ComponentInstanceRole#Tester + message: self.prefix() + + "If a 'ValueAssignment' is specified, the 'ComponentInstance' referenced by 'targetGate' shall be in the role 'Tester'." + } + +} + +context ValueAssignment { + //Conforming data type for 'parameter' and 'variable' + constraint AssignedParamterType { + check: self.parameter.oclIsUndefined() or self.parameter.dataType.conformsTo(self.variable.dataType) + message: self.prefix() + + "If the 'parameter' is specified then its type shall conform to the type of the 'variable'. " + } + + //Parameter of associated procedure signature + constraint AssignedProcedureParameter { + check: self.parameter.oclIsUndefined() + or (self.container().container().oclIsKindOf(ProcedureCall) and + self.container().container().oclAsType(ProcedureCall).signature.parameter->includes(self.parameter)) + message: self.prefix() + + "If the 'parameter' is specified then it shall be contained in the 'ProcedureSignature' that is referred in the 'signature' ot the 'ProcedureCall' containing this 'ValueAssignment'." + } + + //[Figure 9.6: Test description reference] +} + +context TestDescriptionReference { + //All test description parameters bound + constraint AllTestDescriptionParametersBound { + check: self.testDescription.formalParameter->forAll(p | self.argument->exists(a | a.parameter = p)) + message: self.prefix() + + "For each 'FormalParameter' defined in 'formalParameter of' the referenced 'TestDescription' there shall be a 'ParameterBinding' in 'argument' that refers to that 'FormalParameter' in 'parameter'." + } + + //No use of variables in arguments + constraint NoVariablesInLocallyOrderedTestDescriptionReference { + check: self.argument. dataUse->forAll(du | + not du.oclIsKindOf(VariableUse) + and du.argument->forAll(a | not a.dataUse.oclIsKindOf(VariableUse)) + and du.argument->closure(a | a.dataUse.argument)->forAll(a | + not a.dataUse.oclIsKindOf(VariableUse))) + message: self.prefix() + + "In locally ordered 'TestDescription's, 'DataUse' expressions used to describe arguments shall not contain variables directly or indirectly in 'TestDescriptionReference's." + } + + //No use of time labels in arguments + constraint NoTimeLabelsInLocallyOrderedTestDescriptionReference { + check: self.argument.dataUse->forAll(du | + not du.oclIsKindOf(TimeLabelUse) + and du.argument->forAll(a | not a.dataUse.oclIsKindOf(TimeLabelUse)) + and du.argument->closure(a | a.dataUse.argument)->forAll(a | + not a.dataUse.oclIsKindOf(TimeLabelUse))) + message: self.prefix() + + "In locally ordered 'TestDescription's, 'DataUse' expressions used to describe arguments shall not contain time labels directly or indirectly in 'TestDescriptionReference's." + } + + //Restriction to 1:1 component instance bindings + constraint UniqueComponentBindings { + check: self.componentInstanceBinding->isEmpty() + or self.componentInstanceBinding->forAll(b | + self.componentInstanceBinding->one(c | + c.formalComponent = b.formalComponent or c.actualComponent = b.actualComponent)) + message: self.prefix() + + "If component instance bindings are provided, the component instances referred to in the bindings shall occur at most once for the given test description reference." + } + + //Compatible test configurations + constraint CompatibleConfiguration { + check: self.testDescription.testConfiguration.compatibleWith( + self.getParentTestDescription().testConfiguration, self.componentInstanceBinding) + message: self.prefix() + + "The 'TestConfiguration' of the referenced (invoked) 'TestDescription' shall be compatible with the 'TestConfiguration' of the referencing (invoking) 'TestDescription' under the provided 'ComponentInstanceBinding's between the 'ComponentInstance's of the 'TestConfiguration's of referenced and referencing 'TestDescription's. " + } + + //No combining of local and total ordering + constraint LocalAndTotalOrdering { + check: self.getParentTestDescription().isLocallyOrdered = self.testDescription.isLocallyOrdered + message: self.prefix() + + "The referenced 'TestDescription' shall have the same ordering assumption as the referencing 'TestDescription'." + } + +} + +context ComponentInstanceBinding { + //Conforming component types + constraint BindingComponentTypes { + check: self.actualComponent.type.conformsTo(self.formalComponent.type) + message: self.prefix() + + "The 'ComponentType' of the actual 'ComponentInstance' shall conform to 'ComponentType' of the formal 'ComponentInstance." + } + + //Matching component instance roles + constraint BindingComponentRoles { + check: self.formalComponent.role = self.actualComponent.role + message: self.prefix() + + "Both, the formal and the actual component instances, shall have the same 'ComponentInstanceRole' assigned to." + } + + //[Figure 9.7: Action behaviour concepts] +} + +context ActionBehaviour { + //'ActionBehaviour' on 'Tester' components only + constraint ActionBehaviourComponentRole { + check: self.componentInstance.oclIsUndefined() or self.componentInstance.role = ComponentInstanceRole#Tester + message: self.prefix() + + "The 'ComponentInstance' that an 'ActionBehaviour' refers to shall be of role 'Tester'." + } + + //Known 'componentInstance' with locally-ordered behaviour + constraint ActionBehaviourComponentInstance { + check: not self.componentInstance.oclIsUndefined() or not self.getParentTestDescription().isLocallyOrdered + message: self.prefix() + + "The 'ComponentInstance' that an 'ActionBehaviour' refers to shall be specified if the 'ActionBehaviour' is used within a locally-ordered 'TestDescription'." + } + +} + +context ActionReference { + //All action parameters bound + constraint AllActionParametersBound { + check: self.action.formalParameter->forAll(p | self.argument.parameter->includes(p)) + message: self.prefix() + + "For each 'FormalParameter' defined in 'formalParameter of' the referenced 'Action' there shall be a 'ParameterBinding' in 'argument' that refers to that 'FormalParameter' in 'parameter'. " + } + + //No 'Function's in 'ActionReference' + constraint ActionReferenceFunction { + check: not self.action.oclIsTypeOf(Function) + message: self.prefix() + + "The referenced 'Action' shall not be a 'Function'." + } + +} + +context InlineAction { + //[There are no constraints specified.] +} + +context Assignment { + //Conforming data type + constraint AssignmentDataType { + check: self.expression.resolveDataType().conformsTo(self.variable.variable.dataType) + message: self.prefix() + + "The provided 'DataUse' expression shall conform to the 'DataType' of the referenced 'Variable'." + } + + //Empty 'argument' set for 'variable' + constraint AssignmentVariableArgument { + check: self.variable.argument->isEmpty() + message: self.prefix() + + "The 'argument' and 'reduction' sets shall be empty." + } + +} diff --git a/plugins/org.etsi.mts.tdl.constraints/epsilon/library/common.eol b/plugins/org.etsi.mts.tdl.constraints/epsilon/library/common.eol index ad7ad6cf499731778b00aeb434c42ccf1b63b56c..c4df3b4fa6ce2b671e21f8d2215ee6e006fe9eda 100644 --- a/plugins/org.etsi.mts.tdl.constraints/epsilon/library/common.eol +++ b/plugins/org.etsi.mts.tdl.constraints/epsilon/library/common.eol @@ -37,6 +37,10 @@ operation String size() : Integer { return self.length(); } +operation Any isUnique(): Boolean { + return self.forAll(v1 | self.select(v2 | v1 == v2).size() == 1); +} + //TODO: is it possible to define custom predicated operations? //operation Collection isUnique() : Boolean { // return not self.isEmpty(); diff --git a/plugins/org.etsi.mts.tdl.constraints/epsilon/library/debug.eol b/plugins/org.etsi.mts.tdl.constraints/epsilon/library/debug.eol index d35a78931d3b256d98e7a18263a18fcbcae49b63..417465175df0ad54d3972529f6663dd4e4dc1236 100644 --- a/plugins/org.etsi.mts.tdl.constraints/epsilon/library/debug.eol +++ b/plugins/org.etsi.mts.tdl.constraints/epsilon/library/debug.eol @@ -21,6 +21,29 @@ operation Any debugPassthrough(hint: String) : Any { return self; } +operation Any debugRM() : Boolean { + ( + ""+self + +"\n "+self.reduction + +"\n "+self.resolveDataType() + ).println(); + return true; +} + +operation Any debugGT() : Boolean { + //self.extension.extending.oclAsType(GateType).allDataTypes()->union(self.dataType)->asOrderedSet() + + + ( + ""+self + +"\n "+self.kind + +"\n "+self.dataType + +"\n "+self.allDataTypes() + ).println(); + return true; +} + + operation Any debugExtensions() : Boolean { ( ""+self diff --git a/plugins/org.etsi.mts.tdl.constraints/ocl/tdl-configurations-constraints.ocl b/plugins/org.etsi.mts.tdl.constraints/ocl/tdl-configurations-constraints.ocl new file mode 100644 index 0000000000000000000000000000000000000000..89e3e40e86eaa49a9f16f42d0e5947a707781e3e --- /dev/null +++ b/plugins/org.etsi.mts.tdl.constraints/ocl/tdl-configurations-constraints.ocl @@ -0,0 +1,29 @@ +import 'http://www.etsi.org/spec/TDL/1.4.1' +import 'http://www.etsi.org/spec/TDL/1.3.1/configurations' + +package extendedconfigurations + +context ComponentMerge + -- No self-merging + inv NoSelfMerge ('A \'ComponentInstance\' shall not be merged with itself, i.e. the source and target \'ComponentInstance\'s specified by means of the \'ComponentReference\'s shall be different. ' + self.toString()): + not (self.component.component = self.target.component and + self.component.configuration = self.target.configuration) + + + -- Conforming 'ComponentType's + inv ComponentMergeType ('The \'ComponentInstance\' specified by means of the target \'ComponentReference\'s shall have a \'ComponentType\' which conforms to the \'ComponentType\' of the source \'ComponentReference\'. ' + self.toString()): + self.target.component.type.conformsTo(self.component.component.type) + + + + +context ComponentAlias + -- Mandatory name + inv AliasMandatoryName ('The \'name\' property of the \'ComponentAlias\' shall be set and it shall not be an empty String.' + self.toString()): + not self.name.oclIsUndefined() and self.name.size() > 0 + + + + + +endpackage diff --git a/plugins/org.etsi.mts.tdl.constraints/ocl/tdl-constraints.ocl b/plugins/org.etsi.mts.tdl.constraints/ocl/tdl-constraints.ocl new file mode 100644 index 0000000000000000000000000000000000000000..6bc9670bce411dcbc698b997ae450d48a4ef8175 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.constraints/ocl/tdl-constraints.ocl @@ -0,0 +1,1152 @@ +import 'http://www.etsi.org/spec/TDL/1.4.1' + +package tdl + +context NamedElement + -- Mandatory name + inv MandatoryName ('A \'NamedElement\' shall have the \'name\' property set and the \'name\' shall be not an empty String.' + self.toString()): + not self.name.oclIsUndefined() and self.name.size() > 0 + + + -- Distinguishable qualified names + inv DistinquishableName ('All qualified names of instances of \'NamedElement\'s shall be distinguishable within a TDL model.' + self.toString()): + NamedElement.allInstances()->one(e | e.qualifiedName = self.qualifiedName) + + + -- [NOTE: It is up to the concrete syntax definition and tooling to resolve any name clashes between instances of the same meta-class in the qualified name.] + + +context Package + -- No cyclic imports + inv CyclicImports ('A \'Package\' shall not import itself directly or indirectly.' + self.toString()): + self.import->asOrderedSet()->closure(i | i.importedPackage.import)->forAll(i | + i.importedPackage <> self) + + + + +context ElementImport + -- Consistency of imported elements + inv ConsistentImports ('All imported \'PackageableElement\'s referenced by an \'ElementImport\' shall be directly owned by the imported \'Package\'.' + self.toString()): + self.importedElement->forAll(e | self.importedPackage.packagedElement->includes(e)) + + + -- [Figure 5.2: Miscellaneous elements] + + +context Comment + -- No nested comments + inv CommentNestedComments ('A \'Comment\' shall not contain \'Comment\'s.' + self.toString()): + self.comment->isEmpty() + + + -- No annotations to comments + inv CommentNestedAnnotations ('A \'Comment\' shall not contain \'Annotation\'s.' + self.toString()): + self.annotation->isEmpty() + + + + +context Annotation + -- No nested annotations + inv AnnotationNestedAnnotations ('An \'Annotation\' shall not contain \'Annotation\'s' + self.toString()): + self.annotation->isEmpty() + + + -- No comments to annotations + inv AnnotationNestedComments ('An \'Annotation\' shall not contain \'Comment\'s.' + self.toString()): + self.comment->isEmpty() + + + + +context Extension + -- Inherit from element of the same meta-class + inv Extension ('The element containing an \'Extension\' and the element in the \'extending\' property shall have the same meta-class.' + self.toString()): + self.container().oclType() = self.extending.oclType() + + + + +context Constraint + -- Effectively static quantifiers + inv StaticQuantifiers ('All \'DataUse\'s specified as \'quantifier\'s shall be effectively static.' + self.toString()): + self.quantifier->forAll(q | q.isEffectivelyStatic()) + + + -- Empty arguments for quantifiers + inv NoArgumentQuantifiers ('The \'argument\' sets for all \'DataUse\'s specified as \'quantifier\'s shall be empty.' + self.toString()): + self.quantifier->forAll(q | q.argument->isEmpty()) + + + -- Constraint applicability for 'union' and 'uniontype' + inv ConstraintApplicabilityUnionUniontype ('The predefined \'ConstraintType\'s \'union\' and \'uniontype\' shall be applied to \'StructuredDataType\'s only. ' + self.toString()): + (self.type.name = 'union' or self.type.name = 'uniontype') + implies self.container().oclIsTypeOf(StructuredDataType) + + + -- Constraint applicability for 'range' and 'format' + inv ConstraintApplicabilityRangeFormat ('The predefined \'ConstraintType\'s \'range\' and \'format\' shall be applied to \'SimpleDataType\'s and \'Member\'s with a \'SimpleDataType\' \'dataType\' only. ' + self.toString()): + (self.type.name = 'range' or self.type.name = 'format') + implies (self.container().oclIsTypeOf(SimpleDataType) + or (self.container().oclIsTypeOf(Member) + and self.container().oclAsType(Member).dataType.oclIsTypeOf(SimpleDataType))) + + + -- Constraint applicability for 'length', 'minLength', and 'maxLength' + inv ConstraintApplicabilityLength ('The predefined \'ConstraintType\'s \'length\', \'minLength\', and \'maxLength\' shall be applied to \'CollectionDataType\'s, \'SimpleDataType\'s and \'Member\'s with a \'SimpleDataType\' or a \'CollectionDataType\' \'dataType\' only. ' + self.toString()): + (self.type.name = 'length' or self.type.name = 'minLength' or self.type.name = 'maxLength') + implies (self.container().oclIsTypeOf(SimpleDataType) + or self.container().oclIsTypeOf(CollectionDataType) + or (self.container().oclIsTypeOf(Member) + and self.container().oclAsType(Member).dataType.oclIsTypeOf(SimpleDataType)) + and self.container().oclAsType(Member).dataType.oclIsTypeOf(CollectionDataType)) + + + -- Quantifiers for 'length', 'minLength', and 'maxLength' + inv ConstraintQuantifierLength ('The predefined \'ConstraintType\'s \'length\', \'minLength\', and \'maxLength\' shall be used with exactly one \'quantifier\' resolved to an instance conforming to the predefined \'Integer\' \'DataType\'. ' + self.toString()): + (self.type.name = 'length' or self.type.name = 'minLength' or self.type.name = 'maxLength') + implies (self.quantifier->size() = 1 + and self.quantifier->forAll(q | q.resolveDataType().conformsTo('Integer'))) + + + -- Quantifiers for 'range' + inv ConstraintQuantifierRange ('The predefined \'ConstraintType\' \'range\' shall be used with exactly two \'quantifier\'s resolved to instance conforming to the predefined \'Integer\' \'DataType\'. ' + self.toString()): + (self.type.name = 'length') + implies (self.quantifier->size() = 2 + and self.quantifier->forAll(q | q.resolveDataType().conformsTo('Integer'))) + + + + +context DataElementMapping + -- Restricted use of 'ParameterMapping' + inv ParameterMappingType ('A set of \'ParameterMapping\'s may only be provided if \'mappableDataElement\' refers to a \'StructuredDataType\', an \'Action\' or a \'Function\' definition and the \'mappableDataElement\' contains the mapped \'Parameters\'.' + self.toString()): + self.parameterMapping->size() = 0 + or (self.mappableDataElement.oclIsTypeOf(StructuredDataType) + and self.parameterMapping->forAll(p | + self.mappableDataElement.oclAsType(StructuredDataType).allMembers()->includes(p.parameter))) + or (self.mappableDataElement.oclIsKindOf(Action) + and self.parameterMapping->forAll(p | + self.mappableDataElement.oclAsType(Action).formalParameter->includes(p.parameter))) + + + -- All parameters shall be mapped + inv ParameterMappings ('If the \'mappableDataElement\' refers to a \'StructuredDataType\', an \'Action\' or a \'Function\' definition, all the \'Parameters\' contained in the \'mappableDataElement\' shall be mapped.' + self.toString()): + (self.mappableDataElement.oclIsKindOf(SimpleDataType) or self.mappableDataElement.oclIsKindOf(DataInstance) + or (self.mappableDataElement.oclIsTypeOf(StructuredDataType) + and self.mappableDataElement.oclAsType(StructuredDataType).member->forAll(p | + self.parameterMapping->exists(m | m.parameter = p))) + or (self.mappableDataElement.oclIsKindOf(Action) + and self.mappableDataElement.oclAsType(Action).formalParameter->forAll(p | + self.parameterMapping->exists(m | m.parameter = p)) + and self.parameterMapping->forAll(p | + self.mappableDataElement.oclAsType(Action).formalParameter->includes(p.parameter)))) + + + + +context SimpleDataInstance + -- SimpleDataInstance shall refer to SimpleDataType + inv SimpleDataInstanceType ('The inherited reference \'dataType\' from \'DataInstance\' shall refer to instances of \'SimpleDataType\' solely.' + self.toString()): + self.dataType.oclIsKindOf(SimpleDataType) + + + -- SimpleDataInstance container in EnumDataType + inv EnumDataInstanceContainment ('A \'SimpleDataInstance\' whose \'dataType\' property refers to an \'EnumDataType\' shall be contained in that \'EnumDataType\'.' + self.toString()): + not self.dataType.oclIsKindOf(EnumDataType) or self.oclContainer() = self.dataType + + + -- [Figure 6.3: Structured data type and instance] + + +context StructuredDataType + -- Different member names in a structured data type + inv DistinguishableMemberNames ('All \'Member\' names of a \'StructuredDataType\' (including the names of inherited \'Members\') shall be distinguishable.' + self.toString()): + self.allMembers()->isUnique(e | e.name) + + + + +context StructuredDataInstance + -- StructuredDataInstance shall refer to StructuredDataType + inv StructuredDataInstance ('The inherited reference \'dataType\' from \'DataInstance\' shall refer to instances of \'StructuredDataType\' solely.' + self.toString()): + self.dataType.oclIsTypeOf(StructuredDataType) + + + -- 'Member' of the 'StructuredDataType' + inv ExistingMemberOfDataType ('The referenced \'Member\' shall be contained in or inherited by the \'StructuredDataType\' that the \'StructuredDataInstance\', which contains this \'MemberAssignment\', refers to.' + self.toString()): + self.memberAssignment->forAll(a | self.dataType.oclAsType(StructuredDataType).allMembers()->includes(a.member)) + + + -- Unique assignments for each 'Member' of the 'StructuredDataType' + inv UniqueMemberAssignments ('There shall be at most one \'memberAssignment\' for each \'Member\' of the \'StructuredDataType\' that the \'StructuredDataInstance\', which contains this \'MemberAssignment\', refers to.' + self.toString()): + self.memberAssignment->isUnique(m | m.member) + + + -- 'union' constraint on the type of the 'StructuredDataInstance' + inv StructuredDataInstanceUnionConstraint ('If the \'dataType\' of the \'StructuredDataInstance\' has the predefined constraint \'union\' then the \'memberAssignment\' shall not contain more than one \'MemberAssignment\'.' + self.toString()): + not self.dataType.allConstraints()->exists(c | c.type.name = 'union') + or self.memberAssignment->size() <= 1 + + + -- 'uniontype' constraint on the type of the 'StructuredDataInstance' + inv StructuredDataInstanceUniontypeConstraint ('If the \'dataType\' of \'StructuredDataInstance\' has the predefined constraint \'uniontype\' then there shall only be \'MemberAssignment\' for the \'Member\'s of the \'dataType\' itself or of at most one of the \'StructuredDataType\'s which the \'dataType\' is extending.' + self.toString()): + not self.dataType.allConstraints()->exists(c | c.type.name = 'uniontype') + or self.memberAssignment->forAll(m | self.dataType.oclAsType(StructuredDataType).member->includes(m) + or self.dataType.oclAsType(StructuredDataType).extension->one(e | + e.extending.oclAsType(StructuredDataType).allMembers()->includes(m))) + + + + +context MemberAssignment + -- Type of a 'memberSpec' shall conform to the type of the 'member' + inv MatchingMemberDataType ('The \'DataType\' of the \'DataUse\' of \'memberSpec\' shall conform to the \'DataType\' of the \'Member\' of the \'MemberAssignment\'.' + self.toString()): + self.memberSpec.resolveDataType().conformsTo(self.member.dataType) + + + -- Restricted use of 'OmitValue' for optional 'Member's only + inv OmitValueUse ('A non-optional \'Member\' shall have a \'DataUse\' specification assigned to it that is different from \'OmitValue\' and \'AnyValueOrOmit\'.' + self.toString()): + (self.memberSpec.oclIsTypeOf(OmitValue) or self.memberSpec.oclIsTypeOf(AnyValueOrOmit)) + implies self.member.isOptional = true + + + -- Static data use in 'memberSpec' + inv StaticDataInMemberSpec ('The \'memberSpec\' and all of its \'ParameterBinding\'s shall be effectively static. ' + self.toString()): + self.memberSpec.isEffectivelyStatic() + + + -- [Figure 6.4: Collection data] + + +context CollectionDataType + -- No multidimensional collections + inv NoMultidimensionalCollections ('The \'itemType\' shall not be an instance of \'CollectionDataType\'. ' + self.toString()): + not self.itemType.oclIsKindOf(CollectionDataType) + + + + +context CollectionDataInstance + -- CollectionDataInstance shall refer to CollectionDataType + inv CollectionDataInstanceType ('The inherited reference \'dataType\' from \'DataInstance\' shall refer to instances of \'CollectionDataType\' solely.' + self.toString()): + self.dataType.oclIsKindOf(CollectionDataType) + + + -- Type of items in the 'CollectionDataInstance' + inv CollectionDataInstanceItemType ('The items in \'CollectionDataInstance\' shall conform to the \'itemType\' of the \'CollectionDataType\' that is defined as the \'dataType\' of this \'CollectionDataInstance\'. ' + self.toString()): + self.item->forAll(i | + i.resolveDataType().conformsTo(self.dataType.oclAsType(CollectionDataType).itemType)) + + + -- Static data use in 'item' + inv StaticDataInItem ('The DataUse\'s in \'item\' and all of the respective \'ParameterBinding\'s shall be effectively static. ' + self.toString()): + self.item->forAll(i | i.isEffectivelyStatic()) + + + -- Length constraint of the 'CollectionDataInstance' + inv CollectionDataInstanceLengthConstraint ('If the \'dataType\' \'CollectionType\' contains the predefined constraint \'length\' then the length of this \'CollectionDataInstance\' shall be equal to the \'quantifier\' of that \'Constraint\'.' + self.toString()): + true --This constraint cannot be expressed formally. + + + -- [Figure 6.5: Procedure and procedure parameter] + + +context EnumDataType + -- No extensions for EnumDataType + inv EnumDataTypeExtensions ('The \'extension\' property of an \'EnumDataType\' shall be empty.' + self.toString()): + self.extension.oclIsUndefined() + + + + +context DataUse + -- Occurrence of 'argument' and 'reduction' + inv ArgumentReductionLists ('Only in case of a \'FunctionCall\' both the \'argument\' list and the \'reduction\' list may be provided, otherwise either the \'argument\' list, the \'reduction\' list, or none of them shall be provided.' + self.toString()): + self.argument->isEmpty() or self.reduction->isEmpty() or self.oclIsTypeOf(FunctionCall) + + + -- Structured data types in 'reduction' set + inv ReductionMembers ('The \'Member\' referenced by the \'MemberReference\' at index i of a \'reduction\' shall be contained in or inherited by the \'StructuredDataType\' of the \'Member\' referenced by the \'MemberReference\' at index (i - 1) of that \'reduction\'.' + self.toString()): + not self.resolveDataType().oclIsKindOf(StructuredDataType) + or self.reduction->isEmpty() + or self.resolveDataType().oclAsType(StructuredDataType).allMembers()->includes(self.reduction->first().member) + and self.reduction->select(m | self.reduction->indexOf(m) > 1)->forAll(m | + self.reduction->at(self.reduction->indexOf(m)-1).member.dataType.oclIsKindOf(StructuredDataType) + and self.reduction->at(self.reduction->indexOf(m)-1).member.dataType.oclAsType(StructuredDataType).allMembers() + ->includes(m.member)) + + + -- No member with collection index in the first element in reduction + inv FirstReduction ('The first \'MemberReference\' in reduction shall not specify both member and collectionIndex. ' + self.toString()): + self.reduction->first().member.oclIsUndefined() or self.reduction->first().collectionIndex.oclIsUndefined() + + + + +context ParameterBinding + -- Matching data type + inv ParameterBindingTypes ('The provided \'DataUse\' shall conform to the \'DataType\' of the referenced \'Parameter\'.' + self.toString()): + self.dataUse.resolveDataType().conformsTo(self.parameter.dataType) + + + -- Use of a 'StructuredDataInstance' with non-optional 'Member's + inv OmitValueParameter ('A non-optional \'Member\' of a \'StructuredDataType\' shall have a \'DataUse\' specification assigned to it that is different from \'OmitValue\' or \'AnyValueOrOmit\'.' + self.toString()): + self.parameter.oclIsTypeOf(Member) and self.parameter.oclAsType(Member).isOptional = false + implies not self.dataUse.oclIsTypeOf(OmitValue) and not self.dataUse.oclIsTypeOf(AnyValueOrOmit) + + + + +context MemberReference + -- Collection index expressions for collections only + inv CollectionIndex ('If the type of the related \'DataUse\' is not \'CollectionDataType\' then the collectionIndex shall be undefined. ' + self.toString()): + self.collectionIndex.oclIsUndefined() + or self.container().oclAsType(DataUse).resolveDataType().oclIsKindOf(CollectionDataType) + + + -- Either member or collection index is required + inv MemberOrReduction ('Either the member or collectionIndex shall be specified. ' + self.toString()): + not self.member.oclIsUndefined() or not self.collectionIndex.oclIsUndefined() + + + + +context DataInstanceUse + -- 'DataInstance' reference or non-empty 'argument' or non-empty 'item' + inv DataInstanceOrArgumentsOrItems ('If a \'dataInstance\' is not specified, either a non-empty \'argument\' set or a non-empty \'item\' set shall be specified.' + self.toString()): + not self.dataInstance.oclIsUndefined() or not self.argument->isEmpty() or not self.item->isEmpty() + + + -- Valid 'DataType' for items + inv DataTypeOfItemsInDataInstance ('The items in the \'item\' property shall conform to the \'itemType\' of the resolved \'CollectionDataType\'.' + self.toString()): + self.item->forAll(i | i.resolveDataType().conformsTo(self.resolveDataType().oclAsType(CollectionDataType).itemType)) + + + -- No 'item' if 'dataInstance' is specified + inv NoItemWithDataInstance ('The \'item\' property shall be empty if the \'dataInstance\' property is specified.' + self.toString()): + not self.dataInstance.oclIsUndefined() implies self.item->isEmpty() + + + + +context SpecialValueUse + -- Empty 'argument' and 'reduction' sets + inv SpecialValueArgumentReduction ('The \'argument\' and \'reduction\' sets shall be empty.' + self.toString()): + self.reduction->isEmpty() and self.argument->isEmpty() + + + + +context FunctionCall + -- Matching parameters + inv FunctionCallParameters ('All \'FormalParameter\'s of the invoked \'Function\' shall be bound.' + self.toString()): + self.function.formalParameter->forAll(p | self.argument->exists(a | a.parameter = p)) + + + + +context VariableUse + -- Local variables of tester components only + inv VariableUseComponentRole ('All variables used in a \'DataUse\' specification via a \'VariableUse\' shall be local to the same \'componentInstance\' and the \'componentInstance\' shall be in the role \'Tester\'.' + self.toString()): + self.componentInstance.type.allVariables()->includes(self.variable) + and self.componentInstance.role = ComponentInstanceRole::Tester + + + + +context PredefinedFunctionCall + -- Compatible actual parameters + inv PredefinedFunctionCallParameters ('The number and type of actual parameters shall be compatible with the formal parameters of the invoked \'PredefinedFunction\' according to the specification of the \'PredefinedFunction\'.' + self.toString()): + true --This constraint cannot be expressed formally. + + + -- Empty 'argument' and 'reduction' sets + inv PredefinedFunctionCallArgumentReduction ('The \'argument\' and \'reduction\' sets shall be empty.' + self.toString()): + self.reduction->isEmpty() and self.argument->isEmpty() + + + + +context LiteralValueUse + -- Exactly one value specification + inv SpecifiedLiteralValue ('There shall be exactly one value specification, where either the \'value\', or the \'intValue\', or the \'boolValue\' property is be specified, but not more than one of them.' + self.toString()): + not self.value.oclIsUndefined() + xor not self.intValue.oclIsUndefined() + xor not self.boolValue.oclIsUndefined() + + + -- Empty 'argument' and 'reduction' sets if not 'dataType' + inv LiteralValueArgumentReduction ('If \'dataType\' is not specified then the \'argument\' and \'reduction\' sets shall be empty.' + self.toString()): + (self.dataType.oclIsUndefined()) + implies (self.reduction->isEmpty() and self.argument->isEmpty()) + + + -- Integer type for integer value + inv LiteralValueIntType ('If \'intValue\' is specified then the \'dataType\' is either unspecified or the specified \'DataType\' is instanceof of \'Time\' or conforms to predefined type \'Integer\'.' + self.toString()): + not self.intValue.oclIsUndefined() + implies (self.dataType.oclIsUndefined() or self.dataType.oclIsKindOf(Time) or self.dataType.conformsTo('Integer')) + + + -- Boolean type for Boolean value + inv LiteralValueBoolType ('If \'boolValue\' is specified then the \'dataType\' is either unspecified or the specified \'DataType\' conforms to predefined type \'Boolean\'.' + self.toString()): + not self.boolValue.oclIsUndefined() + implies (self.dataType.oclIsUndefined() or self.dataType.conformsTo('Boolean')) + + + + +context DataElementUse + -- 'DataElement' reference or non-empty 'argument' or non-empty 'item' + inv DataInstanceOrArgumentsOrItemsInDataElementUse ('If a \'dataElement\' is not specified, or if the \'dataElement\' is resolved to a \'StructuredDataType\' or a \'CollectionDataType\', either a non-empty \'argument\' set or a non-empty \'item\' set shall be specified.' + self.toString()): + not (self.dataElement.oclIsUndefined() and self.argument->isEmpty() and self.item->isEmpty()) + and not (self.dataElement.oclIsKindOf(StructuredDataType) and self.argument->isEmpty()) + and not (self.dataElement.oclIsKindOf(CollectionDataType) and self.item->isEmpty()) + + + -- Valid 'DataType' for items + inv DataTypeOfItemsInDataInstance ('The items in the \'item\' property shall conform to the \'itemType\' of the resolved \'CollectionDataType\'.' + self.toString()): + self.item->forAll(i | i.resolveDataType().conformsTo(self.resolveDataType().oclAsType(CollectionDataType).itemType)) + + + -- Only 'item' if the resolved data type is 'CollectionDataType' + inv ItemOnlyWithCollectionDataType ('The \'item\' property shall be non-empty if the \'dataElement\' property is resolved to a \'CollectionDataType\'.' + self.toString()): + (((self.dataElement.oclIsKindOf(CollectionDataType)) + or self.dataElement.oclIsUndefined()) + and not self.item->isEmpty()) + or self.item->isEmpty() + + + -- Matching parameters for 'Function's + inv FunctionCallParameters ('All \'FormalParameter\'s shall be bound if the \'dataElement\' refers to a \'Function\'.' + self.toString()): + not self.dataElement.oclIsKindOf(Function) + or self.dataElement.oclAsType(Function).formalParameter->forAll(p | self.argument->exists(a | a.parameter = p)) + + + + +context TimeLabelUse + -- Empty 'argument' and 'reduction' sets + inv TimeLabelArgumentReduction ('The \'argument\' and \'reduction\' sets shall be empty.' + self.toString()): + self.reduction->isEmpty() and self.argument->isEmpty() + + + -- 'TimeLabel's only within the same 'TestDescription' when local ordering is used + inv TimeLabelLocallyOrdered ('When local ordering is used, \'TimeLabel\'s shall only be used within the same test description. ' + self.toString()): + self.getParentTestDescription().isLocallyOrdered = true + or self.timeLabel.getParentTestDescription() = self.getParentTestDescription() + + + + +context TimeConstraint + -- Time constraint expression of type Boolean + inv TimeConstraintType ('The expression given in the \'DataUse\' specification shall evaluate to predefined type \'Boolean\'.' + self.toString()): + self.timeConstraintExpression.resolveDataType().name = 'Boolean' + + + -- Use of local variables only + inv TimeConstraintVariables ('The expression given in the \'DataUse\' specification shall contain only \'Variable\'s that are local to the \'AtomicBehaviour\' that contains this \'TimeConstraint\'. That is, all \'VariableUse\'s shall reference the \'ComponentInstance\'s which participate in the \'AtomicBehaviour\'.' + self.toString()): + self.timeConstraintExpression.argument + ->closure(a | a.dataUse.argument)->collect(pb | pb.dataUse) + ->union(self.timeConstraintExpression.argument) + ->select(du | du.oclIsKindOf(VariableUse)) + ->forAll(du | self.container().oclAsType(Behaviour).getParticipatingComponents()->includes( + du.oclAsType(VariableUse).componentInstance)) + + + -- Use of local time labels only + inv TimeConstraintTimeLabels ('In case of locally ordered \'TestDescription\', the expression given in the \'DataUse\' specification shall contain only \'TimeLabel\'s that are local to the \'AtomicBehaviour\' that contains this \'TimeConstraint\'. That is, all \'TimeLabel\'s shall be contained in \'AtomicBehaviour\'s involving the \'ComponentInstance\'s which participate in the \'AtomicBehaviour\' that contains this \'TimeConstraint.' + self.toString()): + self.timeConstraintExpression.argument + ->closure(a | a.dataUse.argument)->collect(pb | pb.dataUse) + ->union(self.timeConstraintExpression.argument) + ->select(du | du.oclIsKindOf(TimeLabelUse)) + ->forAll(du | self.container().oclAsType(Behaviour).getParticipatingComponents()->includesAll( + du.oclAsType(TimeLabelUse).timeLabel.container().oclAsType(Behaviour).getParticipatingComponents())) + + + -- [Figure 7.2: Time operations] + + +context TimeOperation + -- Component required in locally ordered test description + inv TimeOperationComponent ('If the \'TimeOperation\' is contained in a locally ordered \'TestDescription\' then the \'componentInstance\' shall be specified.' + self.toString()): + self.getParentTestDescription().isLocallyOrdered + implies not self.componentInstance.oclIsUndefined() + + + -- Time operations on tester components only + inv TimeOperationComponentRole ('A \'TimeOperation\' shall be performed only on a \'ComponentInstance\' in the role \'Tester\'.' + self.toString()): + (not self.componentInstance.oclIsUndefined() + and self.componentInstance.role = ComponentInstanceRole::Tester) + or (self.oclIsTypeOf(Quiescence) + and not self.oclAsType(Quiescence).gateReference.oclIsUndefined() + and self.oclAsType(Quiescence).gateReference.component.role = ComponentInstanceRole::Tester) + + + -- 'Time' data type for period expression + inv TimePeriodType ('The \'DataUse\' expression assigned to the \'period\' shall evaluate to a data instance of the \'Time\' data type.' + self.toString()): + self.period.resolveDataType().oclIsKindOf(Time) + + + + +context Quiescence + -- Exclusive use of gate reference or component instance + inv QuiescenceTarget ('If a \'GateReference\' is provided, a \'ComponentInstance\' shall not be provided and vice versa.' + self.toString()): + self.gateReference.oclIsUndefined() xor self.componentInstance.oclIsUndefined() + + + -- [Figure 7.3: Timer and timer operations] + + +context TimerOperation + -- Timer operations on tester components only + inv TimerOperationComponentRole ('A \'TimerOperation\' shall be performed only on a \'ComponentInstance\' in the role \'Tester\'.' + self.toString()): + self.componentInstance.role = ComponentInstanceRole::Tester + + + + +context TimerStart + -- 'Time' data type for period expression + inv TimerPeriodType ('The \'DataUse\' expression assigned to the \'period\' shall evaluate to a data instance of the \'Time\' data type.' + self.toString()): + self.period.resolveDataType().oclIsKindOf(Time) + + + + +context GateType + -- Compatible 'DataType's. + inv GateType ('The \'DateType\'s specified for the \'GateType\' shall correspond the kind of the \'GateType\'. For \'GateType\' of kind \'Procedure\' only \'ProcedureSignature\'s shall be specified as data types. For \'GateType\' of kind \'Message\' only \'StructuredDataType\'s, \'SimpleDataType\'s and \'CollectionDataType\'s shall be specified as data types. ' + self.toString()): + (self.kind = GateTypeKind::Procedure and self.allDataTypes()->forAll(t | + t.oclIsTypeOf(ProcedureSignature))) + or (self.kind = GateTypeKind::Message and self.allDataTypes()->forAll(t | t.oclIsTypeOf(StructuredDataType) + or t.oclIsKindOf(SimpleDataType) or t.oclIsTypeOf(CollectionDataType))) + + + + +context GateReference + -- Gate instance of the referred component instance + inv GateInstanceReference ('The referred \'GateInstance\' shall be contained in the \'ComponentType\' of the referred \'ComponentInstance\'.' + self.toString()): + self.component.type.allGates()->includes(self.gate) + + + + +context Connection + -- Self-loop connections are not permitted + inv NoSelfLoop ('The \'endPoint\'s of a \'Connection\' shall not be the same. Two endpoints are the same if both, the referred \'ComponentInstance\'s and the referred \'GateInstance\'s, are identical.' + self.toString()): + self.endPoint->forAll(e1 | self.endPoint->one(e2 | e1.gate = e2.gate + and e1.component = e2.component)) + + + -- Consistent type of a connection + inv ConsistentConnectionType ('The \'GateInstance\'s of the two \'endPoint\'s of a \'Connection\' shall refer to the same \'GateType\'.' + self.toString()): + self. endPoint.gate.type->asSet()->size() = 1 + + + + +context TestConfiguration + -- 'TestConfiguration' and components roles + inv ComponentRoles ('A \'TestConfiguration\' shall contain at least one \'Tester\' and one \'SUT\' \'ComponentInstance\'.' + self.toString()): + self.componentInstance->exists(c | c.role = ComponentInstanceRole::Tester) + and self.componentInstance->exists(c | c.role = ComponentInstanceRole::SUT) + + + -- Only 'Connection's between own 'ComponentInstance's + inv OwnedComponents ('A \'TestConfiguration\' shall only contain \'Connection\'s between gates of its own \'ComponentInstance\'s. ' + self.toString()): + self.connection->forAll(c | + self.componentInstance->includesAll(c.endPoint.component)) + + + -- Minimal 'TestConfiguration' + inv MinimalTestConfiguration ('Each \'TestConfiguration\' shall specify at least one \'Connection\' that connects a \'GateInstance\' of a \'ComponentInstance\' in the role \'Tester\' with a \'GateInstance\' of a \'ComponentInstance\' in the role \'SUT\'.' + self.toString()): + self.connection->exists(c | + c.endPoint.component.role->includesAll(Set{ComponentInstanceRole::SUT, ComponentInstanceRole::Tester})) + + + -- At most one connection between any two 'GateInstance'/'ComponentInstance' pairs + inv UniqueConnections ('Given the set of \'Connection\'s contained in a \'TestConfiguration\'. There shall be no two \'Connection\'s containing \'GateReference\'s that in turn refer to identical pairs of \'GateInstance\'/\'ComponentInstance\'.' + self.toString()): + self.connection->forAll(c1 | self.connection->one(c2 | + not c1.endPoint->reject(ep1 | not c2.endPoint->exists(ep2 | + ep1.component = ep2.component and ep1.gate = ep2.gate + ))->isEmpty())) + + + + +context Block + -- Guard shall evaluate to Boolean + inv GuardType ('The type of \'guard\' shall be \'Boolean\'.' + self.toString()): + self.guard ->forAll(g | g.expression.resolveDataType().name = 'Boolean') + + + -- No directly contained 'ExceptionalBehaviour's and 'PeriodicBehaviour's. + inv AllowedBehaviourTypes ('A \'Block\' shall not contain \'ExceptionalBehaviour\'s and \'PeriodicBehaviour\'s.' + self.toString()): + self.behaviour->forAll(b | + not b.oclIsTypeOf(ExceptionalBehaviour) and not b.oclIsTypeOf(PeriodicBehaviour)) + + + -- Guard for each participating tester in locally ordered test descriptions + inv GuardsForParticipatingComponents ('If the \'Block\' is contained in a locally ordered \'TestDescription\' then a guard shall be specified for every participating \'ComponentInstance\' in the associated \'TestConfiguration\' that has the role \'Tester\' or there shall be no guards at all. ' + self.toString()): + self.guard->size() = 0 + or self.getParticipatingComponents()->reject(c | c.role = ComponentInstanceRole::SUT) + ->forAll(c | self.guard->exists(ex | ex.componentInstance = c)) + or not self.getParentTestDescription().isLocallyOrdered + + + -- Single guard in totally ordered test description + inv SingleTotalGuard ('If the \'Block\' is contained in a totally ordered \'TestDescription\' then there shall not be more than one guard. ' + self.toString()): + self.getParentTestDescription().isLocallyOrdered or self.guard->size() <= 1 + + + + +context LocalExpression + -- Local expressions in locally ordered test descriptions have 'ComponentInstance' specified + inv LocalExpressionComponent ('If the \'LocalExpression\' is contained in a locally ordered \'TestDescription\' then the componentInstance shall be specified. ' + self.toString()): + self.getParentTestDescription().isLocallyOrdered + implies not self.componentInstance.oclIsUndefined() + + + -- Only local variables and time labels in case of locally ordered test description + inv LocalVariablesAndTimersInExpression ('If the componentInstance is specified then all \'Variable\'s and \'TimeLabel\'s used in the expression shall be local to that \'ComponentInstance\'.' + self.toString()): + self.expression.argument + ->closure(a | a.dataUse.argument)->collect(pb | pb.dataUse) + ->union(self.expression.argument) + ->including(self.expression) + ->select(du | du.oclIsKindOf(VariableUse)) + ->forAll(du | du.oclAsType(VariableUse).componentInstance = self.componentInstance) + and self.expression.argument + ->closure(a | a.dataUse.argument)->collect(pb | pb.dataUse) + ->union(self.expression.argument) + ->including(self.expression) + ->select(du | du.oclIsKindOf(TimeLabelUse)) + ->forAll(du | du.oclAsType(TimeLabelUse).timeLabel.container().oclAsType(Behaviour) + .getParticipatingComponents()->includes(self.componentInstance)) + + + + +context BoundedLoopBehaviour + -- No guard constraint + inv BoundedGuard ('The \'Block\' of a \'BoundedLoopBehaviour\' shall not have a \'guard\'.' + self.toString()): + self.block->forAll(b | b.guard.oclIsUndefined()) + + + -- Iteration number shall be countable and positive + inv LoopIteration ('The expression assigned to the \'numIteration\' property shall evaluate to a countable \'SimpleDataInstance\' of an arbitrary user-defined data type, e.g. a positive Integer value.' + self.toString()): + self.numIteration->forAll(e | e.expression.resolveDataType().conformsTo('Integer')) + + + -- Iteration count in locally ordered test descriptions + inv IterationCountsForParticipatingComponents ('If the \'BoundedLoopBehaviour\' is contained in a locally ordered \'TestDescription\' then a numIteration shall be specified for every participating \'ComponentInstance\' that has the role \'Tester\'.' + self.toString()): + self.block.getParticipatingComponents()->reject(c | c.role = ComponentInstanceRole::SUT) + ->forAll(c | self.numIteration->exists(ex | ex.componentInstance = c)) + or not self.getParentTestDescription().isLocallyOrdered + + + -- Single numIteration in totally ordered test description + inv SingleTotalIterationCount ('If the \'BoundedLoopBehaviour\' is contained in a totally ordered \'TestDescription\' then there shall be exactly one numIteration.' + self.toString()): + self.getParentTestDescription().isLocallyOrdered or self.numIteration->size() = 1 + + + + +context OptionalBehaviour + -- First 'AtomicBehaviour' in block allowed + inv OptionalBehaviourStart ('The block of an \'OptionalBehaviour\' shall start with a tester-to-tester \'Interaction\'. ' + self.toString()): + self.block.behaviour->first().oclIsKindOf(Interaction) + and self.block.behaviour->first().oclAsType(Interaction) + ->collect(i | i.sourceGate.component->union(i.target.targetGate.component)) + ->forAll(c | c.role = ComponentInstanceRole::Tester) + + + -- No other testers except the participants of starting 'Interaction' within 'OptionalBehaviour' in locally ordered 'TestDescription' + inv OptionalBehaviourParticipation ('If an \'OptionalBehaviour\' is included in a locally ordered \'TestDescription\' then no other tester \'ComponentInstance\' shall participate in the block of the \'OptionalBehaviour\' than the source and target of the starting \'Interaction\' except when being a target of the starting \'Interaction\' in a nested \'OptionalBehaviour\'. ' + self.toString()): + let initial = self.block.behaviour->first().oclAsType(Interaction), + initialComponents = initial->collect(i | i.sourceGate.component->union(i.target.targetGate.component)), + optionals = self.block->closure( + b | b.behaviour + ->select(oclIsKindOf(SingleCombinedBehaviour)).oclAsType(SingleCombinedBehaviour).block + ->union(b.behaviour + ->select(oclIsKindOf(MultipleCombinedBehaviour)).oclAsType(MultipleCombinedBehaviour).block) + ).behaviour->select(oclIsKindOf(OptionalBehaviour)).oclAsType(OptionalBehaviour), + optionalTargets = optionals.block->select(b | b.behaviour->select(i | i.oclIsKindOf(Interaction))->first().oclAsType(Interaction).target.targetGate.component) + in + self.block.getParticipatingComponents() + ->forAll(c | initialComponents->includes(c) or optionalTargets->includes(c)) + or not self.getParentTestDescription().isLocallyOrdered + + + + +context AlternativeBehaviour + -- Number of 'Block's + inv AlternativeBlockCount ('An \'AlternativeBehaviour\' shall contain at least two \'Block\'s. ' + self.toString()): + self.block->size() > 1 + + + -- First behaviour of 'Block's + inv FirstBlockBehaviour ('Each block of an \'AlternativeBehaviour\' shall start with a tester-input event. ' + self.toString()): + self.block->forAll(b | b.behaviour->first().isTesterInputEvent()) + + + -- Same component if locally ordered + inv AlternativeBlocksComponent ('If the containing \'TestDescription\' is locally ordered then all \'Block\'s shall start with a tester-input event of the same \'ComponentInstance\'. ' + self.toString()): + let initial = self.block.behaviour->first() in + Set{} + ->including(initial->select(oclIsKindOf(Interaction)).oclAsType(Interaction).target.targetGate.component) + ->including(initial->select(oclIsKindOf(Quiescence)).oclAsType(Quiescence).componentInstance) + -> including(initial->select(oclIsKindOf(TimeOut)).oclAsType(TimeOut).componentInstance) + ->size() = 1 or not self.getParentTestDescription().isLocallyOrdered + + + -- Tester participating in locally ordered case + inv AlternativeBehaviourParticipation ('If the \'AlternativeBehaviour\' is contained in a locally ordered \'TestDescription\' then no other tester \'ComponentInstance\' shall participate in any block than the target of the first tester-input event and \'ComponentInstance\'s participating in blocks of contained \'OptionalBehaviour\'s. ' + self.toString()): + let initial = self.block.behaviour->first(), + targetComponent = Set{} + ->including(initial->select(oclIsKindOf(Interaction)).oclAsType(Interaction).target.targetGate.component) + ->including(initial->select(oclIsKindOf(Quiescence)).oclAsType(Quiescence).componentInstance) + -> including(initial->select(oclIsKindOf(TimeOut)).oclAsType(TimeOut).componentInstance), + nonOptionalBlocks = self.block->closure( + b | b.behaviour->reject(oclIsKindOf(OptionalBehaviour)) + ->select(oclIsKindOf(SingleCombinedBehaviour)).oclAsType(SingleCombinedBehaviour).block + ->union(b.behaviour->reject(oclIsKindOf(OptionalBehaviour)) + ->select(oclIsKindOf(MultipleCombinedBehaviour)).oclAsType(MultipleCombinedBehaviour).block) + ) + in + targetComponent->includesAll( + nonOptionalBlocks.getParticipatingComponents()->reject(c | c.role = ComponentInstanceRole::SUT)) + or not self.getParentTestDescription().isLocallyOrdered + + + -- OptionalBehaviour in locally ordered case + inv OptionalAlternativeBehaviour ('A block of an \'AlternativeBehaviour\' if the containing \'TestDescription\' is locally ordered, shall only contain \'OptionalBehaviour\'(s) whose source \'ComponentInstance\' is the same as the target of the first tester-input event of that \'Block\'. ' + self.toString()): + let initial = self.block.behaviour->first(), + targetComponent = Set{} + ->including(initial->select(oclIsKindOf(Interaction)).oclAsType(Interaction).target.targetGate.component) + ->including(initial->select(oclIsKindOf(Quiescence)).oclAsType(Quiescence).componentInstance) + -> including(initial->select(oclIsKindOf(TimeOut)).oclAsType(TimeOut).componentInstance) + in + self.block.behaviour->select(oclIsKindOf(OptionalBehaviour)) .oclAsType(OptionalBehaviour).block + ->first().oclAsType(Interaction).sourceGate.component->forAll(c | targetComponent->includes(c)) + or not self.getParentTestDescription().isLocallyOrdered + + + + +context ConditionalBehaviour + -- Guard for 'ConditionalBehaviour' with single block + inv ConditionalFirstGuard ('If there is only one \'Block\' specified, it shall have a \'guard\'.' + self.toString()): + self.block->size() > 1 or self.block->first().guard->size() > 1 + + + -- Possible else block for 'ConditionalBehaviour' with multiple blocks + inv ConditionalLastGuard ('All \'Block\'s specified, except the last one, shall have a \'guard\'.' + self.toString()): + self.block->size() = 1 + or self.block->forAll(b | b = self.block->last() or b.guard ->size() > 1) + + + + +context ParallelBehaviour + -- Number of blocks in 'ParallelBehaviour' + inv ParallelBlockCount ('There shall be at least two \'Block\'s specified.' + self.toString()): + self.block->size() > 1 + + + -- [Figure 9.3: Exceptional and periodic behaviour] + + +context ExceptionalBehaviour + -- First 'AtomicBehaviour' in block allowed + inv FirstExceptionalBehaviour ('The block of an \'ExceptionalBehaviour\' shall start with a tester-input event.' + self.toString()): + self.block.behaviour->first().isTesterInputEvent() + + + -- Guarded component shall be a 'Tester' component + inv ExceptionalGuardedComponent ('The \'guardedComponent\' shall refer to a \'ComponentInstance\' with the role of \'Tester\'.' + self.toString()): + self.guardedComponent.oclIsUndefined() or self.guardedComponent.role = ComponentInstanceRole::Tester + + + -- Same component if locally ordered and guarded component present + inv ExceptionalGuardedandTargetComponent ('If the containing \'TestDescription\' is locally ordered and guardedComponent is specified then the \'Block\'s shall start with tester-input event of the same \'ComponentInstance\' as specified in guardedComponent. ' + self.toString()): + let initial = self.block.behaviour->first(), + targetComponent = Set{} + ->including(initial->select(oclIsKindOf(Interaction)).oclAsType(Interaction).target.targetGate.component) + ->including(initial->select(oclIsKindOf(Quiescence)).oclAsType(Quiescence).componentInstance) + -> including(initial->select(oclIsKindOf(TimeOut)).oclAsType(TimeOut).componentInstance) + in + guardedComponent->includesAll(targetComponent) + or not self.getParentTestDescription().isLocallyOrdered + + + -- Tester participating in locally ordered case + inv ExceptionalBehaviourParticipation ('If the \'ExceptionalBehaviour\' is contained in a locally ordered \'TestDescription\' then no other tester \'ComponentInstance\' shall participate in any block than the target of the first tester-input event and \'ComponentInstance\'s participating in blocks of contained \'OptionalBehaviour\'s . ' + self.toString()): + let initial = self.block.behaviour->first(), + targetComponent = Set{} + ->including(initial->select(oclIsKindOf(Interaction)).oclAsType(Interaction).target.targetGate.component) + ->including(initial->select(oclIsKindOf(Quiescence)).oclAsType(Quiescence).componentInstance) + -> including(initial->select(oclIsKindOf(TimeOut)).oclAsType(TimeOut).componentInstance), + nonOptionalBlocks = self.block->closure( + b | b.behaviour->reject(oclIsKindOf(OptionalBehaviour)) + ->select(oclIsKindOf(SingleCombinedBehaviour)).oclAsType(SingleCombinedBehaviour).block + ->union(b.behaviour->reject(oclIsKindOf(OptionalBehaviour)) + ->select(oclIsKindOf(MultipleCombinedBehaviour)).oclAsType(MultipleCombinedBehaviour).block) + ) + in + targetComponent->includesAll( + nonOptionalBlocks.getParticipatingComponents()->reject(c | c.role = ComponentInstanceRole::SUT)) + or not self.getParentTestDescription().isLocallyOrdered + + + -- OptionalBehaviour in locally ordered case + inv OptionalExceptionalBehaviour ('A block of an \'ExceptionalBehaviour\' if the containing \'TestDescription\' is locally ordered, shall only contain \'OptionalBehaviour\'(s) whose source \'ComponentInstance\' is the same as the target of the first tester-input event of that \'Block\'. ' + self.toString()): + let initial = self.block.behaviour->first(), + targetComponent = Set{} + ->including(initial->select(oclIsKindOf(Interaction)).oclAsType(Interaction).target.targetGate.component) + ->including(initial->select(oclIsKindOf(Quiescence)).oclAsType(Quiescence).componentInstance) + -> including(initial->select(oclIsKindOf(TimeOut)).oclAsType(TimeOut).componentInstance) + in + self.block.behaviour->select(oclIsKindOf(OptionalBehaviour)).oclAsType(OptionalBehaviour).block + ->first().oclAsType(Interaction).sourceGate.component->forAll(c | targetComponent->includes(c)) + or not self.getParentTestDescription().isLocallyOrdered + + + + +context PeriodicBehaviour + -- 'Time' data type for period expression + inv PeriodType ('The \'DataUse\' expression assigned to the \'period\' shall evaluate to a data instance of the \'Time\' data type.' + self.toString()): + self.period->forAll(e | e.expression.resolveDataType().oclIsKindOf(Time)) + + + -- Period for each tester in locally ordered test descriptions + inv PeriodForParticipatingComponents ('If the \'PeriodicBehaviour\' is contained in a locally ordered \'TestDescription\' then a period shall be specified for every \'ComponentInstance\' that has the role \'Tester\' and for which there is a behaviour in the contained \'Block\'. ' + self.toString()): + self.block.getParticipatingComponents()->reject(c | c.role = ComponentInstanceRole::SUT) + ->forAll(c | self.period->exists(ex | ex.componentInstance = c)) + or not self.getParentTestDescription().isLocallyOrdered + + + + +context Break + -- Break in conditional behaviour only + inv ConditionalBreak ('A \'Break\' shall be contained directly in the block of a \'ConditionalBehaviour\'. ' + self.toString()): + self.container().container().oclIsKindOf(ConditionalBehaviour) + + + -- No behaviours after break + inv BreakIsLast ('A \'Break\' shall be the last behaviour in the containing \'Block\'. ' + self.toString()): + self.container().oclAsType(Block).behaviour->last() = self + + + + +context VerdictAssignment + -- Verdict of type 'Verdict' + inv VerdictType ('The \'verdict\' shall evaluate to a, possibly predefined, instance of a \'SimpleDataInstance\' of data type \'Verdict\'.' + self.toString()): + self.verdict.resolveDataType().name = 'Verdict' + + + -- No 'SpecialValueUse' + inv VerdictNoSpecialValueUse ('The \'verdict\' shall not evaluate to an instance of a \'SpecialValueUse\'.' + self.toString()): + not self.verdict.oclIsKindOf(SpecialValueUse) + + + + +context Assertion + -- Boolean condition + inv AssertionOtherwise ('The \'condition\' shall evaluate to predefined \'DataType\' \'Boolean\'.' + self.toString()): + self.condition.resolveDataType().name = 'Boolean' + + + -- Otherwise of type 'Verdict' + inv AssertionVerdict ('The \'otherwise\' shall evaluate to a, possibly predefined, instance of a \'SimpleDataInstance\' of data type \'Verdict\'.' + self.toString()): + self.otherwise.oclIsUndefined() or self.otherwise.resolveDataType().name = 'Verdict' + + + -- No 'SpecialValueUse' + inv AssertionNoSpecialValueUse ('The \'otherwise\' shall not evaluate to an instance of a \'SpecialValueUse\'.' + self.toString()): + self.otherwise.oclIsUndefined() or not self.otherwise.oclIsKindOf(SpecialValueUse) + + + -- [Figure 9.5: Interaction behaviour] + + +context Interaction + -- Gate references of an interaction shall be connected + inv ConnectedInteractionGates ('The \'GateReference\'s that act as source or target(s) of an \'Interaction\' shall be interconnected by a \'Connection\' which is contained in the \'TestConfiguration\' referenced by the \'TestDescription\' containing the \'Interaction\'.' + self.toString()): + self.target->forAll(t | + self.getParentTestDescription().testConfiguration.connection->exists(c | + not c.endPoint->reject(ep | + (ep.component = self.sourceGate.component and ep.gate = self.sourceGate.component) or + (ep.component = t.targetGate.component and ep.gate = t.targetGate.gate) + )->isEmpty())) + + + + +context Message + -- 'DataType' resolvable + inv DataTypeResolvable ('If the \'argument\' is \'DataInstanceUse\', either the \'dataType\' property or the \'dataInstance\' property shall be provided. If the \'argument\' is a \'DataElementUse\', the \'dataElement\' property shall be provided.' + self.toString()): + not self.argument.oclIsUndefined() + + + -- Type of message argument + inv MessageArgumentAndGateType ('The \'DataUse\' specification referred to in the \'argument\' shall match one of the \'DataType\'s referenced in the \'GateType\' definition of the \'GateInstance\'s referred to by the source and target \'GateReference\'s of the \'Interaction\'.' + self.toString()): + (self.argument.oclIsKindOf(AnyValue) + and self.argument. resolveDataType().oclIsUndefined()) + or (self.sourceGate.gate.type.allDataTypes()-> exists(t | self.argument.resolveDataType().conformsTo(t)) + and self.target->forAll(t | t.targetGate.gate.type.allDataTypes()->exists(t | self.argument.resolveDataType().conformsTo(t)))) + + + -- Use of variables in the 'argument' specification + inv MessageArgumentVariableUse ('The use of \'Variable\'s in the \'DataUse\' specification shall be restricted to \'Variable\'s of \'ComponentInstance\'s that participate in this \'Message\' via the provided \'GateReference\'s.' + self.toString()): + (not self.argument.oclIsKindOf(VariableUse) + or (self.sourceGate.component = self.argument.oclAsType(VariableUse).componentInstance + or self.target->exists(t | + t.targetGate.component = self.argument.oclAsType(VariableUse).componentInstance))) + + and self.argument.argument->forAll(a | + not a.dataUse.oclIsKindOf(VariableUse) + or (self.sourceGate.component = a.dataUse.oclAsType(VariableUse).componentInstance + or self.target->exists(t | + t.targetGate.component = a.dataUse.oclAsType(VariableUse).componentInstance))) + + and self.argument.argument->closure(a | a.dataUse.argument)->forAll(a | + not a.dataUse.oclIsKindOf(VariableUse) + or (self.sourceGate.component = a.dataUse.oclAsType(VariableUse).componentInstance + or self.target->exists(t | + t.targetGate.component = a.dataUse.oclAsType(VariableUse).componentInstance))) + + + -- Conforming data type for 'argument' and 'variable' + inv MessageArgumentAndVariableType ('If a \'Variable\' is specified for a \'Target\', the \'DataType\' of \'DataUse\' specification of the \'argument\' shall conform to the \'DataType\'s of referenced \'Variable\'s of all \'Target\'s.' + self.toString()): + self.target->forAll(t | t.valueAssignment->size() = 0 + or not self.argument.resolveDataType().oclIsUndefined() + and t.valueAssignment->forAll(v | self.argument.resolveDataType().conformsTo(v.variable.dataType))) + + + + +context ProcedureCall + -- Only point-to-point procedure calls + inv ProcedureCallTargetCount ('The \'target\' of \'ProcedureCall\' shall contain exactly one \'Target\'. ' + self.toString()): + self.target->size() = 1 + + + -- Each call has a reply + inv ProcedureCallHasReply ('For every \'ProcedureCall\' with empty \'replyTo\' there shall be one or more \'ProcedureCall\'s that have this \'ProcedureCall\' as \'replyTo\'. ' + self.toString()): + ProcedureCall.allInstances()->exists(pc | pc.replyTo = self) + + + -- Call and reply within the same 'TestDescription' + inv ProcedureCallAndReply ('The \'ProcedureCall\' referenced in the \'replyTo\' shall be within the same \'TestDescription\' as this \'ProcedureCall\'. ' + self.toString()): + self.replyTo.oclIsUndefined() + or self.replyTo.getParentTestDescription() = self.getParentTestDescription() + + + -- Call and reply between same components + inv ProcedureCallReplyGates ('The \'sourceGate\' and \'target\' of a \'ProcedureCall\' with \'replyTo\' shall match the \'target\' and \'sourceGate\' of the \'ProcedureCall\' in the \'replyTo\'. That is, corresponding \'GateReference\'s shall be the equal. ' + self.toString()): + ProcedureCall.allInstances()->select(pc | pc.replyTo = self)->forAll( + reply | + reply.target->forAll(t | t.targetGate.component = self.sourceGate.component) + and reply.target->forAll(t | t.targetGate.gate = self.sourceGate.gate) + and self.target->forAll(t | t.targetGate.component = reply.sourceGate.component) + and self.target->forAll(t | t.targetGate.gate = reply.sourceGate.gate)) + + + -- Synchronous procedure calls + inv ProcedureCallSynchronousCalling ('A \'ProcedureCall\' with empty \'replyTo\' shall not be followed by any behaviour in which the component specified in the \'sourceGate\' is participating, other than a \'ProcedureCall\' that specifies this \'ProcedureCall\' as \'replyTo\' or an \'AlternativeBehaviour\' that contains such a \'ProcedureCall\' in the beginning of a \'block\'. ' + self.toString()): + let source = self.sourceGate.component, + affectingBehaviours = self.container().oclAsType(Block).behaviour + ->reject(b | b.oclIsKindOf(ActionBehaviour) + and b.oclAsType(ActionBehaviour).componentInstance <> source) + ->reject(b | b.oclIsKindOf(Interaction) + and b.oclAsType(Interaction).sourceGate.component <> source + and b.oclAsType(Interaction).target->forAll(t | t.targetGate.component <> source)) + ->reject(b| b.oclIsKindOf(TestDescriptionReference) + and (not b.oclAsType(TestDescriptionReference).componentInstanceBinding->isEmpty() + and not b.oclAsType(TestDescriptionReference).componentInstanceBinding + .actualComponent->includes(self))), + following = affectingBehaviours ->at(affectingBehaviours->indexOf(self) + 1) + in (following.oclIsKindOf(ProcedureCall) and following.oclAsType(ProcedureCall).replyTo = self) + or (following.oclIsKindOf(AlternativeBehaviour) + and following.oclAsType(AlternativeBehaviour).block->exists( + b | b.behaviour->first().oclIsKindOf(ProcedureCall) + and b.behaviour->first().oclAsType(ProcedureCall).replyTo = self)) + + + -- Type of procedure call + inv ProcedureCallSignatureInGateTypes ('The \'ProcedureSignature\' referred to in the \'procedure\' shall be one of the \'DataType\'s referenced in the \'GateType\' definition of the \'GateInstance\'s referred to by the source and target \'GateReference\'s of the \'ProcedureCall\'. ' + self.toString()): + self.sourceGate.gate.type.allDataTypes()->includes(self.signature) + and self.target->forAll(targetGate.gate.type.allDataTypes()->includes(self.signature)) + + + -- No mixing of parameters + inv ProcedureParameterKind ('All \'ParameterBinding\'s specified in the \'argument\' shall refer to \'ProcedureParameter\'s of the same \'ParameterKind\'. ' + self.toString()): + self.argument->collect(pb | pb.parameter.oclAsType(ProcedureParameter).kind) + ->asSet()->size() <= 1 + + + -- Matching procedure arguments + inv ProcedureCallArguments ('For a \'ProcedureCall\' with empty \'replyTo\' there shall be one \'ParameterBinding\' instance in the \'argument\' for each \'ProcedureParameter\' with kind \'In\' in the associated \'ProcedureSignature\'. For a \'ProcedureCall\' with \'replyTo\' there shall be one \'ParameterBinding\' instance in the \'argument\' for each \'ProcedureParameter\' with kind \'Out\' or \'Exception\' in the associated \'ProcedureSignature\'. ' + self.toString()): + (self.replyTo.oclIsUndefined() and self.signature.parameter->select(p | p.kind = ParameterKind::In) + ->forAll(p | self.argument.parameter->includes(p))) + or (not self.replyTo.oclIsUndefined() and self.signature.parameter->reject(p | p.kind = ParameterKind::In) + ->forAll(p | self.argument.parameter->includes(p))) + + + -- Use of variables in the 'argument' specification + inv ProcedureCallVariableUse ('The use of \'Variable\'s in the \'DataUse\' specifications in \'ParameterBinding\'s shall be restricted to \'Variable\'s of \'ComponentInstance\'s that participate in this \'ProcedureCall\' via the provided \'GateReference\'s. ' + self.toString()): + self.argument + ->closure(pb | pb.dataUse.argument)->union(self.argument)->collect(pb | pb.dataUse) + ->select(du | du.oclIsKindOf(VariableUse)) + ->forAll(du | self.getParticipatingComponents()->includes( + du.oclAsType(VariableUse).componentInstance)) + + + -- Reply not starting event of exceptional behaviour + inv ProcedureCallReplyNotInExceptional ('A \'ProcedureCall\' that specifies replyTo shall not be the first behaviour of a block in an \'ExceptionalBehaviour\'. ' + self.toString()): + self.replyTo.oclIsUndefined() or not self.container().container().oclIsKindOf(ExceptionalBehaviour) + + + + +context Target + -- Variable and target gate of the same component instance + inv TargetComponent ('The \'Variable\'s referenced by \'valueAssignment\' shall exist in the same \'ComponentType\' as the \'GateInstance\' that is referred to by the \'GateReference\' of the \'targetGate\'.' + self.toString()): + self.valueAssignment->isEmpty() + or self.targetGate.component.type.allVariables()->includesAll(self.valueAssignment.variable) + + + -- Variable of a tester component only + inv TargetVariableComponentRole ('If a \'ValueAssignment\' is specified, the \'ComponentInstance\' referenced by \'targetGate\' shall be in the role \'Tester\'.' + self.toString()): + self.valueAssignment->isEmpty () or self.targetGate.component.role = ComponentInstanceRole::Tester + + + + +context ValueAssignment + -- Conforming data type for 'parameter' and 'variable' + inv AssignedParamterType ('If the \'parameter\' is specified then its type shall conform to the type of the \'variable\'. ' + self.toString()): + self.parameter.oclIsUndefined() or self.parameter.dataType.conformsTo(self.variable.dataType) + + + -- Parameter of associated procedure signature + inv AssignedProcedureParameter ('If the \'parameter\' is specified then it shall be contained in the \'ProcedureSignature\' that is referred in the \'signature\' ot the \'ProcedureCall\' containing this \'ValueAssignment\'.' + self.toString()): + self.parameter.oclIsUndefined() + or (self.container().container().oclIsKindOf(ProcedureCall) and + self.container().container().oclAsType(ProcedureCall).signature.parameter->includes(self.parameter)) + + + -- [Figure 9.6: Test description reference] + + +context TestDescriptionReference + -- All test description parameters bound + inv AllTestDescriptionParametersBound ('For each \'FormalParameter\' defined in \'formalParameter of\' the referenced \'TestDescription\' there shall be a \'ParameterBinding\' in \'argument\' that refers to that \'FormalParameter\' in \'parameter\'.' + self.toString()): + self.testDescription.formalParameter->forAll(p | self.argument->exists(a | a.parameter = p)) + + + -- No use of variables in arguments + inv NoVariablesInLocallyOrderedTestDescriptionReference ('In locally ordered \'TestDescription\'s, \'DataUse\' expressions used to describe arguments shall not contain variables directly or indirectly in \'TestDescriptionReference\'s.' + self.toString()): + self.argument. dataUse->forAll(du | + not du.oclIsKindOf(VariableUse) + and du.argument->forAll(a | not a.dataUse.oclIsKindOf(VariableUse)) + and du.argument->closure(a | a.dataUse.argument)->forAll(a | + not a.dataUse.oclIsKindOf(VariableUse))) + + + -- No use of time labels in arguments + inv NoTimeLabelsInLocallyOrderedTestDescriptionReference ('In locally ordered \'TestDescription\'s, \'DataUse\' expressions used to describe arguments shall not contain time labels directly or indirectly in \'TestDescriptionReference\'s.' + self.toString()): + self.argument.dataUse->forAll(du | + not du.oclIsKindOf(TimeLabelUse) + and du.argument->forAll(a | not a.dataUse.oclIsKindOf(TimeLabelUse)) + and du.argument->closure(a | a.dataUse.argument)->forAll(a | + not a.dataUse.oclIsKindOf(TimeLabelUse))) + + + -- Restriction to 1:1 component instance bindings + inv UniqueComponentBindings ('If component instance bindings are provided, the component instances referred to in the bindings shall occur at most once for the given test description reference.' + self.toString()): + self.componentInstanceBinding->isEmpty() + or self.componentInstanceBinding->forAll(b | + self.componentInstanceBinding->one(c | + c.formalComponent = b.formalComponent or c.actualComponent = b.actualComponent)) + + + -- Compatible test configurations + inv CompatibleConfiguration ('The \'TestConfiguration\' of the referenced (invoked) \'TestDescription\' shall be compatible with the \'TestConfiguration\' of the referencing (invoking) \'TestDescription\' under the provided \'ComponentInstanceBinding\'s between the \'ComponentInstance\'s of the \'TestConfiguration\'s of referenced and referencing \'TestDescription\'s. ' + self.toString()): + self.testDescription.testConfiguration.compatibleWith( + self.getParentTestDescription().testConfiguration, self.componentInstanceBinding) + + + -- No combining of local and total ordering + inv LocalAndTotalOrdering ('The referenced \'TestDescription\' shall have the same ordering assumption as the referencing \'TestDescription\'.' + self.toString()): + self.getParentTestDescription().isLocallyOrdered = self.testDescription.isLocallyOrdered + + + + +context ComponentInstanceBinding + -- Conforming component types + inv BindingComponentTypes ('The \'ComponentType\' of the actual \'ComponentInstance\' shall conform to \'ComponentType\' of the formal \'ComponentInstance.' + self.toString()): + self.actualComponent.type.conformsTo(self.formalComponent.type) + + + -- Matching component instance roles + inv BindingComponentRoles ('Both, the formal and the actual component instances, shall have the same \'ComponentInstanceRole\' assigned to.' + self.toString()): + self.formalComponent.role = self.actualComponent.role + + + -- [Figure 9.7: Action behaviour concepts] + + +context ActionBehaviour + -- 'ActionBehaviour' on 'Tester' components only + inv ActionBehaviourComponentRole ('The \'ComponentInstance\' that an \'ActionBehaviour\' refers to shall be of role \'Tester\'.' + self.toString()): + self.componentInstance.oclIsUndefined() or self.componentInstance.role = ComponentInstanceRole::Tester + + + -- Known 'componentInstance' with locally-ordered behaviour + inv ActionBehaviourComponentInstance ('The \'ComponentInstance\' that an \'ActionBehaviour\' refers to shall be specified if the \'ActionBehaviour\' is used within a locally-ordered \'TestDescription\'.' + self.toString()): + not self.componentInstance.oclIsUndefined() or not self.getParentTestDescription().isLocallyOrdered + + + + +context ActionReference + -- All action parameters bound + inv AllActionParametersBound ('For each \'FormalParameter\' defined in \'formalParameter of\' the referenced \'Action\' there shall be a \'ParameterBinding\' in \'argument\' that refers to that \'FormalParameter\' in \'parameter\'. ' + self.toString()): + self.action.formalParameter->forAll(p | self.argument.parameter->includes(p)) + + + -- No 'Function's in 'ActionReference' + inv ActionReferenceFunction ('The referenced \'Action\' shall not be a \'Function\'.' + self.toString()): + not self.action.oclIsTypeOf(Function) + + + + +context Assignment + -- Conforming data type + inv AssignmentDataType ('The provided \'DataUse\' expression shall conform to the \'DataType\' of the referenced \'Variable\'.' + self.toString()): + self.expression.resolveDataType().conformsTo(self.variable.variable.dataType) + + + -- Empty 'argument' set for 'variable' + inv AssignmentVariableArgument ('The \'argument\' and \'reduction\' sets shall be empty.' + self.toString()): + self.variable.argument->isEmpty() + + + + + +endpackage diff --git a/plugins/org.etsi.mts.tdl.constraints/ocl/tdl-structured-constraints.ocl b/plugins/org.etsi.mts.tdl.constraints/ocl/tdl-structured-constraints.ocl new file mode 100644 index 0000000000000000000000000000000000000000..dee88616144d5979b59a2c458f618fb1471db0c9 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.constraints/ocl/tdl-structured-constraints.ocl @@ -0,0 +1,134 @@ +import 'http://www.etsi.org/spec/TDL/1.4.1' +import 'http://www.etsi.org/spec/TDL/1.3.1/structured' + +package structuredobjectives + +context PICSReference + -- Combining Multiple 'PICSReference's + inv MultiplePICS ('A \'Comment\' with body containing an \'and\' or \'or\' shall be attached to the \'PICSReference\' as a Boolean operand if there are two or more \'PICSReference\'s and it is not the first \'PICSReference\'.' + self.toString()): + self.getTestObjective().picsReference->size() < 2 + or self.getTestObjective().picsReference->forAll(p | + self.getTestObjective().picsReference->at(0) = p + or (not p.comment->isEmpty() + and (p.comment->first()._'body' = 'and' + or p.comment->first()._'body' = 'or'))) + + + + +context RepeatedEventSequence + -- Either 'repetitions', or 'interval' or neither shall be specified + inv RepetitionOrInterval ('At most one of the optional properties \'repetitions\' or \'interval\' shall be defined.' + self.toString()): + self.repetitions.oclIsUndefined() or self.interval.oclIsUndefined() + + + -- The 'repetitions' 'Value' shall be countable and positive + inv RepetitionCount ('The expression assigned to the \'repetitions\' property shall evaluate to a positive and countable \'Value\'.' + self.toString()): + true --This constraint cannot be expressed in OCL + + + -- The 'interval' 'Value' shall be countable and positive + inv RepetitionInterval ('The expression assigned to the \'repetitions\' property shall evaluate to a positive and countable \'Value\'' + self.toString()): + true --This constraint cannot be expressed in OCL + + + + +--context EventOccurrence +-- -- Combining Multiple 'EventOccurrence's +-- inv MultipleEventOccurrences ('A \'Comment\' with body containing an \'and\' or \'or\' shall be attached to the \'EventOccurrence\' as an operand if there are two or more \'EventOccurrence\'s and it is not the first \'EventOccurrence\'.' + self.toString()): +-- self.container().oclIsTypeOf(EventSpecificationTemplate) +-- or self.container().events->size() < 2 +-- or self.container().events->forAll(o | +-- self.container().events->at(0) = o +-- or (not o.comment->isEmpty() +-- and (o.comment->first()._'body' = 'and' +-- or o.comment->first()._'body' = 'or'))) + + + + +context EntityReference + -- An 'Entity' or a 'ComponentInstance' shall be referenced. + inv EntityOrComponentInstance ('There shall be a reference to an \'Entity\' or a \'ComponentInstance\' but not both.' + self.toString()): + (not self.entity.oclIsUndefined() and self.component.oclIsUndefined()) + or (self.entity.oclIsUndefined() and not self.component.oclIsUndefined()) + + + + +context Content + -- No nested 'Content's if 'Value' is provided + inv ContentOrValue ('Either nested \'Content\'s or \'Value\' may be specified within \'Content\', but not both.' + self.toString()): + self.content->isEmpty() or self.value.oclIsUndefined() + + + + +context LiteralValueReference + -- Referenced 'LiteralValue' visibility + inv VisibleValue ('Only \'LiteralValue\'s defined within previous \'EventOccurrence\'s of the containing \'StructuredTestObjective\' may be referenced.' + self.toString()): + self.getTestObjective().contains(self.content) + and self.getTestObjective().indexOf(self.content) < self.getTestObjective().indexOf(self) + + + + +context ContentReference + -- Referenced 'Content' visibility + inv VisibleContent ('Only \'Content\' defined within previous \'EventOccurrence\'s of the containing \'StructuredTestObjective\' may be referenced.' + self.toString()): + self.getTestObjective().contains(self.content) + and self.getTestObjective().indexOf(self.content) < self.getTestObjective().indexOf(self) + + + + +context DataReference + -- 'DataUse' restrictions within 'DataReference' + inv DataReferenceContents ('Only \'StaticDataUse\' may be used directly or indirectly in \'ParameterBinding\'s of the \'StaticDataUse\' within a \'DataReference\'.' + self.toString()): + self.content.oclIsTypeOf(StaticDataUse) + and self.content.argument->forAll(a | a.dataUse.oclIsKindOf(StaticDataUse)) + and self.content.argument->closure(a | + a.dataUse.argument)->forAll(a|a.dataUse.oclIsKindOf(StaticDataUse)) + + + -- No 'reduction' within 'DataReference' + inv DataReferenceReduction ('The \'reduction\' property of \'StaticDataUse\' inherited from \'DataUse\' shall not be used within a \'DataReference\'.' + self.toString()): + self.content.reduction->isEmpty() + + + + +context EventTemplateOccurrence + -- 'EntityReference' of referenced 'EventSpecificationTemplate' + inv EntityTemplateOccurrenceConsistency ('If \'EntityBinding\'s are provided, the \'Entity\'s or \'ComponentInstance\'s referenced in the \'templateEntity\' properties shall also be referenced by one of the \'EntityReferences\' in the \'EventOccurrenceSpecification\' of the \'EventSpecificationTemplate\' referenced in the \'EventTemplateOccurrence\'.' + self.toString()): + self.entityBinding->forAll(b | + (not b.templateEntity.entity.oclIsUndefined() + and (b.templateEntity.entity = + self.eventTemplate.eventSpecification.entityReference.entity)) + or (not b.templateEntity.component.oclIsUndefined() + and (b.templateEntity.component = + self.eventTemplate.eventSpecification.entityReference.component) + or self.eventTemplate.eventSpecification.oppositeEntityReference->exists(e | + (not b.templateEntity.entity.oclIsUndefined() + and (e.entity = b.templateEntity.entity)) + or (not b.templateEntity.component.oclIsUndefined() + and (e.component = b.templateEntity.component))))) + + + + +context VariantBinding + -- Referenced 'Value' of 'VariantBinding' + inv VariantBindingValues ('If the \'value\' property references a \'LiteralValue\' or \'Content\' element, the referenced element shall be contained in the \'StructuredTestObjective\' containing the \'VariantBinding\'.' + self.toString()): + self.value.oclIsTypeOf(LiteralValueReference) implies + self.value.oclAsType(LiteralValueReference).content.getTestObjective() = self.getTestObjective() + and + self.value.oclIsKindOf(ContentReference) implies + self.value.oclAsType(ContentReference).content.getTestObjective() = self.getTestObjective() + + + + + +endpackage diff --git a/plugins/org.etsi.mts.tdl.constraints/pom.xml b/plugins/org.etsi.mts.tdl.constraints/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..b49dbc9f3d10253d1522aa7e7d7d7b26c53e76d5 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.constraints/pom.xml @@ -0,0 +1,19 @@ + + 4.0.0 + + org.etsi.mts.tdl + org.etsi.mts.tdl.parent + 1.0.0-SNAPSHOT + ../../org.etsi.mts.tdl.parent + + + org.etsi.mts.tdl.constraints + eclipse-plugin + + + + maven-compiler-plugin + + + + \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.constraints/src/org/etsi/mts/tdl/constraints/evl/TDLDiagnostician.java b/plugins/org.etsi.mts.tdl.constraints/src/org/etsi/mts/tdl/constraints/evl/TDLDiagnostician.java new file mode 100644 index 0000000000000000000000000000000000000000..4d6acbb8a3bdfb771b2325ae223413bd914ff878 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.constraints/src/org/etsi/mts/tdl/constraints/evl/TDLDiagnostician.java @@ -0,0 +1,35 @@ +package org.etsi.mts.tdl.constraints.evl; + +import java.util.Map; + +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EValidator; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecore.util.Diagnostician; +import org.eclipse.emf.ecore.util.EObjectValidator; +import org.eclipse.ocl.pivot.internal.labels.LabelSubstitutionLabelProvider; + +public class TDLDiagnostician extends Diagnostician { + @Override + public Map createDefaultContext() { + Map context = super.createDefaultContext(); + context.put(EValidator.SubstitutionLabelProvider.class, new LabelSubstitutionLabelProvider()); + return context; + } + + public BasicDiagnostic createDefaultDiagnostic(Resource resource) { + return new BasicDiagnostic(EObjectValidator.DIAGNOSTIC_SOURCE, 0, "Message", new Object[] { resource }); + } + + public Diagnostic validate(Resource resource) { + BasicDiagnostic diagnostics = createDefaultDiagnostic(resource); + Map context = createDefaultContext(); + resource.getAllContents().forEachRemaining(e->validate(e, diagnostics, context)); +// for (EObject eObject : resource.getContents()) { +// validate(eObject, diagnostics, context); +// } + return diagnostics; + } +} diff --git a/plugins/org.etsi.mts.tdl.constraints/src/org/etsi/mts/tdl/constraints/evl/Validator.java b/plugins/org.etsi.mts.tdl.constraints/src/org/etsi/mts/tdl/constraints/evl/Validator.java index a5a0f1013dcca6ff2d96991f8f1545ea89d0005e..3558f81006465eebc761e4c8189333085646f2b7 100644 --- a/plugins/org.etsi.mts.tdl.constraints/src/org/etsi/mts/tdl/constraints/evl/Validator.java +++ b/plugins/org.etsi.mts.tdl.constraints/src/org/etsi/mts/tdl/constraints/evl/Validator.java @@ -10,6 +10,7 @@ import java.io.PrintStream; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; +import java.net.URI; import java.net.URISyntaxException; import java.net.URL; import java.net.URLEncoder; @@ -21,6 +22,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Comparator; import java.util.Date; +import java.util.Enumeration; import java.util.HashMap; import java.util.List; import java.util.Properties; @@ -32,10 +34,13 @@ import java.util.stream.Collectors; import org.eclipse.core.runtime.FileLocator; import org.eclipse.core.runtime.Platform; -import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.common.util.Diagnostic; import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.EValidator; import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecore.resource.ResourceSet; +import org.eclipse.emf.ecore.util.EObjectValidator; import org.eclipse.emf.ecore.util.EcoreUtil; import org.eclipse.epsilon.common.parse.Region; import org.eclipse.epsilon.common.parse.problem.ParseProblem; @@ -53,14 +58,24 @@ import org.eclipse.epsilon.eol.types.EolClasspathNativeTypeDelegate; import org.eclipse.epsilon.etl.EtlModule; import org.eclipse.epsilon.evl.EvlModule; import org.eclipse.epsilon.evl.IEvlFixer; +import org.eclipse.epsilon.evl.IEvlModule; +import org.eclipse.epsilon.evl.emf.validation.CompositeEValidator; +import org.eclipse.epsilon.evl.emf.validation.EvlValidator; +import org.eclipse.epsilon.evl.emf.validation.EvlValidator.ValidationProblemListener; import org.eclipse.epsilon.evl.execute.UnsatisfiedConstraint; import org.eclipse.epsilon.profiling.Profiler; import org.eclipse.epsilon.profiling.ProfilerTargetSummary; import org.eclipse.epsilon.profiling.ProfilingExecutionListener; +import org.eclipse.jdt.annotation.NonNull; +import org.eclipse.ocl.pivot.utilities.OCL; +import org.eclipse.ocl.pivot.utilities.PivotUtil; +import org.eclipse.ocl.pivot.validation.ComposedEValidator; +import org.eclipse.ocl.xtext.completeocl.validation.CompleteOCLEObjectValidator; import org.eclipse.xtext.nodemodel.ICompositeNode; import org.eclipse.xtext.nodemodel.util.NodeModelUtils; import org.eclipse.xtext.resource.XtextResource; import org.etsi.mts.tdl.tdlPackage; +import org.etsi.mts.tdl.resources.ResourceHandler; import org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage; import org.etsi.mts.tdl.extendedconfigurations.ExtendedConfigurationsPackage; import org.osgi.framework.Bundle; @@ -70,7 +85,75 @@ import org.osgi.framework.Bundle; public class Validator { private static final List packages = List.of(tdlPackage.eINSTANCE, StructuredObjectivesPackage.eINSTANCE, ExtendedConfigurationsPackage.eINSTANCE); + + private static void registerValidator(EPackage ePackage, EValidator validator) { + EValidator existingValidator = EValidator.Registry.INSTANCE.getEValidator(ePackage); + if (existingValidator instanceof CompositeEValidator) { + ((CompositeEValidator) existingValidator).getDelegates().add(validator); + } else { + if (existingValidator == null) { + existingValidator = EObjectValidator.INSTANCE; + } + CompositeEValidator newValidator = new CompositeEValidator(); + newValidator.getDelegates().add(existingValidator); + newValidator.getDelegates().add(validator); + EValidator.Registry.INSTANCE.put(ePackage, newValidator); + } + } + public void validateOCL2(Resource r) { + try { + OCL ocl = OCL.newInstance(EPackage.Registry.INSTANCE); + URI uri = ResourceHandler.getSourceUri(this.getClass(), "org.etsi.mts.tdl.constraints", "/ocl/tdl-constraints.ocl"); + org.eclipse.emf.common.util.URI oclURI = org.eclipse.emf.common.util.URI.createURI(uri.toString()); + Resource asResource = ocl.parse(oclURI); + ComposedEValidator newEValidator = ComposedEValidator.install(tdlPackage.eINSTANCE); + newEValidator.addChild(new CompleteOCLEObjectValidator(tdlPackage.eINSTANCE, oclURI)); + + TDLDiagnostician diagnostician = new TDLDiagnostician(); + Diagnostic diagnostics = diagnostician.validate(r); + System.out.println(diagnostics.getChildren().size()); + // Print the diagnostics + if (diagnostics.getSeverity() != Diagnostic.OK) { + String formattedDiagnostics = PivotUtil.formatDiagnostics(diagnostics, "In"); + System.out.println("Validation: "+formattedDiagnostics); + } + } catch (Exception e) { + e.printStackTrace(); + } + + } + + public void validateOCL(Resource r) { + //TODO: does not quite work yet + ComposedEValidator oclValidator = ComposedEValidator.install(tdlPackage.eINSTANCE); + try { + URI uri = ResourceHandler.getSourceUri(this.getClass(), "org.etsi.mts.tdl.constraints", "/ocl/tdl-constraints.ocl"); + org.eclipse.emf.common.util.URI oclURI = org.eclipse.emf.common.util.URI.createURI(uri.toString()); + + CompleteOCLEObjectValidator validator = new CompleteOCLEObjectValidator(tdlPackage.eINSTANCE, + oclURI); + // Validate the entire Resource containing the library + //TODO: overrides other validators + registerValidator(tdlPackage.eINSTANCE, validator); +// EValidator.Registry.INSTANCE.put(tdlPackage.eINSTANCE, validator); + + TDLDiagnostician diagnostician = new TDLDiagnostician(); + Diagnostic diagnostics = diagnostician.validate(r); + System.out.println(diagnostics.getChildren().size()); + // Print the diagnostics + if (diagnostics.getSeverity() != Diagnostic.OK) { + String formattedDiagnostics = PivotUtil.formatDiagnostics(diagnostics, "In"); + System.out.println("Validation: "+formattedDiagnostics); + System.out.printf("Validation: %s\n", formattedDiagnostics); +// debugPrintf ("Validation: %\n", formattedDiagnostics); + } + } catch (URISyntaxException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + public List validate(Resource r) throws Exception { List violations = new ArrayList<>(); String prefix = "tdl-generated-ETSI-ES-203-119-"; @@ -104,19 +187,7 @@ public class Validator { for (String part : constraints) { String source = "epsilon/constraints/"+part; - java.net.URI uri = new File(source).toURI(); - //FIXED: also for TO? -> should work with all now - if (Platform.isRunning()) { - //System.out.println("Running as plugin..."); - Bundle bundle = Platform.getBundle("org.etsi.mts.tdl.constraints"); - URL url = bundle.getEntry(source); - uri = url.toURI(); - } else { - //WS - String binPath=this.getClass().getProtectionDomain().getCodeSource().getLocation().getPath(); - String projectPath = new File(binPath).getParent(); - uri = new File(projectPath+"/"+source).toURI(); - } + URI uri = ResourceHandler.getSourceUri(this.getClass(), "org.etsi.mts.tdl.constraints", source); EvlModule module = new EvlModule(); module.parse(uri); @@ -152,7 +223,7 @@ public class Validator { .filter(v -> ((EObject)v.getInstance()).eResource() == r) .collect(Collectors.toList()); - dumpViolations(violations); +// dumpViolations(violations); //TODO: Needed? New API does not provide it // module.reset(); @@ -167,6 +238,7 @@ public class Validator { e.printStackTrace(); } catch (Exception e) { //TODO: Error message refinements + e.printStackTrace(); System.err.println(e.getMessage() .replaceAll("\n.+epsilon/", "\n at (epsilon/") // .replaceAll("\\.", "") @@ -181,11 +253,12 @@ public class Validator { return violations; } - private void dumpViolations(List violations) { + + public void dumpViolations(List violations, boolean includeLocation) { for (UnsatisfiedConstraint constraint : violations) { - System.out.println(" " + constraint.getMessage()); + System.out.println(" Validator: " + constraint.getMessage()); //TODO: this can only work with XtextResources - if (((EObject) constraint.getInstance()).eResource() instanceof XtextResource) { + if (includeLocation && ((EObject) constraint.getInstance()).eResource() instanceof XtextResource) { ICompositeNode node = NodeModelUtils.findActualNodeFor((EObject) constraint.getInstance()); String text = "Line "+node.getStartLine()+"-"+node.getEndLine()+ ": "+node.getText().trim(); System.out.println(" " + text); @@ -216,7 +289,9 @@ public class Validator { // System.out.println(lines); lines.set(lines.size()-1, lines.get(lines.size()-1).substring(0, region.getEnd().getColumn())); lines.set(0, lines.get(0).substring(region.getStart().getColumn()-1)); - lines = lines.stream().filter(l -> !l.trim().startsWith("//")).toList(); + lines = lines.stream() + .filter(l -> !l.trim().startsWith("//")) + .collect(Collectors.toList()); snippet = String.join(" ", lines) .replaceAll("\\s+", " ") ; diff --git a/plugins/org.etsi.mts.tdl.execution.java/.classpath b/plugins/org.etsi.mts.tdl.execution.java/.classpath new file mode 100644 index 0000000000000000000000000000000000000000..fa5af5aa5cee0cf800fa96a762c52b89d069326f --- /dev/null +++ b/plugins/org.etsi.mts.tdl.execution.java/.classpath @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/plugins/org.etsi.mts.tdl.execution.java/.gitignore b/plugins/org.etsi.mts.tdl.execution.java/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..b83d22266ac8aa2f8df2edef68082c789727841d --- /dev/null +++ b/plugins/org.etsi.mts.tdl.execution.java/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/plugins/org.etsi.mts.tdl.execution.java/.project b/plugins/org.etsi.mts.tdl.execution.java/.project new file mode 100644 index 0000000000000000000000000000000000000000..8e40f3b0c0ef06d9217cc05c9295c7d56a0039eb --- /dev/null +++ b/plugins/org.etsi.mts.tdl.execution.java/.project @@ -0,0 +1,34 @@ + + + org.etsi.mts.tdl.execution.java + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.eclipse.m2e.core.maven2Nature + org.eclipse.jdt.core.javanature + org.eclipse.pde.PluginNature + + diff --git a/plugins/org.etsi.mts.tdl.execution.java/.settings/org.eclipse.jdt.apt.core.prefs b/plugins/org.etsi.mts.tdl.execution.java/.settings/org.eclipse.jdt.apt.core.prefs new file mode 100644 index 0000000000000000000000000000000000000000..d4313d4b25e4b826b5efa4bed06fd69068761519 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.execution.java/.settings/org.eclipse.jdt.apt.core.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.apt.aptEnabled=false diff --git a/plugins/org.etsi.mts.tdl.execution.java/.settings/org.eclipse.jdt.core.prefs b/plugins/org.etsi.mts.tdl.execution.java/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000000000000000000000000000000000000..6de7763da58418b007110a107e3131ac59272ac1 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.execution.java/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,16 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=11 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=11 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning +org.eclipse.jdt.core.compiler.processAnnotations=disabled +org.eclipse.jdt.core.compiler.release=enabled +org.eclipse.jdt.core.compiler.source=11 diff --git a/plugins/org.etsi.mts.tdl.execution.java/.settings/org.eclipse.m2e.core.prefs b/plugins/org.etsi.mts.tdl.execution.java/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000000000000000000000000000000000000..f897a7f1cb2389f85fe6381425d29f0a9866fb65 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.execution.java/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/plugins/org.etsi.mts.tdl.execution.java/META-INF/MANIFEST.MF b/plugins/org.etsi.mts.tdl.execution.java/META-INF/MANIFEST.MF new file mode 100644 index 0000000000000000000000000000000000000000..84580e2431a04e94f96f4b5e3c8c2c64eba65038 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.execution.java/META-INF/MANIFEST.MF @@ -0,0 +1,20 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: Java +Bundle-SymbolicName: org.etsi.mts.tdl.execution.java;singleton:=true +Bundle-Version: 1.0.0.qualifier +Bundle-ClassPath: . +Automatic-Module-Name: org.etsi.mts.tdl.execution.java +Bundle-RequiredExecutionEnvironment: JavaSE-11 +Export-Package: . +Require-Bundle: org.eclipse.core.runtime, + org.eclipse.core.resources, + org.eclipse.ui, + org.eclipse.ui.ide, + org.eclipse.emf, + org.eclipse.emf.ecore, + org.etsi.mts.tdl.model, + junit-jupiter-api, + com.fasterxml.jackson.core.jackson-core, + com.fasterxml.jackson.core.jackson-databind, + com.fasterxml.jackson.core.jackson-annotations diff --git a/plugins/org.etsi.mts.tdl.execution.java/README.md b/plugins/org.etsi.mts.tdl.execution.java/README.md new file mode 100644 index 0000000000000000000000000000000000000000..9190fdf9e4582d4c996e6e170b13f22dd13ef979 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.execution.java/README.md @@ -0,0 +1,11 @@ +# TDL test execution + +## Development + +- Build library using Maven + +## Runtime project configuration + +- Eclipse Java project (add Java nature and JRE library to build path) +- JUnit library in build path (Classpath) +- TDL execution library (org.etsi.mts.tdl.examples.execution.java) in build path diff --git a/plugins/org.etsi.mts.tdl.execution.java/build.properties b/plugins/org.etsi.mts.tdl.execution.java/build.properties new file mode 100644 index 0000000000000000000000000000000000000000..4aef9d455d51d86095778a9d4e959e7cf60c2312 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.execution.java/build.properties @@ -0,0 +1,6 @@ +source.. = src/,\ + runtime-src/ +bin.includes = META-INF/,\ + .,\ + plugin.xml +output.. = target/classes/ diff --git a/plugins/org.etsi.mts.tdl.execution.java/plugin.xml b/plugins/org.etsi.mts.tdl.execution.java/plugin.xml new file mode 100644 index 0000000000000000000000000000000000000000..d6deab7396eabeaf450a7606348d83ab16e4ff08 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.execution.java/plugin.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/plugins/org.etsi.mts.tdl.execution.java/pom.xml b/plugins/org.etsi.mts.tdl.execution.java/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..dc5f353c86704cf9a93b52839a8db8acfda40d29 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.execution.java/pom.xml @@ -0,0 +1,71 @@ + + 4.0.0 + + org.etsi.mts.tdl + org.etsi.mts.tdl.parent + 1.0.0-SNAPSHOT + ../../org.etsi.mts.tdl.parent + + + org.etsi.mts.tdl.execution.java + eclipse-plugin + + runtime-src + + + maven-compiler-plugin + + + maven-assembly-plugin + + + jar-with-dependencies + + + + + make-assembly + package-single + + single + + + + + + + + + com.google.inject + guice + 5.1.0 + + + com.fasterxml.jackson.core + jackson-core + 2.14.1 + + + com.fasterxml.jackson.core + jackson-databind + 2.14.1 + + + org.junit.jupiter + junit-jupiter-api + 5.9.2 + + + com.fasterxml.jackson.core + jackson-databind + 2.14.1 + + + org.assertj + assertj-core + 3.24.2 + + + \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/adapters/DefaultAdapter.java b/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/adapters/DefaultAdapter.java new file mode 100644 index 0000000000000000000000000000000000000000..3df18df29a28df5501c8491d26c42ec5abbb1f84 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/adapters/DefaultAdapter.java @@ -0,0 +1,66 @@ +package org.etsi.mts.tdl.execution.java.adapters; + +import org.etsi.mts.tdl.execution.java.tri.Data; +import org.etsi.mts.tdl.execution.java.tri.Reporter; +import org.etsi.mts.tdl.execution.java.tri.RuntimeHelper; +import org.etsi.mts.tdl.execution.java.tri.StopException; +import org.etsi.mts.tdl.execution.java.tri.Validator; +import org.etsi.mts.tdl.execution.java.tri.Verdict; + +public class DefaultAdapter implements Validator, Reporter, RuntimeHelper { + + @Override + public boolean equals(Object o0, Object o1) { + // TODO Auto-generated method stub + return false; + } + + @Override + public T clone(T object) { + // TODO Auto-generated method stub + return object; + } + + @Override + public void comment(String body) { + // TODO Auto-generated method stub + System.out.println(body); + } + + @Override + public void testObjectiveReached(String uri, String description) { + // TODO Auto-generated method stub + System.out.println("Reached: " + uri + " | " + description); + } + + @Override + public void behaviourStarted(String kind, String id, Object... properties) { + // TODO Auto-generated method stub + System.out.println("Started: " + kind + " | id = " + id); + } + + @Override + public void behaviourCompleted(String id) { + // TODO Auto-generated method stub + System.out.println("Completed: id = " + id); + } + + @Override + public void runtimeError(Throwable t) { + // TODO Auto-generated method stub + System.err.println(t); + } + + @Override + public boolean matches(Data expected, Data actual) { + // TODO Auto-generated method stub + return false; + } + + @Override + public void setVerdict(Verdict verdict) { + // TODO Auto-generated method stub + System.out.println("Set verdict to " + verdict.name); + } + +} diff --git a/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/adapters/http/HttpHeader.java b/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/adapters/http/HttpHeader.java new file mode 100644 index 0000000000000000000000000000000000000000..f36a3b906563ab1868c759390b71cdc2fb914d92 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/adapters/http/HttpHeader.java @@ -0,0 +1,16 @@ +package org.etsi.mts.tdl.execution.java.adapters.http; + +import java.util.List; + +public class HttpHeader { + public String name; + public String value; + public HttpHeader(String name, String value) { + this.name = name; + this.value = value; + } + public HttpHeader(String name, List value) { + this.name = name; + this.value = String.join(" ", value.toArray(new String[value.size()])); + } +} \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/adapters/http/HttpMethod.java b/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/adapters/http/HttpMethod.java new file mode 100644 index 0000000000000000000000000000000000000000..8008ddeae3309edcdad2b0d8e6bb232abce19bbe --- /dev/null +++ b/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/adapters/http/HttpMethod.java @@ -0,0 +1,5 @@ +package org.etsi.mts.tdl.execution.java.adapters.http; + +public enum HttpMethod { + GET, POST, PUT, PATCH, DELETE +} \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/adapters/http/HttpParameterLocation.java b/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/adapters/http/HttpParameterLocation.java new file mode 100644 index 0000000000000000000000000000000000000000..b385481b6fa40f0ff0aa3bb80ece88fb62f45f8d --- /dev/null +++ b/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/adapters/http/HttpParameterLocation.java @@ -0,0 +1,5 @@ +package org.etsi.mts.tdl.execution.java.adapters.http; + +public enum HttpParameterLocation { + path, quey, cookie; +} \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/adapters/http/HttpRequestData.java b/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/adapters/http/HttpRequestData.java new file mode 100644 index 0000000000000000000000000000000000000000..986ac3a5d009ebfd3c7b2df0c14e4595d666f8dd --- /dev/null +++ b/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/adapters/http/HttpRequestData.java @@ -0,0 +1,12 @@ +package org.etsi.mts.tdl.execution.java.adapters.http; + +import java.util.ArrayList; +import java.util.List; + +public class HttpRequestData { + public String uri; + public HttpMethod method; + public List headers = new ArrayList<>(); + public List parameters = new ArrayList<>(); + public Object body; +} diff --git a/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/adapters/http/HttpRequestParameter.java b/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/adapters/http/HttpRequestParameter.java new file mode 100644 index 0000000000000000000000000000000000000000..b587d5a4d8ee2962697278a55d7dfb8fab22aee4 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/adapters/http/HttpRequestParameter.java @@ -0,0 +1,12 @@ +package org.etsi.mts.tdl.execution.java.adapters.http; + +public class HttpRequestParameter { + public HttpParameterLocation location; + public String name; + public String value; + public HttpRequestParameter(String name, String value, HttpParameterLocation location) { + this.name = name; + this.value = value; + this.location = location; + } +} \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/adapters/http/HttpResponseData.java b/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/adapters/http/HttpResponseData.java new file mode 100644 index 0000000000000000000000000000000000000000..74a9929a99fe52b7d4112c05422cb395529682c4 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/adapters/http/HttpResponseData.java @@ -0,0 +1,10 @@ +package org.etsi.mts.tdl.execution.java.adapters.http; + +import java.util.List; + +public class HttpResponseData { + public Integer status; + public String statusMessage; + public List headers; + public Object body; +} diff --git a/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/adapters/http/HttpSystemAdapter.java b/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/adapters/http/HttpSystemAdapter.java new file mode 100644 index 0000000000000000000000000000000000000000..65a4815dd14e624b8260b4a2ace192c2a810d57b --- /dev/null +++ b/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/adapters/http/HttpSystemAdapter.java @@ -0,0 +1,195 @@ +package org.etsi.mts.tdl.execution.java.adapters.http; + +import static java.nio.charset.StandardCharsets.UTF_8; + +import java.net.URI; +import java.net.http.HttpClient; +import java.net.http.HttpRequest; +import java.net.http.HttpResponse; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Queue; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ConcurrentLinkedQueue; + +import org.etsi.mts.tdl.execution.java.rt.core.PojoData; +import org.etsi.mts.tdl.execution.java.tri.Argument; +import org.etsi.mts.tdl.execution.java.tri.Connection; +import org.etsi.mts.tdl.execution.java.tri.Data; +import org.etsi.mts.tdl.execution.java.tri.Procedure; +import org.etsi.mts.tdl.execution.java.tri.Reporter; +import org.etsi.mts.tdl.execution.java.tri.SystemAdapter; +import org.etsi.mts.tdl.execution.java.tri.Validator; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializationFeature; + +public class HttpSystemAdapter implements SystemAdapter { + + private Validator validator; + private Reporter reporter; + + private HttpClient.Builder builder; + private HttpClient client; + private ObjectMapper mapper; + + private String baseUri = BASE_URI; + + private Connection[] connections; + + private Queue> unhandledResponses = new ConcurrentLinkedQueue<>(); + + public HttpSystemAdapter(Validator validator, Reporter reporter) { + this.validator = validator; + this.reporter = reporter; + } + + @Override + public void configure(Connection[] connections) { + + // TODO multiple connections + this.connections = connections; + + builder = HttpClient.newBuilder(); + client = builder.build(); + + mapper = new ObjectMapper(); + mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); + mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + mapper.configure(DeserializationFeature.FAIL_ON_INVALID_SUBTYPE, false); + mapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS); + mapper.enable(SerializationFeature.WRITE_ENUMS_USING_TO_STRING); + mapper.enable(DeserializationFeature.READ_ENUMS_USING_TO_STRING); + mapper.disable(DeserializationFeature.ADJUST_DATES_TO_CONTEXT_TIME_ZONE); + /* + * TODO optional modules + * mapper.registerModule(new JavaTimeModule()); + * mapper.registerModule(new JsonNullableModule()); + */ + } + + private void handleResponse(HttpResponse response, Throwable t) { + if (t != null) + handleError(t); + else { + synchronized (unhandledResponses) { + unhandledResponses.add(response); + unhandledResponses.notifyAll(); + } + } + } + + private void handleError(Throwable t) { + reporter.runtimeError(t); + throw new RuntimeException(t); + } + + private void applyDefaults(HttpRequest.Builder requestBuilder) { + requestBuilder.header("Content-Type", "application/json"); + requestBuilder.header("Accept", "application/json"); + // TODO configuration (e.g. auth) +// requestBuilder.header("Cookie", "usertoken=" + AUTH); + } + + @Override + public void send(Data message, Connection connection) { + HttpRequestData httpData = (HttpRequestData) message.getValue(); + + HttpRequest.Builder requestBuilder = HttpRequest.newBuilder(); + applyDefaults(requestBuilder); + + // TODO parameters + + try { + requestBuilder.uri(URI.create(baseUri + httpData.uri)); + + //XXX + reporter.comment("Outgoing: " + mapper.writeValueAsString(httpData.body)); + + byte[] body = mapper.writeValueAsBytes(httpData.body); + requestBuilder.method(httpData.method.toString(), HttpRequest.BodyPublishers.ofByteArray(body)); + + for (HttpHeader header : httpData.headers) + requestBuilder.header(header.name, header.value); + + CompletableFuture> responseFuture = client.sendAsync(requestBuilder.build(), + HttpResponse.BodyHandlers.ofString(UTF_8)); + + responseFuture.whenCompleteAsync(this::handleResponse); + + } catch (JsonProcessingException e) { + handleError(e); + } + } + + @Override + public Data receive(Data expected, Connection connection) throws InterruptedException, AssertionError { + HttpResponseData expectedHttpData = expected != null ? (HttpResponseData) expected.getValue() : null; + + synchronized (unhandledResponses) { + HttpResponse response = unhandledResponses.peek(); + while (response == null) { + unhandledResponses.wait(); + response = unhandledResponses.peek(); + } + + //TODO logging + reporter.comment("Incoming: " + response.body()); + + try { + + HttpResponseData receivedHttpData = new HttpResponseData(); + receivedHttpData.status = response.statusCode(); + Map> headers = response.headers().map(); + receivedHttpData.headers = new ArrayList<>(); + for (String header : headers.keySet()) { + receivedHttpData.headers.add(new HttpHeader(header, headers.get(header))); + } + + Data received = new PojoData<>(receivedHttpData); + if (expected != null) { + if (expectedHttpData.body != null) { + receivedHttpData.body = this.mapper.readValue(response.body(), + expectedHttpData.body.getClass()); + } + if (this.validator.matches(expected, received)) { + unhandledResponses.remove(); + return received; + } + + } else { + receivedHttpData.body = response.body(); + unhandledResponses.remove(); + return received; + } + + } catch (JsonProcessingException e) { + handleError(e); + } + } + + return null; + } + + @Override + public Data call(Procedure operation, Argument[] arguments, Data expectedReturn, Data expectedException, + Connection connection) { + throw new UnsupportedOperationException("Procedure-based communication is not supported by this adapter."); + } + + @Override + public Data[] receiveCall(Procedure operation, Data[] expectedArguments, Connection connection) { + throw new UnsupportedOperationException("Procedure-based communication is not supported by this adapter."); + } + + @Override + public void replyCall(Procedure operation, Data returnValue, Data exception, Connection connection) { + throw new UnsupportedOperationException("Procedure-based communication is not supported by this adapter."); + } + + private static String BASE_URI = ""; +} \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/rt/core/Behaviour.java b/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/rt/core/Behaviour.java new file mode 100644 index 0000000000000000000000000000000000000000..cf6cb9a863348a92eea6f4270a23e010e1a56d5e --- /dev/null +++ b/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/rt/core/Behaviour.java @@ -0,0 +1,7 @@ +package org.etsi.mts.tdl.execution.java.rt.core; + +import org.etsi.mts.tdl.execution.java.tri.StopException; + +public interface Behaviour { + public void execute() throws StopException; +} diff --git a/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/rt/core/BreakException.java b/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/rt/core/BreakException.java new file mode 100644 index 0000000000000000000000000000000000000000..fa54e1836a00de1619832af624646e0605fa2471 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/rt/core/BreakException.java @@ -0,0 +1,17 @@ +package org.etsi.mts.tdl.execution.java.rt.core; + +/** + * The exception that is thrown when the execution of a Block should be stopped. + * See description of the Break behaviour. + * + */ +public class BreakException extends Exception { + private String blockName; + public BreakException(String blockQName) { + super("Break " + blockQName); + this.blockName = blockQName; + } + public String getBlockName() { + return blockName; + } +} diff --git a/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/rt/core/Constraint.java b/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/rt/core/Constraint.java new file mode 100644 index 0000000000000000000000000000000000000000..551e5f2af0d6ec24d51b56f2182297092a03397e --- /dev/null +++ b/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/rt/core/Constraint.java @@ -0,0 +1,5 @@ +package org.etsi.mts.tdl.execution.java.rt.core; + +public interface Constraint { + boolean evaluate(); +} diff --git a/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/rt/core/ExceptionResult.java b/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/rt/core/ExceptionResult.java new file mode 100644 index 0000000000000000000000000000000000000000..9af8ba7e125ae2a8a95504ef3e546e340d41c101 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/rt/core/ExceptionResult.java @@ -0,0 +1,11 @@ +package org.etsi.mts.tdl.execution.java.rt.core; + +public class ExceptionResult extends Exception { + private Object data; + public ExceptionResult(Object data) { + this.data = data; + } + public Object getData() { + return data; + } +} diff --git a/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/rt/core/ExceptionalBehaviour.java b/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/rt/core/ExceptionalBehaviour.java new file mode 100644 index 0000000000000000000000000000000000000000..0af396649c90fbf0e0bc60da135a3a928e479f7d --- /dev/null +++ b/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/rt/core/ExceptionalBehaviour.java @@ -0,0 +1,78 @@ +package org.etsi.mts.tdl.execution.java.rt.core; + +import java.util.Collections; +import java.util.HashSet; +import java.util.Set; +import java.util.concurrent.Future; + +import org.etsi.mts.tdl.execution.java.rt.core.TestControl.ExecutionCallable; +import org.etsi.mts.tdl.execution.java.rt.core.TestControl.ExecutionResult; + +public class ExceptionalBehaviour { + /** + * The behaviour that is executed when the callable provides a result. + */ + public Behaviour behaviour; + + /** + * The triggering behaviour in callable format that is submitted for execution when activated. + */ + public ExecutionCallable callable; + + /** + * Whether the behaviour is an interrupt or default as specified by TDL. + */ + public boolean isInterrupt; + + /** + *

The futures for the triggering behaviour (callable). Several futures may exist + * simultaneously due to alternatives. Several threads may have their own set of + * futures due to parallel behaviours. + *

Should be cleaned up when behaviour is deactivated. + */ + private ThreadLocal>> currentFutures = new ThreadLocal>>() { + protected java.util.Set> initialValue() { + return Collections.synchronizedSet(new HashSet>()); + }; + }; + + public ExceptionalBehaviour(boolean isInterrupt) { + this.isInterrupt = isInterrupt; + } + + /** + * Sets the callable if not set already. + */ + public void setCallable(ExecutionCallable callable) { + if (this.callable == null) + this.callable = callable; + } + + /** + * Submits the triggering behaviour (callable) for execution and stores the resulting future. + * @return The new future for the triggering behaviour. + */ + public Future execute() { + Future future = callable.execute(); + currentFutures.get().add(future); + return future; + } + + /** + * + * @return True if the future is created by this behaviour. + */ + public boolean isFuture(Future future) { + return currentFutures.get().contains(future); + } + + /** + * Clear the futures and return them for cancellation. + * @return The set of futures that existed before clean-up. + */ + public Set> purgeFutures() { + Set> futures = new HashSet>(currentFutures.get()); + currentFutures.get().clear(); + return futures; + } +} diff --git a/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/rt/core/MethodCall.java b/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/rt/core/MethodCall.java new file mode 100644 index 0000000000000000000000000000000000000000..75688875814736729bb7c17a8b6f329d9fe845f9 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/rt/core/MethodCall.java @@ -0,0 +1,5 @@ +package org.etsi.mts.tdl.execution.java.rt.core; + +public interface MethodCall { + Object call() throws ExceptionResult; +} diff --git a/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/rt/core/PojoArgument.java b/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/rt/core/PojoArgument.java new file mode 100644 index 0000000000000000000000000000000000000000..2a46bab2ea8583c6a77eb87c137fee9cf2d71454 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/rt/core/PojoArgument.java @@ -0,0 +1,11 @@ +package org.etsi.mts.tdl.execution.java.rt.core; + +import org.etsi.mts.tdl.execution.java.tri.Argument; + +public class PojoArgument extends Argument, V> { + + public PojoArgument(V value, String parameterName) { + super((Class) value.getClass(), value, parameterName); + } + +} diff --git a/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/rt/core/PojoData.java b/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/rt/core/PojoData.java new file mode 100644 index 0000000000000000000000000000000000000000..9c7b111681c0ab07bb1217e7f8d672773c35f39e --- /dev/null +++ b/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/rt/core/PojoData.java @@ -0,0 +1,11 @@ +package org.etsi.mts.tdl.execution.java.rt.core; + +import org.etsi.mts.tdl.execution.java.tri.Data; + +public class PojoData extends Data, V> { + + public PojoData(V value) { + super((Class) value.getClass(), value); + } + +} diff --git a/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/rt/core/ReceiverHub.java b/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/rt/core/ReceiverHub.java new file mode 100644 index 0000000000000000000000000000000000000000..1baa798b16949d865bc025f70075d0810f0255ff --- /dev/null +++ b/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/rt/core/ReceiverHub.java @@ -0,0 +1,130 @@ +package org.etsi.mts.tdl.execution.java.rt.core; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +import org.etsi.mts.tdl.execution.java.tri.Argument; +import org.etsi.mts.tdl.execution.java.tri.Connection; +import org.etsi.mts.tdl.execution.java.tri.Data; +import org.etsi.mts.tdl.execution.java.tri.StopException; +import org.etsi.mts.tdl.execution.java.tri.SystemAdapter; + +public class ReceiverHub { + + private Thread thread; + private boolean stopped = false; + + private SystemAdapter systemAdapter; + private Connection connection; + + private List expecting = Collections.synchronizedList(new ArrayList<>()); + private ExceptionalBehaviour anyReceiver; + + public ReceiverHub(SystemAdapter systemAdapter, Connection connection) { + this.systemAdapter = systemAdapter; + this.connection = connection; + + this.thread = new Thread(() -> run(), "Receive from SystemAdapter on " + connection.name); + this.thread.setDaemon(true); + this.thread.start(); + } + + public ExceptionalBehaviour getAnyReceiver() { + return anyReceiver; + } + + public void setAnyReceiver(ExceptionalBehaviour anyReceiver) { + this.anyReceiver = anyReceiver; + } + + private synchronized void run() { + int currentlyExpectingIndex = 0; + while (!stopped) { + Expectable currentlyExpecting = null; + synchronized (expecting) { + while (expecting.size() <= currentlyExpectingIndex) + try { + expecting.wait(); + } catch (InterruptedException e) { + return; + } + currentlyExpecting = expecting.get(currentlyExpectingIndex); + currentlyExpectingIndex++; + } + try { + Data data = systemAdapter.receive(currentlyExpecting.expected, connection); + if (data != null) { + currentlyExpectingIndex = 0; + if (currentlyExpecting.anyReceiver) { + // Switch to the first one for reporting + synchronized (expecting) { + for (Expectable e: expecting) + if (!e.ignoreUnmatched) { + currentlyExpecting = expecting.get(0); + break; + } + } + } + // XXX this is not correct + expecting.clear(); + synchronized (currentlyExpecting) { + currentlyExpecting.received = data; + currentlyExpecting.notifyAll(); + } + } + } catch (InterruptedException e) { + + } catch (AssertionError e) { + if (!currentlyExpecting.ignoreUnmatched) + currentlyExpecting.error = e; + } + } + } + + public void stop() { + this.stopped = true; + this.thread.interrupt(); + } + + public Data receive(Data expected, boolean ignoreUntil) { + Expectable expectable = new Expectable(expected, ignoreUntil); + synchronized (expecting) { + expecting.add(expectable); + expecting.notifyAll(); + } + try { + synchronized (expectable) { + try { + expectable.wait(); + } catch (InterruptedException e) { + return null; + } + if (expectable.error != null) + throw expectable.error; + return expectable.received; + } + } finally { + expecting.remove(expectable); + } + } + + public Data call(Object operation, Argument[] arguments, Data expectedReturn, Data expectedException) { + // XXX + return null; + } + + class Expectable { + Data expected; + Data received; + AssertionError error; + boolean ignoreUnmatched = false; + boolean anyReceiver = false; + + public Expectable(Data expected, boolean ignoreUnmatched) { + this.expected = expected; + this.ignoreUnmatched = ignoreUnmatched; + this.anyReceiver = expected == null; + } + } +} diff --git a/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/rt/core/TestControl.java b/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/rt/core/TestControl.java new file mode 100644 index 0000000000000000000000000000000000000000..55b475bb0581bdc0984f641c5b12893259871a49 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/rt/core/TestControl.java @@ -0,0 +1,370 @@ +package org.etsi.mts.tdl.execution.java.rt.core; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.Hashtable; +import java.util.List; +import java.util.Map; +import java.util.concurrent.Callable; +import java.util.concurrent.CancellationException; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.ExecutorCompletionService; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.Future; + +import org.etsi.mts.tdl.execution.java.tri.Argument; +import org.etsi.mts.tdl.execution.java.tri.Connection; +import org.etsi.mts.tdl.execution.java.tri.Data; +import org.etsi.mts.tdl.execution.java.tri.GateReference; +import org.etsi.mts.tdl.execution.java.tri.PredefinedFunctions; +import org.etsi.mts.tdl.execution.java.tri.Reporter; +import org.etsi.mts.tdl.execution.java.tri.RuntimeHelper; +import org.etsi.mts.tdl.execution.java.tri.StopException; +import org.etsi.mts.tdl.execution.java.tri.SystemAdapter; +import org.etsi.mts.tdl.execution.java.tri.Validator; + +import com.google.inject.Guice; +import com.google.inject.Injector; + +public class TestControl { + private Injector injector; + + public SystemAdapter systemAdapter; + public Validator validator; + public Reporter reporter; + public PredefinedFunctions functions; + public RuntimeHelper runtimeHelper; + + private Connection[] connections; + private Map receiverHubs = Collections.synchronizedMap(new Hashtable()); + + protected ExecutorCompletionService completionService; + protected ExecutorService executor; + + private final long timeConstraintFrequency = 100; + + private List exceptionalBehaviours = Collections + .synchronizedList(new ArrayList()); + + public TestControl(com.google.inject.Module guiceModule) { + super(); + + injector = Guice.createInjector(guiceModule); + + this.systemAdapter = injector.getInstance(SystemAdapter.class); + this.validator = injector.getInstance(Validator.class); + this.reporter = injector.getInstance(Reporter.class); + this.functions = injector.getInstance(PredefinedFunctions.class); + this.runtimeHelper = injector.getInstance(RuntimeHelper.class); + + this.executor = Executors.newCachedThreadPool(); + this.completionService = new ExecutorCompletionService(executor); + } + + protected A getInstance(Class clazz) { + return this.injector.getInstance(clazz); + } + + private ReceiverHub getReceiver(Connection connection) { + ReceiverHub hub = this.receiverHubs.get(connection); + if (hub == null) + throw new RuntimeException("Connection not configured: " + connection); + return hub; + } + + public void configure(Connection[] connections) { + this.systemAdapter.configure(connections); + this.connections = connections; + + this.receiverHubs.values().forEach(r -> r.stop()); + this.receiverHubs.clear(); + for (Connection c : connections) { + ReceiverHub hub = new ReceiverHub(this.systemAdapter, c); + receiverHubs.put(c, hub); + + ExceptionalBehaviour anyReceiver = new ExceptionalBehaviour(false); + anyReceiver.behaviour = () -> { + throw new StopException("Unexpected message received"); + }; + anyReceiver.callable = new ExecutionCallable() { + @Override + public ExecutionResult call() throws Exception { + Data data = hub.receive(null, false); + return data != null ? new InteractionResult(data) : null; + } + + }; + hub.setAnyReceiver(anyReceiver); + } + } + + public Connection getConnection(String testerComponentName, String testerGateName, String remoteComponentName, + String remoteGateName) { + for (Connection c : connections) { + int testerEP = -1; + for (int i = 0; i <= 1; i++) + if (c.endPoints[i].component.name.equals(testerComponentName) + && c.endPoints[i].gate.name.equals(testerGateName)) { + testerEP = i; + break; + } + if (testerEP == -1) + continue; + int targetEP = testerEP == 0 ? 1 : 0; + if (c.endPoints[targetEP].component.name.equals(remoteComponentName) + && c.endPoints[targetEP].gate.name.equals(remoteGateName)) + return c; + } + throw new RuntimeException(String.format("Unknown connection: from %s.%s to %s.%s", testerComponentName, + testerGateName, remoteComponentName, remoteGateName)); + } + + public GateReference getGateReference(String testerComponentName, String testerGateName) { + for (Connection c : connections) { + for (int i = 0; i <= 1; i++) + if (c.endPoints[i].component.name.equals(testerComponentName) + && c.endPoints[i].gate.name.equals(testerGateName)) { + return c.endPoints[i]; + } + } + throw new RuntimeException(String.format("Unknown gate: %s.%s", testerComponentName, testerGateName)); + } + + public interface ExecutionResult { + } + + public class TimeoutResult implements ExecutionResult { + } + + public class InteractionResult implements ExecutionResult { + public Data data; + public String body; + + public InteractionResult(Data data) { + this.data = data; + } + + public InteractionResult(String body) { + this.body = body; + } + + } + + public abstract class ExecutionCallable implements Callable { + public Future execute() { + return completionService.submit(this); + } + } + + public abstract class ExecutionCallableWithDefaults extends ExecutionCallable { + @Override + public Future execute() { + Future future = super.execute(); + return future; + } + } + + public List> executeExceptionals() { + List> futures = new ArrayList<>(); + exceptionalBehaviours.forEach(exc -> futures.add(exc.execute())); + receiverHubs.values().forEach(hub -> futures.add(hub.getAnyReceiver().execute())); + return futures; + } + + public ExecutionCallable timeConstraint(Constraint constraint) { + ExecutionCallable c = new ExecutionCallable() { + @Override + public ExecutionResult call() throws Exception { + while (!constraint.evaluate()) + try { + Thread.sleep(timeConstraintFrequency); + } catch (InterruptedException e) { + return constraint.evaluate() ? new TimeoutResult() : null; + } + return new TimeoutResult(); + } + }; + return c; + } + + public ExecutionCallable timeout(Timer timer) { + ExecutionCallable c = new ExecutionCallable() { + @Override + public ExecutionResult call() throws Exception { + TimeLabel startLabel = timer.getStartLabel(); + try { + long period = startLabel.currentTime() - startLabel.previous() + timer.getPeriod(); + Thread.sleep(timer.getUnit().toMillis(period)); + } catch (InterruptedException e) { + return null; + } + return new TimeoutResult(); + } + }; + return c; + } + + public ExecutionCallable sleep(long period) { + ExecutionCallable c = new ExecutionCallable() { + @Override + public ExecutionResult call() throws Exception { + ; + try { + Thread.sleep(period); + } catch (InterruptedException e) { + return null; + } + return new TimeoutResult(); + } + }; + return c; + } + + public ExecutionCallable noInput(long period, GateReference gate) { + // XXX noInput + return sleep(period); + } + + public ExecutionCallable receive(Data expected, Connection connection) { + return receive(expected, connection, false); + } + + public ExecutionCallable trigger(Data expected, Connection connection) { + return receive(expected, connection, true); + } + + + public ExecutionCallable receive(Data expected, Connection connection, boolean isTrigger) { + ExecutionCallableWithDefaults c = new ExecutionCallableWithDefaults() { + @Override + public ExecutionResult call() throws Exception { + Data data = getReceiver(connection).receive(expected, isTrigger); + return data != null ? new InteractionResult(data) : null; + } + }; + return c; + } + + public ExecutionCallable call(Object operation, Argument[] arguments, Data expectedReturn, Data expectedException, + Connection connection) { + ExecutionCallableWithDefaults c = new ExecutionCallableWithDefaults() { + @Override + public ExecutionResult call() throws Exception { + Data result = getReceiver(connection).call(operation, arguments, expectedReturn, expectedException); + if (Thread.interrupted()) + return null; + return new InteractionResult(result); + } + }; + return c; + } + + public ExecutionCallable call(MethodCall call) { + ExecutionCallableWithDefaults c = new ExecutionCallableWithDefaults() { + @Override + public ExecutionResult call() throws Exception { + Object result; + try { + result = call.call(); + } catch (ExceptionResult er) { + return new InteractionResult(new PojoData(er.getData())); + } + if (Thread.interrupted()) + return null; + return new InteractionResult(new PojoData(result)); + } + }; + return c; + } + + public void addExceptionalBehaviour(ExceptionalBehaviour b) { + // TODO Inner exceptional behaviours have precedence + synchronized (exceptionalBehaviours) { + if (!this.exceptionalBehaviours.contains(b)) + this.exceptionalBehaviours.add(b); + } + } + + public void removeExceptionalBehaviour(ExceptionalBehaviour b) { + this.exceptionalBehaviours.remove(b); + b.purgeFutures().forEach(f -> stop(f)); + } + + public ExceptionalBehaviour getExceptionalBehaviour(Future future) { + synchronized (this.exceptionalBehaviours) { + for (ExceptionalBehaviour b : this.exceptionalBehaviours) { + if (b.isFuture(future)) + return b; + } + } + return null; + } + + public Future next() { + try { + Future future; + do { + future = this.completionService.take(); + } while (future.isCancelled()); + return future; + } catch (InterruptedException e) { + throw new RuntimeException(e); + } + } + + public void stop(Future future) { + // XXX stop and remove? + future.cancel(true); + } + + // XXX + void test() { + Callable c1 = new Callable() { + @Override + public ExecutionResult call() throws Exception { + // TODO Auto-generated method stub + return null; + } + }; + Callable c2 = new Callable() { + @Override + public ExecutionResult call() throws Exception { + // TODO Auto-generated method stub + return null; + } + }; + + Future f1 = this.completionService.submit(c1); + Future f2 = this.completionService.submit(c2); + + try { + Future f; + try { + f = this.completionService.take(); + } catch (InterruptedException e) { + // TODO wait was interrupted + e.printStackTrace(); + return; + } + + try { + ExecutionResult r = f.get(); + // XXX + } catch (CancellationException e) { + // TODO callable was canceled + e.printStackTrace(); + + } catch (InterruptedException e) { + // Won't happen + } catch (ExecutionException e) { + // TODO exception from callable + e.printStackTrace(); + } + + } finally { + f1.cancel(true); + f2.cancel(true); + } + } +} diff --git a/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/rt/core/TimeLabel.java b/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/rt/core/TimeLabel.java new file mode 100644 index 0000000000000000000000000000000000000000..4ea228a88b9fbe4ebab105c372bf93fa17a83417 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/rt/core/TimeLabel.java @@ -0,0 +1,40 @@ +package org.etsi.mts.tdl.execution.java.rt.core; + +import java.util.Deque; +import java.util.NoSuchElementException; +import java.util.concurrent.ConcurrentLinkedDeque; + +public class TimeLabel { + + private int denominator = 1; + + private Deque timestampMillis = new ConcurrentLinkedDeque(); + + public TimeLabel() { + setUnit(TimeUnit.MilliSecond); + } + + public void setUnit(TimeUnit unit) { + this.denominator = unit.getNsDenominator(); + } + + long currentTime() { + return System.nanoTime() / this.denominator; + } + + public void timestamp() { + this.timestampMillis.add(System.nanoTime()); + } + + public long first() throws NoSuchElementException { + return this.timestampMillis.getFirst() / this.denominator; + } + + public long previous() throws NoSuchElementException { + return this.timestampMillis.getLast() / this.denominator; + } + + public long last() throws NoSuchElementException { + return this.timestampMillis.getLast() / this.denominator; + } +} diff --git a/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/rt/core/TimeUnit.java b/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/rt/core/TimeUnit.java new file mode 100644 index 0000000000000000000000000000000000000000..52ae1856b85d307d043d37162be19e383f64b400 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/rt/core/TimeUnit.java @@ -0,0 +1,38 @@ +package org.etsi.mts.tdl.execution.java.rt.core; + +public enum TimeUnit { + Second, MilliSecond, NanoSecond; + + public static TimeUnit getByName(String name) { + for (TimeUnit unit: TimeUnit.values()) { + if (unit.toString().equals(name)) + return unit; + } + return null; + } + + public long toMillis(long time) { + return time * getNsDenominator() / MilliSecond.getNsDenominator(); + } + + public long toSeconds(long time) { + return time * getNsDenominator() / Second.getNsDenominator(); + } + + int getNsDenominator() { + switch (this) { + case Second: + return 1000000000; + case MilliSecond: + return 1000000; + case NanoSecond: + return 1; + default: + throw new RuntimeException("Missing Time unit denominator for " + this); + } + } + + public long convertTo(long time, TimeUnit target) { + return time * getNsDenominator() / target.getNsDenominator(); + } +} \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/rt/core/Timer.java b/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/rt/core/Timer.java new file mode 100644 index 0000000000000000000000000000000000000000..097881ecb47c178f4cd359a1ecfa541892f5b0bc --- /dev/null +++ b/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/rt/core/Timer.java @@ -0,0 +1,47 @@ +package org.etsi.mts.tdl.execution.java.rt.core; + +import org.etsi.mts.tdl.execution.java.tri.NamedElement; + +public class Timer extends NamedElement { + + private TimeUnit unit; + + private TimeLabel startLabel = new TimeLabel(); + + private long period = 0L; + + public Timer(TimeUnit defaultUnit, String name, String qualifiedName) { + super(name, qualifiedName); + this.unit = defaultUnit; + if (this.unit == null) + this.unit = TimeUnit.Second; + this.startLabel.setUnit(this.unit); + } + + public TimeUnit getUnit() { + return unit; + } + + public long getPeriod() { + return period; + } + + public void start(long period) { + start(period, this.unit); + } + + public void stop() { + // Nothing to do? + } + + public void start(long period, TimeUnit unit) { + this.period = period; + this.unit = unit; + this.startLabel.timestamp(); + } + + TimeLabel getStartLabel() { + startLabel.setUnit(this.unit); + return startLabel; + } +} diff --git a/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/rt/data/AcceptedType.java b/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/rt/data/AcceptedType.java new file mode 100644 index 0000000000000000000000000000000000000000..c1295269ed5e609f0f16fde7cc32e3999e5d6483 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/rt/data/AcceptedType.java @@ -0,0 +1,15 @@ +package org.etsi.mts.tdl.execution.java.rt.data; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * HTTP Accept header value usable on String fields. + * XXX who dis? + */ +@Retention(RetentionPolicy.RUNTIME) +@Target(ElementType.FIELD) +public @interface AcceptedType { +} diff --git a/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/tri/Argument.java b/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/tri/Argument.java new file mode 100644 index 0000000000000000000000000000000000000000..29c68da85103e5482578f7cab327bd7b9e9e2a21 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/tri/Argument.java @@ -0,0 +1,21 @@ +package org.etsi.mts.tdl.execution.java.tri; + +/** + * Extends {@link Data Data} to provide name of a parameter. The argument is + * specified using type and value. + */ +public class Argument extends Data { + /** + * Name of the parameter as specified in TDL model. + */ + private String parameterName; + + public Argument(T type, V value, String parameterName) { + super(type, value); + this.parameterName = parameterName; + } + + public String getParameterName() { + return parameterName; + } +} diff --git a/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/tri/ComponentInstanceRole.java b/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/tri/ComponentInstanceRole.java new file mode 100644 index 0000000000000000000000000000000000000000..8f8052b0a8752fa8727b98907656fdacacd39f45 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/tri/ComponentInstanceRole.java @@ -0,0 +1,9 @@ +package org.etsi.mts.tdl.execution.java.tri; + +/** + * Predefined roles of test components as specified in TDL. + */ +public enum ComponentInstanceRole { + SUT, + Tester +} diff --git a/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/tri/Connection.java b/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/tri/Connection.java new file mode 100644 index 0000000000000000000000000000000000000000..3b0303f1a260f75908e1f26c81b336f7a86fe14b --- /dev/null +++ b/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/tri/Connection.java @@ -0,0 +1,26 @@ +package org.etsi.mts.tdl.execution.java.tri; + +/** + * Encapsulation of connected GateReferences. + * + */ +public class Connection extends Element { + + /** + * The end-points of this connection as specified in TDL model. + */ + public final GateReference[] endPoints = new GateReference[2]; + + public Connection(String name, GateReference sourceGate, GateReference targetGate) { + super(name); + endPoints[0] = sourceGate; + endPoints[1] = targetGate; + } + + @Override + public String toString() { + if (name != null) + return name; + return endPoints[0].toString() + " :: " + endPoints[1].toString(); + } +} diff --git a/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/tri/Data.java b/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/tri/Data.java new file mode 100644 index 0000000000000000000000000000000000000000..6f45ace0a54113a316a0566e2558e2a7c0b658d0 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/tri/Data.java @@ -0,0 +1,43 @@ +package org.etsi.mts.tdl.execution.java.tri; + +/** + * Encapsulation of type and value. The objects are resolved using TDL data + * mappings. + *

+ * In Java environment the type is a Java class and + * value is an object of that class or a lambda expression that + * returns such object. + */ +public class Data { + + /** + * The type information in environment specific form that can be used to decode + * incoming data. For example, an annotated class. + */ + private T type; + + /** + * The decoded value of the data that matches the type. + */ + private V value; + + public Data(T type, V value) { + this.type = type; + this.value = value; + } + + /** + * @see #value + */ + public V getValue() { + return value; + } + + /** + * @see #type + */ + public T getType() { + return type; + } + +} diff --git a/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/tri/Element.java b/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/tri/Element.java new file mode 100644 index 0000000000000000000000000000000000000000..138de06601a5b9ca12f8fc90eea28b25fe403ffc --- /dev/null +++ b/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/tri/Element.java @@ -0,0 +1,30 @@ +package org.etsi.mts.tdl.execution.java.tri; + +import java.util.ArrayList; +import java.util.List; + +/** + * Generic class for encapsulating information about model elements. The + * concrete type of the element is specified by a sub-class or the context where + * the element is used. Note that the element does not always represent a TDL + * meta-class. + * + */ +public class Element { + /** + * The name of the element as specified in TDL model. + */ + public String name; + + /** + * The annotations assigned to the element as specified in TDL model. + */ + public List annotations = new ArrayList(); + + public Element() { + } + + public Element(String name) { + this.name = name; + } +} diff --git a/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/tri/ElementAnnotation.java b/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/tri/ElementAnnotation.java new file mode 100644 index 0000000000000000000000000000000000000000..62a1d4f957168270f2a96f9d22ca194e66d9be6d --- /dev/null +++ b/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/tri/ElementAnnotation.java @@ -0,0 +1,17 @@ +package org.etsi.mts.tdl.execution.java.tri; + +/** + * Annotation as specified in TDL model. + */ +public class ElementAnnotation { + /** + * Key and value of the annotation. + */ + public String key, value; + + public ElementAnnotation(String key, String value) { + this.key = key; + this.value = value; + } + +} diff --git a/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/tri/GateReference.java b/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/tri/GateReference.java new file mode 100644 index 0000000000000000000000000000000000000000..f00f9e1d66df60ebfe37fd1dc4f563db1f8c82a0 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/tri/GateReference.java @@ -0,0 +1,47 @@ +package org.etsi.mts.tdl.execution.java.tri; + +/** + * Encapsulation of a connection end-point specification. It's an aggregation of + * following TDL model elements: + *

+ * + */ +public class GateReference { + public Element gate; + public Element gateType; + public Element component; + public Element componentType; + public ComponentInstanceRole role; + + public GateReference(Element gate, Element gateType, Element component, Element componentType, + ComponentInstanceRole role) { + this.gate = gate; + this.gateType = gateType; + this.component = component; + this.componentType = componentType; + this.role = role; + } + + @Override + public int hashCode() { + return gate.hashCode() << 8 + gateType.hashCode() << 6 + component.hashCode() << 4 + + componentType.hashCode() << 2 + role.hashCode(); + } + + @Override + public boolean equals(Object obj) { + if (obj instanceof GateReference) { + GateReference gr = (GateReference) obj; + return gate.equals(gr.gate) && gateType.equals(gr.gateType) && component.equals(gr.component) + && componentType.equals(gr.componentType) && role.equals(gr.role); + } + return super.equals(obj); + } + +} \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/tri/GateTypeKind.java b/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/tri/GateTypeKind.java new file mode 100644 index 0000000000000000000000000000000000000000..b1443689890f3094764c5efb6604e3a80442dfa9 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/tri/GateTypeKind.java @@ -0,0 +1,8 @@ +package org.etsi.mts.tdl.execution.java.tri; +/** + * Predefined types of gates as specified in TDL. + */ +public enum GateTypeKind { + Message, + Procedure +} diff --git a/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/tri/NamedElement.java b/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/tri/NamedElement.java new file mode 100644 index 0000000000000000000000000000000000000000..33f9847044a0f06afb3fffa27cce43bba19ae610 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/tri/NamedElement.java @@ -0,0 +1,21 @@ +package org.etsi.mts.tdl.execution.java.tri; + +/** + * Extends the Element class to provide qualified name as specified + * in TDL. + * + */ +public class NamedElement extends Element { + /** + * The qualified name of the element as specified in TDL model. + */ + public String qualifiedName; + + public NamedElement() { + } + + public NamedElement(String name, String qualifiedName) { + super(name); + this.qualifiedName = qualifiedName; + } +} diff --git a/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/tri/PredefinedFunctions.java b/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/tri/PredefinedFunctions.java new file mode 100644 index 0000000000000000000000000000000000000000..16bea9c893cf71bfefedaaff7e1bf79aa6e08b53 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/tri/PredefinedFunctions.java @@ -0,0 +1,122 @@ +package org.etsi.mts.tdl.execution.java.tri; + +import java.util.Collection; + +import com.google.inject.Inject; + +/** + * Default implementation of predefined functions specified in TDL. + */ +public class PredefinedFunctions { + + public RuntimeHelper helper; + + @Inject + public PredefinedFunctions(RuntimeHelper helper) { + this.helper = helper; + } + + public boolean equals(Data d0, Data d1) { + return helper.equals(d0.getValue(), d1.getValue()); + } + + public boolean notEquals(Data d0, Data d1) { + return !equals(d0, d1); + } + + public boolean and(boolean b0, boolean b1) { + return b0 && b1; + } + + public boolean or(boolean b0, boolean b1) { + return b0 || b1; + } + + public boolean xor(boolean b0, boolean b1) { + return b0 ^ b1; + } + + public boolean not(boolean b) { + return !b; + } + + public boolean lt(int i0, int i1) { + return i0 < i1; + } + + public boolean gt(int i0, int i1) { + return i0 > i1; + } + + public boolean lteq(int i0, int i1) { + return i0 <= i1; + } + + public boolean gteq(int i0, int i1) { + return i0 >= i1; + } + + public boolean lt(long i0, long i1) { + return i0 < i1; + } + + public boolean gt(long i0, long i1) { + return i0 > i1; + } + + public boolean lteq(long i0, long i1) { + return i0 <= i1; + } + + public boolean gteq(long i0, long i1) { + return i0 >= i1; + } + + public int plus(int i0, int i1) { + return i0 + i1; + } + + public int minus(int i0, int i1) { + return i0 - i1; + } + + public int multiply(int i0, int i1) { + return i0 * i1; + } + + public int divide(int i0, int i1) { + return i0 / i1; + } + + public int mod(int i0, int i1) { + return i0 % i1; + } + + public long plus(long i0, long i1) { + return i0 + i1; + } + + public long minus(long i0, long i1) { + return i0 - i1; + } + + public long multiply(long i0, long i1) { + return i0 * i1; + } + + public long divide(long i0, long i1) { + return i0 / i1; + } + + public long mod(long i0, long i1) { + return i0 % i1; + } + + /** + * @param collection An object that a CollectionDataInstance is mapped to. + */ + public int size(Data> collection) { + return collection.getValue().size(); + } + +} diff --git a/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/tri/Procedure.java b/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/tri/Procedure.java new file mode 100644 index 0000000000000000000000000000000000000000..22c086b50f501f7f3e2a1091541d6c5d790bbebd --- /dev/null +++ b/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/tri/Procedure.java @@ -0,0 +1,20 @@ +package org.etsi.mts.tdl.execution.java.tri; + +import java.util.function.Consumer; + +/** + * Encapsulation of procedure signature as specified in TDL model that may + * optionally be mapped to a method that implements the calling of the + * procedure. + */ +public class Procedure extends NamedElement { + /** + * Optional function that implements this procedure call. + *

+ * The function parameters must match the order and types of parameters of the + * procedure call. That is, for each parameter of a procedure call, a method + * parameter must exist such that the procedure call parameter type is mapped to + * the method parameter type (or class). + */ + public Consumer function; +} diff --git a/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/tri/ProviderModule.java b/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/tri/ProviderModule.java new file mode 100644 index 0000000000000000000000000000000000000000..66d7590387df0aef41853898ec3083d60a1b5613 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/tri/ProviderModule.java @@ -0,0 +1,36 @@ +package org.etsi.mts.tdl.execution.java.tri; + +import com.google.inject.Provides; +import com.google.inject.Singleton; + +/** + * Example of Guice injector module that is used by execution engine to + * configure the environment specific adapters. + *

+ * Note that you should only use this interface as an example to provide all + * relevant implementations and you shouldn't implement this interface directly + * as extending it breaks the annotation declarations. + */ +public interface ProviderModule extends com.google.inject.Module { + @Provides + @Singleton + SystemAdapter provideSystemAdapter(); + + @Provides + @Singleton + Validator provideValidator(); + + @Provides + @Singleton + Reporter provideReporter(); + + @Provides + @Singleton + default PredefinedFunctions providePredefinedFunctions(RuntimeHelper helper) { + return new PredefinedFunctions(helper); + } + + @Provides + @Singleton + RuntimeHelper provideRuntimeHelper(); +} diff --git a/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/tri/Reporter.java b/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/tri/Reporter.java new file mode 100644 index 0000000000000000000000000000000000000000..ccef6feb24a79708c7c6926080b7e86e67923b3a --- /dev/null +++ b/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/tri/Reporter.java @@ -0,0 +1,52 @@ +package org.etsi.mts.tdl.execution.java.tri; + +/** + * Interface for providing environment specific test logging functionality. + */ +public interface Reporter { + /** + * Log comments as specified in TDL model. Comments are logged before the + * execution of the associated element. + */ + void comment(String body); + + /** + * Log test objective associated with a behaviour element as specified in TDL + * model. Test objectives are logged after the execution of the associated + * behaviour. + * + * @param uri URI of the objective. + * @param description Description of the objective. + */ + void testObjectiveReached(String uri, String description); + + /** + * Log the start of a behaviour execution. + * + * @param kind Name of behaviour element meta-class as specified in TDL. + * @param id Locally unique identifier of the behaviour element (to be + * matched with {@link #behaviourCompleted(String) + * behaviourCompleted()}). + * @param properties Any behaviour specific properties. + */ + void behaviourStarted(String kind, String id, Object... properties); + + /** + * Log the completion of a behaviour execution. + * + * @param id Locally unique identifier of the behaviour element (to be matched + * with {@link #behaviourStarted(String, String, Object...) + * behaviourStarted()}). + */ + void behaviourCompleted(String id); + + /** + * Log a runtime error. Runtime errors result in the termination of test + * execution. Note that it is not the responsibility of the logger to handle the + * errors in any way except logging them. + * + * @param t The exception that was thrown by the execution engine or any of the + * adapters. + */ + void runtimeError(Throwable t); +} diff --git a/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/tri/RuntimeHelper.java b/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/tri/RuntimeHelper.java new file mode 100644 index 0000000000000000000000000000000000000000..99a5ef3008c0344e670b0de0d548e618b0d2c7f9 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/tri/RuntimeHelper.java @@ -0,0 +1,21 @@ +package org.etsi.mts.tdl.execution.java.tri; + +/** + * Helper functions to provide environment specific implementation for various + * operations. + */ +public interface RuntimeHelper { + /** + * Compare two objects. Can be used to implement deep equals operation for + * {@link Data Data} objects. + * + * @return True if objects are equal. + */ + boolean equals(Object o0, Object o1); + + /** + * Create a copy of an object. Can be used to implement deep clone of + * {@link Data Data} objects. + */ + T clone(T object); +} diff --git a/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/tri/StopException.java b/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/tri/StopException.java new file mode 100644 index 0000000000000000000000000000000000000000..e0dfff77058e5f934a2423b4618f343f98402ed7 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/tri/StopException.java @@ -0,0 +1,34 @@ +package org.etsi.mts.tdl.execution.java.tri; + +/** + * The exception that is thrown when the test execution should be stopped. It is + * distinct from runtime exceptions as it indicates a normal completion of the + * test execution. If the verdict is set then it passed to + * {@link Validator#setVerdict(Verdict) Validator.setVerdict()} function. + *

+ * This can be thrown by a {@link Validator#matches(Data, Data) + * Validator.matches()} when the final verdict of the test case has already been + * determined, for example. It is also thrown for TDL stop and timeout + * behaviours. + * + */ +@SuppressWarnings("serial") +public class StopException extends Exception { + /** + * Optional final verdict. + */ + private Verdict verdict; + + public StopException(String message) { + super(message); + } + + public StopException(String message, Verdict verdict) { + super(message); + this.verdict = verdict; + } + + public Verdict getVerdict() { + return verdict; + } +} diff --git a/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/tri/SystemAdapter.java b/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/tri/SystemAdapter.java new file mode 100644 index 0000000000000000000000000000000000000000..f68a0340bc612bc226ae7e062f5a84f53f88aef1 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/tri/SystemAdapter.java @@ -0,0 +1,104 @@ +package org.etsi.mts.tdl.execution.java.tri; + +/** + * Provides the mechanism for communicating with the system under test. This is + * usually a protocol stack implementation or an adapter for user interface. + * + * An implementation may choose to support multiple concurrent connections and + * either a message or procedure based communication (or both) depending on the + * testing needs. + * + * An implementation must be able to handle multiple receive calls (be + * the execution engine) for the same incoming data (see: + * {@link #receive(Data, Connection) receive()}. Received data should be managed + * using FIFO stack. + */ +public interface SystemAdapter { + + /** + * Prepare the adapter for all connections configured for an upcoming test + * description execution. This method is called before any test behaviour is + * executed and is a good place for doing any necessary initialization. + */ + void configure(Connection[] connections); + + /** + * Encode and send the data to system under test using protocol or adapter + * specific means. + * + * @param message The data to be sent. + * @param connection The connection on which the message is to be sent. + */ + void send(Data message, Connection connection); + + /** + * Blocks until incoming data is available and tries to decode the first + * received data chunk using provided type and match against provided value. + *

+ * Implementation should only consider one (the oldest) chunk of incoming data + * at a time. If the data matches then it is decoded and returned, otherwise the + * method throws AssertionError. + *

+ * Special null value is used for expected parameter when + * the adapter should accept any data and return it (potentially without + * decoding). This value is only used for logging (and the format must thus be + * supported by the {@link Reporter Reporter} implementation). + * + * @param expected The type to be used for decoding incoming data and value to + * match against. If null then returns any data that is + * available after decoding. + * @param connection The connection on which the message is to be received. + * @return The data in expected format or null if most recent data didn't match + * the expected one. + * @throws InterruptedException If the waiting thread is interrupted. + * @throws AssertionError If the received data didn't match the expected + * data. + */ + Data receive(Data expected, Connection connection) throws InterruptedException, AssertionError; + + /** + * Calls a remote procedure and blocks until reply is received or exception is + * thrown. + *

+ * Either expectedReturn or expectedException shall be + * provided, but not both. When the reply/exception is received, tries to decode + * and match against expectedReturn or + * expectedException respectively. + *

+ * The received reply or exception is always considered handled when this + * function returns. + * + * @param operation The operation to call. + * @param arguments All argument values for operation parameters. + * @param expectedReturn The type to be used for decoding received reply and + * value to match against. + * @param expectedException The type to be used for decoding received exception + * and value to match against. + * @param connection The connection on which the procedure is to be + * called. + * @return The reply or exception in expected format. + * @throws InterruptedException If the waiting thread is interrupted. + * @throws AssertionError If the received reply or exception didn't match + * the expected data. + */ + Data call(Procedure operation, Argument[] arguments, Data expectedReturn, Data expectedException, + Connection connection) throws InterruptedException, AssertionError; + + /** + * @see #receive(Data, Connection) + */ + Data[] receiveCall(Procedure operation, Data[] expectedArguments, Connection connection) + throws InterruptedException, AssertionError; + + /** + * Encode and send the reply or exception to system + * under test using protocol or adapter specific means. + * + * @param operation The operation to which to respond. + * @param reply The reply to be sent. + * @param exception The exception to be raised. + * @param connection The connection on which the response is to be sent. + */ + void replyCall(Procedure operation, Data reply, Data exception, Connection connection); + +} diff --git a/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/tri/Validator.java b/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/tri/Validator.java new file mode 100644 index 0000000000000000000000000000000000000000..58520112eaec8ce6841162cea4462f62e16b85d9 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/tri/Validator.java @@ -0,0 +1,23 @@ +package org.etsi.mts.tdl.execution.java.tri; + +/** + * Interface for providing custom data matching and verdict management. + * + */ +public interface Validator { + + /** + * Performs environment specific comparison of actual data received + * from the system under test and the data expected by the test + * description. + * + * @return True when the objects match. + * @throws AssertionError When actual data does not match with expected data. + */ + boolean matches(Data expected, Data actual) throws AssertionError; + + /** + * Updates the current verdict of the test description execution. + */ + void setVerdict(Verdict verdict); +} diff --git a/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/tri/Verdict.java b/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/tri/Verdict.java new file mode 100644 index 0000000000000000000000000000000000000000..570cabcc137c36aa51667f38ab57c85ba101b740 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.execution.java/runtime-src/org/etsi/mts/tdl/execution/java/tri/Verdict.java @@ -0,0 +1,16 @@ +package org.etsi.mts.tdl.execution.java.tri; + +/** + * Either predefined or custom verdict. + */ +public class Verdict extends NamedElement { + /** + * Verdict instance predefined in TDL. + */ + public static Verdict pass = new Verdict("pass"), fail = new Verdict("fail"), + inconclusive = new Verdict("inconclusive"); + + public Verdict(String name) { + super(name, null); + } +} diff --git a/plugins/org.etsi.mts.tdl.execution.java/src/org/etsi/mts/tdl/execution/java/codegen/JUnitTestGenerator.java b/plugins/org.etsi.mts.tdl.execution.java/src/org/etsi/mts/tdl/execution/java/codegen/JUnitTestGenerator.java new file mode 100644 index 0000000000000000000000000000000000000000..7e278ac4ef73018cbbe5112743c8d4258338c577 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.execution.java/src/org/etsi/mts/tdl/execution/java/codegen/JUnitTestGenerator.java @@ -0,0 +1,1951 @@ +package org.etsi.mts.tdl.execution.java.codegen; + +import java.io.IOException; +import java.math.BigInteger; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashSet; +import java.util.Hashtable; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.Set; +import java.util.Stack; +import java.util.stream.Collectors; + +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.common.util.TreeIterator; +import org.eclipse.emf.ecore.EObject; +import org.etsi.mts.tdl.Action; +import org.etsi.mts.tdl.ActionBehaviour; +import org.etsi.mts.tdl.ActionReference; +import org.etsi.mts.tdl.AlternativeBehaviour; +import org.etsi.mts.tdl.Assertion; +import org.etsi.mts.tdl.Assignment; +import org.etsi.mts.tdl.AtomicBehaviour; +import org.etsi.mts.tdl.Behaviour; +import org.etsi.mts.tdl.Block; +import org.etsi.mts.tdl.BoundedLoopBehaviour; +import org.etsi.mts.tdl.Break; +import org.etsi.mts.tdl.CombinedBehaviour; +import org.etsi.mts.tdl.ComponentInstance; +import org.etsi.mts.tdl.ComponentInstanceRole; +import org.etsi.mts.tdl.ComponentType; +import org.etsi.mts.tdl.CompoundBehaviour; +import org.etsi.mts.tdl.ConditionalBehaviour; +import org.etsi.mts.tdl.DataElementMapping; +import org.etsi.mts.tdl.DataElementUse; +import org.etsi.mts.tdl.DataInstance; +import org.etsi.mts.tdl.DataInstanceUse; +import org.etsi.mts.tdl.DataResourceMapping; +import org.etsi.mts.tdl.DataType; +import org.etsi.mts.tdl.DataUse; +import org.etsi.mts.tdl.Element; +import org.etsi.mts.tdl.ElementImport; +import org.etsi.mts.tdl.ExceptionalBehaviour; +import org.etsi.mts.tdl.FormalParameter; +import org.etsi.mts.tdl.FormalParameterUse; +import org.etsi.mts.tdl.Function; +import org.etsi.mts.tdl.FunctionCall; +import org.etsi.mts.tdl.GateReference; +import org.etsi.mts.tdl.InlineAction; +import org.etsi.mts.tdl.Interaction; +import org.etsi.mts.tdl.InterruptBehaviour; +import org.etsi.mts.tdl.LiteralValueUse; +import org.etsi.mts.tdl.LocalExpression; +import org.etsi.mts.tdl.MappableDataElement; +import org.etsi.mts.tdl.Member; +import org.etsi.mts.tdl.MemberAssignment; +import org.etsi.mts.tdl.MemberReference; +import org.etsi.mts.tdl.Message; +import org.etsi.mts.tdl.NamedElement; +import org.etsi.mts.tdl.OptionalBehaviour; +import org.etsi.mts.tdl.Package; +import org.etsi.mts.tdl.PackageableElement; +import org.etsi.mts.tdl.ParallelBehaviour; +import org.etsi.mts.tdl.Parameter; +import org.etsi.mts.tdl.ParameterBinding; +import org.etsi.mts.tdl.ParameterKind; +import org.etsi.mts.tdl.ParameterMapping; +import org.etsi.mts.tdl.PeriodicBehaviour; +import org.etsi.mts.tdl.PredefinedFunction; +import org.etsi.mts.tdl.PredefinedFunctionCall; +import org.etsi.mts.tdl.ProcedureCall; +import org.etsi.mts.tdl.ProcedureParameter; +import org.etsi.mts.tdl.ProcedureSignature; +import org.etsi.mts.tdl.Quiescence; +import org.etsi.mts.tdl.SingleCombinedBehaviour; +import org.etsi.mts.tdl.SpecialValueUse; +import org.etsi.mts.tdl.Stop; +import org.etsi.mts.tdl.StructuredDataInstance; +import org.etsi.mts.tdl.Target; +import org.etsi.mts.tdl.TestConfiguration; +import org.etsi.mts.tdl.TestDescription; +import org.etsi.mts.tdl.TestDescriptionReference; +import org.etsi.mts.tdl.TestObjective; +import org.etsi.mts.tdl.Time; +import org.etsi.mts.tdl.TimeConstraint; +import org.etsi.mts.tdl.TimeLabel; +import org.etsi.mts.tdl.TimeLabelUse; +import org.etsi.mts.tdl.TimeOperation; +import org.etsi.mts.tdl.TimeOut; +import org.etsi.mts.tdl.Timer; +import org.etsi.mts.tdl.TimerOperation; +import org.etsi.mts.tdl.TimerStart; +import org.etsi.mts.tdl.TimerStop; +import org.etsi.mts.tdl.UnboundedLoopBehaviour; +import org.etsi.mts.tdl.ValueAssignment; +import org.etsi.mts.tdl.Variable; +import org.etsi.mts.tdl.VariableUse; +import org.etsi.mts.tdl.VerdictAssignment; +import org.etsi.mts.tdl.Wait; +import org.etsi.mts.tdl.execution.java.rt.core.TimeUnit; +import org.etsi.mts.tdl.execution.java.tri.PredefinedFunctions; + +public class JUnitTestGenerator extends Renderer { + + public static final String PACKAGE_PREFIX = "org.etsi.mts.tdl.execution.java", + CORE_PACKAGE = PACKAGE_PREFIX + ".rt.core", TRI_PACKAGE = PACKAGE_PREFIX + ".tri", + TESTER_CLASS = "TestControl", FUNCTIONS_FIELD = "functions", SYSTEM_ADAPTER_FIELD = "systemAdapter", + VALIDATOR_FIELD = "validator", REPORTER_FIELD = "reporter", HELPER_FIELD = "runtimeHelper"; + + public static final String COMPONENT_CLASS_SUFFIX = "_Component", + ASSERTION_EXCEPTION = "junit.framework.AssertionFailedError", + FUTURE_EXECUTION_EXCEPTION = "java.util.concurrent.ExecutionException", + INTERRUPTED_EXCEPTION = "InterruptedException", BREAK_EXCEPTION = "BreakException", + STOP_EXCEPTION = "StopException"; + + public static final String LANGUAGE_KEY = "Language", JAVA_LANGUAGE_VALUE = "Java", MAPPING_KEY = "MappingName", + JAVA_MAPPING_VALUE = "Java", MAPPING_ANNOTATION_PREFIX = "Java", + MAPPING_ANNOTATION_PACKAGE = MAPPING_ANNOTATION_PREFIX + "Package", + MAPPING_ANNOTATION_METHOD = MAPPING_ANNOTATION_PREFIX + "Method", + MAPPING_ANNOTATION_STATIC_METHOD = MAPPING_ANNOTATION_PREFIX + "StaticMethod", + MAPPING_ANNOTATION_CLASS = MAPPING_ANNOTATION_PREFIX + "Class", + MAPPING_ANNOTATION_FIELD = MAPPING_ANNOTATION_PREFIX + "Field", + MAPPING_ANNOTATION_STATIC_FIELD = MAPPING_ANNOTATION_PREFIX + "StaticField", + MAPPING_ANNOTATION_GETTER = MAPPING_ANNOTATION_PREFIX + "Getter", + MAPPING_ANNOTATION_SETTER = MAPPING_ANNOTATION_PREFIX + "Setter"; + + private Package model; + + private Settings settings; + private String guiceModule; + + private boolean logEvents = true; + + protected Map> elementMappings = new Hashtable>(); + + protected Map classNames = new Hashtable(); + + private ComponentInstance currentTester = null; + + public JUnitTestGenerator(Package model, Settings settings) { + super(settings.outputFile, settings.outPackage); + this.model = model; + this.settings = settings; + this.guiceModule = settings.injector; + if (this.guiceModule == "") + throw new RuntimeException("Guice module must be configured in settings."); + } + + public void generate() throws IOException { + render(); + } + + public void render() throws IOException { + + resolveMappings(this.model); + + List tdList = new ArrayList(); + gatherPackageableElements(model, false, e -> { + if (e instanceof TestDescription) + tdList.add((TestDescription) e); + }); + + Set configurations = tdList.stream().map(td -> td.getTestConfiguration()) + .collect(Collectors.toSet()); + for (TestConfiguration tc : configurations) { + renderTestConfiguration(tc); + } + for (TestDescription td : tdList) { + renderTestCase(td); + } + + } + + protected void resolveMappings(Package model) { + gatherPackageableElements(model, true, e -> { + if (e instanceof DataElementMapping) { + MappableDataElement el = ((DataElementMapping) e).getMappableDataElement(); + Set mappings = this.elementMappings.get(el); + if (mappings == null) + this.elementMappings.put(el, mappings = new HashSet()); + mappings.add((DataElementMapping) e); + } + }); + } + + protected DataElementMapping getMapping(MappableDataElement e) { + Set mappings = this.elementMappings.get(e); + if (mappings != null && !mappings.isEmpty()) { + for (DataElementMapping m : mappings) { + if (m.getDataResourceMapping().getAnnotation().stream().anyMatch( + a -> a.getKey().getName().equals(MAPPING_KEY) && a.getValue().equals(JAVA_MAPPING_VALUE))) + return m; + } + } + return null; + } + + protected DataElementMapping getMappingChecked(MappableDataElement e) { + DataElementMapping m = getMapping(e); + if (m != null) + return m; + throw new RuntimeException("Mapping missing for " + e.getQualifiedName()); + } + + private String getParameterMappingUri(Parameter p) { + ParameterMapping pm = getParameterMapping(p); + if (pm != null) + return pm.getParameterURI(); + return null; + } + + private ParameterMapping getParameterMapping(Parameter p) { + DataElementMapping typeMapping = getMapping((MappableDataElement) p.container()); + if (typeMapping != null) { + for (ParameterMapping pm : typeMapping.getParameterMapping()) { + if (pm.getParameter().equals(p)) { + return pm; + } + } + } + return null; + } + + private boolean hasAnnotation(Element e, String keyName) { + return e.getAnnotation().stream().anyMatch(a -> a.getKey().getName().equals(keyName)); + } + + protected void addImport(DataElementMapping m, Set imports) { + if (m == null) + return; + MappableDataElement e = m.getMappableDataElement(); + if (e instanceof DataType) { + DataResourceMapping resource = m.getDataResourceMapping(); + boolean resourceIsClass = hasAnnotation(resource, MAPPING_ANNOTATION_CLASS); + if (resourceIsClass) { + imports.add(resource.getResourceURI()); + return; + } + boolean isPackage = hasAnnotation(resource, MAPPING_ANNOTATION_PACKAGE); + if (!isPackage) + throw new RuntimeException("Unsupported resource mapping: " + resource.getQualifiedName()); + boolean isClass = hasAnnotation(m, MAPPING_ANNOTATION_CLASS); + if (isClass) { + String classQName = m.getElementURI(); + if (classQName.startsWith("java.")) + imports.add(classQName); + else + imports.add(resource.getResourceURI() + "." + classQName); + } + } + } + + private String getPackagefullName(Package p) { + String packageName = getElementName(p); + while ((p = (Package) p.container()) != null) + packageName = getElementName(p) + "." + packageName; + packageName = packageName.toLowerCase(); + if (this.getRootPackageName() != null && this.getRootPackageName().length() > 0) + packageName = this.getRootPackageName() + "." + packageName; + return packageName; + } + + private void renderTestConfiguration(TestConfiguration tc) throws IOException { + Package p = (Package) tc.container(); + String packageName = getPackagefullName(p); + + Set testerTypes = tc.getComponentInstance().stream() + .filter(c -> c.getRole() == ComponentInstanceRole.TESTER).map(c -> c.getType()) + .collect(Collectors.toSet()); + final String fPackageName = packageName; + for (ComponentType ct : testerTypes) { + String className = getElementName(ct) + COMPONENT_CLASS_SUFFIX; + writeClassFile(packageName, className, () -> renderComponentTypeClass(fPackageName, tc, ct)); + } + } + + private void renderComponentTypeClass(String packageName, TestConfiguration tc, ComponentType ct) { + + String className = getElementName(ct) + COMPONENT_CLASS_SUFFIX; + classNames.put(ct, packageName + "." + className); + + line("package " + packageName + ";"); + newLine(); + + Set imports = new HashSet(); + gatherImports(imports); + gatherImports(ct, imports); + writeImports(imports); + + append("public class " + className + " extends " + TESTER_CLASS); + blockOpen(); + newLine(); + + writeComponentType(tc, ct, className); + + blockClose(); + } + + private void writeComponentType(TestConfiguration tc, ComponentType ct, String className) { + + ct.getVariable().forEach(v -> { + line("public " + getElementName(v.getDataType()) + " " + getElementName(v) + ";"); + }); + newLine(); + + ct.getTimer().forEach(t -> { + String timerClass = CORE_PACKAGE + ".Timer "; + line("public " + timerClass + getTimerName(t) + " = new " + timerClass + "(TimeUnit." + TimeUnit.Second + + ", " + t.getName() + ", " + t.getQualifiedName() + ");"); + }); + newLine(); + + // XXX Gates + + append("protected " + className + "()"); + blockOpen(); + append("super("); + append("new "); + append(settings.injector); + append("()"); + line(");"); + + blockClose(); + } + + private String getTimerName(Timer t) { + String timerNameSuffix = "_t"; + return getElementName(t) + timerNameSuffix; + } + + private String getTimeLabelName(TimeLabel label) { + AtomicBehaviour b = (AtomicBehaviour) label.container(); + String labelNameSuffix = "_tl"; + return getElementName(b) + labelNameSuffix; + } + + private void renderTestCase(TestDescription td) throws IOException { + + Package p = (Package) td.container(); + String packageName = getPackagefullName(p); + + final String fPackageName = packageName; + final List ex = new ArrayList(); + List testers = td.getTestConfiguration().getComponentInstance().stream() + .filter(c -> c.getRole() == ComponentInstanceRole.TESTER).collect(Collectors.toList()); + testers.forEach(tester -> { + String className = getElementName(td); + if (testers.size() > 1) + className += "_" + getElementName(tester); + try { + this.currentTester = tester; + String fClassName = className; + writeClassFile(packageName, className, + () -> renderTestDescriptionClass(fPackageName, fClassName, td, tester)); + } catch (IOException e) { + ex.add(e); + return; + } + }); + if (!ex.isEmpty()) + throw ex.get(0); + + } + + private void renderTestDescriptionClass(String packageName, String className, TestDescription td, + ComponentInstance tester) { + + line("package " + packageName + ";"); + newLine(); + + Set imports = new HashSet(); + gatherImports(imports); + gatherImports(td, imports); + writeImports(imports); + + String componentClassName = classNames.get(tester.getType()); + + line("@TestInstance(TestInstance.Lifecycle.PER_CLASS)"); + append("public class " + className + " extends " + componentClassName); + blockOpen(); + newLine(); + + // Declare TimeLabels + td.eAllContents().forEachRemaining(e -> { + if (e instanceof TimeLabel) { + String name = getTimeLabelName((TimeLabel) e); + line("private TimeLabel " + name + " = new TimeLabel();"); + } + }); + newLine(); + + writeTestConfiguration(td); + newLine(); + writeTestDescription(td); + + blockClose(); + + } + + @FunctionalInterface + public interface PackageableElementAcceptor { + void accept(PackageableElement e); + } + + protected void gatherPackageableElements(Package p, boolean includeImports, PackageableElementAcceptor a) { + gatherPackageableElements(p, includeImports, a, new HashSet()); + } + + private void gatherPackageableElements(Package p, boolean includeImports, PackageableElementAcceptor a, + Set scanned) { + if (scanned.contains(p)) + return; + scanned.add(p); + p.getPackagedElement().forEach(a::accept); + if (includeImports) + p.getImport().forEach(i -> { + List ie = i.getImportedElement(); + if (ie.isEmpty()) + gatherPackageableElements(((ElementImport) i).getImportedPackage(), includeImports, a, scanned); + else + ie.forEach(a::accept); + }); + p.getNestedPackage().forEach(np -> gatherPackageableElements(np, includeImports, a, scanned)); + } + + protected void gatherImports(Set imports) { +// imports.add("org.junit.*"); + imports.add("org.junit.jupiter.api.*"); +// imports.add("org.junit.Test"); +// imports.add("org.junit.Assert"); + + imports.add("com.google.inject.*"); + imports.add("javax.inject.*"); + + imports.add("java.util.concurrent.Future"); + imports.add("java.util.List"); + + imports.add(TRI_PACKAGE + ".*"); + imports.add(CORE_PACKAGE + ".*"); + } + + protected void gatherImports(Element el, Set imports) { + this.elementMappings.keySet().forEach(e -> addImport(getMapping(e), imports)); + } + + private void writeTestConfiguration(TestDescription tc) { + TestConfiguration config = tc.getTestConfiguration(); + + line("@BeforeAll"); + append("public void configure_" + getElementName(tc) + "()"); + blockOpen(); + + final List connectionNames = new ArrayList(); + config.getConnection().forEach(conn -> { + String connectionName = getElementName(conn); + connectionNames.add(connectionName); + + List endpoints = conn.getEndPoint(); + append("Connection " + connectionName + " = new Connection"); + callOpen(); + line("\"" + conn.getName() + "\", "); + writeGateReference(endpoints.get(0)); + line(", "); + writeGateReference(endpoints.get(1)); + callClose(); + + }); + append("configure(new Connection[] {"); + boolean first = true; + for (String cn : connectionNames) { + if (!first) + append(", "); + first = false; + append(cn); + } + line("});"); + + blockClose(); + newLine(); + } + + private void writeGateReference(GateReference e) { + append("new GateReference("); + writeElement(e.getGate()); + append(", "); + writeElement(e.getGate().getType()); + append(", "); + writeElement(e.getComponent()); + append(", "); + writeElement(e.getComponent().getType()); + append(", "); + append("ComponentInstanceRole." + e.getComponent().getRole()); + append(")"); + } + + private void writeGetConnection(GateReference tester, GateReference remote) { + append("getConnection(\"" + tester.getComponent().getName() + "\", \"" + tester.getGate().getName() + "\", \"" + + remote.getComponent().getName() + "\", \"" + remote.getGate().getName() + "\")"); + } + + private void writeGetGateReference(GateReference tester) { + append("getGateReference(\"" + tester.getComponent().getName() + "\", \"" + tester.getGate().getName() + "\")"); + } + + private void writeElement(Element e) { + append("new Element(\"" + e.getName() + "\")"); + } + + private void writeTestDescription(TestDescription tc) { + + for (TestObjective to : tc.getTestObjective()) { + line("/**"); + String toDesc = to.getDescription(); + if (toDesc != null && toDesc.length() > 0) { + line(" * " + toDesc); + } + line("*/"); + } + + line("@Test"); + + append("public void test_" + getElementName(tc) + "()"); + blockOpen(); + newLine(); + + append("try"); + blockOpen(); + + Set thrownExceptions = new HashSet(); + write(tc.getBehaviourDescription().getBehaviour(), null, null, thrownExceptions); + + blockClose(); + + if (!thrownExceptions.isEmpty()) { + for (String ex : thrownExceptions) { + append("catch (" + ex + " e)"); + blockOpen(); + if (ex.equals(STOP_EXCEPTION)) { + append("if (e.getVerdict() != null)"); + blockOpen(); + line(VALIDATOR_FIELD + ".setVerdict(e.getVerdict());"); + blockClose(); + } + line("throw new " + ASSERTION_EXCEPTION + "(e.getMessage());"); + blockClose(); + } + } + append("catch (RuntimeException e)"); + blockOpen(); + line(REPORTER_FIELD + ".runtimeError(e);"); + line("throw e;"); + blockClose(); + + blockClose(); + newLine(); + } + + class FutureInfo { + public String varName; + public String kind; + public Behaviour b; + public boolean hasExceptionals = false; + + public FutureInfo(String varName, String kind, Behaviour b) { + this.varName = varName; + this.kind = kind; + this.b = b; + } + } + + private void write(Behaviour b, Map dataUseVariables, List futures, + Set thrownExceptions) { + + lineComment(b.eClass().getName()); + + writeComment(b); + writeNotification(b, true); + + if (b instanceof CompoundBehaviour) { + // XX why was this here? +// write(((CompoundBehaviour) b).getBlock(), null, null, thrownExceptions); +// return; + + } else if (dataUseVariables == null) + throw new RuntimeException(); + + List myFutures = new ArrayList(); + + boolean writeAfter = true; + List exceptionalBehaviours = new ArrayList(); + if (b instanceof AtomicBehaviour) { + + // Atomic behaviours + + // Component check + if (b instanceof ActionBehaviour) { + ComponentInstance c = ((ActionBehaviour) b).getComponentInstance(); + if (c != null && !isCurrentComponentInstance(c)) + return; + } else if (b instanceof TimerOperation) { + ComponentInstance c = ((TimerOperation) b).getComponentInstance(); + if (c != null && !isCurrentComponentInstance(c)) + return; + } else if (b instanceof Assignment) { + VariableUse v = ((Assignment) b).getVariable(); + if (!isCurrentComponentInstance(v.getComponentInstance())) + return; + } + + // Timing + TimeLabel timeLabel = ((AtomicBehaviour) b).getTimeLabel(); + if (timeLabel != null) { + String labelName = getTimeLabelName(timeLabel); + line(labelName + ".timestamp();"); + } + for (TimeConstraint tc : ((AtomicBehaviour) b).getTimeConstraint()) { + FutureInfo futureInfo = declareFuture(b, tc, dataUseVariables); + if (!isTesterInput(b)) { + line(futureInfo.varName + ".get();"); + + } else + myFutures.add(futureInfo); + } + + // Actions + if (b instanceof ActionReference) { + Action action = ((ActionReference) b).getAction(); + DataElementMapping mapping = getMapping(action); + if (mapping == null || !(hasAnnotation(mapping, MAPPING_ANNOTATION_STATIC_METHOD) + || hasAnnotation(mapping, MAPPING_ANNOTATION_METHOD))) + throw new RuntimeException("No supported mapping for action: " + action.getQualifiedName()); + + for (ParameterBinding arg : ((ActionReference) b).getArgument()) + initializeDataUse(arg.getDataUse(), dataUseVariables); + + String mappingPrefix = mapping.getDataResourceMapping().getResourceURI(); + if (mappingPrefix.length() > 0) + append(mappingPrefix + "."); + append(getElementName(action)); + + if (!((ActionReference) b).getArgument().isEmpty()) { + append("("); + boolean first = true; + for (ParameterBinding arg : ((ActionReference) b).getArgument()) { + write(arg.getDataUse(), dataUseVariables); + if (first) + first = false; + else + append(", "); + } + line(");"); + } + + } else if (b instanceof InlineAction) { + if (b.getAnnotation().stream().anyMatch( + a -> a.getKey().getName().equals(LANGUAGE_KEY) && a.getValue().equals(JAVA_LANGUAGE_VALUE))) { + append(((InlineAction) b).getBody()); + newLine(); + } + + } + // Variable assignment + else if (b instanceof Assignment) { + VariableUse v = ((Assignment) b).getVariable(); + initializeDataUse(((Assignment) b).getExpression(), dataUseVariables); + append("this."); + write(v, dataUseVariables); + append(" = "); + write(((Assignment) b).getExpression(), dataUseVariables); + line(";"); + + } + // Verdicts + else if (b instanceof Assertion) { + initializeDataUse(((Assertion) b).getCondition(), dataUseVariables); + DataUse verdict = ((Assertion) b).getOtherwise(); + if (verdict != null) + initializeDataUse(verdict, dataUseVariables); + + append("if (!("); + write(((Assertion) b).getCondition(), dataUseVariables); + append("))"); + blockOpen(); + + append(VALIDATOR_FIELD + ".setVerdict("); + if (verdict != null) + write(((Assertion) b).getOtherwise(), dataUseVariables); + else + append("Verdict.fail"); + line(");"); + + writeNotification(b, false); + writeObjective(b); + writeAfter = false; + line("throw new " + ASSERTION_EXCEPTION + "(\"" + getMessage(b) + "\");"); + + blockClose(); + + } else if (b instanceof VerdictAssignment) { + DataUse verdict = ((VerdictAssignment) b).getVerdict(); + initializeDataUse(verdict, dataUseVariables); + append(VALIDATOR_FIELD + ".setVerdict("); + write(verdict, dataUseVariables); + line(");"); + + } + // Control flow + else if (b instanceof Break) { + if (!(b.container() instanceof Block)) + throw new RuntimeException("Break not contained in a Block " + getQName(b)); + Block bl = (Block) ((Break) b).container(); + + writeNotification(b, false); + writeObjective(b); + writeAfter = false; + + line("throw new " + BREAK_EXCEPTION + "(\"" + getElementName(bl) + "\");"); + thrownExceptions.add(BREAK_EXCEPTION); + + } else if (b instanceof Stop) { + + writeNotification(b, false); + writeObjective(b); + writeAfter = false; + + line("throw new " + STOP_EXCEPTION + "(\"Stop " + getQName(b) + "\");"); + thrownExceptions.add(STOP_EXCEPTION); + + } + // Timer operations + else if (b instanceof TimerStart) { + DataUse period = ((TimerStart) b).getPeriod(); + Time timeType = resolveTimeType(period); + TimeUnit unit = timeType != null ? TimeUnit.getByName(timeType.getName()) : null; + + initializeDataUse(period, dataUseVariables); + + append(getTimerName(((TimerOperation) b).getTimer()) + ".start("); + write(period, dataUseVariables); + if (unit != null) + append(", TimeUnit." + unit); + line(");"); + + } else if (b instanceof TimerStop) { + append(getTimerName(((TimerOperation) b).getTimer()) + ".stop();"); + + } else if (b instanceof TimeOut) { + FutureInfo futureInfo = writeTesterInput(b, dataUseVariables, true, true); + myFutures.add(futureInfo); + + } + // Gate operations + else if (b instanceof Wait) { + FutureInfo futureInfo = declareFuture(b, dataUseVariables, true); + line(futureInfo.varName + ".get();"); + + } else if (b instanceof Quiescence) { + FutureInfo futureInfo = writeTesterInput(b, dataUseVariables, true, true); + myFutures.add(futureInfo); + + } else if (b instanceof Message) { + + if (isTesterInput(b)) { + FutureInfo futureInfo = writeTesterInput(b, dataUseVariables, true, true); + myFutures.add(futureInfo); + thrownExceptions.add(INTERRUPTED_EXCEPTION); + thrownExceptions.add(FUTURE_EXECUTION_EXCEPTION); + + } else { + + Message m = (Message) b; + DataUse arg = m.getArgument(); + initializeDataUse(arg, dataUseVariables); + + for (Target t : m.getTarget()) { + append(SYSTEM_ADAPTER_FIELD + ".send("); + convertToData(arg, dataUseVariables); + append(", "); + writeGetConnection(m.getSourceGate(), t.getTargetGate()); + line(");"); + } + + } + + } else if (b instanceof ProcedureCall) { + ProcedureCall pc = (ProcedureCall) b; + + boolean isCall = pc.getReplyTo() == null; + boolean isTesterInput = isTesterInput(b); + if (isCall) { + if (!isTesterInput) { + FutureInfo futureInfo = writeTesterInput(b, dataUseVariables, true, true); + myFutures.add(futureInfo); + + } else { + // TODO receive call if reply isTesterInput + } + } + + } + // Test description call + else if (b instanceof TestDescriptionReference) { + TestDescription td = ((TestDescriptionReference) b).getTestDescription(); + // XXX + + } + + newLine(); + } + + // Combined behaviours + + else if (b instanceof CombinedBehaviour) { + + for (PeriodicBehaviour pb : ((CombinedBehaviour) b).getPeriodic()) { + // XXX run periodic in parallel with separate completion service + lineComment(pb.eClass().getName() + " not supported currently"); + } + + for (ExceptionalBehaviour eb : ((CombinedBehaviour) b).getExceptional()) { + + newLine(); + lineComment(eb.eClass().getName()); + + ComponentInstance gc = eb.getGuardedComponent(); + if (gc != null && !isCurrentComponentInstance(gc)) + continue; + + String exceptionalBehaviourName = getElementName(eb); + append("ExceptionalBehaviour " + exceptionalBehaviourName + " = new ExceptionalBehaviour("); + append(Boolean.toString(eb instanceof InterruptBehaviour)); + line(");"); + + // TODO what to do with those? + Set innerExceptions = new HashSet(); + write(eb.getBlock(), exceptionalBehaviourName, null, innerExceptions); + + line("addExceptionalBehaviour(" + exceptionalBehaviourName + ");"); + newLine(); + exceptionalBehaviours.add(exceptionalBehaviourName); + } + + // Single block + if (b instanceof CompoundBehaviour) { + write(((CompoundBehaviour) b).getBlock(), null, null, thrownExceptions); + + } else if (b instanceof BoundedLoopBehaviour) { + Optional exp = ((BoundedLoopBehaviour) b).getNumIteration().stream() + .filter(l -> isCurrentComponentInstance(l.getComponentInstance())).findFirst(); + if (exp.isEmpty()) + throw new RuntimeException("Appropriate local expression not provided for " + getMessage(b) + " on " + + this.currentTester.getName()); + DataUse d = exp.get().getExpression(); + initializeDataUse(d, dataUseVariables); + + String counterName = getElementName(b) + "_counter"; + // XXX counter type + String counterType = "int"; + append("for (" + counterType + " " + counterName + " = 0; " + counterName + " < "); + write(d, dataUseVariables); + append("; " + counterName + "++)"); + + blockOpen(); + write(((SingleCombinedBehaviour) b).getBlock(), null, null, thrownExceptions); + blockClose(); + + } else if (b instanceof UnboundedLoopBehaviour) { + append("while (true)"); + blockOpen(); + write(((SingleCombinedBehaviour) b).getBlock(), null, null, thrownExceptions); + blockClose(); + + } else if (b instanceof OptionalBehaviour) { + // XXX OptionalBehaviour + lineComment(b.eClass().getName() + " not supported currently"); + // write(((SingleCombinedBehaviour) b).getBlock(), null, thrownExceptions); + + } + // Multiple blocks + else if (b instanceof AlternativeBehaviour) { + // XXX + + } else if (b instanceof ConditionalBehaviour) { + List blocks = ((ConditionalBehaviour) b).getBlock(); + boolean first = true; + for (Block block : blocks) { + if (!first) + append(" else "); + first = false; + write(block, null, null, thrownExceptions); + } + + } else if (b instanceof ParallelBehaviour) { + // XXX run ParallelBehaviour in parallel with separate completion service + lineComment(b.eClass().getName() + " not supported currently"); + + } + + } + if (writeAfter) { + writeNotification(b, false); + writeObjective(b); + + newLine(); + exceptionalBehaviours.forEach(eb -> { + line("removeExceptionalBehaviour(" + eb + ");"); + }); + } + + if (futures == null) { + if (!myFutures.isEmpty()) { + String futureName = getElementName(b) + "_future"; + line("Future " + futureName + " = next();"); + + append("try "); + blockOpen(); + + boolean first = true; + for (FutureInfo f : myFutures) { + if (!first) + append(" else "); + first = false; + + append("if (" + f.varName + " == " + futureName + ")"); + blockOpen(); + + line(f.kind + " result = (" + f.kind + ")" + f.varName + ".get();"); + if (f.kind.equals("InteractionResult")) { + Target localTarget = ((Interaction) b).getTarget().stream() + .filter(t -> isCurrentComponentInstance(t.getTargetGate().getComponent())).findFirst() + .get(); + if (b instanceof Message) { + for (ValueAssignment va : localTarget.getValueAssignment()) { + lineComment("ValueAssignment"); + Variable var = va.getVariable(); + append(getElementName(var)); + append(" = "); + append("(" + getElementName(var.getDataType()) + ")"); + line("result.data.getValue();"); + } + + } else { + // XXX + } + + } else if (f.kind.equals("TimeoutResult")) { + line("throw new " + STOP_EXCEPTION + "(\"Timeout\");"); + thrownExceptions.add(STOP_EXCEPTION); + + } else + throw new RuntimeException("Unknown execution result kind: " + f.kind); + + blockClose(); + } + + line(" else "); + blockOpen(); + append("ExceptionalBehaviour exceptionalBehaviour = getExceptionalBehaviour("); + append(futureName); + line(");"); + append("if (exceptionalBehaviour != null)"); + blockOpen(); + line("exceptionalBehaviour.behaviour.execute();"); + blockClose(); + blockClose(); + + blockClose(); + append("finally "); + blockOpen(); + + // Cancel futures + myFutures.forEach(f -> { + line("stop(" + f.varName + ");"); + + if (f.hasExceptionals) { + append(f.varName); + line("_exceptionals.forEach(f -> stop(f));"); + } + }); + + blockClose(); + +// MethodCall mc = () -> { +// return null; +// }; + + newLine(); + } + + } else { + futures.addAll(myFutures); + // XXX handle futures in caller (e.g. alt) + } + + } + + private FutureInfo writeTesterInput(Behaviour b, Map dataUseVariables, boolean autoSubmit, + boolean addExceptionals) { + if (b instanceof TimeOut || b instanceof Quiescence || b instanceof Message || b instanceof ProcedureCall) { + FutureInfo future = declareFuture(b, dataUseVariables, autoSubmit); + if (addExceptionals) { + future.hasExceptionals = true; + append("List> "); + append(future.varName); + append("_exceptionals = "); + line("executeExceptionals();"); + } + return future; + } + throw new RuntimeException("Behaviour is not tester-input:" + getMessage(b)); + } + + private void write(Block bl, String exceptionalBehaviourName, List futures, + Set thrownExceptions) { + // Limit scope of variables with a code block + append("try"); + blockOpen(); + + Map dataUseVariables = new Hashtable(); + declareDataUses(bl, dataUseVariables, ""); + newLine(); + + writeComment(bl); + + Optional guard = bl.getGuard().stream() + .filter(le -> isCurrentComponentInstance(le.getComponentInstance())).findFirst(); + if (guard.isPresent()) { + DataUse g = guard.get().getExpression(); + initializeDataUse(g, dataUseVariables); + + append("if ("); + write(g, dataUseVariables); + append(")"); + blockOpen(); + } + + Set myThrownExceptions = new HashSet(); + if (exceptionalBehaviourName != null) { + + // Block in exceptional behaviour: + // - create callable for initiating behaviour + // - render other behaviours in inner block + + Map innerDataUseVariables = new Hashtable(); + boolean triggerWritten = false; + for (Behaviour b : bl.getBehaviour()) { + + if (!triggerWritten) { + if (isParticipating(b)) { + if (!isTesterInput(b)) + throw new RuntimeException( + "Exceptional block should start with tester input: " + getMessage(b)); + + // Initiating behaviour + lineComment("This gets executed automatically with all interactions"); + FutureInfo callable = writeTesterInput(b, dataUseVariables, false, false); + line(exceptionalBehaviourName + ".setCallable(" + callable.varName + ");"); + newLine(); + + append(exceptionalBehaviourName + ".behaviour = () -> "); + blockOpen(); + + lineComment("Disable while exceptional behaviour is executed"); + line("removeExceptionalBehaviour(" + exceptionalBehaviourName + ");"); + newLine(); + + append("try"); + blockOpen(); + + // Re-declare data use variables + declareDataUses(bl, innerDataUseVariables, "exc_"); + newLine(); + + triggerWritten = true; + + } else + continue; + + } else { + // Other behaviours + write(b, innerDataUseVariables, null, myThrownExceptions); + + } + + newLine(); + } + + blockClose(); + append("finally"); + blockOpen(); + + lineComment("Enable the exceptional behaviour again"); + line("addExceptionalBehaviour(" + exceptionalBehaviourName + ");"); + blockClose(); + blockCloseMethod(); + + } else { + for (Behaviour b : bl.getBehaviour()) { + write(b, dataUseVariables, futures, myThrownExceptions); + newLine(); + } + } + + thrownExceptions.addAll(myThrownExceptions); + + if (guard.isPresent()) + blockClose(); + + blockClose(); + if (myThrownExceptions.contains(BREAK_EXCEPTION)) { + append("catch (" + BREAK_EXCEPTION + " e)"); + blockOpen(); + line("if (\"" + getElementName(bl) + "\".equals(e.getBlockName()))"); + lineInc(bl.container() instanceof CompoundBehaviour ? "return;" : "break;"); + line("else"); + lineInc("throw e;"); + blockClose(); + } else { + // There must be something... + line("finally {}"); + } + } + + private FutureInfo declareFuture(Behaviour b, TimeConstraint tc, Map dataUseVariables) { + String futureName = "timeConstraint_" + getElementName(tc) + "_" + getElementName(b); + + line("Future " + futureName + " = timeConstraint(() -> "); + blockOpen(); + + DataUse exp = tc.getTimeConstraintExpression(); + // TODO some data use variables may not be available in the callback scope +// lineComment("TODO some data use variables may not be usable in the callback scope"); + declareDataUses(tc, dataUseVariables, ""); + initializeDataUse(exp, dataUseVariables); + append("return "); + write(exp, dataUseVariables); + line(";"); + + blockClose(); + line(").execute();"); + + return new FutureInfo(futureName, "TimeoutResult", b); + } + + private FutureInfo declareFuture(Behaviour b, Map dataUseVariables, boolean autoSubmit) { + String typeSignature = autoSubmit ? "Future" : "ExecutionCallable"; + + Target localTarget = null; + if (b instanceof Interaction) + localTarget = ((Interaction) b).getTarget().stream() + .filter(t -> isCurrentComponentInstance(t.getTargetGate().getComponent())).findFirst().get(); + + if (b instanceof TimeOut) { + String futureName = "timeout_" + getElementName(b); + + String timerName = getTimerName(((TimerOperation) b).getTimer()); + append(typeSignature + " timeout_" + getElementName(b) + " = timeout(" + timerName + ")"); + if (autoSubmit) + append(".execute()"); + line(";"); + + return new FutureInfo(futureName, "TimeoutResult", b); + + } else if (b instanceof Wait) { + String futureName = "sleep_" + getElementName(b); + + DataUse period = ((TimeOperation) b).getPeriod(); + initializeDataUse(period, dataUseVariables); + + append(typeSignature + " " + futureName + " = sleep("); + write(period, dataUseVariables); + append(")"); + if (autoSubmit) + append(".execute()"); + line(";"); + + return new FutureInfo(futureName, "TimeoutResult", b); + + } else if (b instanceof Quiescence) { + String futureName = "noInput_" + getElementName(b); + + DataUse period = ((TimeOperation) b).getPeriod(); + initializeDataUse(period, dataUseVariables); + + append(typeSignature + " " + futureName + " = noInput("); + write(period, dataUseVariables); + append(", "); + GateReference gr = ((Quiescence) b).getGateReference(); + if (gr != null) + writeGetGateReference(gr); + else + append("null"); + append(")"); + if (autoSubmit) + append(".execute()"); + line(";"); + + return new FutureInfo(futureName, "TimeoutResult", b); + + } else if (b instanceof Message) { + Message m = (Message) b; + String futureName = "receive_" + getElementName(b); + + DataUse arg = m.getArgument(); + initializeDataUse(arg, dataUseVariables); + + append(typeSignature + " " + futureName + " = " + (m.isIsTrigger() ? "trigger" : "receive") + "("); + convertToData(arg, dataUseVariables); + append(", "); + writeGetConnection(localTarget.getTargetGate(), m.getSourceGate()); + append(")"); + if (autoSubmit) + append(".execute()"); + line(";"); + + return new FutureInfo(futureName, "InteractionResult", b); + + } else if (b instanceof ProcedureCall) { + ProcedureCall pc = (ProcedureCall) b; + String futureName = "call_" + getElementName(b); + + if (pc.getReplyTo() == null && !isTesterInput(b)) { + + ProcedureCall[] reply = new ProcedureCall[1]; + b.getParentTestDescription().eAllContents().forEachRemaining(e -> { + if (e instanceof ProcedureCall) { + if (b.equals(((ProcedureCall) e).getReplyTo())) { + reply[0] = (ProcedureCall) e; + return; + } + } + }); + + if (reply[0] == null) + throw new RuntimeException("No reply for: " + getMessage(b)); + + List arguments = pc.getArgument(); + List replyArguments = reply[0].getArgument(); + + arguments.forEach(arg -> initializeDataUse(arg.getDataUse(), dataUseVariables)); + replyArguments.forEach(arg -> initializeDataUse(arg.getDataUse(), dataUseVariables)); + + append(typeSignature + " " + futureName + " = call("); + writeCallArguments(pc, reply[0], true, dataUseVariables); + append(", "); + writeGetConnection(localTarget.getTargetGate(), pc.getSourceGate()); + line(")"); + if (autoSubmit) + append(".execute()"); + line(";"); + + return new FutureInfo(futureName, "InteractionResult", b); + + } else { + // XXX receive call if reply isTesterInput + } + } + + throw new RuntimeException("Don't know how to create future for: " + getMessage(b)); + } + + private void writeCallArguments(ProcedureCall pc, ProcedureCall reply, boolean call, + Map dataUseVariables) { + // TODO make configurable + boolean callProceduresDirectly = true; + + List arguments = pc.getArgument(); + + if (call) { + + if (callProceduresDirectly) { + ProcedureSignature signature = pc.getSignature(); + DataElementMapping mapping = getMappingChecked(signature); + DataResourceMapping resourceMapping = mapping.getDataResourceMapping(); + if (!hasAnnotation(resourceMapping, MAPPING_ANNOTATION_CLASS)) + throw new RuntimeException("Unsupported resource mapping: " + signature.getQualifiedName()); + + append("() ->"); + blockOpen(); + + String callableRef = null; + if (hasAnnotation(mapping, MAPPING_ANNOTATION_METHOD)) { + callableRef = getElementName(signature) + "_adapter"; + append(resourceMapping.getResourceURI() + " " + callableRef + " = "); + append("(" + resourceMapping.getResourceURI() + ")"); + append("getInstance(" + resourceMapping.getResourceURI() + ".class);"); + newLine(); + + } else if (hasAnnotation(mapping, MAPPING_ANNOTATION_STATIC_METHOD)) + callableRef = resourceMapping.getResourceURI(); + + else + throw new RuntimeException("Unsupported resource mapping: " + signature.getQualifiedName()); + + append("return " + callableRef + "." + mapping.getElementURI() + "("); + + boolean first = true; + for (ParameterBinding arg : arguments) { + if (!first) + append(", "); + first = false; + write(arg.getDataUse(), dataUseVariables); + } + + line(");"); + + blockClose(); + + } else { + + String operation = getElementName(pc.getSignature()); + append("\"" + operation + "\", "); + + append("new Argument[] {"); + boolean first = true; + for (ParameterBinding arg : arguments) { + if (!first) + append(", "); + first = false; + Parameter p = arg.getParameter(); + String parameterName = getParameterMappingUri(p); + if (parameterName == null) + parameterName = getElementName(p); + convertToArgument(parameterName, arg.getDataUse(), dataUseVariables); + } + append("}, "); + + Optional out = reply.getArgument().stream() + .filter(arg -> ((ProcedureParameter) arg.getParameter()).getKind() == ParameterKind.OUT) + .findAny(); + if (out.isPresent()) { + convertToData(out.get().getDataUse(), dataUseVariables); + append(", null"); + } else { + Optional ex = reply.getArgument().stream().filter( + arg -> ((ProcedureParameter) arg.getParameter()).getKind() == ParameterKind.EXCEPTION) + .findAny(); + append("null, "); + if (ex.isPresent()) + convertToData(ex.get().getDataUse(), dataUseVariables); + else + append("null"); + } + } + + } else { + // XXX receive call if reply isTesterInput + } + } + + private void declareDataUses(Element b, final Map dataUseVariables, String prefix) { + + TreeIterator i = b.eAllContents(); + while (i.hasNext()) { + // We could inline the data uses that are arguments of another data use, but + // keeping things simple for now + EObject e = i.next(); + + if (e instanceof Block) { + // Don't go into nested blocks + i.prune(); + continue; + } + if (e instanceof TimeLabelUse) { + // Time labels are declared in test description scope + continue; + + } + if (e instanceof TimeConstraint) { + // Time constraints have their own block + continue; + + } else if (e instanceof SpecialValueUse) { + // Special values cannot be declared in Java + continue; + + } + + declareDataUse(e, dataUseVariables, prefix); + } + } + + private void declareDataUse(EObject e, final Map dataUseVariables, String prefix) { + + if (e instanceof VariableUse) { + dataUseVariables.put((DataUse) e, getElementName(((VariableUse) e).getVariable())); + + } else if (e instanceof DataUse) { + DataUse d = (DataUse) e; + String varName = getElementName(d); + if (varName == null) + varName = ""; + else + varName += "_"; + varName += prefix + "datause_" + (dataUseVariables.size() + 1); + DataType type = d.resolveDataType(); + boolean isTime = false; + if (type == null && d instanceof PredefinedFunctionCall) { + // TODO move this to meta-model? + for (DataUse arg : ((PredefinedFunctionCall) d).getActualParameters()) { + if (arg instanceof TimeLabelUse) { + isTime = true; + break; + } + type = arg.resolveDataType(); + if (type != null) + break; + } + + } + if (type == null && !isTime) { + // XXX meta-model problem + if (d instanceof LiteralValueUse) { + LiteralValueUse ld = (LiteralValueUse) d; + if (ld.getBoolValue() != null) + line("boolean" + " " + varName + ";"); + else if (ld.getIntValue() != null) + line("int" + " " + varName + ";"); + else + line("String" + " " + varName + ";"); + + } else if (d instanceof PredefinedFunctionCall) { + line("// TODO Meta-model problem: DataUse.resolveDataType() return null"); + line(getPredefinedFunctionType(((PredefinedFunctionCall) d).getFunction()) + " " + varName + ";"); + + } else { + line("// TODO Meta-model problem: DataUse.resolveDataType() return null"); + line("String" + " " + varName + ";"); + } + + } else if (type instanceof Time || isTime) + line("long " + varName + ";"); + else + line(getElementName(type) + " " + varName + ";"); + dataUseVariables.put(d, varName); + } + + } + + private Time resolveTimeType(DataUse d) { + DataType type = d.resolveDataType(); + if (type instanceof Time) { + return (Time) type; + } + List args = getDataUseArgumentValues(d); + for (DataUse ad : args) { + type = resolveTimeType(ad); + if (type != null) + return (Time) type; + } + return null; + } + + /** + * Recursively assigns values to this data use and its arguments, depth-first. + */ + private void initializeDataUse(DataUse d, Map dataUseVariables) { + + if (d instanceof TimeLabelUse) + return; + if (d instanceof SpecialValueUse) + return; + + for (MemberReference r : d.getReduction()) { + DataUse idx = r.getCollectionIndex(); + if (idx != null) + initializeDataUse(idx, dataUseVariables); + } + for (DataUse arg : getDataUseArgumentValues(d)) { + initializeDataUse(arg, dataUseVariables); + } + + writeComment(d); + + if (!dataUseVariables.containsKey(d)) + declareDataUse(d, dataUseVariables, ""); + String ref = dataUseVariables.get(d); + append(ref); + append(" = "); + + DataInstance dataInstance = null; + DataType dataType = null; + FormalParameter formalParameter = null; + Function function = null; + PredefinedFunction predefinedFunction = null; + EList memberAssignments = null; + + if (d instanceof DataElementUse) { + NamedElement element = ((DataElementUse) d).getDataElement(); + if (element instanceof DataInstance) { + dataInstance = (DataInstance) element; + DataElementMapping m = getMapping(dataInstance); + if (m == null) { + // Treat as inline + dataType = d.resolveDataType(); + if (dataInstance instanceof StructuredDataInstance) + memberAssignments = ((StructuredDataInstance) dataInstance).getMemberAssignment(); + dataInstance = null; + } + + } else if (element instanceof DataType) + dataType = (DataType) element; + + else if (element instanceof FormalParameter) + formalParameter = (FormalParameter) element; + + else if (element instanceof Function) + function = (Function) element; + + else if (element instanceof PredefinedFunction) + predefinedFunction = (PredefinedFunction) element; + + else + throw new RuntimeException("Unsupported element in DataElementUse " + d.getName()); + + } else if (d instanceof DataInstanceUse) { + dataInstance = ((DataInstanceUse) d).getDataInstance(); + if (dataInstance == null) + dataType = d.resolveDataType(); + + } else if (d instanceof FunctionCall) { + function = ((FunctionCall) d).getFunction(); + + } else if (d instanceof PredefinedFunctionCall) { + predefinedFunction = ((PredefinedFunctionCall) d).getFunction(); + } + + if (dataInstance != null) { + DataElementMapping m = getMapping(dataInstance); + if (m == null) { + DataType t = dataInstance.getDataType(); + if (t.getQualifiedName().equals("TDL::Verdict")) { + append("Verdict." + dataInstance.getName()); + + } else + throw new RuntimeException("Mapping missing for: " + dataInstance.getQualifiedName()); + + } else { + // TODO instance function + String classQName = m.getDataResourceMapping().getResourceURI(); + append(classQName + "." + m.getElementURI()); + if (hasAnnotation(m, MAPPING_ANNOTATION_METHOD) || hasAnnotation(m, MAPPING_ANNOTATION_STATIC_METHOD)) + append("()"); + } + + } else if (dataType != null) { + DataElementMapping m = getMapping(dataType); + if (m != null) { + if (hasAnnotation(m, MAPPING_ANNOTATION_CLASS)) { + append("new "); + String classQName = m.getDataResourceMapping().getResourceURI(); + append(classQName + "." + m.getElementURI()); + append("()"); + } + } + + } else if (d instanceof SpecialValueUse) { + // XXX + + } else if (d instanceof LiteralValueUse) { + String str = ((LiteralValueUse) d).getValue(); + BigInteger i = ((LiteralValueUse) d).getIntValue(); + Boolean b = ((LiteralValueUse) d).getBoolValue(); + if (str != null) + append("\"" + escape(str) + "\""); + else if (i != null) + append(Integer.toString(i.intValue())); + else if (b != null) + append(Boolean.toString(b)); + + } else if (function != null || predefinedFunction != null) { + + if (function != null) { + // TODO instance function + DataElementMapping m = getMappingChecked(function); + String classQName = m.getDataResourceMapping().getResourceURI(); + String functionName = m.getElementURI(); + + append(classQName + "." + functionName); + + } else if (predefinedFunction != null) { + append("this." + FUNCTIONS_FIELD + "." + getPredefinedFunction(predefinedFunction)); + + } + + append("("); + boolean first = true; + for (DataUse arg : getDataUseArgumentValues(d)) { + if (!first) + append(", "); + first = false; + if (predefinedFunction != null) { + String fn = predefinedFunction.getName(); + if (fn.equals("==") || fn.equals("!=")) + convertToData(arg, dataUseVariables); + else + write(arg, dataUseVariables); + } else + write(arg, dataUseVariables); + } + append(")"); + + } else if (formalParameter != null) { + append(getElementName(formalParameter)); + + } else if (d instanceof VariableUse) { + append(HELPER_FIELD + ".clone(" + getElementName(((VariableUse) d).getVariable()) + ")"); + + } + line(";"); + + if (!getDataUseArguments(d).isEmpty()) { + for (ParameterBinding arg : getDataUseArguments(d)) { + // TODO members of collection type + append(ref); + append("."); + writeMemberAssignment(arg.getParameter(), arg.getDataUse(), dataUseVariables); + line(";"); + } + } + + if (memberAssignments != null) { + for (MemberAssignment ma : memberAssignments) { + // TODO members of collection type + append(ref); + append("."); + writeMemberAssignment(ma.getMember(), ma.getMemberSpec(), dataUseVariables); + line(";"); + } + } + } + + private void writeMemberAssignment(Parameter p, DataUse v, Map dataUseVariables) { + ParameterMapping mapping = getParameterMapping(p); + if (hasAnnotation(mapping, MAPPING_ANNOTATION_SETTER)) { + append(mapping.getParameterURI()); + append("("); + write(v, dataUseVariables); + append(")"); + + } else { + append(mapping.getParameterURI()); + append(" = "); + write(v, dataUseVariables); + } + } + + private String escape(String s) { + StringBuilder buf = new StringBuilder(); + char[] chars = s.toCharArray(); + for (int i = 0; i < chars.length; i++) { + if (chars[i] == '\\' || chars[i] == '"') + buf.append('\\'); + buf.append(chars[i]); + } + return buf.toString(); + } + + private void write(DataUse d, Map dataUseVariables) { + + // All data uses are variables + if (d instanceof TimeLabelUse) { + append(getTimeLabelName(((TimeLabelUse) d).getTimeLabel())); + append("." + ((TimeLabelUse) d).getKind().getName().toLowerCase() + "()"); + + } else { + + DataType type = d.resolveDataType(); + if (type instanceof Time) { + // Time unit conversion to default (ms) + append("TimeUnit." + getElementName(type) + ".toSeconds(" + dataUseVariables.get(d) + ")"); + + } else { + append(dataUseVariables.get(d)); + } + } + + boolean first = true; + for (MemberReference ref : d.getReduction()) { + DataUse idx = ref.getCollectionIndex(); + if (first && idx != null) { + writeCollectionIdnex(d.resolveDataType(), idx, dataUseVariables); + + } else { + Member prop = ref.getMember(); + ParameterMapping pm = getParameterMapping(prop); + + String mappedName = pm.getParameterURI(); + if (mappedName == null) + mappedName = getElementName(prop); + append("." + mappedName); + if (hasAnnotation(pm, MAPPING_ANNOTATION_GETTER)) + append("()"); + + if (idx != null) + writeCollectionIdnex(prop.getDataType(), idx, dataUseVariables); + } + + first = false; + } + } + + private void writeCollectionIdnex(DataType t, DataUse idx, Map dataUseVariables) { + boolean isArray = true; + DataElementMapping m = getMapping(t); + if (m != null) { + String mappedType = m.getElementURI(); + if (!mappedType.contains("[]")) + isArray = false; + } else { + // Fall back to type array + } + + Stack dataUseVariableRef = new Stack(); + dataUseVariableRef.push(new Reference(dataUseVariableRef, dataUseVariables.get(idx))); + if (isArray) { + append("["); + write(idx, dataUseVariables); + append("]"); + } else { + append("read"); + append("("); + write(idx, dataUseVariables); + line(");"); + } + } + + private void convertToData(DataUse d, Map dataUseVariables) { + append("new PojoData("); + write(d, dataUseVariables); + append(")"); + } + + private void convertToArgument(String parameterName, DataUse d, Map dataUseVariables) { + append("new PojoArgument("); + write(d, dataUseVariables); + append(", \"" + parameterName + "\""); + append(")"); + } + + private String getPredefinedFunction(PredefinedFunction f) { + PredefinedFunctions pf; + switch (f.getName()) { + case "==": + return "equals"; + case "!=": + return "notEquals"; + case "<": + return "lt"; + case ">": + return "gt"; + case "<=": + return "lteq"; + case ">=": + return "gteq"; + case "+": + return "plus"; + case "-": + return "minus"; + case "*": + return "multiply"; + case "/": + return "divide"; + default: + return f.getName(); + } + } + + private String getPredefinedFunctionType(PredefinedFunction f) { + switch (f.getName()) { + case "==": + case "!=": + case "<": + case ">": + case "<=": + case ">=": + return "boolean"; + case "+": + case "-": + case "*": + case "/": + return "integer"; + default: + throw new RuntimeException("Unknown predefined function in type resolution."); + } + } + + private void writeComment(Element e) { + // TODO multiline comment + e.getComment().forEach(c -> { + append("/* "); + line(c.getBody()); + line("*/ "); + line(REPORTER_FIELD + ".comment(\"" + c.getBody() + "\");"); + }); + } + + private void writeObjective(Behaviour b) { + // TODO multiple URIs + b.getTestObjective().forEach(to -> { + append(REPORTER_FIELD + ".testObjectiveReached("); + append("\"" + to.getObjectiveURI() + "\", "); + append("\"" + to.getDescription() + "\""); + line(");"); + }); + } + + private void writeNotification(Behaviour b, boolean started) { + if (logEvents) { + append(REPORTER_FIELD + "."); + append(started ? "behaviourStarted" : "behaviourCompleted"); + append("("); + if (started) + append("\"" + b.eClass().getName() + "\", "); + append("\"" + getQName(b) + "\""); + line(");"); + // TODO properties + } + } + + /** + * Provides a descriptive name of the behaviour for informative purposes. + * + * @return A descriptive name of the behaviour. + */ + private String getQName(Behaviour b) { + // XXX + String name = b.getName(); + if (name == null) + name = getElementName(b); + return name; + } + + private String getMessage(Behaviour b) { + // XXX + return b.eClass().getName() + ": " + b.getName(); + } + + private boolean isParticipating(Behaviour b) { + return b.getParticipatingComponents().stream().anyMatch(c -> isCurrentComponentInstance(c)); + } + + private boolean isTesterInput(Behaviour b) { + if (b instanceof Interaction) { + return ((Interaction) b).getTarget().stream() + .anyMatch(t -> isCurrentComponentInstance(t.getTargetGate().getComponent())); + } + return b.isTesterInputEvent(); + } + + private boolean isCurrentComponentInstance(ComponentInstance c) { + if (this.currentTester == null) + return false; + return this.currentTester.equals(c); + } + + private List getDataUseArgumentValues(DataUse d) { + if (d instanceof PredefinedFunctionCall) { + return ((PredefinedFunctionCall) d).getActualParameters(); + } + + List arguments = new ArrayList<>(); + List args = getDataUseArguments(d); + args.stream().forEach(pb -> arguments.add(pb.getDataUse())); + + List memberAssignments = getDataUseMembers(d); + memberAssignments.stream().forEach(ma -> arguments.add(ma.getMemberSpec())); + + return arguments; + } + + private List getDataUseArguments(DataUse d) { + List args = d.getArgument(); + return args; + } + + private List getDataUseMembers(DataUse d) { + + DataInstance dataInstance = null; + if (d instanceof DataInstanceUse) + dataInstance = ((DataInstanceUse) d).getDataInstance(); + else if (d instanceof DataElementUse) + if (((DataElementUse) d).getDataElement() instanceof DataInstance) + dataInstance = (DataInstance) ((DataElementUse) d).getDataElement(); + + return dataInstance instanceof StructuredDataInstance + ? ((StructuredDataInstance) dataInstance).getMemberAssignment() + : Collections.EMPTY_LIST; + } + +} + +class Reference { + private Stack stack = new Stack(); + + String ref; + + private String collectionClass; + private boolean useCollectionVariable = false; + private String collectionMemberVariable; + private DataType collectionMemberVariableType; + private boolean primitiveCollection = false; + int collectionIdex; + boolean isCollectionMember = false; + + public Reference(Stack reference, String ref) { + this.ref = ref; +// this.isCollectionMember = isCollectionMeber; + } + + private Reference getParent() { + int index = stack.indexOf(this) - 1; + if (index >= 0) + return stack.get(index); + return null; + } + + public String getCollectionClass() { + if (isCollectionMember) + if (getParent() != null) + return getParent().collectionClass; + return collectionClass; + } + + public boolean isUseCollectionVariable() { + if (isCollectionMember) + if (getParent() != null) + return getParent().useCollectionVariable; + return useCollectionVariable; + } + + public boolean isPrimitiveCollection() { + if (isCollectionMember) + if (getParent() != null) + return getParent().primitiveCollection; + return primitiveCollection; + } + + public String getCollectionMemberVariable() { + return collectionMemberVariable; + } + + public DataType getCollectionMemberVariableType() { + if (isCollectionMember) + if (getParent() != null) + return getParent().collectionMemberVariableType; + return collectionMemberVariableType; + } +} \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.execution.java/src/org/etsi/mts/tdl/execution/java/codegen/Renderer.java b/plugins/org.etsi.mts.tdl.execution.java/src/org/etsi/mts/tdl/execution/java/codegen/Renderer.java new file mode 100644 index 0000000000000000000000000000000000000000..731d80c86a922604d0951bc65cb4926f64b185fd --- /dev/null +++ b/plugins/org.etsi.mts.tdl.execution.java/src/org/etsi/mts/tdl/execution/java/codegen/Renderer.java @@ -0,0 +1,215 @@ +package org.etsi.mts.tdl.execution.java.codegen; + +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.nio.ByteBuffer; +import java.nio.CharBuffer; +import java.nio.channels.FileChannel; +import java.nio.charset.CharacterCodingException; +import java.nio.charset.Charset; +import java.nio.charset.CharsetEncoder; +import java.util.Hashtable; +import java.util.Map; +import java.util.Set; + +import org.etsi.mts.tdl.DataElementMapping; +import org.etsi.mts.tdl.Element; +import org.etsi.mts.tdl.MappableDataElement; +import org.etsi.mts.tdl.Package; + +public abstract class Renderer { + + private static final String LF = System.getProperty("line.separator"); + + private File generationDir; + private String rootPackageName; + + protected Map elementNames = new Hashtable(); + + private CharBuffer buf; + private String indent = ""; + + public Renderer(File generationDir, String packageName) { + this.generationDir = generationDir; + this.rootPackageName = packageName; + } + + protected String getRootPackageName() { + return rootPackageName; + } + + protected void setRootPackageName(String rootPackageName) { + this.rootPackageName = rootPackageName; + } + + final void writeClassFile(String packageName, String className, ContentRenderer r) throws IOException { + + File packageDir = this.generationDir; + for (String p : packageName.split("\\.")) + packageDir = new File(packageDir, p); + packageDir.mkdirs(); + + File classFile = new File(packageDir, className + ".java"); + + buf = CharBuffer.allocate(1 * 1024 * 1024); + + r.doRender(); + + buf.flip(); + + CharsetEncoder encoder = Charset.forName("UTF-8").newEncoder(); + ByteBuffer bytes; + try { + bytes = encoder.encode(buf); + encoder.flush(bytes); + bytes.rewind(); + } catch (CharacterCodingException e) { + throw new RuntimeException(e); + } + + classFile.createNewFile(); + // Stream gets closed by the channel + try (FileChannel out = new FileOutputStream(classFile).getChannel()) { + out.write(bytes); + } + + } + + protected void writeImports(Set imports) { + for (String i : imports) { + line("import " + i + ";"); + } + newLine(); + } + + protected String getPackageName(Package p) { + // JDK classes + if (p.getName().startsWith("java.")) + return p.getName(); + return getElementName(p); + } + + protected String getElementName(Element e) { + if (e instanceof MappableDataElement) { + DataElementMapping mapping = getMapping((MappableDataElement) e); + if (mapping != null) + return mapping.getElementURI(); + + } else { + String name = this.elementNames.get(e); + if (name != null) + return name; + } + + String name = e.getName(); + if (name == null) + name = e.eClass().getName(); + String identifier = getIdentifier(name); + + int i = 1; + name = identifier; + while (this.elementNames.containsValue(name)) + name = identifier + "_" + i++; + this.elementNames.put(e, name); + + return name; + } + + protected abstract DataElementMapping getMapping(MappableDataElement e); + + protected void append(String text) { + buf.append(text); + } + + protected void blockOpen() { + append(" {"); + indent += "\t"; + newLine(); + } + + protected void blockClose() { + indent = indent.substring(1); + // Rewind a tab + buf.position(buf.position() - 1); + line("}"); + } + + protected void blockCloseArrow() { + indent = indent.substring(1); + // Rewind a tab + buf.position(buf.position() - 1); + line("});"); + } + + protected void blockCloseMethod() { + indent = indent.substring(1); + // Rewind a tab + buf.position(buf.position() - 1); + line("};"); + } + + protected void blockOpenParen() { + append(" ("); + indent += "\t"; + newLine(); + } + + protected void blockCloseParen() { + indent = indent.substring(1); + // Rewind a tab + buf.position(buf.position() - 1); + line(")"); + } + + protected void callOpen() { + append("("); + indent += "\t\t"; + newLine(); + } + + protected void callClose() { + indent = indent.substring(2); + line(");"); + } + + protected void newLine() { + append(LF); + append(indent); + } + + protected void line(String text) { + append(text); + newLine(); + } + + protected void lineInc(String text) { + append("\t"); + append(text); + newLine(); + } + + protected void lineComment(String text) { + line("// " + text); + } + + private String getIdentifier(String name) { + if (name == null) + return null; + char[] chars = name.toCharArray(); + for (int i = 0; i < chars.length; i++) { + if (i == 0) { + if (!Character.isJavaIdentifierStart(chars[i])) + chars[i] = '_'; + } else if (!Character.isJavaIdentifierPart(chars[i])) + chars[i] = '_'; + } + return String.valueOf(chars); + } + + @FunctionalInterface + interface ContentRenderer { + void doRender(); + } + +} diff --git a/plugins/org.etsi.mts.tdl.execution.java/src/org/etsi/mts/tdl/execution/java/codegen/Settings.java b/plugins/org.etsi.mts.tdl.execution.java/src/org/etsi/mts/tdl/execution/java/codegen/Settings.java new file mode 100644 index 0000000000000000000000000000000000000000..35cd6d2256f18924c0873918949f78e55a260379 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.execution.java/src/org/etsi/mts/tdl/execution/java/codegen/Settings.java @@ -0,0 +1,25 @@ +package org.etsi.mts.tdl.execution.java.codegen; + +import java.io.File; + +public class Settings { + + private static final String PREFIX = "JavaRendering."; + public static final String OUTPUT_DIR = PREFIX + "OutputDir", PACKAGE = PREFIX + "Package", + INJECTOR = PREFIX + "Injector", DATE_FORMAT = PREFIX + "DateFormat"; + + public String outputPath; + public File outputFile; + public String outPackage; + public String injector; + public String customDateFormat; + + public Settings(String outputPath, File outputFile, String outPackage, String injector, String customDateFormat) { + this.outputPath = outputPath; + this.outputFile = outputFile; + this.outPackage = outPackage; + this.injector = injector; + this.customDateFormat = customDateFormat; + } + +} diff --git a/plugins/org.etsi.mts.tdl.execution.java/src/org/etsi/mts/tdl/execution/java/eclipse/commands/RenderHandler.java b/plugins/org.etsi.mts.tdl.execution.java/src/org/etsi/mts/tdl/execution/java/eclipse/commands/RenderHandler.java new file mode 100644 index 0000000000000000000000000000000000000000..d023aea5c44ab8b3b3b12affe67cc2e082b1c46e --- /dev/null +++ b/plugins/org.etsi.mts.tdl.execution.java/src/org/etsi/mts/tdl/execution/java/eclipse/commands/RenderHandler.java @@ -0,0 +1,98 @@ +package org.etsi.mts.tdl.execution.java.eclipse.commands; + +import java.io.IOException; + +import org.eclipse.core.commands.AbstractHandler; +import org.eclipse.core.commands.ExecutionEvent; +import org.eclipse.core.commands.ExecutionException; +import org.eclipse.core.commands.IHandler; +import org.eclipse.core.resources.IContainer; +import org.eclipse.core.resources.IFile; +import org.eclipse.core.resources.IFolder; +import org.eclipse.core.resources.IResource; +import org.eclipse.core.resources.ProjectScope; +import org.eclipse.core.resources.ResourcesPlugin; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.Path; +import org.eclipse.core.runtime.Status; +import org.eclipse.core.runtime.jobs.Job; +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.ui.handlers.HandlerUtil; +import org.etsi.mts.tdl.Package; +import org.etsi.mts.tdl.execution.java.codegen.JUnitTestGenerator; +import org.etsi.mts.tdl.execution.java.codegen.Settings; +import org.etsi.mts.tdl.execution.java.eclipse.ui.PropertyPage; +import org.osgi.service.prefs.Preferences; + +public class RenderHandler extends AbstractHandler implements IHandler { + + @Override + public Object execute(ExecutionEvent event) throws ExecutionException { + IFile tdl = null; + + ISelection selection = HandlerUtil.getCurrentSelection(event); + if (selection instanceof IStructuredSelection && !selection.isEmpty()) { + Object element = ((IStructuredSelection) selection).getFirstElement(); + if (element instanceof IFile) { + String ext = ((IFile) element).getFileExtension(); + if (ext.toLowerCase().contains("tdl")) { + tdl = (IFile) element; + } + } + } + if (tdl == null) + return null; + + ResourceSetImpl rs = new ResourceSetImpl(); + URI uri = URI.createPlatformResourceURI(tdl.getFullPath().toString(), true); + Resource resource = rs.getResource(uri, true); + Package model = (Package) resource.getContents().get(0); + + ProjectScope ps = new ProjectScope(tdl.getProject()); + Preferences preferences = ps.getNode(PropertyPage.PREFERENCE_SCOPE); + + IContainer root = ResourcesPlugin.getWorkspace().getRoot(); + final IFolder generationDir = root.getFolder(new Path(preferences.get(Settings.OUTPUT_DIR, ""))); + Settings settings = new Settings(preferences.get(Settings.OUTPUT_DIR, ""), + generationDir.getLocation().toFile(), + preferences.get(Settings.PACKAGE, ""), + preferences.get(Settings.INJECTOR, ""), + preferences.get(Settings.DATE_FORMAT, "")); + + JUnitTestGenerator generator = new JUnitTestGenerator(model, settings); + + final String taskName = "Render JUnit"; + final Job j = new Job(taskName) { + @Override + public IStatus run(final IProgressMonitor monitor) { + try { + generator.generate(); + } catch (IOException e) { + return new Status(IStatus.ERROR, getClass(), taskName + " failed", e); + } + + try { + generationDir.refreshLocal(IResource.DEPTH_INFINITE, monitor); + } catch (CoreException e) { + return e.getStatus(); + } + + return Status.OK_STATUS; + } + }; + + j.setUser(true); + j.setPriority(Job.INTERACTIVE); + + j.schedule(); + + return null; + } + +} diff --git a/plugins/org.etsi.mts.tdl.execution.java/src/org/etsi/mts/tdl/execution/java/eclipse/ui/PropertyPage.java b/plugins/org.etsi.mts.tdl.execution.java/src/org/etsi/mts/tdl/execution/java/eclipse/ui/PropertyPage.java new file mode 100644 index 0000000000000000000000000000000000000000..351168d61ff03b779af0dedafc1d0cde7a8304d7 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.execution.java/src/org/etsi/mts/tdl/execution/java/eclipse/ui/PropertyPage.java @@ -0,0 +1,179 @@ +package org.etsi.mts.tdl.execution.java.eclipse.ui; + +import java.util.Arrays; +import java.util.Hashtable; +import java.util.List; +import java.util.Map; + +import org.eclipse.core.resources.IContainer; +import org.eclipse.core.resources.IFolder; +import org.eclipse.core.resources.IProject; +import org.eclipse.core.resources.ProjectScope; +import org.eclipse.core.resources.ResourcesPlugin; +import org.eclipse.core.runtime.IAdaptable; +import org.eclipse.core.runtime.IPath; +import org.eclipse.core.runtime.Path; +import org.eclipse.jface.preference.FieldEditor; +import org.eclipse.jface.preference.FieldEditorPreferencePage; +import org.eclipse.jface.preference.IPreferenceStore; +import org.eclipse.jface.preference.StringButtonFieldEditor; +import org.eclipse.jface.preference.StringFieldEditor; +import org.eclipse.jface.util.PropertyChangeEvent; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.ui.IWorkbenchPropertyPage; +import org.eclipse.ui.dialogs.ContainerSelectionDialog; +import org.eclipse.ui.preferences.ScopedPreferenceStore; +import org.etsi.mts.tdl.execution.java.codegen.Settings; + +public class PropertyPage extends FieldEditorPreferencePage implements IWorkbenchPropertyPage { + + public static final String PREFERENCE_SCOPE = "org.etsi.mts.tdl.execution"; + + private static final List REQUIRED_SETTINGS = Arrays.asList(new String[] { Settings.OUTPUT_DIR, Settings.INJECTOR }); + + protected IAdaptable element; + + protected Map fields = new Hashtable(); + + public PropertyPage() { + super(GRID); + } + + @Override + public IAdaptable getElement() { + return element; + } + + @Override + public void setElement(IAdaptable element) { + this.element = element; + } + + @Override + protected IPreferenceStore doGetPreferenceStore() { + ProjectScope ps = new ProjectScope((IProject) this.element); + return new ScopedPreferenceStore(ps, PREFERENCE_SCOPE); + } + + @Override + protected void initialize() { + for (FieldEditor e : fields.keySet()) { + String value = getPreferenceStore().getString(e.getPreferenceName()); + fields.put(e, value); + initialize(e.getPreferenceName(), value, e); + } + super.initialize(); + } + + protected void initialize(String name, String value, FieldEditor e) { + } + + @Override + protected void addField(FieldEditor editor) { + super.addField(editor); + fields.put(editor, ""); + } + + @Override + public void propertyChange(PropertyChangeEvent event) { + super.propertyChange(event); + if (event.getProperty().equals(FieldEditor.VALUE)) { + FieldEditor e = (FieldEditor) event.getSource(); + + String name = e.getPreferenceName(); + String value = (String) event.getNewValue(); + + fields.put(e, value); + + initialize(name, value, e); + + checkState(); + } + } + + @Override + protected void checkState() { + setErrorMessage(null); + super.checkState(); + } + + @Override + protected void createFieldEditors() { + + Composite parent = getFieldEditorParent(); + FieldEditor outDir = new ContainerFieldEditor(Settings.OUTPUT_DIR, "Output folder", parent) { + @Override + public boolean isValid() { + return PropertyPage.this.isValid(this) && doCheckState(); + } + }; + addField(outDir); + + parent = getFieldEditorParent(); + StringFieldEditor outPackage = new StringFieldEditor(Settings.PACKAGE, "Package", parent); + addField(outPackage); + + parent = getFieldEditorParent(); + StringFieldEditor injector = new StringFieldEditor(Settings.INJECTOR, "Guice module", parent); + addField(injector); + + parent = getFieldEditorParent(); + StringFieldEditor dateFormat = new StringFieldEditor(Settings.DATE_FORMAT, "Date format", parent); + addField(dateFormat); + + } + + private boolean isValid(FieldEditor e) { + String name = e.getPreferenceName(); + String value = fields.get(e); + + if (REQUIRED_SETTINGS.contains(name)) { + if (value.isEmpty()) { + setErrorMessage(String.format("%s must be selected!", e.getLabelText())); + return false; + } + } + + return true; + } + +} + +class ContainerFieldEditor extends StringButtonFieldEditor { + + public ContainerFieldEditor(String name, String label, Composite parent) { + super(name, label, parent); + } + + @Override + protected String changePressed() { + + IContainer root = ResourcesPlugin.getWorkspace().getRoot(); + ContainerSelectionDialog d = new ContainerSelectionDialog(getShell(), root, true, "Select output folder"); + int result = d.open(); + if (result == 0) { + Object[] dir = d.getResult(); + if (dir.length > 0) + return dir[0].toString(); + } + return null; + } + + @Override + protected boolean doCheckState() { + String pathText = getTextControl().getText(); + IPath path = new Path(pathText); + IContainer root = ResourcesPlugin.getWorkspace().getRoot(); + IFolder f; + try { + f = root.getFolder(path); + } catch (IllegalArgumentException e) { + setErrorMessage(e.getMessage()); + return false; + } + if (!f.exists()) + setErrorMessage(pathText + " does not exist!"); + return f != null && f.exists(); + } + +} diff --git a/plugins/org.etsi.mts.tdl.execution.java/tdl-execution-java-maven-build.launch b/plugins/org.etsi.mts.tdl.execution.java/tdl-execution-java-maven-build.launch new file mode 100644 index 0000000000000000000000000000000000000000..142624409df152900a963f0d5fddb861cf4d8525 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.execution.java/tdl-execution-java-maven-build.launch @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/plugins/org.etsi.mts.tdl.graphical.labels.data.ui/.classpath b/plugins/org.etsi.mts.tdl.graphical.labels.data.ui/.classpath index 2534a1484b3a8b09fbcd4bc81d5ef3007be4c17e..64d7e24a90c5a8561da9c7161df2407173e12250 100644 --- a/plugins/org.etsi.mts.tdl.graphical.labels.data.ui/.classpath +++ b/plugins/org.etsi.mts.tdl.graphical.labels.data.ui/.classpath @@ -1,8 +1,8 @@ - - - + - + + + diff --git a/plugins/org.etsi.mts.tdl.graphical.labels.data.ui/.project b/plugins/org.etsi.mts.tdl.graphical.labels.data.ui/.project index 36cc5562905a6587cff45767bee55e40183c1f27..9245f7ce89747008b09e256b20daaadff972eda1 100644 --- a/plugins/org.etsi.mts.tdl.graphical.labels.data.ui/.project +++ b/plugins/org.etsi.mts.tdl.graphical.labels.data.ui/.project @@ -25,8 +25,14 @@ + + org.eclipse.m2e.core.maven2Builder + + + + org.eclipse.m2e.core.maven2Nature org.eclipse.jdt.core.javanature org.eclipse.pde.PluginNature org.eclipse.xtext.ui.shared.xtextNature diff --git a/plugins/org.etsi.mts.tdl.graphical.labels.data.ui/.settings/org.eclipse.jdt.core.prefs b/plugins/org.etsi.mts.tdl.graphical.labels.data.ui/.settings/org.eclipse.jdt.core.prefs index 0c68a61dca867ceb49e79d2402935261ec3e3809..7adc0fb9a0d32bd6b4e3ce6f305ab7165208865c 100644 --- a/plugins/org.etsi.mts.tdl.graphical.labels.data.ui/.settings/org.eclipse.jdt.core.prefs +++ b/plugins/org.etsi.mts.tdl.graphical.labels.data.ui/.settings/org.eclipse.jdt.core.prefs @@ -1,7 +1,10 @@ eclipse.preferences.version=1 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 -org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=11 +org.eclipse.jdt.core.compiler.compliance=11 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled org.eclipse.jdt.core.compiler.problem.enumIdentifier=error -org.eclipse.jdt.core.compiler.source=1.8 +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning +org.eclipse.jdt.core.compiler.release=enabled +org.eclipse.jdt.core.compiler.source=11 diff --git a/plugins/org.etsi.mts.tdl.graphical.labels.data.ui/.settings/org.eclipse.m2e.core.prefs b/plugins/org.etsi.mts.tdl.graphical.labels.data.ui/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000000000000000000000000000000000000..f897a7f1cb2389f85fe6381425d29f0a9866fb65 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.graphical.labels.data.ui/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/plugins/org.etsi.mts.tdl.graphical.labels.data.ui/.settings/org.eclipse.xtend.core.Xtend.prefs b/plugins/org.etsi.mts.tdl.graphical.labels.data.ui/.settings/org.eclipse.xtend.core.Xtend.prefs new file mode 100644 index 0000000000000000000000000000000000000000..9682a4c0a1113598fb0c6a4f406952addd84a30f --- /dev/null +++ b/plugins/org.etsi.mts.tdl.graphical.labels.data.ui/.settings/org.eclipse.xtend.core.Xtend.prefs @@ -0,0 +1,7 @@ +//outlet.DEFAULT_OUTPUT.sourceFolder.src/main/java.directory=xtend-gen +//outlet.DEFAULT_OUTPUT.sourceFolder.src/test/java.directory=src/test/generated-sources/xtend +BuilderConfiguration.is_project_specific=true +eclipse.preferences.version=1 +outlet.DEFAULT_OUTPUT.hideLocalSyntheticVariables=true +outlet.DEFAULT_OUTPUT.installDslAsPrimarySource=false +outlet.DEFAULT_OUTPUT.userOutputPerSourceFolder=true diff --git a/plugins/org.etsi.mts.tdl.graphical.labels.data.ui/META-INF/MANIFEST.MF b/plugins/org.etsi.mts.tdl.graphical.labels.data.ui/META-INF/MANIFEST.MF index 4371498f80412b99096a7575faedba1b76944a9e..a0def5e630a9b9cf3bbf605e5249dfd69357b09b 100644 --- a/plugins/org.etsi.mts.tdl.graphical.labels.data.ui/META-INF/MANIFEST.MF +++ b/plugins/org.etsi.mts.tdl.graphical.labels.data.ui/META-INF/MANIFEST.MF @@ -18,10 +18,9 @@ Require-Bundle: org.etsi.mts.tdl.graphical.labels.data;visibility:=reexport, org.eclipse.compare, org.antlr.runtime;bundle-version="[3.2.0,3.2.1)" Import-Package: org.apache.log4j -Bundle-RequiredExecutionEnvironment: JavaSE-1.8 +Bundle-RequiredExecutionEnvironment: JavaSE-11 Export-Package: org.etsi.mts.tdl.graphical.labels.ui.quickfix, org.etsi.mts.tdl.graphical.labels.ui.contentassist, org.etsi.mts.tdl.graphical.labels.data.ui.internal, org.etsi.mts.tdl.graphical.labels.ide.contentassist.antlr.internal, org.etsi.mts.tdl.graphical.labels.ide.contentassist.antlr -Bundle-Activator: org.etsi.mts.tdl.graphical.labels.ui.internal.DataActivator diff --git a/plugins/org.etsi.mts.tdl.graphical.labels.data.ui/pom.xml b/plugins/org.etsi.mts.tdl.graphical.labels.data.ui/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..a8fd58a3388b5529fa3472da5a4848a5cd30f77d --- /dev/null +++ b/plugins/org.etsi.mts.tdl.graphical.labels.data.ui/pom.xml @@ -0,0 +1,37 @@ + + + 4.0.0 + + + org.etsi.mts.tdl + org.etsi.mts.tdl.parent + 1.0.0-SNAPSHOT + ../../org.etsi.mts.tdl.parent + + + + org.etsi.mts.tdl.graphical.labels.data.ui + eclipse-plugin + + TDL GR Data Labels Textual Syntax UI + + + + + org.apache.maven.plugins + maven-clean-plugin + + + gen-clean + clean + + + + + org.eclipse.xtend + xtend-maven-plugin + + + + \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.graphical.labels.data/.classpath b/plugins/org.etsi.mts.tdl.graphical.labels.data/.classpath index 2534a1484b3a8b09fbcd4bc81d5ef3007be4c17e..64d7e24a90c5a8561da9c7161df2407173e12250 100644 --- a/plugins/org.etsi.mts.tdl.graphical.labels.data/.classpath +++ b/plugins/org.etsi.mts.tdl.graphical.labels.data/.classpath @@ -1,8 +1,8 @@ - - - + - + + + diff --git a/plugins/org.etsi.mts.tdl.graphical.labels.data/.project b/plugins/org.etsi.mts.tdl.graphical.labels.data/.project index 2aae79e6a27f3f594c9dd79ad40884f21c1b270a..c3a5640ee3fc256f172640e6ab13bd4e00040b4f 100644 --- a/plugins/org.etsi.mts.tdl.graphical.labels.data/.project +++ b/plugins/org.etsi.mts.tdl.graphical.labels.data/.project @@ -25,8 +25,14 @@ + + org.eclipse.m2e.core.maven2Builder + + + + org.eclipse.m2e.core.maven2Nature org.eclipse.jdt.core.javanature org.eclipse.pde.PluginNature org.eclipse.xtext.ui.shared.xtextNature diff --git a/plugins/org.etsi.mts.tdl.graphical.labels.data/.settings/org.eclipse.jdt.core.prefs b/plugins/org.etsi.mts.tdl.graphical.labels.data/.settings/org.eclipse.jdt.core.prefs index 0c68a61dca867ceb49e79d2402935261ec3e3809..7adc0fb9a0d32bd6b4e3ce6f305ab7165208865c 100644 --- a/plugins/org.etsi.mts.tdl.graphical.labels.data/.settings/org.eclipse.jdt.core.prefs +++ b/plugins/org.etsi.mts.tdl.graphical.labels.data/.settings/org.eclipse.jdt.core.prefs @@ -1,7 +1,10 @@ eclipse.preferences.version=1 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 -org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=11 +org.eclipse.jdt.core.compiler.compliance=11 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled org.eclipse.jdt.core.compiler.problem.enumIdentifier=error -org.eclipse.jdt.core.compiler.source=1.8 +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning +org.eclipse.jdt.core.compiler.release=enabled +org.eclipse.jdt.core.compiler.source=11 diff --git a/plugins/org.etsi.mts.tdl.graphical.labels.data/.settings/org.eclipse.m2e.core.prefs b/plugins/org.etsi.mts.tdl.graphical.labels.data/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000000000000000000000000000000000000..f897a7f1cb2389f85fe6381425d29f0a9866fb65 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.graphical.labels.data/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/plugins/org.etsi.mts.tdl.graphical.labels.data/.settings/org.eclipse.xtend.core.Xtend.prefs b/plugins/org.etsi.mts.tdl.graphical.labels.data/.settings/org.eclipse.xtend.core.Xtend.prefs new file mode 100644 index 0000000000000000000000000000000000000000..9682a4c0a1113598fb0c6a4f406952addd84a30f --- /dev/null +++ b/plugins/org.etsi.mts.tdl.graphical.labels.data/.settings/org.eclipse.xtend.core.Xtend.prefs @@ -0,0 +1,7 @@ +//outlet.DEFAULT_OUTPUT.sourceFolder.src/main/java.directory=xtend-gen +//outlet.DEFAULT_OUTPUT.sourceFolder.src/test/java.directory=src/test/generated-sources/xtend +BuilderConfiguration.is_project_specific=true +eclipse.preferences.version=1 +outlet.DEFAULT_OUTPUT.hideLocalSyntheticVariables=true +outlet.DEFAULT_OUTPUT.installDslAsPrimarySource=false +outlet.DEFAULT_OUTPUT.userOutputPerSourceFolder=true diff --git a/plugins/org.etsi.mts.tdl.graphical.labels.data/META-INF/MANIFEST.MF b/plugins/org.etsi.mts.tdl.graphical.labels.data/META-INF/MANIFEST.MF index e313f54219b5ec5371c2d6ef52af199218a313bd..1f9797b85a2675caf0a1dbbde3b0f91bd71b2d2d 100644 --- a/plugins/org.etsi.mts.tdl.graphical.labels.data/META-INF/MANIFEST.MF +++ b/plugins/org.etsi.mts.tdl.graphical.labels.data/META-INF/MANIFEST.MF @@ -11,10 +11,10 @@ Require-Bundle: org.eclipse.xtext;visibility:=reexport, org.eclipse.xtext.xbase.lib;bundle-version="2.14.0", org.antlr.runtime;bundle-version="[3.2.0,3.2.1)", org.eclipse.xtext.common.types, - org.objectweb.asm;bundle-version="[5.0.1,6.0.0)";resolution:=optional, + org.objectweb.asm;resolution:=optional, org.etsi.mts.tdl.model Import-Package: org.apache.log4j -Bundle-RequiredExecutionEnvironment: JavaSE-1.8 +Bundle-RequiredExecutionEnvironment: JavaSE-11 Export-Package: org.etsi.mts.tdl.graphical.labels, org.etsi.mts.tdl.graphical.labels.services, org.etsi.mts.tdl.graphical.labels.serializer, diff --git a/plugins/org.etsi.mts.tdl.graphical.labels.data/build.properties b/plugins/org.etsi.mts.tdl.graphical.labels.data/build.properties index dd7a7a3840cf0df3e798d16e94839690d26cc85d..c3f7d802dd6f7f7bb62109ca0d3e0c5232b0078c 100644 --- a/plugins/org.etsi.mts.tdl.graphical.labels.data/build.properties +++ b/plugins/org.etsi.mts.tdl.graphical.labels.data/build.properties @@ -1,8 +1,7 @@ source.. = src/,\ src-gen/ bin.includes = META-INF/,\ - .,\ - plugin.xml + . additional.bundles = org.eclipse.xtext.xbase,\ org.eclipse.xtext.generator,\ org.apache.commons.logging,\ diff --git a/plugins/org.etsi.mts.tdl.graphical.labels.data/pom.xml b/plugins/org.etsi.mts.tdl.graphical.labels.data/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..8fe9e8ae3a0ac2929b1639c7e6c4e400bf69bad2 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.graphical.labels.data/pom.xml @@ -0,0 +1,154 @@ + + + 4.0.0 + + + org.etsi.mts.tdl + org.etsi.mts.tdl.parent + 1.0.0-SNAPSHOT + ../../org.etsi.mts.tdl.parent + + + + org.etsi.mts.tdl.graphical.labels.data + eclipse-plugin + + TDL GR Data Labels Textual Syntax + + + + + org.codehaus.mojo + exec-maven-plugin + 3.0.0 + + + mwe2Launcher + generate-sources + + java + + + + + org.eclipse.emf.mwe2.launch.runtime.Mwe2Launcher + + /${project.basedir}/src/org/etsi/mts/tdl/graphical/labels/GenerateData.mwe2 + -p + rootPath=/${project.basedir}/.. + + compile + true + false + + + + org.eclipse.xtext + xtext-antlr-generator + 2.1.1 + + + + + org.eclipse.xtend + xtend-maven-plugin + + + + org.apache.maven.plugins + maven-clean-plugin + + + + ${basedir}/../org.etsi.mts.tdl.graphical.labels.data/src-gen/ + + **/* + + + .gitignore + + + + ${basedir}/../org.etsi.mts.tdl.graphical.labels.data/xtend-gen/ + + **/* + + + .gitignore + + + + + ${basedir}/../org.etsi.mts.tdl.graphical.labels.data.ui/src-gen/ + + **/* + + + .gitignore + + + + ${basedir}/../org.etsi.mts.tdl.graphical.labels.data.ui/xtend-gen/ + + **/* + + + .gitignore + + + + + + + + + + + + org.eclipse.m2e + lifecycle-mapping + 1.0.0 + + + + + + + org.codehaus.mojo + + + exec-maven-plugin + + + [1.2.1,) + + + java + + + + + + + + + + + + + + + diff --git a/plugins/org.etsi.mts.tdl.graphical.labels.data/src/org/etsi/mts/tdl/graphical/labels/GenerateData.mwe2 b/plugins/org.etsi.mts.tdl.graphical.labels.data/src/org/etsi/mts/tdl/graphical/labels/GenerateData.mwe2 index 632b7f32e510845d034d0e5d51c5dd2b0e1bcaba..5fdf879d9ffbdcf1fa87d584f7d3cc9a29f81cfc 100644 --- a/plugins/org.etsi.mts.tdl.graphical.labels.data/src/org/etsi/mts/tdl/graphical/labels/GenerateData.mwe2 +++ b/plugins/org.etsi.mts.tdl.graphical.labels.data/src/org/etsi/mts/tdl/graphical/labels/GenerateData.mwe2 @@ -1,34 +1,33 @@ module org.etsi.mts.tdl.graphical.labels.Data -import org.eclipse.emf.mwe.utils.* -import org.eclipse.xtext.generator.* -import org.eclipse.xtext.ui.generator.* +import org.eclipse.xtext.xtext.generator.* +import org.eclipse.xtext.xtext.generator.model.project.* var rootPath = ".." -var projectName = "org.etsi.mts.tdl.graphical.labels.data" -var runtimeProject = "../${projectName}" +//var projectName = "org.etsi.mts.tdl.graphical.labels.data" +//var runtimeProject = "../${projectName}" Workflow { - bean = StandaloneSetup { - scanClassPath = true - platformUri = "${runtimeProject}/.." - - registerGeneratedEPackage = "org.etsi.mts.tdl.tdlPackage" - registerGenModelFile = "platform:/resource/org.etsi.mts.tdl.model/model/tdl.genmodel" - } - - component = DirectoryCleaner { - directory = "${runtimeProject}/src-gen" - } - - component = DirectoryCleaner { - directory = "${runtimeProject}.ui/src-gen" - } +// bean = StandaloneSetup { +// scanClassPath = true +// platformUri = "${runtimeProject}/.." +// +// registerGeneratedEPackage = "org.etsi.mts.tdl.tdlPackage" +// registerGenModelFile = "platform:/resource/org.etsi.mts.tdl.model/model/tdl.genmodel" +// } +// +// component = DirectoryCleaner { +// directory = "${runtimeProject}/src-gen" +// } +// +// component = DirectoryCleaner { +// directory = "${runtimeProject}.ui/src-gen" +// } - component = org.eclipse.xtext.xtext.generator.XtextGenerator { + component = XtextGenerator { configuration = { - project = org.eclipse.xtext.xtext.generator.model.project.StandardProjectConfig { + project = StandardProjectConfig { baseName = "org.etsi.mts.tdl.graphical.labels.data" rootPath = rootPath eclipsePlugin = { @@ -45,9 +44,10 @@ Workflow { preferXtendStubs = false } } - language = org.eclipse.xtext.xtext.generator.StandardLanguage { - name = "org.etsi.mts.tdl.graphical.labels.data" + language = StandardLanguage { + name = "org.etsi.mts.tdl.graphical.labels.Data" fileExtensions = "tdldata" + referencedResource = "platform:/resource/org.etsi.mts.tdl.model/model/tdl.genmodel" formatter = { generateStub = true diff --git a/plugins/org.etsi.mts.tdl.graphical.viewpoint/.classpath b/plugins/org.etsi.mts.tdl.graphical.viewpoint/.classpath index eca7bdba8f03f22510b7980a94dbfe10c16c0901..1db08c6b4ce2fb50395b2f9c9a50c140a0bab199 100644 --- a/plugins/org.etsi.mts.tdl.graphical.viewpoint/.classpath +++ b/plugins/org.etsi.mts.tdl.graphical.viewpoint/.classpath @@ -1,7 +1,7 @@ - + - + diff --git a/plugins/org.etsi.mts.tdl.graphical.viewpoint/.project b/plugins/org.etsi.mts.tdl.graphical.viewpoint/.project index a40f3c9dd12037470ca6c21e689f2b17ceff3d58..e6baecde9265cef5e81f7382e8ff87c34ea19d9b 100644 --- a/plugins/org.etsi.mts.tdl.graphical.viewpoint/.project +++ b/plugins/org.etsi.mts.tdl.graphical.viewpoint/.project @@ -25,12 +25,16 @@ + + org.eclipse.m2e.core.maven2Builder + + + + org.eclipse.m2e.core.maven2Nature org.eclipse.acceleo.ide.ui.acceleoNature org.eclipse.jdt.core.javanature org.eclipse.pde.PluginNature - - diff --git a/plugins/org.etsi.mts.tdl.graphical.viewpoint/.settings/org.eclipse.core.resources.prefs b/plugins/org.etsi.mts.tdl.graphical.viewpoint/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000000000000000000000000000000000000..99f26c0203a7844de00dbfc56e6a35d8ed3c022c --- /dev/null +++ b/plugins/org.etsi.mts.tdl.graphical.viewpoint/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/plugins/org.etsi.mts.tdl.graphical.viewpoint/.settings/org.eclipse.jdt.core.prefs b/plugins/org.etsi.mts.tdl.graphical.viewpoint/.settings/org.eclipse.jdt.core.prefs index 9f6ece88bdfd669b71df94c546b40210233cab89..7adc0fb9a0d32bd6b4e3ce6f305ab7165208865c 100644 --- a/plugins/org.etsi.mts.tdl.graphical.viewpoint/.settings/org.eclipse.jdt.core.prefs +++ b/plugins/org.etsi.mts.tdl.graphical.viewpoint/.settings/org.eclipse.jdt.core.prefs @@ -1,8 +1,10 @@ eclipse.preferences.version=1 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 -org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=11 +org.eclipse.jdt.core.compiler.compliance=11 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled org.eclipse.jdt.core.compiler.problem.enumIdentifier=error -org.eclipse.jdt.core.compiler.release=disabled -org.eclipse.jdt.core.compiler.source=1.8 +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning +org.eclipse.jdt.core.compiler.release=enabled +org.eclipse.jdt.core.compiler.source=11 diff --git a/plugins/org.etsi.mts.tdl.graphical.viewpoint/.settings/org.eclipse.m2e.core.prefs b/plugins/org.etsi.mts.tdl.graphical.viewpoint/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000000000000000000000000000000000000..f897a7f1cb2389f85fe6381425d29f0a9866fb65 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.graphical.viewpoint/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/plugins/org.etsi.mts.tdl.graphical.viewpoint/META-INF/MANIFEST.MF b/plugins/org.etsi.mts.tdl.graphical.viewpoint/META-INF/MANIFEST.MF index 49c005d9d15205bff61a23d4f9d9fc3feca73420..cf5563541993686778b06c62672dc5ff775c3be5 100644 --- a/plugins/org.etsi.mts.tdl.graphical.viewpoint/META-INF/MANIFEST.MF +++ b/plugins/org.etsi.mts.tdl.graphical.viewpoint/META-INF/MANIFEST.MF @@ -33,4 +33,4 @@ Require-Bundle: org.eclipse.ui, org.eclipse.sirius.properties.ext.widgets.reference.edit, org.eclipse.sirius.ui.properties.ext.widgets.reference Bundle-ActivationPolicy: lazy -Bundle-RequiredExecutionEnvironment: JavaSE-1.8 +Bundle-RequiredExecutionEnvironment: JavaSE-11 diff --git a/plugins/org.etsi.mts.tdl.graphical.viewpoint/build.properties b/plugins/org.etsi.mts.tdl.graphical.viewpoint/build.properties index e364c1413dc5c49d224898d5fc5b79fcd4c6d885..ff2316d6b7b4989b322da06d71026e712bcc9630 100644 --- a/plugins/org.etsi.mts.tdl.graphical.viewpoint/build.properties +++ b/plugins/org.etsi.mts.tdl.graphical.viewpoint/build.properties @@ -1,5 +1,5 @@ source.. = src/ -output.. = bin/ +output.. = target/classes/ bin.includes = .,\ META-INF/,\ description/,\ diff --git a/plugins/org.etsi.mts.tdl.graphical.viewpoint/pom.xml b/plugins/org.etsi.mts.tdl.graphical.viewpoint/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..4bf8fe72c0b4ecbc143df01f7a4de39c369bb649 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.graphical.viewpoint/pom.xml @@ -0,0 +1,19 @@ + + 4.0.0 + + org.etsi.mts.tdl + org.etsi.mts.tdl.parent + 1.0.0-SNAPSHOT + ../../org.etsi.mts.tdl.parent + + + org.etsi.mts.tdl.graphical.viewpoint + eclipse-plugin + + + + maven-compiler-plugin + + + + \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.graphical.viewpoint/src/org/etsi/mts/tdl/graphical/extensions/DataUseLabelProvider.java b/plugins/org.etsi.mts.tdl.graphical.viewpoint/src/org/etsi/mts/tdl/graphical/extensions/DataUseLabelProvider.java index f17edc256d70ff52d5b1dc4e050ed2cf1fe946dc..18abbff9f59ea5ecc2898278e61b4f43964ecce5 100644 --- a/plugins/org.etsi.mts.tdl.graphical.viewpoint/src/org/etsi/mts/tdl/graphical/extensions/DataUseLabelProvider.java +++ b/plugins/org.etsi.mts.tdl.graphical.viewpoint/src/org/etsi/mts/tdl/graphical/extensions/DataUseLabelProvider.java @@ -72,7 +72,7 @@ public class DataUseLabelProvider { // DONE: grammar doesn't actually support this meta-class -> part of the removed rules -> rules re-added, context resolution added s+=separator+serializer.serialize(b); } - s = s.replaceAll("\s+", " ").replaceAll("\t+", " "); + s = s.replaceAll("\\s+", " ").replaceAll("\t+", " "); if (s.length()>0) { s=s.substring(separator.length()); } diff --git a/plugins/org.etsi.mts.tdl.helper/.classpath b/plugins/org.etsi.mts.tdl.helper/.classpath new file mode 100644 index 0000000000000000000000000000000000000000..1db08c6b4ce2fb50395b2f9c9a50c140a0bab199 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.helper/.classpath @@ -0,0 +1,7 @@ + + + + + + + diff --git a/plugins/org.etsi.mts.tdl.helper/.project b/plugins/org.etsi.mts.tdl.helper/.project new file mode 100644 index 0000000000000000000000000000000000000000..b82b3e29329acbe77b634331b9dd65d9d4603a70 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.helper/.project @@ -0,0 +1,45 @@ + + + org.etsi.mts.tdl.helper + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.eclipse.m2e.core.maven2Nature + org.eclipse.pde.PluginNature + org.eclipse.jdt.core.javanature + + + + 1681418411869 + + 30 + + org.eclipse.core.resources.regexFilterMatcher + node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__ + + + + diff --git a/plugins/org.etsi.mts.tdl.helper/.settings/org.eclipse.core.resources.prefs b/plugins/org.etsi.mts.tdl.helper/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000000000000000000000000000000000000..99f26c0203a7844de00dbfc56e6a35d8ed3c022c --- /dev/null +++ b/plugins/org.etsi.mts.tdl.helper/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/plugins/org.etsi.mts.tdl.helper/.settings/org.eclipse.jdt.core.prefs b/plugins/org.etsi.mts.tdl.helper/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000000000000000000000000000000000000..c9545f06a4120d5b4a1228fb19f67a1171bc0f5b --- /dev/null +++ b/plugins/org.etsi.mts.tdl.helper/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,9 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=11 +org.eclipse.jdt.core.compiler.compliance=11 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning +org.eclipse.jdt.core.compiler.release=enabled +org.eclipse.jdt.core.compiler.source=11 diff --git a/plugins/org.etsi.mts.tdl.helper/.settings/org.eclipse.m2e.core.prefs b/plugins/org.etsi.mts.tdl.helper/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000000000000000000000000000000000000..f897a7f1cb2389f85fe6381425d29f0a9866fb65 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.helper/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/plugins/org.etsi.mts.tdl.helper/META-INF/MANIFEST.MF b/plugins/org.etsi.mts.tdl.helper/META-INF/MANIFEST.MF new file mode 100644 index 0000000000000000000000000000000000000000..cdd743600c0adfe1d203318909e01c962276646d --- /dev/null +++ b/plugins/org.etsi.mts.tdl.helper/META-INF/MANIFEST.MF @@ -0,0 +1,27 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: Helper Components +Bundle-SymbolicName: org.etsi.mts.tdl.helper +Bundle-Version: 1.0.0.qualifier +Bundle-Vendor: ETSI +Automatic-Module-Name: org.etsi.mts.tdl.helper +Bundle-RequiredExecutionEnvironment: JavaSE-11 +Require-Bundle: org.eclipse.xtext, + org.etsi.mts.tdl.model, + org.eclipse.xtext.xbase, + org.eclipse.xtext.util, + org.eclipse.ocl.xtext.essentialocl, + org.apache.log4j, + org.apache.commons.logging, + org.etsi.mts.tdl.TDLan2, + org.etsi.mts.tdl.TPLan2, + org.etsi.mts.tdl.tx, + org.etsi.mts.tdl.txi, + org.eclipse.emf.ecore, + org.eclipse.core.runtime, + org.eclipse.core.resources, + org.eclipse.emf.common, + org.eclipse.emf.mwe.utils, + org.eclipse.ocl.xtext.completeocl, + com.google.guava +Export-Package: org.etsi.mts.tdl.helper diff --git a/plugins/org.etsi.mts.tdl.helper/build.properties b/plugins/org.etsi.mts.tdl.helper/build.properties new file mode 100644 index 0000000000000000000000000000000000000000..56d776555503f2905e0642aae5be7938371a965d --- /dev/null +++ b/plugins/org.etsi.mts.tdl.helper/build.properties @@ -0,0 +1,4 @@ +source.. = src/ +output.. = target/classes/ +bin.includes = META-INF/,\ + . diff --git a/plugins/org.etsi.mts.tdl.helper/pom.xml b/plugins/org.etsi.mts.tdl.helper/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..f84d96af866241f583e31394435f8944c8b6a9e9 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.helper/pom.xml @@ -0,0 +1,19 @@ + + 4.0.0 + + org.etsi.mts.tdl + org.etsi.mts.tdl.parent + 1.0.0-SNAPSHOT + ../../org.etsi.mts.tdl.parent + + + org.etsi.mts.tdl.helper + eclipse-plugin + + + + maven-compiler-plugin + + + + \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.helper/src/org/etsi/mts/tdl/helper/TDLHelper.java b/plugins/org.etsi.mts.tdl.helper/src/org/etsi/mts/tdl/helper/TDLHelper.java new file mode 100644 index 0000000000000000000000000000000000000000..3a8a9d6ca5f5135b8fc1cfbfedde422f15d977ec --- /dev/null +++ b/plugins/org.etsi.mts.tdl.helper/src/org/etsi/mts/tdl/helper/TDLHelper.java @@ -0,0 +1,305 @@ +package org.etsi.mts.tdl.helper; + + + +import java.io.IOException; +import java.net.URISyntaxException; +import java.util.Collections; +import java.util.HashSet; +import java.util.Set; + +import org.apache.log4j.Level; +import org.apache.log4j.Logger; +import org.eclipse.core.resources.IFile; +import org.eclipse.core.resources.IProject; +import org.eclipse.core.resources.IResource; +import org.eclipse.core.resources.IResourceVisitor; +import org.eclipse.core.resources.IWorkspaceRoot; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.Path; +import org.eclipse.core.runtime.Platform; +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.EOperation; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.EValidator; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.emf.mwe.utils.StandaloneSetup; +import org.eclipse.ocl.common.OCLConstants; +import org.eclipse.ocl.pivot.internal.delegate.OCLInvocationDelegateFactory; +import org.eclipse.ocl.pivot.internal.delegate.OCLSettingDelegateFactory; +import org.eclipse.ocl.pivot.internal.delegate.OCLValidationDelegateFactory; +import org.eclipse.ocl.xtext.completeocl.CompleteOCLStandaloneSetup; +import org.eclipse.ocl.xtext.essentialocl.EssentialOCLStandaloneSetup; +import org.eclipse.xtext.GrammarUtil; +import org.eclipse.xtext.IGrammarAccess; +import org.eclipse.xtext.resource.IResourceServiceProvider; +import org.eclipse.xtext.resource.XtextResourceSet; +import org.eclipse.xtext.serializer.impl.Serializer; +import org.etsi.mts.tdl.Package; +import org.etsi.mts.tdl.TDLan2StandaloneSetup; +import org.etsi.mts.tdl.TDLtxStandaloneSetup; +import org.etsi.mts.tdl.TDLtxiStandaloneSetup; +import org.etsi.mts.tdl.TPLan2StandaloneSetup; +import org.etsi.mts.tdl.impl.tdlPackageImpl; +import org.etsi.mts.tdl.structuredobjectives.impl.StructuredObjectivesPackageImpl; + +import com.google.inject.Injector; + +/** + * Static helper class to handle some of the standard boiler-plate code to work with textual TDL models. + * Things might and likely will break. + * @author Philip Makedonski + */ +public class TDLHelper { + static { + TDLHelper.init(); + } + + public static Injector injector; + private static XtextResourceSet resourceSet; + + /** + * Initialise the packages and OCL implementation and validation delegates for the implementation of operations and constraints. + * @throws IOException + */ + public static void init() { + Logger.getRootLogger().setLevel(Level.OFF); + tdlPackageImpl.init(); + StructuredObjectivesPackageImpl.init(); + EssentialOCLStandaloneSetup.doSetup(); + CompleteOCLStandaloneSetup.doSetup(); + initializeValidator(); + resourceSet = getNewResourceSet(); + } + + /** + * Loads an existing resource from a file. + * @param filename location of the resource to be loaded. + * @return A resource loaded from the file. + */ + public static Resource load(String filename) { + Resource resource = resourceSet.getResource(org.eclipse.emf.common.util.URI.createURI(filename), true); + return resource; + } + + /** + * Link / resolve all loaded resources. + */ + public static void link() { + EcoreUtil.resolveAll(resourceSet); + } + + /** + * Check all resources in the shared resourceSet. + */ + public static void check() { + //TODO: check automatically? make optional in case of performance or redundancy concerns? +// TDLHelper.link(); + resourceSet.getResources().forEach(TDLHelper::check); + } + + /** + * Check resource in the shared resourceSet. Load if needed. + * @param filename location of the resource to be checked. + */ + public static void check(String filename) { + Resource r = TDLHelper.load(filename); + check(r); + } + + /** + * Check resource. + * @param r the resource to be checked. + */ + private static void check(Resource r) { + r.getErrors().forEach(e -> System.out.println("Error: "+r.getURI().lastSegment()+": "+e.getLine()+": "+e.getMessage())); + r.getWarnings().forEach(e -> System.out.println("Warning: "+r.getURI().lastSegment()+": "+e.getLine()+": "+e.getMessage())); + } + + + /** + * Creates a new resource at the specified location. + * @param filename Location of the resource to be loaded. + * @return An empty resource loaded from the file. + * @throws Exception + */ + public static Resource create(String filename) throws Exception { + Resource existing = resourceSet.getResource(org.eclipse.emf.common.util.URI.createFileURI(filename), false); + if (existing != null) { + existing.delete(Collections.emptyMap()); + } + Resource resource = resourceSet.createResource(org.eclipse.emf.common.util.URI.createFileURI(filename)); + return resource; + } + + /** + * Store resource contents in a file. + * @param resource A resource to be saved. + * @throws Exception + */ + public static void store(Resource resource) throws Exception { + resource.save(Collections.emptyMap()); + } + + + /** + * Get textual representation of resource contents. + * @param resource A resource to be represented. + * @throws Exception + */ + public static String getText(Resource resource) throws Exception { +// if (resource instanceof XtextResource) { +// return NodeModelUtils.getNode(resource.getContents().get(0)).getText(); +// } else { + //TODO: this needs to be more robust for the desired format + Serializer serializer = injector.getInstance(Serializer.class); + return serializer.serialize(resource.getContents().get(0)); +// } + } + + /** + * Setup and return an XtextResourceSet with TDLan2 file support. + * @return A new XtextResourceSet. + */ + public static XtextResourceSet getNewResourceSet() { + if (!Platform.isRunning()) { + new StandaloneSetup().setPlatformUri("./"); + injector = new TDLan2StandaloneSetup().createInjectorAndDoEMFRegistration(); + injector = new TPLan2StandaloneSetup().createInjectorAndDoEMFRegistration(); + injector = new TDLtxiStandaloneSetup().createInjectorAndDoEMFRegistration(); + //TODO: can this be configurable? or does it preclude tdlan2 from being loaded? + injector = new TDLtxStandaloneSetup().createInjectorAndDoEMFRegistration(); + } else { + injector = IResourceServiceProvider.Registry.INSTANCE.getResourceServiceProvider(URI.createFileURI("t.tdltx")).get(Injector.class); + } +// XtextResourceSet resourceSet = new XtextResourceSet(); + XtextResourceSet resourceSet = injector.getInstance(XtextResourceSet.class); + //TODO: seems to cause some issues, make configurable? +// resourceSet.addLoadOption(XtextResource.OPTION_RESOLVE_ALL, Boolean.TRUE); +// resourceSet.addLoadOption(XtextResource.OPTION_RESOLVE_ALL, Boolean.FALSE); + return resourceSet; + } + + public static Set getTdlGrammarKeywords() { + injector = new TDLtxStandaloneSetup().createInjectorAndDoEMFRegistration(); + IGrammarAccess grammarAccess = injector.getInstance(IGrammarAccess.class); + if (grammarAccess != null) + return GrammarUtil.getAllKeywords(grammarAccess.getGrammar()); + return Collections.EMPTY_SET; + } + + private static final String TDL_MODEL_NAME = "tdl"; + private static final String HTTP_MODEL_NAME = "http"; + private static final String JAVA_MODEL_NAME = "java"; + private static final String[] MODEL_FILE_EXTENSIONS = new String[] { + "tdl", "tdlan2", "tdltx", "tdltxi" + }; + + public static IProject getProjectForResource(Resource resource) { + IWorkspaceRoot ws = org.eclipse.core.resources.ResourcesPlugin.getWorkspace().getRoot(); + URI resourceUri = resource.getURI(); + IFile modelFile = null; + if (resourceUri.isPlatformResource()) { + modelFile = ws.getFile(new Path(resourceUri.toPlatformString(true))); + } else if (resourceUri.isFile()) { + // TODO +// String uriString = resourceUri.toFileString(); +// java.net.URI uri = new java.net.URI(uriString); +// IFile[] files = ws.findFilesForLocationURI(uri); + } + if (modelFile != null) + return modelFile.getProject(); + return null; + } + + abstract static class FileFinder implements IResourceVisitor { + + public IFile file; + + @Override + public boolean visit(IResource resource) throws CoreException { + if (file != null) + return false; + if (resource.getType() != IResource.FILE) + return true; + if (mathces((IFile) resource)) { + this.file = (IFile) resource; + } + return file == null; + } + + abstract protected boolean mathces(IFile file); + } + + public static Package getTdlPackage(Resource resource) { + return getKnownPackage(resource, TDL_MODEL_NAME); + } + + public static Package getHttpPackage(Resource resource) { + return getKnownPackage(resource, HTTP_MODEL_NAME); + } + + public static Package getJavaPackage(Resource resource) { + return getKnownPackage(resource, JAVA_MODEL_NAME); + } + + private static Package getKnownPackage(Resource resource, String packageName) { + try { + IProject prj = getProjectForResource(resource); + if (prj != null) { + final Set names = new HashSet<>(); + for (String ext : MODEL_FILE_EXTENSIONS) { + names.add(packageName + "." + ext); + } + FileFinder finder = new FileFinder() { + @Override + protected boolean mathces(IFile file) { + return names.contains(file.getName().toLowerCase()); + } + }; + prj.accept(finder); + + if (finder.file != null) { + URI uri = URI.createPlatformResourceURI(finder.file.getFullPath().toString(), true); + Resource tdlResource = resource.getResourceSet().getResource(uri, true); + return (Package) tdlResource.getContents().get(0); + } + } + } catch (CoreException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + throw new RuntimeException(e); + } + return null; + } + + /** + * Reset the shared resourceSet. + */ + public static void resetResourceSet() { + resourceSet = getNewResourceSet(); + } + + /** + * Initialise OCL validation and implementation delegates. + */ + public static void initializeValidator() { + String oclDelegateURI = OCLConstants.OCL_DELEGATE_URI+"/Pivot"; + + EOperation.Internal.InvocationDelegate.Factory.Registry.INSTANCE.put(oclDelegateURI, + new OCLInvocationDelegateFactory(oclDelegateURI)); + EStructuralFeature.Internal.SettingDelegate.Factory.Registry.INSTANCE.put(oclDelegateURI, + new OCLSettingDelegateFactory(oclDelegateURI)); + EValidator.ValidationDelegate.Registry.INSTANCE.put(oclDelegateURI, + new OCLValidationDelegateFactory(oclDelegateURI)); + } + + /** + * Get the shared resourceSet. + */ + public static XtextResourceSet getResourceSet() { + return resourceSet; + } + +} diff --git a/plugins/org.etsi.mts.tdl.importers.ui/.classpath b/plugins/org.etsi.mts.tdl.importers.ui/.classpath index 2869279ea3b40554d75a2a2ac7ffa357f9f0f72e..685a6999c9acba0d0158b0929d7a4d384644452e 100644 --- a/plugins/org.etsi.mts.tdl.importers.ui/.classpath +++ b/plugins/org.etsi.mts.tdl.importers.ui/.classpath @@ -1,11 +1,11 @@ - + - + diff --git a/plugins/org.etsi.mts.tdl.importers.ui/.project b/plugins/org.etsi.mts.tdl.importers.ui/.project index 4618c523b8ea1288dbc49ec0f2f111072bc61ef1..900b3afc154dba289bc3d38f77f42824af18a8fb 100644 --- a/plugins/org.etsi.mts.tdl.importers.ui/.project +++ b/plugins/org.etsi.mts.tdl.importers.ui/.project @@ -20,9 +20,26 @@ + + org.eclipse.m2e.core.maven2Builder + + + + org.eclipse.m2e.core.maven2Nature org.eclipse.pde.PluginNature org.eclipse.jdt.core.javanature + + + 1681418411879 + + 30 + + org.eclipse.core.resources.regexFilterMatcher + node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__ + + + diff --git a/plugins/org.etsi.mts.tdl.importers.ui/META-INF/MANIFEST.MF b/plugins/org.etsi.mts.tdl.importers.ui/META-INF/MANIFEST.MF index 6063eced3a9b79b51aeee331e1966972f93e3a86..965ff1ae0c694418cb37c196d21a5c546d471099 100644 --- a/plugins/org.etsi.mts.tdl.importers.ui/META-INF/MANIFEST.MF +++ b/plugins/org.etsi.mts.tdl.importers.ui/META-INF/MANIFEST.MF @@ -17,8 +17,9 @@ Require-Bundle: org.eclipse.ui, org.etsi.mts.tdl.model, org.etsi.mts.tdl.common, org.etsi.mts.tdl.asn2tdl, - org.etsi.mts.tdl.openapi2tdl, - org.etsi.mts.tdl.to2tdl + org.etsi.mts.tdl.openapi2tdl.next, + org.etsi.mts.tdl.to2tdl, + org.etsi.mts.tdl.json2tdl Bundle-ActivationPolicy: lazy Import-Package: org.eclipse.emf.common.util -Bundle-RequiredExecutionEnvironment: JavaSE-1.8 +Bundle-RequiredExecutionEnvironment: JavaSE-11 diff --git a/plugins/org.etsi.mts.tdl.importers.ui/build.properties b/plugins/org.etsi.mts.tdl.importers.ui/build.properties index 0d3d3a745d49c12500fb77bdc372b76e8bf624de..6f4455d0e120b77b0904d2835d63f30dcde30b90 100644 --- a/plugins/org.etsi.mts.tdl.importers.ui/build.properties +++ b/plugins/org.etsi.mts.tdl.importers.ui/build.properties @@ -1,5 +1,5 @@ source.. = src/ -output.. = bin/ +output.. = target/classes/ bin.includes = plugin.xml,\ META-INF/,\ .,\ diff --git a/plugins/org.etsi.mts.tdl.importers.ui/plugin.xml b/plugins/org.etsi.mts.tdl.importers.ui/plugin.xml index ca269654f7e186b7eaabb71ebcdd495dd6eb0557..8be13466470c0e31b01db2c0f4ab44ebe9e8d347 100644 --- a/plugins/org.etsi.mts.tdl.importers.ui/plugin.xml +++ b/plugins/org.etsi.mts.tdl.importers.ui/plugin.xml @@ -13,6 +13,11 @@ categoryId="org.etsi.mts.tdl.importers.ui.commands.category" id="org.etsi.mts.tdl.importers.ui.commands.translateCommand"> + + @@ -20,6 +25,10 @@ commandId="org.etsi.mts.tdl.importers.ui.commands.translateCommand" class="org.etsi.mts.tdl.importers.ui.handlers.TranslationHandler"> + + @@ -44,6 +53,11 @@ mnemonic="T" id="org.etsi.mts.tdl.importers.ui.menus.translateCommand"> + + + + diff --git a/plugins/org.etsi.mts.tdl.importers.ui/pom.xml b/plugins/org.etsi.mts.tdl.importers.ui/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..ca594799f47a08bca448dc7e29e35ed9dead6793 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.importers.ui/pom.xml @@ -0,0 +1,19 @@ + + 4.0.0 + + org.etsi.mts.tdl + org.etsi.mts.tdl.parent + 1.0.0-SNAPSHOT + ../../org.etsi.mts.tdl.parent + + + org.etsi.mts.tdl.importers.ui + eclipse-plugin + + + + maven-compiler-plugin + + + + \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.importers.ui/src/org/etsi/mts/tdl/importers/ui/handlers/DocumentationHandler.java b/plugins/org.etsi.mts.tdl.importers.ui/src/org/etsi/mts/tdl/importers/ui/handlers/DocumentationHandler.java new file mode 100644 index 0000000000000000000000000000000000000000..4d95cfb4914a6a5b25ed2b126cace181faecacac --- /dev/null +++ b/plugins/org.etsi.mts.tdl.importers.ui/src/org/etsi/mts/tdl/importers/ui/handlers/DocumentationHandler.java @@ -0,0 +1,123 @@ +package org.etsi.mts.tdl.importers.ui.handlers; + +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.Arrays; +import java.util.LinkedHashMap; + +import org.eclipse.core.commands.AbstractHandler; +import org.eclipse.core.commands.ExecutionEvent; +import org.eclipse.core.commands.ExecutionException; +import org.eclipse.core.resources.IFile; +import org.eclipse.core.runtime.Platform; +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecore.resource.ResourceSet; +import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; +import org.eclipse.jface.dialogs.MessageDialog; +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.jface.viewers.LabelProvider; +import org.eclipse.jface.window.Window; +import org.eclipse.swt.widgets.Display; +import org.eclipse.ui.IEditorInput; +import org.eclipse.ui.IWorkbenchWindow; +import org.eclipse.ui.dialogs.ElementListSelectionDialog; +import org.eclipse.ui.handlers.HandlerUtil; +import org.eclipse.ui.part.FileEditorInput; +import org.eclipse.xtext.resource.XtextResourceSet; +import org.eclipse.xtext.ui.resource.IResourceSetProvider; +import org.etsi.mts.tdl.Package; +import org.etsi.mts.tdl.asn2tdl.ASN2TDLTranslator; +import org.etsi.mts.tdl.json2tdl.JSON2TDLTranslator; +import org.etsi.mts.tdl.openapi2tdl.next.OpenAPI2TDLTranslatorNext; +import org.etsi.mts.tdl.openapi2tdl.next.doc.Doc; +import org.etsi.mts.tdl.to2tdl.TO2TDLTranslator; +import org.etsi.mts.tdl.transform.AbstractTranslator; + +import com.google.inject.Guice; +import com.google.inject.Inject; +import com.google.inject.Injector; +import com.google.inject.Provider; + +/** + * Our sample handler extends AbstractHandler, an IHandler base class. + * @see org.eclipse.core.commands.IHandler + * @see org.eclipse.core.commands.AbstractHandler + */ +public class DocumentationHandler extends AbstractHandler { + private IWorkbenchWindow window; + + public DocumentationHandler() { + init(); + } + + private void init() { + } + + private void loadTargetFormat(String bundleName, String label, String extension) { + } + + /** + * the command has been executed, so extract extract the needed information + * from the application context. + */ + public Object execute(ExecutionEvent event) throws ExecutionException { + init(); + ISelection selection = HandlerUtil.getCurrentSelection(event); + IEditorInput input = HandlerUtil.getActiveEditorInput(event); + IFile file = null; + if (input != null && input instanceof FileEditorInput && ((FileEditorInput) input).getFile().getName().endsWith("yaml")) { + file = ((FileEditorInput) input).getFile(); + } else if (selection !=null && selection instanceof IStructuredSelection) { + IStructuredSelection structuredSelection = (IStructuredSelection) selection; + Object firstElement = structuredSelection.getFirstElement(); + if (firstElement instanceof IFile) { + file = (IFile) firstElement; + } + } + + if (file !=null) { + String filepath = file.getLocation().toFile().getAbsolutePath(); + Doc doc = new Doc(); + try { + //TODO: make configurable + doc.processModel(filepath, true); + Files.writeString(Path.of(filepath+"-RQ-ICS-TSS.md"), doc.getContent()); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + showErrorDialog(e); + } + } + //TODO: throw proper execution exceptions? + return null; + } + + private void showErrorDialog(Exception e) { + MessageDialog errorDialog = new MessageDialog( + Display.getDefault().getActiveShell(), + "Translation error...", + null, + "An error occurred during the documentation generation. " + + "It may be due to problems occurring while processing the input, " + + "e.g if the input could not be processed. " + + "See details for a more technical description:\n\n" + + e.getMessage() + , + MessageDialog.ERROR, + 0, + new String[] {"OK"}); + errorDialog.open(); + } + + public void init(IWorkbenchWindow window) { + this.window = window; + } + + @Override + public boolean isEnabled() { + return true; + } + +} diff --git a/plugins/org.etsi.mts.tdl.importers.ui/src/org/etsi/mts/tdl/importers/ui/handlers/TranslationHandler.java b/plugins/org.etsi.mts.tdl.importers.ui/src/org/etsi/mts/tdl/importers/ui/handlers/TranslationHandler.java index 7f51c471b307708a40476e2e29f910f033849a36..b14839f53ce475a845823c12d74d9f0095d3cd23 100644 --- a/plugins/org.etsi.mts.tdl.importers.ui/src/org/etsi/mts/tdl/importers/ui/handlers/TranslationHandler.java +++ b/plugins/org.etsi.mts.tdl.importers.ui/src/org/etsi/mts/tdl/importers/ui/handlers/TranslationHandler.java @@ -12,7 +12,6 @@ import org.eclipse.emf.common.util.URI; import org.eclipse.emf.ecore.resource.Resource; import org.eclipse.emf.ecore.resource.ResourceSet; import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; -import org.eclipse.emf.ecore.util.EcoreUtil; import org.eclipse.jface.dialogs.MessageDialog; import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.IStructuredSelection; @@ -23,15 +22,15 @@ import org.eclipse.ui.IEditorInput; import org.eclipse.ui.IWorkbenchWindow; import org.eclipse.ui.dialogs.ElementListSelectionDialog; import org.eclipse.ui.handlers.HandlerUtil; -import org.eclipse.ui.internal.ide.dialogs.InternalErrorDialog; import org.eclipse.ui.part.FileEditorInput; import org.eclipse.xtext.resource.XtextResourceSet; import org.eclipse.xtext.ui.resource.IResourceSetProvider; import org.etsi.mts.tdl.Package; import org.etsi.mts.tdl.asn2tdl.ASN2TDLTranslator; -import org.etsi.mts.tdl.openapi2tdl.OpenAPI2TDLTranslator; +import org.etsi.mts.tdl.json2tdl.JSON2TDLTranslator; +import org.etsi.mts.tdl.openapi2tdl.next.OpenAPI2TDLTranslatorNext; import org.etsi.mts.tdl.to2tdl.TO2TDLTranslator; -import org.osgi.framework.Bundle; +import org.etsi.mts.tdl.transform.AbstractTranslator; import com.google.inject.Guice; import com.google.inject.Inject; @@ -64,6 +63,7 @@ public class TranslationHandler extends AbstractHandler { } private void init() { + //TODO: split into multiple importers or make independent from openAPI, ASN and others, similar to different target syntaxes //TODO: update rt.ui as well //TODO: do not reload after first init if (!targetFormats.isEmpty()) { @@ -128,34 +128,17 @@ public class TranslationHandler extends AbstractHandler { URI targetURI = URI.createURI(uri.toString()+"-generated."+extension); XtextResourceSet resourceSet = injector.getInstance(XtextResourceSet.class); Resource tr = resourceSet.createResource(targetURI); - + AbstractTranslator translator = null; if (type.contains("asn")) { - ASN2TDLTranslator translator = new ASN2TDLTranslator(); - translator.setTargetResource(tr); - translator.initTargetResource(translator.cleanName(file.getName())); - try { - translator.translate(filepath); - } catch (Exception e) { - // TODO Auto-generated catch block - e.printStackTrace(); - MessageDialog errorDialog = new MessageDialog( - Display.getDefault().getActiveShell(), - "Translation error...", - null, - "An error occurred during the translation. " - + "It may be due to problems occurring while processing the input, " - + "e.g if the input could not be processed. " - + "See details for a more technical description:\n\n" - + e.getMessage() - , - MessageDialog.ERROR, - 0, - new String[] {"OK"}); - errorDialog.open(); - } + translator = new ASN2TDLTranslator(); + } + if (type.contains("json")) { + translator = new JSON2TDLTranslator(); } if (type.contains("yaml")) { - OpenAPI2TDLTranslator translator = new OpenAPI2TDLTranslator(); + translator = new OpenAPI2TDLTranslatorNext(); + } + if (translator != null) { translator.setTargetResource(tr); translator.initTargetResource(translator.cleanName(file.getName())); try { @@ -163,57 +146,54 @@ public class TranslationHandler extends AbstractHandler { } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); - MessageDialog errorDialog = new MessageDialog( - Display.getDefault().getActiveShell(), - "Translation error...", - null, - "An error occurred during the translation. " - + "It may be due to problems occurring while processing the input, " - + "e.g if the input could not be processed. " - + "See details for a more technical description:\n\n" - + e.getMessage() - , - MessageDialog.ERROR, - 0, - new String[] {"OK"}); - errorDialog.open(); + showErrorDialog(e); } - - } + } + if (type.contains("tplan2")) { //TODO: also new syntax + //TODO: this does not work at present + //TODO: add option to simply translate rather than transform + //TODO: update names to distinguish between translation and transformation + //TODO: cleanup wizards, there should be only one clear way how to do everything Resource r = rs.getResource(uri, true); Package p = (Package) r.getContents().get(0); - TO2TDLTranslator translator = new TO2TDLTranslator(); + translator = new TO2TDLTranslator(); translator.setTargetResource(tr); translator.initTargetResource("generated_from_"+p.getName()); translator.addImports(p); - translator.transform(p); + ((TO2TDLTranslator)translator).transform(p); } //tr.getContents().addAll(EcoreUtil.copyAll(r.getContents())); + try { tr.save(null); - } catch (Exception e1) { + } catch (Exception e) { // TODO Auto-generated catch block - e1.printStackTrace(); - MessageDialog errorDialog = new MessageDialog( - Display.getDefault().getActiveShell(), - "Translation error...", - null, - "An error occurred during the translation. " - + "It may be due to problems occurring while storing the output. " - + "See details for a more technical description and consider usind a different target format:\n\n" - + e1.getMessage() - , - MessageDialog.ERROR, - 0, - new String[] {"OK"}); - errorDialog.open(); + e.printStackTrace(); + showErrorDialog(e); } } } //TODO: throw proper execution exceptions? return null; } + + private void showErrorDialog(Exception e) { + MessageDialog errorDialog = new MessageDialog( + Display.getDefault().getActiveShell(), + "Translation error...", + null, + "An error occurred during the translation. " + + "It may be due to problems occurring while processing the input, " + + "e.g if the input could not be processed. " + + "See details for a more technical description:\n\n" + + e.getMessage() + , + MessageDialog.ERROR, + 0, + new String[] {"OK"}); + errorDialog.open(); + } public void init(IWorkbenchWindow window) { this.window = window; diff --git a/plugins/org.etsi.mts.tdl.json2tdl/.classpath b/plugins/org.etsi.mts.tdl.json2tdl/.classpath new file mode 100644 index 0000000000000000000000000000000000000000..685a6999c9acba0d0158b0929d7a4d384644452e --- /dev/null +++ b/plugins/org.etsi.mts.tdl.json2tdl/.classpath @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/plugins/org.etsi.mts.tdl.json2tdl/.project b/plugins/org.etsi.mts.tdl.json2tdl/.project new file mode 100644 index 0000000000000000000000000000000000000000..6eedec689597106b2cd3edcbc6e1bb6025280c7b --- /dev/null +++ b/plugins/org.etsi.mts.tdl.json2tdl/.project @@ -0,0 +1,45 @@ + + + org.etsi.mts.tdl.json2tdl + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.eclipse.m2e.core.maven2Nature + org.eclipse.pde.PluginNature + org.eclipse.jdt.core.javanature + + + + 1681418411887 + + 30 + + org.eclipse.core.resources.regexFilterMatcher + node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__ + + + + diff --git a/plugins/org.etsi.mts.tdl.json2tdl/.settings/org.eclipse.core.resources.prefs b/plugins/org.etsi.mts.tdl.json2tdl/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000000000000000000000000000000000000..99f26c0203a7844de00dbfc56e6a35d8ed3c022c --- /dev/null +++ b/plugins/org.etsi.mts.tdl.json2tdl/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/plugins/org.etsi.mts.tdl.json2tdl/.settings/org.eclipse.jdt.core.prefs b/plugins/org.etsi.mts.tdl.json2tdl/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000000000000000000000000000000000000..7adc0fb9a0d32bd6b4e3ce6f305ab7165208865c --- /dev/null +++ b/plugins/org.etsi.mts.tdl.json2tdl/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,10 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=11 +org.eclipse.jdt.core.compiler.compliance=11 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning +org.eclipse.jdt.core.compiler.release=enabled +org.eclipse.jdt.core.compiler.source=11 diff --git a/plugins/org.etsi.mts.tdl.json2tdl/.settings/org.eclipse.m2e.core.prefs b/plugins/org.etsi.mts.tdl.json2tdl/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000000000000000000000000000000000000..f897a7f1cb2389f85fe6381425d29f0a9866fb65 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.json2tdl/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/plugins/org.etsi.mts.tdl.json2tdl/META-INF/MANIFEST.MF b/plugins/org.etsi.mts.tdl.json2tdl/META-INF/MANIFEST.MF new file mode 100644 index 0000000000000000000000000000000000000000..e90038f7948c5879018127d92cff21c93ce960a3 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.json2tdl/META-INF/MANIFEST.MF @@ -0,0 +1,12 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: Json2tdl +Bundle-SymbolicName: org.etsi.mts.tdl.json2tdl +Bundle-Version: 1.0.0.qualifier +Export-Package: org.etsi.mts.tdl.json2tdl +Require-Bundle: org.etsi.mts.tdl.common, + org.eclipse.emf.ecore, + org.eclipse.xtext, + org.etsi.mts.tdl.helper, + com.google.gson +Automatic-Module-Name: org.etsi.mts.tdl.json2tdl diff --git a/plugins/org.etsi.mts.tdl.json2tdl/build.properties b/plugins/org.etsi.mts.tdl.json2tdl/build.properties new file mode 100644 index 0000000000000000000000000000000000000000..56d776555503f2905e0642aae5be7938371a965d --- /dev/null +++ b/plugins/org.etsi.mts.tdl.json2tdl/build.properties @@ -0,0 +1,4 @@ +source.. = src/ +output.. = target/classes/ +bin.includes = META-INF/,\ + . diff --git a/plugins/org.etsi.mts.tdl.json2tdl/lib/gson-2.9.1.jar b/plugins/org.etsi.mts.tdl.json2tdl/lib/gson-2.9.1.jar new file mode 100644 index 0000000000000000000000000000000000000000..8a663ecceb9d43bfb89fd82b437a2cf55e52ad04 Binary files /dev/null and b/plugins/org.etsi.mts.tdl.json2tdl/lib/gson-2.9.1.jar differ diff --git a/plugins/org.etsi.mts.tdl.json2tdl/pom.xml b/plugins/org.etsi.mts.tdl.json2tdl/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..3ce9cf86ef0ef54adb119aa9148d01f4c53c3306 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.json2tdl/pom.xml @@ -0,0 +1,19 @@ + + 4.0.0 + + org.etsi.mts.tdl + org.etsi.mts.tdl.parent + 1.0.0-SNAPSHOT + ../../org.etsi.mts.tdl.parent + + + org.etsi.mts.tdl.json2tdl + eclipse-plugin + + + + maven-compiler-plugin + + + + \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.json2tdl/src/org/etsi/mts/tdl/json2tdl/JSON2TDLTranslator.java b/plugins/org.etsi.mts.tdl.json2tdl/src/org/etsi/mts/tdl/json2tdl/JSON2TDLTranslator.java new file mode 100644 index 0000000000000000000000000000000000000000..744fad3a98763c510ae7602599565ed5240f50aa --- /dev/null +++ b/plugins/org.etsi.mts.tdl.json2tdl/src/org/etsi/mts/tdl/json2tdl/JSON2TDLTranslator.java @@ -0,0 +1,257 @@ +package org.etsi.mts.tdl.json2tdl; + +import java.io.File; +import java.io.FileReader; +import java.util.Map; +import java.util.Map.Entry; + +import org.etsi.mts.tdl.CollectionDataInstance; +import org.etsi.mts.tdl.CollectionDataType; +import org.etsi.mts.tdl.DataElementMapping; +import org.etsi.mts.tdl.DataElementUse; +import org.etsi.mts.tdl.DataType; +import org.etsi.mts.tdl.DataUse; +import org.etsi.mts.tdl.LiteralValueUse; +import org.etsi.mts.tdl.Member; +import org.etsi.mts.tdl.MemberAssignment; +import org.etsi.mts.tdl.ParameterBinding; +import org.etsi.mts.tdl.StructuredDataInstance; +import org.etsi.mts.tdl.StructuredDataType; +import org.etsi.mts.tdl.tdlFactory; +import org.etsi.mts.tdl.tdlPackage; +import org.etsi.mts.tdl.transform.AbstractTranslator; + +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; +import com.google.gson.JsonSyntaxException; + +public class JSON2TDLTranslator extends AbstractTranslator{ + private static final String JSON_STRING = "JSON_String"; + + //for reference and debugging + private void dumpJson(String prefix, Map.Entry e) { + System.out.println(); + System.out.print(prefix+"\t"+e.getKey() + ":"); + dumpJson(prefix + "\t", e.getValue()); + } + + //for reference and debugging + private void dumpJson(String prefix, JsonElement e) { + if (e.isJsonArray()) { + ((JsonArray) e).forEach(a -> dumpJson(prefix + "\t", a)); + } else if (e.isJsonObject()) { + ((JsonObject) e).entrySet().forEach(a -> dumpJson(prefix + "\t", a)); + } else if (e.isJsonPrimitive()) { + System.out.print(" "+e); + } + } + + public boolean isValid(String json) { + try { + JsonParser.parseString(json); + } catch (JsonSyntaxException e) { + return false; + } + return true; + } + + //inherited entry point + @Override + public void translate(String targetFilename) throws Exception { + String sourceMappingTag = "SOURCE_MAPPING"; + drm = getTypeFor(sourceMappingTag, tdlPackage.Literals.DATA_RESOURCE_MAPPING); + drm.setResourceURI(new File(targetFilename).getName()); + try { + //TODO: import and extend body? or how is the content to be referenced + //TODO: add model name as prefix for disambiguation? -> optional + JsonElement jsonElement = JsonParser.parseReader(new FileReader(targetFilename)); + dumpJson("", jsonElement); + System.out.println(); + + String prefix = "JSON"; + getSimpleDataTypeFor(JSON_STRING); + //TODO: add validation + translate(prefix, jsonElement); + + //DONE: data instances as well? -> only one data instance, + //TODO: make optional + //TODO: add more sophisticated name? make configurable + //TODO: error reporting + translateInstance(prefix, jsonElement); + + drm = getTypeFor(sourceMappingTag, tdlPackage.Literals.DATA_RESOURCE_MAPPING); + drm.setResourceURI(new File(targetFilename).getName()); + addMappings(prefix, jsonElement); + + //update with unique name, only after everything is in place + //TODO: make optional / configurable + DataType root = getDataTypeFor(prefix); + root.setName(prefix+"_"+cleanName(drm.getResourceURI())); + + //TODO: add optional extends Body? needs also corresponding import + //using a wrapper may be more adequate + + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + //translate elements + private void translate(String prefix, JsonElement e) { + if (e.isJsonArray()) { + String iPrefix = prefix+"_item"; + CollectionDataType collectionType = getTypeFor(prefix, tdlPackage.Literals.COLLECTION_DATA_TYPE); + ((JsonArray) e).forEach(a -> translate(iPrefix, a)); + DataType itemType = getDataTypeFor(JSON_STRING); + if (!e.getAsJsonArray().isEmpty()) { + if (e.getAsJsonArray().get(0).isJsonPrimitive()) { + + } else { + itemType = getDataTypeFor(iPrefix); + } + } + collectionType.setItemType(itemType); + } else if (e.isJsonObject()) { + StructuredDataType dataType = getStructuredDataTypeFor(prefix); + ((JsonObject) e).entrySet().forEach(a -> translate(prefix, a)); + } else if (e.isJsonPrimitive()) { + //TODO: needs handling? +// System.out.print(" "+e); + } + } + + //translate assignments + private void translate(String prefix, Map.Entry e) { + //TODO: extract prefixing scheme / method + String iPrefix = "JSON_"+e.getKey(); //short prefix + + //TODO: make configurable: default: last segment only -> explain possible issues + //TODO: also for YAML/ASN.1 imports + //TODO: can we make name, type, component not be restricted names? + if (fullPrefix) { + iPrefix = prefix+"_"+e.getKey(); //full prefix + } + translate(iPrefix, e.getValue()); + + StructuredDataType dataType = getStructuredDataTypeFor(prefix); + //TODO: deduplicate types? + //TODO: handle booleans and integers? + //TODO: add mappings to reconstruct JSON + //DONE: permit "-" and ":" in names? -> "-" feasible / enabled, ":" more challenging due to wide use, + //note also mapping to target which will require substitution in any case + //TODO: make substitution configurable + Member m = getContentWithName(e.getKey(), dataType, tdlPackage.Literals.MEMBER); + DataType memberType = getSimpleDataTypeFor(JSON_STRING); + if (!e.getValue().isJsonPrimitive()) { + memberType = getDataTypeFor(iPrefix); + } + m.setDataType(memberType); + dataType.getMember().add(m); + } + + //translate elements + private void addMappings(String prefix, JsonElement e) { + if (e.isJsonArray()) { + String iPrefix = prefix+"_item"; + CollectionDataType collectionType = getTypeFor(prefix, tdlPackage.Literals.COLLECTION_DATA_TYPE); + ((JsonArray) e).forEach(a -> addMappings(iPrefix, a)); + //TODO: what about the rest? + } else if (e.isJsonObject()) { + StructuredDataType dataType = getStructuredDataTypeFor(prefix); + //TODO: make replacement optional, more robust + DataElementMapping addDataElementMapping = addDataElementMapping(prefix.replaceAll("_", "."), dataType, sourceMappingTag); + ((JsonObject) e).entrySet().forEach(a -> addMappings(prefix, a)); + } else if (e.isJsonPrimitive()) { + //TODO: needs handling? +// System.out.print(" "+e); + } + } + + //translate assignments + private void addMappings(String prefix, Map.Entry e) { + //TODO: extract prefixing scheme / method + String iPrefix = "JSON_"+e.getKey(); //short prefix + + if (fullPrefix) { + iPrefix = prefix+"_"+e.getKey(); //full prefix + } + + StructuredDataType dataType = getStructuredDataTypeFor(prefix); + Member m = getContentWithName(e.getKey(), dataType, tdlPackage.Literals.MEMBER); + + DataElementMapping sourceMapping = getTypeFor(prefix+"_"+sourceMappingTag, tdlPackage.Literals.DATA_ELEMENT_MAPPING); + addParameterMapping(sourceMapping, m, e.getKey()); + //TODO: fully qualified uris? + + addMappings(iPrefix, e.getValue()); + } + + + //first level: data instance + private void translateInstance(String prefix, JsonElement e) { + if (e.isJsonArray()) { + String iPrefix = prefix + "_item"; + CollectionDataType collectionType = getTypeFor(prefix, tdlPackage.Literals.COLLECTION_DATA_TYPE); + CollectionDataInstance cInstance = getTypeFor(prefix+"_instance", tdlPackage.Literals.COLLECTION_DATA_INSTANCE); + cInstance.setDataType(collectionType); + ((JsonArray) e).forEach(a -> cInstance.getItem().add(translateDataUse(iPrefix, a))); + } else if (e.isJsonObject()) { + StructuredDataType dataType = getStructuredDataTypeFor(prefix); + StructuredDataInstance eInstance = getTypeFor(prefix+"_instance", tdlPackage.Literals.STRUCTURED_DATA_INSTANCE); + eInstance.setDataType(dataType); + ((JsonObject) e).entrySet().forEach(a->eInstance.getMemberAssignment().add(translateMemberAssignment(prefix, a))); + } else if (e.isJsonPrimitive()) { + System.out.print(" " + e); + //TODO: complete? + } + } + + //TODO: move to parent? -> too specific, abstract away.. + //first level: data instance member assignments + private MemberAssignment translateMemberAssignment(String prefix, Map.Entry e) { + StructuredDataType dataType = getStructuredDataTypeFor(prefix); + Member m = getContentWithName(e.getKey(), dataType, tdlPackage.Literals.MEMBER); + + DataUse du = translateDataUse(m.getDataType().getName(), e.getValue()); + + MemberAssignment ma = (MemberAssignment) tdlFactory.eINSTANCE.create(tdlPackage.Literals.MEMBER_ASSIGNMENT); + ma.setMember(m); + ma.setMemberSpec(du); + return ma; + } + + //nested levels: data use + private DataUse translateDataUse(String prefix, JsonElement e) { + if (e.isJsonArray()) { + String iPrefix = prefix + "_item"; + DataElementUse du = (DataElementUse) tdlFactory.eINSTANCE.create(tdlPackage.Literals.DATA_ELEMENT_USE); + ((JsonArray) e).forEach(a -> du.getItem().add(translateDataUse(iPrefix, a))); + return du; + } else if (e.isJsonObject()) { + DataElementUse du = (DataElementUse) tdlFactory.eINSTANCE.create(tdlPackage.Literals.DATA_ELEMENT_USE); + ((JsonObject) e).entrySet().forEach(a-> du.getArgument().add(translateParameterBindings(prefix, a))); + return du; + } else if (e.isJsonPrimitive()) { + LiteralValueUse lvu = (LiteralValueUse) tdlFactory.eINSTANCE.create(tdlPackage.Literals.LITERAL_VALUE_USE); + lvu.setValue(e.getAsString());; + return lvu; + } else { + //TODO: what should happen here? + return null; + } + } + + //nested levels: parameter bindings + private ParameterBinding translateParameterBindings(String prefix, Entry a) { + StructuredDataType dataType = getStructuredDataTypeFor(prefix); + Member m = getContentWithName(a.getKey(), dataType, tdlPackage.Literals.MEMBER); + ParameterBinding pb = (ParameterBinding) tdlFactory.eINSTANCE.create(tdlPackage.Literals.PARAMETER_BINDING); + pb.setParameter(m); + pb.setDataUse(translateDataUse(m.getDataType().getName(), a.getValue())); + return pb; + } + +} diff --git a/plugins/org.etsi.mts.tdl.json2tdl/src/org/etsi/mts/tdl/json2tdl/JSONConverter.java b/plugins/org.etsi.mts.tdl.json2tdl/src/org/etsi/mts/tdl/json2tdl/JSONConverter.java new file mode 100644 index 0000000000000000000000000000000000000000..08f7ff29d7a7e41249f8c1fd56a4a0bc854e9c08 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.json2tdl/src/org/etsi/mts/tdl/json2tdl/JSONConverter.java @@ -0,0 +1,30 @@ +package org.etsi.mts.tdl.json2tdl; + +import java.io.File; + +import org.eclipse.emf.ecore.resource.Resource; +import org.etsi.mts.tdl.helper.TDLHelper; + +public class JSONConverter { + public static String processToString(String inputPath, String outputPath) { + return processToString(inputPath, outputPath, "SOURCE_MAPPING", "TARGET_MAPPING"); + } + + public static String processToString(String inputPath, String outputPath, String sourceMapping, String targetMapping) { + System.out.println("Exporting: "+outputPath+ " : "+ new File(outputPath).getAbsolutePath()); + JSON2TDLTranslator translator = new JSON2TDLTranslator(); + String content = "Package imported {}"; + try { + Resource tr = TDLHelper.create(outputPath); + translator.setTargetResource(tr); + translator.initTargetResource(translator.cleanName(new File(inputPath).getName())); + translator.translate(inputPath); + content = TDLHelper.getText(tr); + } catch (Exception e) { + e.printStackTrace(); + } + return content; + } + +} + diff --git a/plugins/org.etsi.mts.tdl.json2tdl/src/org/etsi/mts/tdl/json2tdl/TDL2JSONTranslator.java b/plugins/org.etsi.mts.tdl.json2tdl/src/org/etsi/mts/tdl/json2tdl/TDL2JSONTranslator.java new file mode 100644 index 0000000000000000000000000000000000000000..e0e2df89a21b045b2219d0b5d1caf073ac923b55 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.json2tdl/src/org/etsi/mts/tdl/json2tdl/TDL2JSONTranslator.java @@ -0,0 +1,149 @@ +package org.etsi.mts.tdl.json2tdl; + +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +import org.eclipse.xtext.EcoreUtil2; +import org.eclipse.xtext.util.Files; +import org.etsi.mts.tdl.CollectionDataType; +import org.etsi.mts.tdl.DataElementMapping; +import org.etsi.mts.tdl.DataElementUse; +import org.etsi.mts.tdl.DataUse; +import org.etsi.mts.tdl.LiteralValueUse; +import org.etsi.mts.tdl.MappableDataElement; +import org.etsi.mts.tdl.MemberAssignment; +import org.etsi.mts.tdl.NamedElement; +import org.etsi.mts.tdl.Package; +import org.etsi.mts.tdl.Parameter; +import org.etsi.mts.tdl.ParameterBinding; +import org.etsi.mts.tdl.SimpleDataType; +import org.etsi.mts.tdl.StructuredDataInstance; +import org.etsi.mts.tdl.StructuredDataType; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; + +public class TDL2JSONTranslator { + + private Map dataMappings = new LinkedHashMap<>(); + private Map parameterMappings = new LinkedHashMap<>(); + + public void transform(Package p) { + indexMappings(p); + List instances = EcoreUtil2.getAllContentsOfType(p, StructuredDataInstance.class); + instances.forEach(this::translate); + } + + public void indexMappings(Package p) { + //TODO: assuming mappings are in the same package + //TODO: differentiate mappings + dataMappings = EcoreUtil2.getAllContentsOfType(p, DataElementMapping.class).stream() + .filter(e->e.getName().endsWith("SOURCE_MAPPING")) + .collect(Collectors.toMap(e->e.getMappableDataElement(), e->e)); + dataMappings.values().forEach(this::indexParameterMappings); + } + + private void indexParameterMappings(DataElementMapping dem) { + dem.getParameterMapping().forEach(pm -> parameterMappings.put(pm.getParameter(), pm.getParameterURI())); + } + + public String translate(StructuredDataInstance instance) { + Gson gson = new GsonBuilder().setPrettyPrinting().create(); + + //DONE: test out basic individual data use translation + //instance.getMemberAssignment().forEach(ma -> translate(ma.getMemberSpec())); + + LinkedHashMap map = new LinkedHashMap<>(); + instance.getMemberAssignment().forEach(ma -> transform(ma, map)); + String json = gson.toJson(map); + + //TODO: other primitives not serialised? + //TODO: refine and extract + System.out.println(json); + String prefix = "examples/json/"; + String filename = prefix + instance.getQualifiedName().replaceAll("::", "_") + ".json"; + Files.writeStringIntoFile(filename , json); + return json; + } + + public String translate(DataUse du) { + Gson gson = new GsonBuilder().setPrettyPrinting().create(); + String json = gson.toJson(transform(du)); +// System.out.println(json); + return json; + } + + public Object transform(DataUse du) { + if (du.resolveDataType() instanceof StructuredDataType) { + //TODO: should it apply for function calls and others? + LinkedHashMap map = new LinkedHashMap<>(); + du.getArgument().forEach(pb -> transform(pb, map)); + + //TODO: handle data element if assigned -> structured instance supported, others? + //TODO: also others? + //TODO: handle reduction? + if (du instanceof DataElementUse) { + NamedElement de = ((DataElementUse) du).getDataElement(); + if (de instanceof StructuredDataInstance) { + ((StructuredDataInstance) de).getMemberAssignment().stream() + .filter(e->du.getArgument().stream() + .noneMatch(a ->a.getParameter() == e.getMember())) + .forEach(ma -> transform(ma, map)); + } + } + + return map; + } else if (du.resolveDataType() instanceof CollectionDataType) { + if (du instanceof DataElementUse) { + return ((DataElementUse) du).getItem().stream() + .map(this::transform) + .collect(Collectors.toList()); + } else { + return null; + } + } else if (du.resolveDataType() instanceof SimpleDataType) { + if (du instanceof LiteralValueUse) { + //TODO: also intValue and boolValue + //TODO: also differentiate during JSON2TDL + LiteralValueUse lvu = ((LiteralValueUse) du); + if (lvu.getIntValue()!=null) { + return lvu.getIntValue(); + } else if (lvu.getBoolValue()!=null) { + return lvu.getBoolValue(); + } + return lvu.getValue(); + } else { + //TODO: handle other data uses + return null; + } + } else { + //TODO: handle other data uses + return null; + } + + } + + private void transform(ParameterBinding pb, LinkedHashMap map) { + String key = pb.getParameter().getName(); + //TODO: handle extensions? + String mappedKey = parameterMappings.get(pb.getParameter()); + if (mappedKey != null) { + key = mappedKey; + }; + map.put(key, transform(pb.getDataUse())); + } + + private void transform(MemberAssignment ma, LinkedHashMap map) { + String key = ma.getMember().getName(); + //TODO: handle extensions? + String mappedKey = parameterMappings.get(ma.getMember()); + if (mappedKey != null) { + key = mappedKey; + }; + map.put(key, transform(ma.getMemberSpec())); + } + + +} diff --git a/plugins/org.etsi.mts.tdl.model/.classpath b/plugins/org.etsi.mts.tdl.model/.classpath index 2534a1484b3a8b09fbcd4bc81d5ef3007be4c17e..ad0cecafb26ec831709f3a76542866cbd9a84f17 100644 --- a/plugins/org.etsi.mts.tdl.model/.classpath +++ b/plugins/org.etsi.mts.tdl.model/.classpath @@ -2,7 +2,7 @@ - + - + diff --git a/plugins/org.etsi.mts.tdl.model/.gitignore b/plugins/org.etsi.mts.tdl.model/.gitignore index 83e8337fe52ffcf87e0a97bf12b1471442dc9608..8b137891791fe96927ad78e64b0aad7bded08bdc 100644 --- a/plugins/org.etsi.mts.tdl.model/.gitignore +++ b/plugins/org.etsi.mts.tdl.model/.gitignore @@ -1 +1 @@ -/src-gen + diff --git a/plugins/org.etsi.mts.tdl.model/.project b/plugins/org.etsi.mts.tdl.model/.project index 4e99f18ef751a945a5fff6fcc06d56066f6aa8ca..16b43bee5312266ce6e198be33367349922d6e44 100644 --- a/plugins/org.etsi.mts.tdl.model/.project +++ b/plugins/org.etsi.mts.tdl.model/.project @@ -5,6 +5,11 @@ + + org.eclipse.xtext.ui.shared.xtextBuilder + + + org.eclipse.ocl.pivot.ui.oclbuilder @@ -41,10 +46,28 @@ + + org.eclipse.m2e.core.maven2Builder + + + + org.eclipse.m2e.core.maven2Nature org.eclipse.pde.PluginNature org.eclipse.jdt.core.javanature org.eclipse.ocl.pivot.ui.oclnature + org.eclipse.xtext.ui.shared.xtextNature + + + 1681412457732 + + 30 + + org.eclipse.core.resources.regexFilterMatcher + node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__ + + + diff --git a/plugins/org.etsi.mts.tdl.model/.settings/org.eclipse.core.resources.prefs b/plugins/org.etsi.mts.tdl.model/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000000000000000000000000000000000000..99f26c0203a7844de00dbfc56e6a35d8ed3c022c --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/plugins/org.etsi.mts.tdl.model/.settings/org.eclipse.jdt.core.prefs b/plugins/org.etsi.mts.tdl.model/.settings/org.eclipse.jdt.core.prefs index 0c68a61dca867ceb49e79d2402935261ec3e3809..4a7e0723d6efee0525a636a07706c95bbbe13f88 100644 --- a/plugins/org.etsi.mts.tdl.model/.settings/org.eclipse.jdt.core.prefs +++ b/plugins/org.etsi.mts.tdl.model/.settings/org.eclipse.jdt.core.prefs @@ -1,7 +1,7 @@ eclipse.preferences.version=1 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 -org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.compliance=11 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error org.eclipse.jdt.core.compiler.problem.enumIdentifier=error -org.eclipse.jdt.core.compiler.source=1.8 +org.eclipse.jdt.core.compiler.source=11 diff --git a/plugins/org.etsi.mts.tdl.model/.settings/org.eclipse.m2e.core.prefs b/plugins/org.etsi.mts.tdl.model/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000000000000000000000000000000000000..f897a7f1cb2389f85fe6381425d29f0a9866fb65 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/plugins/org.etsi.mts.tdl.model/META-INF/MANIFEST.MF b/plugins/org.etsi.mts.tdl.model/META-INF/MANIFEST.MF index 937bd297a89ac766bae06fe572995a21e6d0ba55..2e217a5430a02b0e28eaa0935d566c2baf5e25a5 100644 --- a/plugins/org.etsi.mts.tdl.model/META-INF/MANIFEST.MF +++ b/plugins/org.etsi.mts.tdl.model/META-INF/MANIFEST.MF @@ -7,7 +7,7 @@ Bundle-Version: 1.4.0.qualifier Bundle-ClassPath: . Bundle-Vendor: %providerName Bundle-Localization: plugin -Bundle-RequiredExecutionEnvironment: JavaSE-1.8 +Bundle-RequiredExecutionEnvironment: JavaSE-1.7 Export-Package: org.etsi.mts.tdl, org.etsi.mts.tdl.extendedconfigurations, org.etsi.mts.tdl.extendedconfigurations.impl, @@ -20,8 +20,15 @@ Export-Package: org.etsi.mts.tdl, Require-Bundle: org.eclipse.core.runtime, org.eclipse.emf.ecore;visibility:=reexport, org.eclipse.emf.ecore.xmi;visibility:=reexport, - org.eclipse.ocl.pivot, + org.etsi.mts.tdl.model;visibility:=reexport, + org.eclipse.ocl.pivot;visibility:=reexport, org.eclipse.ocl.xtext.essentialocl, - org.eclipse.ocl.xtext.essentialocl.ui;bundle-version="1.1.0" + org.eclipse.ocl.xtext.completeocl, + org.eclipse.emf.mwe2.launch;resolution:=optional, + org.eclipse.emf.mwe2.lib;resolution:=optional, + org.eclipse.emf.codegen.ecore;resolution:=optional, + org.apache.log4j;resolution:=optional, + org.apache.commons.logging;resolution:=optional Eclipse-LazyStart: true Bundle-ActivationPolicy: lazy +Bundle-Activator: org.etsi.mts.tdl.Activator diff --git a/plugins/org.etsi.mts.tdl.model/build.properties b/plugins/org.etsi.mts.tdl.model/build.properties index f7cd8a9b75ebb433177e324b3f52b010fe304d1c..45eb16db25c38c2057539c2764a2e1eac4b7ff6a 100644 --- a/plugins/org.etsi.mts.tdl.model/build.properties +++ b/plugins/org.etsi.mts.tdl.model/build.properties @@ -4,8 +4,9 @@ bin.includes = .,\ model/,\ META-INF/,\ plugin.xml,\ - plugin.properties + plugin.properties,\ + library/ jars.compile.order = . source.. = src/,\ src-gen/ -output.. = bin/ +output.. = target/classes/ diff --git a/plugins/org.etsi.mts.tdl.model/model/GenerateTDL.mwe2 b/plugins/org.etsi.mts.tdl.model/model/GenerateTDL.mwe2 new file mode 100644 index 0000000000000000000000000000000000000000..bfa5a1204f994da6f508fdafe10c004cdf3e6c42 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/model/GenerateTDL.mwe2 @@ -0,0 +1,52 @@ +module org.etsi.mts.tdl.GenerateTDL + +import org.eclipse.xtext.xtext.generator.* +import org.eclipse.xtext.xtext.generator.model.project.* + +var rootPath = "platform:/resource/org.etsi.mts.tdl.model" +//var rootPath = "platform:/resource/" +var rootPaths = "org.etsi.mts.tdl.model" + +Workflow { + + bean = org.eclipse.emf.mwe.utils.StandaloneSetup { +// platformUri=".." + scanClassPath = true + } + + component = org.eclipse.emf.mwe.utils.DirectoryCleaner { + directory ="src-gen" + } + + component = org.eclipse.emf.mwe2.ecore.EcoreGenerator { + generateCustomClasses = false + generateModel = true + generateEdit = false + generateEditor = false + genModel = "platform:/resource/${rootPaths}/model/tdl.genmodel" + srcPath = "platform:/resource/${rootPaths}/src-gen" +// genModel = "../plugins/${rootPaths}/model/tdl.genmodel" + } + + component = org.eclipse.emf.mwe2.ecore.EcoreGenerator { + generateCustomClasses = false + generateModel = true + generateEdit = false + generateEditor = false + genModel = "platform:/resource/${rootPaths}/model/structured.genmodel" + srcPath = "platform:/resource/${rootPaths}/src-gen" + } + + component = org.eclipse.emf.mwe2.ecore.EcoreGenerator { + generateCustomClasses = false + generateModel = true + generateEdit = false + generateEditor = false + genModel = "platform:/resource/${rootPaths}/model/configurations.genmodel" + srcPath = "platform:/resource/${rootPaths}/src-gen" + } + + +} +//TODO: move to separate project? +//TODO: repeat for structured and configurations diff --git a/plugins/org.etsi.mts.tdl.model/model/configurations.ecore b/plugins/org.etsi.mts.tdl.model/model/configurations.ecore index 3262aa516f6c8102370fac985c3b84b6ec280d31..ae3e8fb334e60f7c9aa0375000048a58f8bb945d 100644 --- a/plugins/org.etsi.mts.tdl.model/model/configurations.ecore +++ b/plugins/org.etsi.mts.tdl.model/model/configurations.ecore @@ -1,31 +1,28 @@ - -]>

- + - + + eType="ecore:EClass tdl.ecore#//TestConfiguration"/> + eSuperTypes="tdl.ecore#//Element"> - + + eType="ecore:EClass tdl.ecore#//ComponentInstance"/> @@ -35,10 +32,10 @@ - + - + diff --git a/plugins/org.etsi.mts.tdl.model/model/configurations.genmodel b/plugins/org.etsi.mts.tdl.model/model/configurations.genmodel new file mode 100644 index 0000000000000000000000000000000000000000..3a5aac0a943718b430943ca6c66cefc2121bf9bd --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/model/configurations.genmodel @@ -0,0 +1,36 @@ + + + configurations.ecore + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/plugins/org.etsi.mts.tdl.model/model/structured.ecore b/plugins/org.etsi.mts.tdl.model/model/structured.ecore index 8462dc80492a9510a51c11ea85ff6e43b754b4b6..f9179c2ce5a3c64b24d14e2c0979a0b931e7dc51 100644 --- a/plugins/org.etsi.mts.tdl.model/model/structured.ecore +++ b/plugins/org.etsi.mts.tdl.model/model/structured.ecore @@ -1,15 +1,36 @@ - -]>
- - + + + +
+ + + + +
+ + + + + +
+ + + + + + +
+ + + + - + - + - + - + - + - + - + - - - - + + + + - + - + - + - - - + + + + eType="ecore:EClass tdl.ecore#//StaticDataUse" containment="true"/> - + - + - + - + - + - + - + - + - + - + - + - + - + + + structured.ecore + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/plugins/org.etsi.mts.tdl.model/model/tdl-configurations-constraints.ocl b/plugins/org.etsi.mts.tdl.model/model/tdl-configurations-constraints.ocl new file mode 100644 index 0000000000000000000000000000000000000000..89e3e40e86eaa49a9f16f42d0e5947a707781e3e --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/model/tdl-configurations-constraints.ocl @@ -0,0 +1,29 @@ +import 'http://www.etsi.org/spec/TDL/1.4.1' +import 'http://www.etsi.org/spec/TDL/1.3.1/configurations' + +package extendedconfigurations + +context ComponentMerge + -- No self-merging + inv NoSelfMerge ('A \'ComponentInstance\' shall not be merged with itself, i.e. the source and target \'ComponentInstance\'s specified by means of the \'ComponentReference\'s shall be different. ' + self.toString()): + not (self.component.component = self.target.component and + self.component.configuration = self.target.configuration) + + + -- Conforming 'ComponentType's + inv ComponentMergeType ('The \'ComponentInstance\' specified by means of the target \'ComponentReference\'s shall have a \'ComponentType\' which conforms to the \'ComponentType\' of the source \'ComponentReference\'. ' + self.toString()): + self.target.component.type.conformsTo(self.component.component.type) + + + + +context ComponentAlias + -- Mandatory name + inv AliasMandatoryName ('The \'name\' property of the \'ComponentAlias\' shall be set and it shall not be an empty String.' + self.toString()): + not self.name.oclIsUndefined() and self.name.size() > 0 + + + + + +endpackage diff --git a/plugins/org.etsi.mts.tdl.model/model/tdl-constraints.ocl b/plugins/org.etsi.mts.tdl.model/model/tdl-constraints.ocl new file mode 100644 index 0000000000000000000000000000000000000000..6bc9670bce411dcbc698b997ae450d48a4ef8175 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/model/tdl-constraints.ocl @@ -0,0 +1,1152 @@ +import 'http://www.etsi.org/spec/TDL/1.4.1' + +package tdl + +context NamedElement + -- Mandatory name + inv MandatoryName ('A \'NamedElement\' shall have the \'name\' property set and the \'name\' shall be not an empty String.' + self.toString()): + not self.name.oclIsUndefined() and self.name.size() > 0 + + + -- Distinguishable qualified names + inv DistinquishableName ('All qualified names of instances of \'NamedElement\'s shall be distinguishable within a TDL model.' + self.toString()): + NamedElement.allInstances()->one(e | e.qualifiedName = self.qualifiedName) + + + -- [NOTE: It is up to the concrete syntax definition and tooling to resolve any name clashes between instances of the same meta-class in the qualified name.] + + +context Package + -- No cyclic imports + inv CyclicImports ('A \'Package\' shall not import itself directly or indirectly.' + self.toString()): + self.import->asOrderedSet()->closure(i | i.importedPackage.import)->forAll(i | + i.importedPackage <> self) + + + + +context ElementImport + -- Consistency of imported elements + inv ConsistentImports ('All imported \'PackageableElement\'s referenced by an \'ElementImport\' shall be directly owned by the imported \'Package\'.' + self.toString()): + self.importedElement->forAll(e | self.importedPackage.packagedElement->includes(e)) + + + -- [Figure 5.2: Miscellaneous elements] + + +context Comment + -- No nested comments + inv CommentNestedComments ('A \'Comment\' shall not contain \'Comment\'s.' + self.toString()): + self.comment->isEmpty() + + + -- No annotations to comments + inv CommentNestedAnnotations ('A \'Comment\' shall not contain \'Annotation\'s.' + self.toString()): + self.annotation->isEmpty() + + + + +context Annotation + -- No nested annotations + inv AnnotationNestedAnnotations ('An \'Annotation\' shall not contain \'Annotation\'s' + self.toString()): + self.annotation->isEmpty() + + + -- No comments to annotations + inv AnnotationNestedComments ('An \'Annotation\' shall not contain \'Comment\'s.' + self.toString()): + self.comment->isEmpty() + + + + +context Extension + -- Inherit from element of the same meta-class + inv Extension ('The element containing an \'Extension\' and the element in the \'extending\' property shall have the same meta-class.' + self.toString()): + self.container().oclType() = self.extending.oclType() + + + + +context Constraint + -- Effectively static quantifiers + inv StaticQuantifiers ('All \'DataUse\'s specified as \'quantifier\'s shall be effectively static.' + self.toString()): + self.quantifier->forAll(q | q.isEffectivelyStatic()) + + + -- Empty arguments for quantifiers + inv NoArgumentQuantifiers ('The \'argument\' sets for all \'DataUse\'s specified as \'quantifier\'s shall be empty.' + self.toString()): + self.quantifier->forAll(q | q.argument->isEmpty()) + + + -- Constraint applicability for 'union' and 'uniontype' + inv ConstraintApplicabilityUnionUniontype ('The predefined \'ConstraintType\'s \'union\' and \'uniontype\' shall be applied to \'StructuredDataType\'s only. ' + self.toString()): + (self.type.name = 'union' or self.type.name = 'uniontype') + implies self.container().oclIsTypeOf(StructuredDataType) + + + -- Constraint applicability for 'range' and 'format' + inv ConstraintApplicabilityRangeFormat ('The predefined \'ConstraintType\'s \'range\' and \'format\' shall be applied to \'SimpleDataType\'s and \'Member\'s with a \'SimpleDataType\' \'dataType\' only. ' + self.toString()): + (self.type.name = 'range' or self.type.name = 'format') + implies (self.container().oclIsTypeOf(SimpleDataType) + or (self.container().oclIsTypeOf(Member) + and self.container().oclAsType(Member).dataType.oclIsTypeOf(SimpleDataType))) + + + -- Constraint applicability for 'length', 'minLength', and 'maxLength' + inv ConstraintApplicabilityLength ('The predefined \'ConstraintType\'s \'length\', \'minLength\', and \'maxLength\' shall be applied to \'CollectionDataType\'s, \'SimpleDataType\'s and \'Member\'s with a \'SimpleDataType\' or a \'CollectionDataType\' \'dataType\' only. ' + self.toString()): + (self.type.name = 'length' or self.type.name = 'minLength' or self.type.name = 'maxLength') + implies (self.container().oclIsTypeOf(SimpleDataType) + or self.container().oclIsTypeOf(CollectionDataType) + or (self.container().oclIsTypeOf(Member) + and self.container().oclAsType(Member).dataType.oclIsTypeOf(SimpleDataType)) + and self.container().oclAsType(Member).dataType.oclIsTypeOf(CollectionDataType)) + + + -- Quantifiers for 'length', 'minLength', and 'maxLength' + inv ConstraintQuantifierLength ('The predefined \'ConstraintType\'s \'length\', \'minLength\', and \'maxLength\' shall be used with exactly one \'quantifier\' resolved to an instance conforming to the predefined \'Integer\' \'DataType\'. ' + self.toString()): + (self.type.name = 'length' or self.type.name = 'minLength' or self.type.name = 'maxLength') + implies (self.quantifier->size() = 1 + and self.quantifier->forAll(q | q.resolveDataType().conformsTo('Integer'))) + + + -- Quantifiers for 'range' + inv ConstraintQuantifierRange ('The predefined \'ConstraintType\' \'range\' shall be used with exactly two \'quantifier\'s resolved to instance conforming to the predefined \'Integer\' \'DataType\'. ' + self.toString()): + (self.type.name = 'length') + implies (self.quantifier->size() = 2 + and self.quantifier->forAll(q | q.resolveDataType().conformsTo('Integer'))) + + + + +context DataElementMapping + -- Restricted use of 'ParameterMapping' + inv ParameterMappingType ('A set of \'ParameterMapping\'s may only be provided if \'mappableDataElement\' refers to a \'StructuredDataType\', an \'Action\' or a \'Function\' definition and the \'mappableDataElement\' contains the mapped \'Parameters\'.' + self.toString()): + self.parameterMapping->size() = 0 + or (self.mappableDataElement.oclIsTypeOf(StructuredDataType) + and self.parameterMapping->forAll(p | + self.mappableDataElement.oclAsType(StructuredDataType).allMembers()->includes(p.parameter))) + or (self.mappableDataElement.oclIsKindOf(Action) + and self.parameterMapping->forAll(p | + self.mappableDataElement.oclAsType(Action).formalParameter->includes(p.parameter))) + + + -- All parameters shall be mapped + inv ParameterMappings ('If the \'mappableDataElement\' refers to a \'StructuredDataType\', an \'Action\' or a \'Function\' definition, all the \'Parameters\' contained in the \'mappableDataElement\' shall be mapped.' + self.toString()): + (self.mappableDataElement.oclIsKindOf(SimpleDataType) or self.mappableDataElement.oclIsKindOf(DataInstance) + or (self.mappableDataElement.oclIsTypeOf(StructuredDataType) + and self.mappableDataElement.oclAsType(StructuredDataType).member->forAll(p | + self.parameterMapping->exists(m | m.parameter = p))) + or (self.mappableDataElement.oclIsKindOf(Action) + and self.mappableDataElement.oclAsType(Action).formalParameter->forAll(p | + self.parameterMapping->exists(m | m.parameter = p)) + and self.parameterMapping->forAll(p | + self.mappableDataElement.oclAsType(Action).formalParameter->includes(p.parameter)))) + + + + +context SimpleDataInstance + -- SimpleDataInstance shall refer to SimpleDataType + inv SimpleDataInstanceType ('The inherited reference \'dataType\' from \'DataInstance\' shall refer to instances of \'SimpleDataType\' solely.' + self.toString()): + self.dataType.oclIsKindOf(SimpleDataType) + + + -- SimpleDataInstance container in EnumDataType + inv EnumDataInstanceContainment ('A \'SimpleDataInstance\' whose \'dataType\' property refers to an \'EnumDataType\' shall be contained in that \'EnumDataType\'.' + self.toString()): + not self.dataType.oclIsKindOf(EnumDataType) or self.oclContainer() = self.dataType + + + -- [Figure 6.3: Structured data type and instance] + + +context StructuredDataType + -- Different member names in a structured data type + inv DistinguishableMemberNames ('All \'Member\' names of a \'StructuredDataType\' (including the names of inherited \'Members\') shall be distinguishable.' + self.toString()): + self.allMembers()->isUnique(e | e.name) + + + + +context StructuredDataInstance + -- StructuredDataInstance shall refer to StructuredDataType + inv StructuredDataInstance ('The inherited reference \'dataType\' from \'DataInstance\' shall refer to instances of \'StructuredDataType\' solely.' + self.toString()): + self.dataType.oclIsTypeOf(StructuredDataType) + + + -- 'Member' of the 'StructuredDataType' + inv ExistingMemberOfDataType ('The referenced \'Member\' shall be contained in or inherited by the \'StructuredDataType\' that the \'StructuredDataInstance\', which contains this \'MemberAssignment\', refers to.' + self.toString()): + self.memberAssignment->forAll(a | self.dataType.oclAsType(StructuredDataType).allMembers()->includes(a.member)) + + + -- Unique assignments for each 'Member' of the 'StructuredDataType' + inv UniqueMemberAssignments ('There shall be at most one \'memberAssignment\' for each \'Member\' of the \'StructuredDataType\' that the \'StructuredDataInstance\', which contains this \'MemberAssignment\', refers to.' + self.toString()): + self.memberAssignment->isUnique(m | m.member) + + + -- 'union' constraint on the type of the 'StructuredDataInstance' + inv StructuredDataInstanceUnionConstraint ('If the \'dataType\' of the \'StructuredDataInstance\' has the predefined constraint \'union\' then the \'memberAssignment\' shall not contain more than one \'MemberAssignment\'.' + self.toString()): + not self.dataType.allConstraints()->exists(c | c.type.name = 'union') + or self.memberAssignment->size() <= 1 + + + -- 'uniontype' constraint on the type of the 'StructuredDataInstance' + inv StructuredDataInstanceUniontypeConstraint ('If the \'dataType\' of \'StructuredDataInstance\' has the predefined constraint \'uniontype\' then there shall only be \'MemberAssignment\' for the \'Member\'s of the \'dataType\' itself or of at most one of the \'StructuredDataType\'s which the \'dataType\' is extending.' + self.toString()): + not self.dataType.allConstraints()->exists(c | c.type.name = 'uniontype') + or self.memberAssignment->forAll(m | self.dataType.oclAsType(StructuredDataType).member->includes(m) + or self.dataType.oclAsType(StructuredDataType).extension->one(e | + e.extending.oclAsType(StructuredDataType).allMembers()->includes(m))) + + + + +context MemberAssignment + -- Type of a 'memberSpec' shall conform to the type of the 'member' + inv MatchingMemberDataType ('The \'DataType\' of the \'DataUse\' of \'memberSpec\' shall conform to the \'DataType\' of the \'Member\' of the \'MemberAssignment\'.' + self.toString()): + self.memberSpec.resolveDataType().conformsTo(self.member.dataType) + + + -- Restricted use of 'OmitValue' for optional 'Member's only + inv OmitValueUse ('A non-optional \'Member\' shall have a \'DataUse\' specification assigned to it that is different from \'OmitValue\' and \'AnyValueOrOmit\'.' + self.toString()): + (self.memberSpec.oclIsTypeOf(OmitValue) or self.memberSpec.oclIsTypeOf(AnyValueOrOmit)) + implies self.member.isOptional = true + + + -- Static data use in 'memberSpec' + inv StaticDataInMemberSpec ('The \'memberSpec\' and all of its \'ParameterBinding\'s shall be effectively static. ' + self.toString()): + self.memberSpec.isEffectivelyStatic() + + + -- [Figure 6.4: Collection data] + + +context CollectionDataType + -- No multidimensional collections + inv NoMultidimensionalCollections ('The \'itemType\' shall not be an instance of \'CollectionDataType\'. ' + self.toString()): + not self.itemType.oclIsKindOf(CollectionDataType) + + + + +context CollectionDataInstance + -- CollectionDataInstance shall refer to CollectionDataType + inv CollectionDataInstanceType ('The inherited reference \'dataType\' from \'DataInstance\' shall refer to instances of \'CollectionDataType\' solely.' + self.toString()): + self.dataType.oclIsKindOf(CollectionDataType) + + + -- Type of items in the 'CollectionDataInstance' + inv CollectionDataInstanceItemType ('The items in \'CollectionDataInstance\' shall conform to the \'itemType\' of the \'CollectionDataType\' that is defined as the \'dataType\' of this \'CollectionDataInstance\'. ' + self.toString()): + self.item->forAll(i | + i.resolveDataType().conformsTo(self.dataType.oclAsType(CollectionDataType).itemType)) + + + -- Static data use in 'item' + inv StaticDataInItem ('The DataUse\'s in \'item\' and all of the respective \'ParameterBinding\'s shall be effectively static. ' + self.toString()): + self.item->forAll(i | i.isEffectivelyStatic()) + + + -- Length constraint of the 'CollectionDataInstance' + inv CollectionDataInstanceLengthConstraint ('If the \'dataType\' \'CollectionType\' contains the predefined constraint \'length\' then the length of this \'CollectionDataInstance\' shall be equal to the \'quantifier\' of that \'Constraint\'.' + self.toString()): + true --This constraint cannot be expressed formally. + + + -- [Figure 6.5: Procedure and procedure parameter] + + +context EnumDataType + -- No extensions for EnumDataType + inv EnumDataTypeExtensions ('The \'extension\' property of an \'EnumDataType\' shall be empty.' + self.toString()): + self.extension.oclIsUndefined() + + + + +context DataUse + -- Occurrence of 'argument' and 'reduction' + inv ArgumentReductionLists ('Only in case of a \'FunctionCall\' both the \'argument\' list and the \'reduction\' list may be provided, otherwise either the \'argument\' list, the \'reduction\' list, or none of them shall be provided.' + self.toString()): + self.argument->isEmpty() or self.reduction->isEmpty() or self.oclIsTypeOf(FunctionCall) + + + -- Structured data types in 'reduction' set + inv ReductionMembers ('The \'Member\' referenced by the \'MemberReference\' at index i of a \'reduction\' shall be contained in or inherited by the \'StructuredDataType\' of the \'Member\' referenced by the \'MemberReference\' at index (i - 1) of that \'reduction\'.' + self.toString()): + not self.resolveDataType().oclIsKindOf(StructuredDataType) + or self.reduction->isEmpty() + or self.resolveDataType().oclAsType(StructuredDataType).allMembers()->includes(self.reduction->first().member) + and self.reduction->select(m | self.reduction->indexOf(m) > 1)->forAll(m | + self.reduction->at(self.reduction->indexOf(m)-1).member.dataType.oclIsKindOf(StructuredDataType) + and self.reduction->at(self.reduction->indexOf(m)-1).member.dataType.oclAsType(StructuredDataType).allMembers() + ->includes(m.member)) + + + -- No member with collection index in the first element in reduction + inv FirstReduction ('The first \'MemberReference\' in reduction shall not specify both member and collectionIndex. ' + self.toString()): + self.reduction->first().member.oclIsUndefined() or self.reduction->first().collectionIndex.oclIsUndefined() + + + + +context ParameterBinding + -- Matching data type + inv ParameterBindingTypes ('The provided \'DataUse\' shall conform to the \'DataType\' of the referenced \'Parameter\'.' + self.toString()): + self.dataUse.resolveDataType().conformsTo(self.parameter.dataType) + + + -- Use of a 'StructuredDataInstance' with non-optional 'Member's + inv OmitValueParameter ('A non-optional \'Member\' of a \'StructuredDataType\' shall have a \'DataUse\' specification assigned to it that is different from \'OmitValue\' or \'AnyValueOrOmit\'.' + self.toString()): + self.parameter.oclIsTypeOf(Member) and self.parameter.oclAsType(Member).isOptional = false + implies not self.dataUse.oclIsTypeOf(OmitValue) and not self.dataUse.oclIsTypeOf(AnyValueOrOmit) + + + + +context MemberReference + -- Collection index expressions for collections only + inv CollectionIndex ('If the type of the related \'DataUse\' is not \'CollectionDataType\' then the collectionIndex shall be undefined. ' + self.toString()): + self.collectionIndex.oclIsUndefined() + or self.container().oclAsType(DataUse).resolveDataType().oclIsKindOf(CollectionDataType) + + + -- Either member or collection index is required + inv MemberOrReduction ('Either the member or collectionIndex shall be specified. ' + self.toString()): + not self.member.oclIsUndefined() or not self.collectionIndex.oclIsUndefined() + + + + +context DataInstanceUse + -- 'DataInstance' reference or non-empty 'argument' or non-empty 'item' + inv DataInstanceOrArgumentsOrItems ('If a \'dataInstance\' is not specified, either a non-empty \'argument\' set or a non-empty \'item\' set shall be specified.' + self.toString()): + not self.dataInstance.oclIsUndefined() or not self.argument->isEmpty() or not self.item->isEmpty() + + + -- Valid 'DataType' for items + inv DataTypeOfItemsInDataInstance ('The items in the \'item\' property shall conform to the \'itemType\' of the resolved \'CollectionDataType\'.' + self.toString()): + self.item->forAll(i | i.resolveDataType().conformsTo(self.resolveDataType().oclAsType(CollectionDataType).itemType)) + + + -- No 'item' if 'dataInstance' is specified + inv NoItemWithDataInstance ('The \'item\' property shall be empty if the \'dataInstance\' property is specified.' + self.toString()): + not self.dataInstance.oclIsUndefined() implies self.item->isEmpty() + + + + +context SpecialValueUse + -- Empty 'argument' and 'reduction' sets + inv SpecialValueArgumentReduction ('The \'argument\' and \'reduction\' sets shall be empty.' + self.toString()): + self.reduction->isEmpty() and self.argument->isEmpty() + + + + +context FunctionCall + -- Matching parameters + inv FunctionCallParameters ('All \'FormalParameter\'s of the invoked \'Function\' shall be bound.' + self.toString()): + self.function.formalParameter->forAll(p | self.argument->exists(a | a.parameter = p)) + + + + +context VariableUse + -- Local variables of tester components only + inv VariableUseComponentRole ('All variables used in a \'DataUse\' specification via a \'VariableUse\' shall be local to the same \'componentInstance\' and the \'componentInstance\' shall be in the role \'Tester\'.' + self.toString()): + self.componentInstance.type.allVariables()->includes(self.variable) + and self.componentInstance.role = ComponentInstanceRole::Tester + + + + +context PredefinedFunctionCall + -- Compatible actual parameters + inv PredefinedFunctionCallParameters ('The number and type of actual parameters shall be compatible with the formal parameters of the invoked \'PredefinedFunction\' according to the specification of the \'PredefinedFunction\'.' + self.toString()): + true --This constraint cannot be expressed formally. + + + -- Empty 'argument' and 'reduction' sets + inv PredefinedFunctionCallArgumentReduction ('The \'argument\' and \'reduction\' sets shall be empty.' + self.toString()): + self.reduction->isEmpty() and self.argument->isEmpty() + + + + +context LiteralValueUse + -- Exactly one value specification + inv SpecifiedLiteralValue ('There shall be exactly one value specification, where either the \'value\', or the \'intValue\', or the \'boolValue\' property is be specified, but not more than one of them.' + self.toString()): + not self.value.oclIsUndefined() + xor not self.intValue.oclIsUndefined() + xor not self.boolValue.oclIsUndefined() + + + -- Empty 'argument' and 'reduction' sets if not 'dataType' + inv LiteralValueArgumentReduction ('If \'dataType\' is not specified then the \'argument\' and \'reduction\' sets shall be empty.' + self.toString()): + (self.dataType.oclIsUndefined()) + implies (self.reduction->isEmpty() and self.argument->isEmpty()) + + + -- Integer type for integer value + inv LiteralValueIntType ('If \'intValue\' is specified then the \'dataType\' is either unspecified or the specified \'DataType\' is instanceof of \'Time\' or conforms to predefined type \'Integer\'.' + self.toString()): + not self.intValue.oclIsUndefined() + implies (self.dataType.oclIsUndefined() or self.dataType.oclIsKindOf(Time) or self.dataType.conformsTo('Integer')) + + + -- Boolean type for Boolean value + inv LiteralValueBoolType ('If \'boolValue\' is specified then the \'dataType\' is either unspecified or the specified \'DataType\' conforms to predefined type \'Boolean\'.' + self.toString()): + not self.boolValue.oclIsUndefined() + implies (self.dataType.oclIsUndefined() or self.dataType.conformsTo('Boolean')) + + + + +context DataElementUse + -- 'DataElement' reference or non-empty 'argument' or non-empty 'item' + inv DataInstanceOrArgumentsOrItemsInDataElementUse ('If a \'dataElement\' is not specified, or if the \'dataElement\' is resolved to a \'StructuredDataType\' or a \'CollectionDataType\', either a non-empty \'argument\' set or a non-empty \'item\' set shall be specified.' + self.toString()): + not (self.dataElement.oclIsUndefined() and self.argument->isEmpty() and self.item->isEmpty()) + and not (self.dataElement.oclIsKindOf(StructuredDataType) and self.argument->isEmpty()) + and not (self.dataElement.oclIsKindOf(CollectionDataType) and self.item->isEmpty()) + + + -- Valid 'DataType' for items + inv DataTypeOfItemsInDataInstance ('The items in the \'item\' property shall conform to the \'itemType\' of the resolved \'CollectionDataType\'.' + self.toString()): + self.item->forAll(i | i.resolveDataType().conformsTo(self.resolveDataType().oclAsType(CollectionDataType).itemType)) + + + -- Only 'item' if the resolved data type is 'CollectionDataType' + inv ItemOnlyWithCollectionDataType ('The \'item\' property shall be non-empty if the \'dataElement\' property is resolved to a \'CollectionDataType\'.' + self.toString()): + (((self.dataElement.oclIsKindOf(CollectionDataType)) + or self.dataElement.oclIsUndefined()) + and not self.item->isEmpty()) + or self.item->isEmpty() + + + -- Matching parameters for 'Function's + inv FunctionCallParameters ('All \'FormalParameter\'s shall be bound if the \'dataElement\' refers to a \'Function\'.' + self.toString()): + not self.dataElement.oclIsKindOf(Function) + or self.dataElement.oclAsType(Function).formalParameter->forAll(p | self.argument->exists(a | a.parameter = p)) + + + + +context TimeLabelUse + -- Empty 'argument' and 'reduction' sets + inv TimeLabelArgumentReduction ('The \'argument\' and \'reduction\' sets shall be empty.' + self.toString()): + self.reduction->isEmpty() and self.argument->isEmpty() + + + -- 'TimeLabel's only within the same 'TestDescription' when local ordering is used + inv TimeLabelLocallyOrdered ('When local ordering is used, \'TimeLabel\'s shall only be used within the same test description. ' + self.toString()): + self.getParentTestDescription().isLocallyOrdered = true + or self.timeLabel.getParentTestDescription() = self.getParentTestDescription() + + + + +context TimeConstraint + -- Time constraint expression of type Boolean + inv TimeConstraintType ('The expression given in the \'DataUse\' specification shall evaluate to predefined type \'Boolean\'.' + self.toString()): + self.timeConstraintExpression.resolveDataType().name = 'Boolean' + + + -- Use of local variables only + inv TimeConstraintVariables ('The expression given in the \'DataUse\' specification shall contain only \'Variable\'s that are local to the \'AtomicBehaviour\' that contains this \'TimeConstraint\'. That is, all \'VariableUse\'s shall reference the \'ComponentInstance\'s which participate in the \'AtomicBehaviour\'.' + self.toString()): + self.timeConstraintExpression.argument + ->closure(a | a.dataUse.argument)->collect(pb | pb.dataUse) + ->union(self.timeConstraintExpression.argument) + ->select(du | du.oclIsKindOf(VariableUse)) + ->forAll(du | self.container().oclAsType(Behaviour).getParticipatingComponents()->includes( + du.oclAsType(VariableUse).componentInstance)) + + + -- Use of local time labels only + inv TimeConstraintTimeLabels ('In case of locally ordered \'TestDescription\', the expression given in the \'DataUse\' specification shall contain only \'TimeLabel\'s that are local to the \'AtomicBehaviour\' that contains this \'TimeConstraint\'. That is, all \'TimeLabel\'s shall be contained in \'AtomicBehaviour\'s involving the \'ComponentInstance\'s which participate in the \'AtomicBehaviour\' that contains this \'TimeConstraint.' + self.toString()): + self.timeConstraintExpression.argument + ->closure(a | a.dataUse.argument)->collect(pb | pb.dataUse) + ->union(self.timeConstraintExpression.argument) + ->select(du | du.oclIsKindOf(TimeLabelUse)) + ->forAll(du | self.container().oclAsType(Behaviour).getParticipatingComponents()->includesAll( + du.oclAsType(TimeLabelUse).timeLabel.container().oclAsType(Behaviour).getParticipatingComponents())) + + + -- [Figure 7.2: Time operations] + + +context TimeOperation + -- Component required in locally ordered test description + inv TimeOperationComponent ('If the \'TimeOperation\' is contained in a locally ordered \'TestDescription\' then the \'componentInstance\' shall be specified.' + self.toString()): + self.getParentTestDescription().isLocallyOrdered + implies not self.componentInstance.oclIsUndefined() + + + -- Time operations on tester components only + inv TimeOperationComponentRole ('A \'TimeOperation\' shall be performed only on a \'ComponentInstance\' in the role \'Tester\'.' + self.toString()): + (not self.componentInstance.oclIsUndefined() + and self.componentInstance.role = ComponentInstanceRole::Tester) + or (self.oclIsTypeOf(Quiescence) + and not self.oclAsType(Quiescence).gateReference.oclIsUndefined() + and self.oclAsType(Quiescence).gateReference.component.role = ComponentInstanceRole::Tester) + + + -- 'Time' data type for period expression + inv TimePeriodType ('The \'DataUse\' expression assigned to the \'period\' shall evaluate to a data instance of the \'Time\' data type.' + self.toString()): + self.period.resolveDataType().oclIsKindOf(Time) + + + + +context Quiescence + -- Exclusive use of gate reference or component instance + inv QuiescenceTarget ('If a \'GateReference\' is provided, a \'ComponentInstance\' shall not be provided and vice versa.' + self.toString()): + self.gateReference.oclIsUndefined() xor self.componentInstance.oclIsUndefined() + + + -- [Figure 7.3: Timer and timer operations] + + +context TimerOperation + -- Timer operations on tester components only + inv TimerOperationComponentRole ('A \'TimerOperation\' shall be performed only on a \'ComponentInstance\' in the role \'Tester\'.' + self.toString()): + self.componentInstance.role = ComponentInstanceRole::Tester + + + + +context TimerStart + -- 'Time' data type for period expression + inv TimerPeriodType ('The \'DataUse\' expression assigned to the \'period\' shall evaluate to a data instance of the \'Time\' data type.' + self.toString()): + self.period.resolveDataType().oclIsKindOf(Time) + + + + +context GateType + -- Compatible 'DataType's. + inv GateType ('The \'DateType\'s specified for the \'GateType\' shall correspond the kind of the \'GateType\'. For \'GateType\' of kind \'Procedure\' only \'ProcedureSignature\'s shall be specified as data types. For \'GateType\' of kind \'Message\' only \'StructuredDataType\'s, \'SimpleDataType\'s and \'CollectionDataType\'s shall be specified as data types. ' + self.toString()): + (self.kind = GateTypeKind::Procedure and self.allDataTypes()->forAll(t | + t.oclIsTypeOf(ProcedureSignature))) + or (self.kind = GateTypeKind::Message and self.allDataTypes()->forAll(t | t.oclIsTypeOf(StructuredDataType) + or t.oclIsKindOf(SimpleDataType) or t.oclIsTypeOf(CollectionDataType))) + + + + +context GateReference + -- Gate instance of the referred component instance + inv GateInstanceReference ('The referred \'GateInstance\' shall be contained in the \'ComponentType\' of the referred \'ComponentInstance\'.' + self.toString()): + self.component.type.allGates()->includes(self.gate) + + + + +context Connection + -- Self-loop connections are not permitted + inv NoSelfLoop ('The \'endPoint\'s of a \'Connection\' shall not be the same. Two endpoints are the same if both, the referred \'ComponentInstance\'s and the referred \'GateInstance\'s, are identical.' + self.toString()): + self.endPoint->forAll(e1 | self.endPoint->one(e2 | e1.gate = e2.gate + and e1.component = e2.component)) + + + -- Consistent type of a connection + inv ConsistentConnectionType ('The \'GateInstance\'s of the two \'endPoint\'s of a \'Connection\' shall refer to the same \'GateType\'.' + self.toString()): + self. endPoint.gate.type->asSet()->size() = 1 + + + + +context TestConfiguration + -- 'TestConfiguration' and components roles + inv ComponentRoles ('A \'TestConfiguration\' shall contain at least one \'Tester\' and one \'SUT\' \'ComponentInstance\'.' + self.toString()): + self.componentInstance->exists(c | c.role = ComponentInstanceRole::Tester) + and self.componentInstance->exists(c | c.role = ComponentInstanceRole::SUT) + + + -- Only 'Connection's between own 'ComponentInstance's + inv OwnedComponents ('A \'TestConfiguration\' shall only contain \'Connection\'s between gates of its own \'ComponentInstance\'s. ' + self.toString()): + self.connection->forAll(c | + self.componentInstance->includesAll(c.endPoint.component)) + + + -- Minimal 'TestConfiguration' + inv MinimalTestConfiguration ('Each \'TestConfiguration\' shall specify at least one \'Connection\' that connects a \'GateInstance\' of a \'ComponentInstance\' in the role \'Tester\' with a \'GateInstance\' of a \'ComponentInstance\' in the role \'SUT\'.' + self.toString()): + self.connection->exists(c | + c.endPoint.component.role->includesAll(Set{ComponentInstanceRole::SUT, ComponentInstanceRole::Tester})) + + + -- At most one connection between any two 'GateInstance'/'ComponentInstance' pairs + inv UniqueConnections ('Given the set of \'Connection\'s contained in a \'TestConfiguration\'. There shall be no two \'Connection\'s containing \'GateReference\'s that in turn refer to identical pairs of \'GateInstance\'/\'ComponentInstance\'.' + self.toString()): + self.connection->forAll(c1 | self.connection->one(c2 | + not c1.endPoint->reject(ep1 | not c2.endPoint->exists(ep2 | + ep1.component = ep2.component and ep1.gate = ep2.gate + ))->isEmpty())) + + + + +context Block + -- Guard shall evaluate to Boolean + inv GuardType ('The type of \'guard\' shall be \'Boolean\'.' + self.toString()): + self.guard ->forAll(g | g.expression.resolveDataType().name = 'Boolean') + + + -- No directly contained 'ExceptionalBehaviour's and 'PeriodicBehaviour's. + inv AllowedBehaviourTypes ('A \'Block\' shall not contain \'ExceptionalBehaviour\'s and \'PeriodicBehaviour\'s.' + self.toString()): + self.behaviour->forAll(b | + not b.oclIsTypeOf(ExceptionalBehaviour) and not b.oclIsTypeOf(PeriodicBehaviour)) + + + -- Guard for each participating tester in locally ordered test descriptions + inv GuardsForParticipatingComponents ('If the \'Block\' is contained in a locally ordered \'TestDescription\' then a guard shall be specified for every participating \'ComponentInstance\' in the associated \'TestConfiguration\' that has the role \'Tester\' or there shall be no guards at all. ' + self.toString()): + self.guard->size() = 0 + or self.getParticipatingComponents()->reject(c | c.role = ComponentInstanceRole::SUT) + ->forAll(c | self.guard->exists(ex | ex.componentInstance = c)) + or not self.getParentTestDescription().isLocallyOrdered + + + -- Single guard in totally ordered test description + inv SingleTotalGuard ('If the \'Block\' is contained in a totally ordered \'TestDescription\' then there shall not be more than one guard. ' + self.toString()): + self.getParentTestDescription().isLocallyOrdered or self.guard->size() <= 1 + + + + +context LocalExpression + -- Local expressions in locally ordered test descriptions have 'ComponentInstance' specified + inv LocalExpressionComponent ('If the \'LocalExpression\' is contained in a locally ordered \'TestDescription\' then the componentInstance shall be specified. ' + self.toString()): + self.getParentTestDescription().isLocallyOrdered + implies not self.componentInstance.oclIsUndefined() + + + -- Only local variables and time labels in case of locally ordered test description + inv LocalVariablesAndTimersInExpression ('If the componentInstance is specified then all \'Variable\'s and \'TimeLabel\'s used in the expression shall be local to that \'ComponentInstance\'.' + self.toString()): + self.expression.argument + ->closure(a | a.dataUse.argument)->collect(pb | pb.dataUse) + ->union(self.expression.argument) + ->including(self.expression) + ->select(du | du.oclIsKindOf(VariableUse)) + ->forAll(du | du.oclAsType(VariableUse).componentInstance = self.componentInstance) + and self.expression.argument + ->closure(a | a.dataUse.argument)->collect(pb | pb.dataUse) + ->union(self.expression.argument) + ->including(self.expression) + ->select(du | du.oclIsKindOf(TimeLabelUse)) + ->forAll(du | du.oclAsType(TimeLabelUse).timeLabel.container().oclAsType(Behaviour) + .getParticipatingComponents()->includes(self.componentInstance)) + + + + +context BoundedLoopBehaviour + -- No guard constraint + inv BoundedGuard ('The \'Block\' of a \'BoundedLoopBehaviour\' shall not have a \'guard\'.' + self.toString()): + self.block->forAll(b | b.guard.oclIsUndefined()) + + + -- Iteration number shall be countable and positive + inv LoopIteration ('The expression assigned to the \'numIteration\' property shall evaluate to a countable \'SimpleDataInstance\' of an arbitrary user-defined data type, e.g. a positive Integer value.' + self.toString()): + self.numIteration->forAll(e | e.expression.resolveDataType().conformsTo('Integer')) + + + -- Iteration count in locally ordered test descriptions + inv IterationCountsForParticipatingComponents ('If the \'BoundedLoopBehaviour\' is contained in a locally ordered \'TestDescription\' then a numIteration shall be specified for every participating \'ComponentInstance\' that has the role \'Tester\'.' + self.toString()): + self.block.getParticipatingComponents()->reject(c | c.role = ComponentInstanceRole::SUT) + ->forAll(c | self.numIteration->exists(ex | ex.componentInstance = c)) + or not self.getParentTestDescription().isLocallyOrdered + + + -- Single numIteration in totally ordered test description + inv SingleTotalIterationCount ('If the \'BoundedLoopBehaviour\' is contained in a totally ordered \'TestDescription\' then there shall be exactly one numIteration.' + self.toString()): + self.getParentTestDescription().isLocallyOrdered or self.numIteration->size() = 1 + + + + +context OptionalBehaviour + -- First 'AtomicBehaviour' in block allowed + inv OptionalBehaviourStart ('The block of an \'OptionalBehaviour\' shall start with a tester-to-tester \'Interaction\'. ' + self.toString()): + self.block.behaviour->first().oclIsKindOf(Interaction) + and self.block.behaviour->first().oclAsType(Interaction) + ->collect(i | i.sourceGate.component->union(i.target.targetGate.component)) + ->forAll(c | c.role = ComponentInstanceRole::Tester) + + + -- No other testers except the participants of starting 'Interaction' within 'OptionalBehaviour' in locally ordered 'TestDescription' + inv OptionalBehaviourParticipation ('If an \'OptionalBehaviour\' is included in a locally ordered \'TestDescription\' then no other tester \'ComponentInstance\' shall participate in the block of the \'OptionalBehaviour\' than the source and target of the starting \'Interaction\' except when being a target of the starting \'Interaction\' in a nested \'OptionalBehaviour\'. ' + self.toString()): + let initial = self.block.behaviour->first().oclAsType(Interaction), + initialComponents = initial->collect(i | i.sourceGate.component->union(i.target.targetGate.component)), + optionals = self.block->closure( + b | b.behaviour + ->select(oclIsKindOf(SingleCombinedBehaviour)).oclAsType(SingleCombinedBehaviour).block + ->union(b.behaviour + ->select(oclIsKindOf(MultipleCombinedBehaviour)).oclAsType(MultipleCombinedBehaviour).block) + ).behaviour->select(oclIsKindOf(OptionalBehaviour)).oclAsType(OptionalBehaviour), + optionalTargets = optionals.block->select(b | b.behaviour->select(i | i.oclIsKindOf(Interaction))->first().oclAsType(Interaction).target.targetGate.component) + in + self.block.getParticipatingComponents() + ->forAll(c | initialComponents->includes(c) or optionalTargets->includes(c)) + or not self.getParentTestDescription().isLocallyOrdered + + + + +context AlternativeBehaviour + -- Number of 'Block's + inv AlternativeBlockCount ('An \'AlternativeBehaviour\' shall contain at least two \'Block\'s. ' + self.toString()): + self.block->size() > 1 + + + -- First behaviour of 'Block's + inv FirstBlockBehaviour ('Each block of an \'AlternativeBehaviour\' shall start with a tester-input event. ' + self.toString()): + self.block->forAll(b | b.behaviour->first().isTesterInputEvent()) + + + -- Same component if locally ordered + inv AlternativeBlocksComponent ('If the containing \'TestDescription\' is locally ordered then all \'Block\'s shall start with a tester-input event of the same \'ComponentInstance\'. ' + self.toString()): + let initial = self.block.behaviour->first() in + Set{} + ->including(initial->select(oclIsKindOf(Interaction)).oclAsType(Interaction).target.targetGate.component) + ->including(initial->select(oclIsKindOf(Quiescence)).oclAsType(Quiescence).componentInstance) + -> including(initial->select(oclIsKindOf(TimeOut)).oclAsType(TimeOut).componentInstance) + ->size() = 1 or not self.getParentTestDescription().isLocallyOrdered + + + -- Tester participating in locally ordered case + inv AlternativeBehaviourParticipation ('If the \'AlternativeBehaviour\' is contained in a locally ordered \'TestDescription\' then no other tester \'ComponentInstance\' shall participate in any block than the target of the first tester-input event and \'ComponentInstance\'s participating in blocks of contained \'OptionalBehaviour\'s. ' + self.toString()): + let initial = self.block.behaviour->first(), + targetComponent = Set{} + ->including(initial->select(oclIsKindOf(Interaction)).oclAsType(Interaction).target.targetGate.component) + ->including(initial->select(oclIsKindOf(Quiescence)).oclAsType(Quiescence).componentInstance) + -> including(initial->select(oclIsKindOf(TimeOut)).oclAsType(TimeOut).componentInstance), + nonOptionalBlocks = self.block->closure( + b | b.behaviour->reject(oclIsKindOf(OptionalBehaviour)) + ->select(oclIsKindOf(SingleCombinedBehaviour)).oclAsType(SingleCombinedBehaviour).block + ->union(b.behaviour->reject(oclIsKindOf(OptionalBehaviour)) + ->select(oclIsKindOf(MultipleCombinedBehaviour)).oclAsType(MultipleCombinedBehaviour).block) + ) + in + targetComponent->includesAll( + nonOptionalBlocks.getParticipatingComponents()->reject(c | c.role = ComponentInstanceRole::SUT)) + or not self.getParentTestDescription().isLocallyOrdered + + + -- OptionalBehaviour in locally ordered case + inv OptionalAlternativeBehaviour ('A block of an \'AlternativeBehaviour\' if the containing \'TestDescription\' is locally ordered, shall only contain \'OptionalBehaviour\'(s) whose source \'ComponentInstance\' is the same as the target of the first tester-input event of that \'Block\'. ' + self.toString()): + let initial = self.block.behaviour->first(), + targetComponent = Set{} + ->including(initial->select(oclIsKindOf(Interaction)).oclAsType(Interaction).target.targetGate.component) + ->including(initial->select(oclIsKindOf(Quiescence)).oclAsType(Quiescence).componentInstance) + -> including(initial->select(oclIsKindOf(TimeOut)).oclAsType(TimeOut).componentInstance) + in + self.block.behaviour->select(oclIsKindOf(OptionalBehaviour)) .oclAsType(OptionalBehaviour).block + ->first().oclAsType(Interaction).sourceGate.component->forAll(c | targetComponent->includes(c)) + or not self.getParentTestDescription().isLocallyOrdered + + + + +context ConditionalBehaviour + -- Guard for 'ConditionalBehaviour' with single block + inv ConditionalFirstGuard ('If there is only one \'Block\' specified, it shall have a \'guard\'.' + self.toString()): + self.block->size() > 1 or self.block->first().guard->size() > 1 + + + -- Possible else block for 'ConditionalBehaviour' with multiple blocks + inv ConditionalLastGuard ('All \'Block\'s specified, except the last one, shall have a \'guard\'.' + self.toString()): + self.block->size() = 1 + or self.block->forAll(b | b = self.block->last() or b.guard ->size() > 1) + + + + +context ParallelBehaviour + -- Number of blocks in 'ParallelBehaviour' + inv ParallelBlockCount ('There shall be at least two \'Block\'s specified.' + self.toString()): + self.block->size() > 1 + + + -- [Figure 9.3: Exceptional and periodic behaviour] + + +context ExceptionalBehaviour + -- First 'AtomicBehaviour' in block allowed + inv FirstExceptionalBehaviour ('The block of an \'ExceptionalBehaviour\' shall start with a tester-input event.' + self.toString()): + self.block.behaviour->first().isTesterInputEvent() + + + -- Guarded component shall be a 'Tester' component + inv ExceptionalGuardedComponent ('The \'guardedComponent\' shall refer to a \'ComponentInstance\' with the role of \'Tester\'.' + self.toString()): + self.guardedComponent.oclIsUndefined() or self.guardedComponent.role = ComponentInstanceRole::Tester + + + -- Same component if locally ordered and guarded component present + inv ExceptionalGuardedandTargetComponent ('If the containing \'TestDescription\' is locally ordered and guardedComponent is specified then the \'Block\'s shall start with tester-input event of the same \'ComponentInstance\' as specified in guardedComponent. ' + self.toString()): + let initial = self.block.behaviour->first(), + targetComponent = Set{} + ->including(initial->select(oclIsKindOf(Interaction)).oclAsType(Interaction).target.targetGate.component) + ->including(initial->select(oclIsKindOf(Quiescence)).oclAsType(Quiescence).componentInstance) + -> including(initial->select(oclIsKindOf(TimeOut)).oclAsType(TimeOut).componentInstance) + in + guardedComponent->includesAll(targetComponent) + or not self.getParentTestDescription().isLocallyOrdered + + + -- Tester participating in locally ordered case + inv ExceptionalBehaviourParticipation ('If the \'ExceptionalBehaviour\' is contained in a locally ordered \'TestDescription\' then no other tester \'ComponentInstance\' shall participate in any block than the target of the first tester-input event and \'ComponentInstance\'s participating in blocks of contained \'OptionalBehaviour\'s . ' + self.toString()): + let initial = self.block.behaviour->first(), + targetComponent = Set{} + ->including(initial->select(oclIsKindOf(Interaction)).oclAsType(Interaction).target.targetGate.component) + ->including(initial->select(oclIsKindOf(Quiescence)).oclAsType(Quiescence).componentInstance) + -> including(initial->select(oclIsKindOf(TimeOut)).oclAsType(TimeOut).componentInstance), + nonOptionalBlocks = self.block->closure( + b | b.behaviour->reject(oclIsKindOf(OptionalBehaviour)) + ->select(oclIsKindOf(SingleCombinedBehaviour)).oclAsType(SingleCombinedBehaviour).block + ->union(b.behaviour->reject(oclIsKindOf(OptionalBehaviour)) + ->select(oclIsKindOf(MultipleCombinedBehaviour)).oclAsType(MultipleCombinedBehaviour).block) + ) + in + targetComponent->includesAll( + nonOptionalBlocks.getParticipatingComponents()->reject(c | c.role = ComponentInstanceRole::SUT)) + or not self.getParentTestDescription().isLocallyOrdered + + + -- OptionalBehaviour in locally ordered case + inv OptionalExceptionalBehaviour ('A block of an \'ExceptionalBehaviour\' if the containing \'TestDescription\' is locally ordered, shall only contain \'OptionalBehaviour\'(s) whose source \'ComponentInstance\' is the same as the target of the first tester-input event of that \'Block\'. ' + self.toString()): + let initial = self.block.behaviour->first(), + targetComponent = Set{} + ->including(initial->select(oclIsKindOf(Interaction)).oclAsType(Interaction).target.targetGate.component) + ->including(initial->select(oclIsKindOf(Quiescence)).oclAsType(Quiescence).componentInstance) + -> including(initial->select(oclIsKindOf(TimeOut)).oclAsType(TimeOut).componentInstance) + in + self.block.behaviour->select(oclIsKindOf(OptionalBehaviour)).oclAsType(OptionalBehaviour).block + ->first().oclAsType(Interaction).sourceGate.component->forAll(c | targetComponent->includes(c)) + or not self.getParentTestDescription().isLocallyOrdered + + + + +context PeriodicBehaviour + -- 'Time' data type for period expression + inv PeriodType ('The \'DataUse\' expression assigned to the \'period\' shall evaluate to a data instance of the \'Time\' data type.' + self.toString()): + self.period->forAll(e | e.expression.resolveDataType().oclIsKindOf(Time)) + + + -- Period for each tester in locally ordered test descriptions + inv PeriodForParticipatingComponents ('If the \'PeriodicBehaviour\' is contained in a locally ordered \'TestDescription\' then a period shall be specified for every \'ComponentInstance\' that has the role \'Tester\' and for which there is a behaviour in the contained \'Block\'. ' + self.toString()): + self.block.getParticipatingComponents()->reject(c | c.role = ComponentInstanceRole::SUT) + ->forAll(c | self.period->exists(ex | ex.componentInstance = c)) + or not self.getParentTestDescription().isLocallyOrdered + + + + +context Break + -- Break in conditional behaviour only + inv ConditionalBreak ('A \'Break\' shall be contained directly in the block of a \'ConditionalBehaviour\'. ' + self.toString()): + self.container().container().oclIsKindOf(ConditionalBehaviour) + + + -- No behaviours after break + inv BreakIsLast ('A \'Break\' shall be the last behaviour in the containing \'Block\'. ' + self.toString()): + self.container().oclAsType(Block).behaviour->last() = self + + + + +context VerdictAssignment + -- Verdict of type 'Verdict' + inv VerdictType ('The \'verdict\' shall evaluate to a, possibly predefined, instance of a \'SimpleDataInstance\' of data type \'Verdict\'.' + self.toString()): + self.verdict.resolveDataType().name = 'Verdict' + + + -- No 'SpecialValueUse' + inv VerdictNoSpecialValueUse ('The \'verdict\' shall not evaluate to an instance of a \'SpecialValueUse\'.' + self.toString()): + not self.verdict.oclIsKindOf(SpecialValueUse) + + + + +context Assertion + -- Boolean condition + inv AssertionOtherwise ('The \'condition\' shall evaluate to predefined \'DataType\' \'Boolean\'.' + self.toString()): + self.condition.resolveDataType().name = 'Boolean' + + + -- Otherwise of type 'Verdict' + inv AssertionVerdict ('The \'otherwise\' shall evaluate to a, possibly predefined, instance of a \'SimpleDataInstance\' of data type \'Verdict\'.' + self.toString()): + self.otherwise.oclIsUndefined() or self.otherwise.resolveDataType().name = 'Verdict' + + + -- No 'SpecialValueUse' + inv AssertionNoSpecialValueUse ('The \'otherwise\' shall not evaluate to an instance of a \'SpecialValueUse\'.' + self.toString()): + self.otherwise.oclIsUndefined() or not self.otherwise.oclIsKindOf(SpecialValueUse) + + + -- [Figure 9.5: Interaction behaviour] + + +context Interaction + -- Gate references of an interaction shall be connected + inv ConnectedInteractionGates ('The \'GateReference\'s that act as source or target(s) of an \'Interaction\' shall be interconnected by a \'Connection\' which is contained in the \'TestConfiguration\' referenced by the \'TestDescription\' containing the \'Interaction\'.' + self.toString()): + self.target->forAll(t | + self.getParentTestDescription().testConfiguration.connection->exists(c | + not c.endPoint->reject(ep | + (ep.component = self.sourceGate.component and ep.gate = self.sourceGate.component) or + (ep.component = t.targetGate.component and ep.gate = t.targetGate.gate) + )->isEmpty())) + + + + +context Message + -- 'DataType' resolvable + inv DataTypeResolvable ('If the \'argument\' is \'DataInstanceUse\', either the \'dataType\' property or the \'dataInstance\' property shall be provided. If the \'argument\' is a \'DataElementUse\', the \'dataElement\' property shall be provided.' + self.toString()): + not self.argument.oclIsUndefined() + + + -- Type of message argument + inv MessageArgumentAndGateType ('The \'DataUse\' specification referred to in the \'argument\' shall match one of the \'DataType\'s referenced in the \'GateType\' definition of the \'GateInstance\'s referred to by the source and target \'GateReference\'s of the \'Interaction\'.' + self.toString()): + (self.argument.oclIsKindOf(AnyValue) + and self.argument. resolveDataType().oclIsUndefined()) + or (self.sourceGate.gate.type.allDataTypes()-> exists(t | self.argument.resolveDataType().conformsTo(t)) + and self.target->forAll(t | t.targetGate.gate.type.allDataTypes()->exists(t | self.argument.resolveDataType().conformsTo(t)))) + + + -- Use of variables in the 'argument' specification + inv MessageArgumentVariableUse ('The use of \'Variable\'s in the \'DataUse\' specification shall be restricted to \'Variable\'s of \'ComponentInstance\'s that participate in this \'Message\' via the provided \'GateReference\'s.' + self.toString()): + (not self.argument.oclIsKindOf(VariableUse) + or (self.sourceGate.component = self.argument.oclAsType(VariableUse).componentInstance + or self.target->exists(t | + t.targetGate.component = self.argument.oclAsType(VariableUse).componentInstance))) + + and self.argument.argument->forAll(a | + not a.dataUse.oclIsKindOf(VariableUse) + or (self.sourceGate.component = a.dataUse.oclAsType(VariableUse).componentInstance + or self.target->exists(t | + t.targetGate.component = a.dataUse.oclAsType(VariableUse).componentInstance))) + + and self.argument.argument->closure(a | a.dataUse.argument)->forAll(a | + not a.dataUse.oclIsKindOf(VariableUse) + or (self.sourceGate.component = a.dataUse.oclAsType(VariableUse).componentInstance + or self.target->exists(t | + t.targetGate.component = a.dataUse.oclAsType(VariableUse).componentInstance))) + + + -- Conforming data type for 'argument' and 'variable' + inv MessageArgumentAndVariableType ('If a \'Variable\' is specified for a \'Target\', the \'DataType\' of \'DataUse\' specification of the \'argument\' shall conform to the \'DataType\'s of referenced \'Variable\'s of all \'Target\'s.' + self.toString()): + self.target->forAll(t | t.valueAssignment->size() = 0 + or not self.argument.resolveDataType().oclIsUndefined() + and t.valueAssignment->forAll(v | self.argument.resolveDataType().conformsTo(v.variable.dataType))) + + + + +context ProcedureCall + -- Only point-to-point procedure calls + inv ProcedureCallTargetCount ('The \'target\' of \'ProcedureCall\' shall contain exactly one \'Target\'. ' + self.toString()): + self.target->size() = 1 + + + -- Each call has a reply + inv ProcedureCallHasReply ('For every \'ProcedureCall\' with empty \'replyTo\' there shall be one or more \'ProcedureCall\'s that have this \'ProcedureCall\' as \'replyTo\'. ' + self.toString()): + ProcedureCall.allInstances()->exists(pc | pc.replyTo = self) + + + -- Call and reply within the same 'TestDescription' + inv ProcedureCallAndReply ('The \'ProcedureCall\' referenced in the \'replyTo\' shall be within the same \'TestDescription\' as this \'ProcedureCall\'. ' + self.toString()): + self.replyTo.oclIsUndefined() + or self.replyTo.getParentTestDescription() = self.getParentTestDescription() + + + -- Call and reply between same components + inv ProcedureCallReplyGates ('The \'sourceGate\' and \'target\' of a \'ProcedureCall\' with \'replyTo\' shall match the \'target\' and \'sourceGate\' of the \'ProcedureCall\' in the \'replyTo\'. That is, corresponding \'GateReference\'s shall be the equal. ' + self.toString()): + ProcedureCall.allInstances()->select(pc | pc.replyTo = self)->forAll( + reply | + reply.target->forAll(t | t.targetGate.component = self.sourceGate.component) + and reply.target->forAll(t | t.targetGate.gate = self.sourceGate.gate) + and self.target->forAll(t | t.targetGate.component = reply.sourceGate.component) + and self.target->forAll(t | t.targetGate.gate = reply.sourceGate.gate)) + + + -- Synchronous procedure calls + inv ProcedureCallSynchronousCalling ('A \'ProcedureCall\' with empty \'replyTo\' shall not be followed by any behaviour in which the component specified in the \'sourceGate\' is participating, other than a \'ProcedureCall\' that specifies this \'ProcedureCall\' as \'replyTo\' or an \'AlternativeBehaviour\' that contains such a \'ProcedureCall\' in the beginning of a \'block\'. ' + self.toString()): + let source = self.sourceGate.component, + affectingBehaviours = self.container().oclAsType(Block).behaviour + ->reject(b | b.oclIsKindOf(ActionBehaviour) + and b.oclAsType(ActionBehaviour).componentInstance <> source) + ->reject(b | b.oclIsKindOf(Interaction) + and b.oclAsType(Interaction).sourceGate.component <> source + and b.oclAsType(Interaction).target->forAll(t | t.targetGate.component <> source)) + ->reject(b| b.oclIsKindOf(TestDescriptionReference) + and (not b.oclAsType(TestDescriptionReference).componentInstanceBinding->isEmpty() + and not b.oclAsType(TestDescriptionReference).componentInstanceBinding + .actualComponent->includes(self))), + following = affectingBehaviours ->at(affectingBehaviours->indexOf(self) + 1) + in (following.oclIsKindOf(ProcedureCall) and following.oclAsType(ProcedureCall).replyTo = self) + or (following.oclIsKindOf(AlternativeBehaviour) + and following.oclAsType(AlternativeBehaviour).block->exists( + b | b.behaviour->first().oclIsKindOf(ProcedureCall) + and b.behaviour->first().oclAsType(ProcedureCall).replyTo = self)) + + + -- Type of procedure call + inv ProcedureCallSignatureInGateTypes ('The \'ProcedureSignature\' referred to in the \'procedure\' shall be one of the \'DataType\'s referenced in the \'GateType\' definition of the \'GateInstance\'s referred to by the source and target \'GateReference\'s of the \'ProcedureCall\'. ' + self.toString()): + self.sourceGate.gate.type.allDataTypes()->includes(self.signature) + and self.target->forAll(targetGate.gate.type.allDataTypes()->includes(self.signature)) + + + -- No mixing of parameters + inv ProcedureParameterKind ('All \'ParameterBinding\'s specified in the \'argument\' shall refer to \'ProcedureParameter\'s of the same \'ParameterKind\'. ' + self.toString()): + self.argument->collect(pb | pb.parameter.oclAsType(ProcedureParameter).kind) + ->asSet()->size() <= 1 + + + -- Matching procedure arguments + inv ProcedureCallArguments ('For a \'ProcedureCall\' with empty \'replyTo\' there shall be one \'ParameterBinding\' instance in the \'argument\' for each \'ProcedureParameter\' with kind \'In\' in the associated \'ProcedureSignature\'. For a \'ProcedureCall\' with \'replyTo\' there shall be one \'ParameterBinding\' instance in the \'argument\' for each \'ProcedureParameter\' with kind \'Out\' or \'Exception\' in the associated \'ProcedureSignature\'. ' + self.toString()): + (self.replyTo.oclIsUndefined() and self.signature.parameter->select(p | p.kind = ParameterKind::In) + ->forAll(p | self.argument.parameter->includes(p))) + or (not self.replyTo.oclIsUndefined() and self.signature.parameter->reject(p | p.kind = ParameterKind::In) + ->forAll(p | self.argument.parameter->includes(p))) + + + -- Use of variables in the 'argument' specification + inv ProcedureCallVariableUse ('The use of \'Variable\'s in the \'DataUse\' specifications in \'ParameterBinding\'s shall be restricted to \'Variable\'s of \'ComponentInstance\'s that participate in this \'ProcedureCall\' via the provided \'GateReference\'s. ' + self.toString()): + self.argument + ->closure(pb | pb.dataUse.argument)->union(self.argument)->collect(pb | pb.dataUse) + ->select(du | du.oclIsKindOf(VariableUse)) + ->forAll(du | self.getParticipatingComponents()->includes( + du.oclAsType(VariableUse).componentInstance)) + + + -- Reply not starting event of exceptional behaviour + inv ProcedureCallReplyNotInExceptional ('A \'ProcedureCall\' that specifies replyTo shall not be the first behaviour of a block in an \'ExceptionalBehaviour\'. ' + self.toString()): + self.replyTo.oclIsUndefined() or not self.container().container().oclIsKindOf(ExceptionalBehaviour) + + + + +context Target + -- Variable and target gate of the same component instance + inv TargetComponent ('The \'Variable\'s referenced by \'valueAssignment\' shall exist in the same \'ComponentType\' as the \'GateInstance\' that is referred to by the \'GateReference\' of the \'targetGate\'.' + self.toString()): + self.valueAssignment->isEmpty() + or self.targetGate.component.type.allVariables()->includesAll(self.valueAssignment.variable) + + + -- Variable of a tester component only + inv TargetVariableComponentRole ('If a \'ValueAssignment\' is specified, the \'ComponentInstance\' referenced by \'targetGate\' shall be in the role \'Tester\'.' + self.toString()): + self.valueAssignment->isEmpty () or self.targetGate.component.role = ComponentInstanceRole::Tester + + + + +context ValueAssignment + -- Conforming data type for 'parameter' and 'variable' + inv AssignedParamterType ('If the \'parameter\' is specified then its type shall conform to the type of the \'variable\'. ' + self.toString()): + self.parameter.oclIsUndefined() or self.parameter.dataType.conformsTo(self.variable.dataType) + + + -- Parameter of associated procedure signature + inv AssignedProcedureParameter ('If the \'parameter\' is specified then it shall be contained in the \'ProcedureSignature\' that is referred in the \'signature\' ot the \'ProcedureCall\' containing this \'ValueAssignment\'.' + self.toString()): + self.parameter.oclIsUndefined() + or (self.container().container().oclIsKindOf(ProcedureCall) and + self.container().container().oclAsType(ProcedureCall).signature.parameter->includes(self.parameter)) + + + -- [Figure 9.6: Test description reference] + + +context TestDescriptionReference + -- All test description parameters bound + inv AllTestDescriptionParametersBound ('For each \'FormalParameter\' defined in \'formalParameter of\' the referenced \'TestDescription\' there shall be a \'ParameterBinding\' in \'argument\' that refers to that \'FormalParameter\' in \'parameter\'.' + self.toString()): + self.testDescription.formalParameter->forAll(p | self.argument->exists(a | a.parameter = p)) + + + -- No use of variables in arguments + inv NoVariablesInLocallyOrderedTestDescriptionReference ('In locally ordered \'TestDescription\'s, \'DataUse\' expressions used to describe arguments shall not contain variables directly or indirectly in \'TestDescriptionReference\'s.' + self.toString()): + self.argument. dataUse->forAll(du | + not du.oclIsKindOf(VariableUse) + and du.argument->forAll(a | not a.dataUse.oclIsKindOf(VariableUse)) + and du.argument->closure(a | a.dataUse.argument)->forAll(a | + not a.dataUse.oclIsKindOf(VariableUse))) + + + -- No use of time labels in arguments + inv NoTimeLabelsInLocallyOrderedTestDescriptionReference ('In locally ordered \'TestDescription\'s, \'DataUse\' expressions used to describe arguments shall not contain time labels directly or indirectly in \'TestDescriptionReference\'s.' + self.toString()): + self.argument.dataUse->forAll(du | + not du.oclIsKindOf(TimeLabelUse) + and du.argument->forAll(a | not a.dataUse.oclIsKindOf(TimeLabelUse)) + and du.argument->closure(a | a.dataUse.argument)->forAll(a | + not a.dataUse.oclIsKindOf(TimeLabelUse))) + + + -- Restriction to 1:1 component instance bindings + inv UniqueComponentBindings ('If component instance bindings are provided, the component instances referred to in the bindings shall occur at most once for the given test description reference.' + self.toString()): + self.componentInstanceBinding->isEmpty() + or self.componentInstanceBinding->forAll(b | + self.componentInstanceBinding->one(c | + c.formalComponent = b.formalComponent or c.actualComponent = b.actualComponent)) + + + -- Compatible test configurations + inv CompatibleConfiguration ('The \'TestConfiguration\' of the referenced (invoked) \'TestDescription\' shall be compatible with the \'TestConfiguration\' of the referencing (invoking) \'TestDescription\' under the provided \'ComponentInstanceBinding\'s between the \'ComponentInstance\'s of the \'TestConfiguration\'s of referenced and referencing \'TestDescription\'s. ' + self.toString()): + self.testDescription.testConfiguration.compatibleWith( + self.getParentTestDescription().testConfiguration, self.componentInstanceBinding) + + + -- No combining of local and total ordering + inv LocalAndTotalOrdering ('The referenced \'TestDescription\' shall have the same ordering assumption as the referencing \'TestDescription\'.' + self.toString()): + self.getParentTestDescription().isLocallyOrdered = self.testDescription.isLocallyOrdered + + + + +context ComponentInstanceBinding + -- Conforming component types + inv BindingComponentTypes ('The \'ComponentType\' of the actual \'ComponentInstance\' shall conform to \'ComponentType\' of the formal \'ComponentInstance.' + self.toString()): + self.actualComponent.type.conformsTo(self.formalComponent.type) + + + -- Matching component instance roles + inv BindingComponentRoles ('Both, the formal and the actual component instances, shall have the same \'ComponentInstanceRole\' assigned to.' + self.toString()): + self.formalComponent.role = self.actualComponent.role + + + -- [Figure 9.7: Action behaviour concepts] + + +context ActionBehaviour + -- 'ActionBehaviour' on 'Tester' components only + inv ActionBehaviourComponentRole ('The \'ComponentInstance\' that an \'ActionBehaviour\' refers to shall be of role \'Tester\'.' + self.toString()): + self.componentInstance.oclIsUndefined() or self.componentInstance.role = ComponentInstanceRole::Tester + + + -- Known 'componentInstance' with locally-ordered behaviour + inv ActionBehaviourComponentInstance ('The \'ComponentInstance\' that an \'ActionBehaviour\' refers to shall be specified if the \'ActionBehaviour\' is used within a locally-ordered \'TestDescription\'.' + self.toString()): + not self.componentInstance.oclIsUndefined() or not self.getParentTestDescription().isLocallyOrdered + + + + +context ActionReference + -- All action parameters bound + inv AllActionParametersBound ('For each \'FormalParameter\' defined in \'formalParameter of\' the referenced \'Action\' there shall be a \'ParameterBinding\' in \'argument\' that refers to that \'FormalParameter\' in \'parameter\'. ' + self.toString()): + self.action.formalParameter->forAll(p | self.argument.parameter->includes(p)) + + + -- No 'Function's in 'ActionReference' + inv ActionReferenceFunction ('The referenced \'Action\' shall not be a \'Function\'.' + self.toString()): + not self.action.oclIsTypeOf(Function) + + + + +context Assignment + -- Conforming data type + inv AssignmentDataType ('The provided \'DataUse\' expression shall conform to the \'DataType\' of the referenced \'Variable\'.' + self.toString()): + self.expression.resolveDataType().conformsTo(self.variable.variable.dataType) + + + -- Empty 'argument' set for 'variable' + inv AssignmentVariableArgument ('The \'argument\' and \'reduction\' sets shall be empty.' + self.toString()): + self.variable.argument->isEmpty() + + + + + +endpackage diff --git a/plugins/org.etsi.mts.tdl.model/model/tdl-structured-constraints.ocl b/plugins/org.etsi.mts.tdl.model/model/tdl-structured-constraints.ocl new file mode 100644 index 0000000000000000000000000000000000000000..dee88616144d5979b59a2c458f618fb1471db0c9 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/model/tdl-structured-constraints.ocl @@ -0,0 +1,134 @@ +import 'http://www.etsi.org/spec/TDL/1.4.1' +import 'http://www.etsi.org/spec/TDL/1.3.1/structured' + +package structuredobjectives + +context PICSReference + -- Combining Multiple 'PICSReference's + inv MultiplePICS ('A \'Comment\' with body containing an \'and\' or \'or\' shall be attached to the \'PICSReference\' as a Boolean operand if there are two or more \'PICSReference\'s and it is not the first \'PICSReference\'.' + self.toString()): + self.getTestObjective().picsReference->size() < 2 + or self.getTestObjective().picsReference->forAll(p | + self.getTestObjective().picsReference->at(0) = p + or (not p.comment->isEmpty() + and (p.comment->first()._'body' = 'and' + or p.comment->first()._'body' = 'or'))) + + + + +context RepeatedEventSequence + -- Either 'repetitions', or 'interval' or neither shall be specified + inv RepetitionOrInterval ('At most one of the optional properties \'repetitions\' or \'interval\' shall be defined.' + self.toString()): + self.repetitions.oclIsUndefined() or self.interval.oclIsUndefined() + + + -- The 'repetitions' 'Value' shall be countable and positive + inv RepetitionCount ('The expression assigned to the \'repetitions\' property shall evaluate to a positive and countable \'Value\'.' + self.toString()): + true --This constraint cannot be expressed in OCL + + + -- The 'interval' 'Value' shall be countable and positive + inv RepetitionInterval ('The expression assigned to the \'repetitions\' property shall evaluate to a positive and countable \'Value\'' + self.toString()): + true --This constraint cannot be expressed in OCL + + + + +--context EventOccurrence +-- -- Combining Multiple 'EventOccurrence's +-- inv MultipleEventOccurrences ('A \'Comment\' with body containing an \'and\' or \'or\' shall be attached to the \'EventOccurrence\' as an operand if there are two or more \'EventOccurrence\'s and it is not the first \'EventOccurrence\'.' + self.toString()): +-- self.container().oclIsTypeOf(EventSpecificationTemplate) +-- or self.container().events->size() < 2 +-- or self.container().events->forAll(o | +-- self.container().events->at(0) = o +-- or (not o.comment->isEmpty() +-- and (o.comment->first()._'body' = 'and' +-- or o.comment->first()._'body' = 'or'))) + + + + +context EntityReference + -- An 'Entity' or a 'ComponentInstance' shall be referenced. + inv EntityOrComponentInstance ('There shall be a reference to an \'Entity\' or a \'ComponentInstance\' but not both.' + self.toString()): + (not self.entity.oclIsUndefined() and self.component.oclIsUndefined()) + or (self.entity.oclIsUndefined() and not self.component.oclIsUndefined()) + + + + +context Content + -- No nested 'Content's if 'Value' is provided + inv ContentOrValue ('Either nested \'Content\'s or \'Value\' may be specified within \'Content\', but not both.' + self.toString()): + self.content->isEmpty() or self.value.oclIsUndefined() + + + + +context LiteralValueReference + -- Referenced 'LiteralValue' visibility + inv VisibleValue ('Only \'LiteralValue\'s defined within previous \'EventOccurrence\'s of the containing \'StructuredTestObjective\' may be referenced.' + self.toString()): + self.getTestObjective().contains(self.content) + and self.getTestObjective().indexOf(self.content) < self.getTestObjective().indexOf(self) + + + + +context ContentReference + -- Referenced 'Content' visibility + inv VisibleContent ('Only \'Content\' defined within previous \'EventOccurrence\'s of the containing \'StructuredTestObjective\' may be referenced.' + self.toString()): + self.getTestObjective().contains(self.content) + and self.getTestObjective().indexOf(self.content) < self.getTestObjective().indexOf(self) + + + + +context DataReference + -- 'DataUse' restrictions within 'DataReference' + inv DataReferenceContents ('Only \'StaticDataUse\' may be used directly or indirectly in \'ParameterBinding\'s of the \'StaticDataUse\' within a \'DataReference\'.' + self.toString()): + self.content.oclIsTypeOf(StaticDataUse) + and self.content.argument->forAll(a | a.dataUse.oclIsKindOf(StaticDataUse)) + and self.content.argument->closure(a | + a.dataUse.argument)->forAll(a|a.dataUse.oclIsKindOf(StaticDataUse)) + + + -- No 'reduction' within 'DataReference' + inv DataReferenceReduction ('The \'reduction\' property of \'StaticDataUse\' inherited from \'DataUse\' shall not be used within a \'DataReference\'.' + self.toString()): + self.content.reduction->isEmpty() + + + + +context EventTemplateOccurrence + -- 'EntityReference' of referenced 'EventSpecificationTemplate' + inv EntityTemplateOccurrenceConsistency ('If \'EntityBinding\'s are provided, the \'Entity\'s or \'ComponentInstance\'s referenced in the \'templateEntity\' properties shall also be referenced by one of the \'EntityReferences\' in the \'EventOccurrenceSpecification\' of the \'EventSpecificationTemplate\' referenced in the \'EventTemplateOccurrence\'.' + self.toString()): + self.entityBinding->forAll(b | + (not b.templateEntity.entity.oclIsUndefined() + and (b.templateEntity.entity = + self.eventTemplate.eventSpecification.entityReference.entity)) + or (not b.templateEntity.component.oclIsUndefined() + and (b.templateEntity.component = + self.eventTemplate.eventSpecification.entityReference.component) + or self.eventTemplate.eventSpecification.oppositeEntityReference->exists(e | + (not b.templateEntity.entity.oclIsUndefined() + and (e.entity = b.templateEntity.entity)) + or (not b.templateEntity.component.oclIsUndefined() + and (e.component = b.templateEntity.component))))) + + + + +context VariantBinding + -- Referenced 'Value' of 'VariantBinding' + inv VariantBindingValues ('If the \'value\' property references a \'LiteralValue\' or \'Content\' element, the referenced element shall be contained in the \'StructuredTestObjective\' containing the \'VariantBinding\'.' + self.toString()): + self.value.oclIsTypeOf(LiteralValueReference) implies + self.value.oclAsType(LiteralValueReference).content.getTestObjective() = self.getTestObjective() + and + self.value.oclIsKindOf(ContentReference) implies + self.value.oclAsType(ContentReference).content.getTestObjective() = self.getTestObjective() + + + + + +endpackage diff --git a/plugins/org.etsi.mts.tdl.model/model/tdl.ecore b/plugins/org.etsi.mts.tdl.model/model/tdl.ecore index 5f46b8b9ff73a9ca503f6a1f72fa7ea8564ccc53..c4404cff6c90a454206832a76878b68d915a1587 100644 --- a/plugins/org.etsi.mts.tdl.model/model/tdl.ecore +++ b/plugins/org.etsi.mts.tdl.model/model/tdl.ecore @@ -54,9 +54,9 @@ -
+
- + @@ -455,6 +455,13 @@ defaultValueLiteral="Last"/> + + +
+ + + + - + diff --git a/plugins/org.etsi.mts.tdl.model/model/tdl.genmodel b/plugins/org.etsi.mts.tdl.model/model/tdl.genmodel index 6bdae5bd46b2d01191d3551af2f01a6a6ac714e5..0893cc6594df70ae5d16f09a4abd281fda90137a 100644 --- a/plugins/org.etsi.mts.tdl.model/model/tdl.genmodel +++ b/plugins/org.etsi.mts.tdl.model/model/tdl.genmodel @@ -2,132 +2,11 @@ + copyrightFields="false" usedGenPackages="configurations.genmodel#//extendedconfigurations structured.genmodel#//structuredobjectives" + operationReflection="true" importOrganizing="true"> configurations.ecore structured.ecore tdl.ecore - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -180,7 +59,7 @@ - + @@ -368,6 +247,10 @@ + + + + @@ -485,7 +368,7 @@ - + diff --git a/plugins/org.etsi.mts.tdl.model/plugin.xml b/plugins/org.etsi.mts.tdl.model/plugin.xml index a877f204b4c3ff010a8ff7c5d91260be5ad25d69..33b8dd266add85dadceb7c6d23f407019eee0e90 100644 --- a/plugins/org.etsi.mts.tdl.model/plugin.xml +++ b/plugins/org.etsi.mts.tdl.model/plugin.xml @@ -27,19 +27,21 @@ class="org.etsi.mts.tdl.util.tdlResourceFactoryImpl"/> + + - + + genModel="model/configurations.genmodel"/> diff --git a/plugins/org.etsi.mts.tdl.model/pom.xml b/plugins/org.etsi.mts.tdl.model/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..5d39e975aacc395f2ace284da324b497cb5e11a1 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/pom.xml @@ -0,0 +1,86 @@ + + 4.0.0 + + org.etsi.mts.tdl + org.etsi.mts.tdl.parent + 1.0.0-SNAPSHOT + ../../org.etsi.mts.tdl.parent + + org.etsi.mts.tdl.model + eclipse-plugin + + + + maven-compiler-plugin + + + org.codehaus.mojo + exec-maven-plugin + 3.0.0 + + + mwe2Launcher + generate-sources + + java + + + + + org.eclipse.emf.mwe2.launch.runtime.Mwe2Launcher + + /${project.basedir}/model/GenerateTDL.mwe2 + -p + rootPath=/${project.basedir}/.. + + compile + true + false + + + + + + + + + + org.eclipse.m2e + lifecycle-mapping + 1.0.0 + + + + + + + org.codehaus.mojo + + + exec-maven-plugin + + + [1.2.1,) + + + java + + + + + + + + + + + + + + \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.TPLan2.ide/xtend-gen/.gitignore b/plugins/org.etsi.mts.tdl.model/src-gen/.gitignore similarity index 100% rename from plugins/org.etsi.mts.tdl.TPLan2.ide/xtend-gen/.gitignore rename to plugins/org.etsi.mts.tdl.model/src-gen/.gitignore diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/Action.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/Action.java new file mode 100644 index 0000000000000000000000000000000000000000..a9380beb6f084c268b1ca8dbc1878423e04139ba --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/Action.java @@ -0,0 +1,60 @@ +/** + */ +package org.etsi.mts.tdl; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Action'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.Action#getBody Body}
  • + *
  • {@link org.etsi.mts.tdl.Action#getFormalParameter Formal Parameter}
  • + *
+ * + * @see org.etsi.mts.tdl.tdlPackage#getAction() + * @model + * @generated + */ +public interface Action extends MappableDataElement +{ + /** + * Returns the value of the 'Body' attribute. + * + * + * @return the value of the 'Body' attribute. + * @see #setBody(String) + * @see org.etsi.mts.tdl.tdlPackage#getAction_Body() + * @model + * @generated + */ + String getBody(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.Action#getBody Body}' attribute. + * + * + * @param value the new value of the 'Body' attribute. + * @see #getBody() + * @generated + */ + void setBody(String value); + + /** + * Returns the value of the 'Formal Parameter' containment reference list. + * The list contents are of type {@link org.etsi.mts.tdl.FormalParameter}. + * + * + * @return the value of the 'Formal Parameter' containment reference list. + * @see org.etsi.mts.tdl.tdlPackage#getAction_FormalParameter() + * @model containment="true" + * @generated + */ + EList getFormalParameter(); + +} // Action diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/ActionBehaviour.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/ActionBehaviour.java new file mode 100644 index 0000000000000000000000000000000000000000..6d22149be72653e17b415f183f1575f01845e978 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/ActionBehaviour.java @@ -0,0 +1,57 @@ +/** + */ +package org.etsi.mts.tdl; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Action Behaviour'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.ActionBehaviour#getComponentInstance Component Instance}
  • + *
+ * + * @see org.etsi.mts.tdl.tdlPackage#getActionBehaviour() + * @model abstract="true" + * @generated + */ +public interface ActionBehaviour extends AtomicBehaviour +{ + /** + * Returns the value of the 'Component Instance' reference. + * + * + * @return the value of the 'Component Instance' reference. + * @see #setComponentInstance(ComponentInstance) + * @see org.etsi.mts.tdl.tdlPackage#getActionBehaviour_ComponentInstance() + * @model + * @generated + */ + ComponentInstance getComponentInstance(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.ActionBehaviour#getComponentInstance Component Instance}' reference. + * + * + * @param value the new value of the 'Component Instance' reference. + * @see #getComponentInstance() + * @generated + */ + void setComponentInstance(ComponentInstance value); + + /** + * + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot body='\n if self.getParentTestDescription()->exists(td | td.isLocallyOrdered) and self.container().oclIsKindOf(Block) then (\n if not self.componentInstance.oclIsUndefined() then\n OrderedSet { self.componentInstance }\n else\n self.container().oclAsType(Block).getParticipatingComponentsExcluding(self)->asOrderedSet()\n endif\n ) else\n self.getParentTestDescription().testConfiguration.componentInstance->asOrderedSet()\n endif\n '" + * annotation="http://www.eclipse.org/OCL/Collection nullFree='false'" + * @generated + */ + EList getParticipatingComponents(); + +} // ActionBehaviour diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/ActionReference.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/ActionReference.java new file mode 100644 index 0000000000000000000000000000000000000000..4ab273efb9554355c44b6becda8413c7e956d80a --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/ActionReference.java @@ -0,0 +1,60 @@ +/** + */ +package org.etsi.mts.tdl; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Action Reference'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.ActionReference#getAction Action}
  • + *
  • {@link org.etsi.mts.tdl.ActionReference#getArgument Argument}
  • + *
+ * + * @see org.etsi.mts.tdl.tdlPackage#getActionReference() + * @model + * @generated + */ +public interface ActionReference extends ActionBehaviour +{ + /** + * Returns the value of the 'Action' reference. + * + * + * @return the value of the 'Action' reference. + * @see #setAction(Action) + * @see org.etsi.mts.tdl.tdlPackage#getActionReference_Action() + * @model required="true" + * @generated + */ + Action getAction(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.ActionReference#getAction Action}' reference. + * + * + * @param value the new value of the 'Action' reference. + * @see #getAction() + * @generated + */ + void setAction(Action value); + + /** + * Returns the value of the 'Argument' containment reference list. + * The list contents are of type {@link org.etsi.mts.tdl.ParameterBinding}. + * + * + * @return the value of the 'Argument' containment reference list. + * @see org.etsi.mts.tdl.tdlPackage#getActionReference_Argument() + * @model containment="true" + * @generated + */ + EList getArgument(); + +} // ActionReference diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/AlternativeBehaviour.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/AlternativeBehaviour.java new file mode 100644 index 0000000000000000000000000000000000000000..2464de559ce40cffe9ff2392648ae9d9af5e079f --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/AlternativeBehaviour.java @@ -0,0 +1,18 @@ +/** + */ +package org.etsi.mts.tdl; + + +/** + * + * A representation of the model object 'Alternative Behaviour'. + * + * + * + * @see org.etsi.mts.tdl.tdlPackage#getAlternativeBehaviour() + * @model + * @generated + */ +public interface AlternativeBehaviour extends MultipleCombinedBehaviour +{ +} // AlternativeBehaviour diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/Annotation.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/Annotation.java new file mode 100644 index 0000000000000000000000000000000000000000..8205165fa8023c554a2a5d6edee9b0c39002c13b --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/Annotation.java @@ -0,0 +1,94 @@ +/** + */ +package org.etsi.mts.tdl; + + +/** + * + * A representation of the model object 'Annotation'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.Annotation#getValue Value}
  • + *
  • {@link org.etsi.mts.tdl.Annotation#getKey Key}
  • + *
  • {@link org.etsi.mts.tdl.Annotation#getAnnotatedElement Annotated Element}
  • + *
+ * + * @see org.etsi.mts.tdl.tdlPackage#getAnnotation() + * @model + * @generated + */ +public interface Annotation extends Element +{ + /** + * Returns the value of the 'Value' attribute. + * + * + * @return the value of the 'Value' attribute. + * @see #setValue(String) + * @see org.etsi.mts.tdl.tdlPackage#getAnnotation_Value() + * @model + * @generated + */ + String getValue(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.Annotation#getValue Value}' attribute. + * + * + * @param value the new value of the 'Value' attribute. + * @see #getValue() + * @generated + */ + void setValue(String value); + + /** + * Returns the value of the 'Key' reference. + * + * + * @return the value of the 'Key' reference. + * @see #setKey(AnnotationType) + * @see org.etsi.mts.tdl.tdlPackage#getAnnotation_Key() + * @model required="true" + * @generated + */ + AnnotationType getKey(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.Annotation#getKey Key}' reference. + * + * + * @param value the new value of the 'Key' reference. + * @see #getKey() + * @generated + */ + void setKey(AnnotationType value); + + /** + * Returns the value of the 'Annotated Element' container reference. + * It is bidirectional and its opposite is '{@link org.etsi.mts.tdl.Element#getAnnotation Annotation}'. + * + * + * @return the value of the 'Annotated Element' container reference. + * @see #setAnnotatedElement(Element) + * @see org.etsi.mts.tdl.tdlPackage#getAnnotation_AnnotatedElement() + * @see org.etsi.mts.tdl.Element#getAnnotation + * @model opposite="annotation" required="true" transient="false" + * @generated + */ + Element getAnnotatedElement(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.Annotation#getAnnotatedElement Annotated Element}' container reference. + * + * + * @param value the new value of the 'Annotated Element' container reference. + * @see #getAnnotatedElement() + * @generated + */ + void setAnnotatedElement(Element value); + +} // Annotation diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/AnnotationType.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/AnnotationType.java new file mode 100644 index 0000000000000000000000000000000000000000..7d12ec7acf7a0ff2d549416146304b15dde0fd8e --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/AnnotationType.java @@ -0,0 +1,46 @@ +/** + */ +package org.etsi.mts.tdl; + + +/** + * + * A representation of the model object 'Annotation Type'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.AnnotationType#getExtension Extension}
  • + *
+ * + * @see org.etsi.mts.tdl.tdlPackage#getAnnotationType() + * @model + * @generated + */ +public interface AnnotationType extends PackageableElement +{ + /** + * Returns the value of the 'Extension' containment reference. + * + * + * @return the value of the 'Extension' containment reference. + * @see #setExtension(Extension) + * @see org.etsi.mts.tdl.tdlPackage#getAnnotationType_Extension() + * @model containment="true" + * @generated + */ + Extension getExtension(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.AnnotationType#getExtension Extension}' containment reference. + * + * + * @param value the new value of the 'Extension' containment reference. + * @see #getExtension() + * @generated + */ + void setExtension(Extension value); + +} // AnnotationType diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/AnyValue.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/AnyValue.java new file mode 100644 index 0000000000000000000000000000000000000000..a1c3e1401cdbdbd4c41aacf462377285d0a1baa6 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/AnyValue.java @@ -0,0 +1,54 @@ +/** + */ +package org.etsi.mts.tdl; + + +/** + * + * A representation of the model object 'Any Value'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.AnyValue#getDataType Data Type}
  • + *
+ * + * @see org.etsi.mts.tdl.tdlPackage#getAnyValue() + * @model + * @generated + */ +public interface AnyValue extends SpecialValueUse +{ + /** + * Returns the value of the 'Data Type' reference. + * + * + * @return the value of the 'Data Type' reference. + * @see #setDataType(DataType) + * @see org.etsi.mts.tdl.tdlPackage#getAnyValue_DataType() + * @model + * @generated + */ + DataType getDataType(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.AnyValue#getDataType Data Type}' reference. + * + * + * @param value the new value of the 'Data Type' reference. + * @see #getDataType() + * @generated + */ + void setDataType(DataType value); + + /** + * + * + * @model annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot body='\n if (not self.dataType.oclIsUndefined()) then\n self.dataType\n else \n if (self.container().oclIsTypeOf(MemberAssignment)) then\n self.container().oclAsType(MemberAssignment).member.dataType\n else \n if (self.container().oclIsTypeOf(ParameterBinding)) then\n self.container().oclAsType(ParameterBinding).parameter.dataType\n else\n if (self.container().oclIsTypeOf(CollectionDataInstance)) then\n self.container().oclAsType(CollectionDataInstance).dataType.oclAsType(CollectionDataType).itemType\n else\n if (self.container().oclIsTypeOf(DataElementUse)) then\n self.container().oclAsType(DataElementUse).resolveDataType().oclAsType(CollectionDataType).itemType\n else\n if (self.container().oclIsTypeOf(DataInstanceUse)) then\n self.container().oclAsType(DataInstanceUse).resolveDataType().oclAsType(CollectionDataType).itemType\n else\n null\n endif\n endif\n endif\n endif\n endif\n endif\n '" + * @generated + */ + DataType resolveDataType(); + +} // AnyValue diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/AnyValueOrOmit.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/AnyValueOrOmit.java new file mode 100644 index 0000000000000000000000000000000000000000..dc2b1dbabd792594dc5538d67fe49c47e09d21ba --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/AnyValueOrOmit.java @@ -0,0 +1,18 @@ +/** + */ +package org.etsi.mts.tdl; + + +/** + * + * A representation of the model object 'Any Value Or Omit'. + * + * + * + * @see org.etsi.mts.tdl.tdlPackage#getAnyValueOrOmit() + * @model + * @generated + */ +public interface AnyValueOrOmit extends SpecialValueUse +{ +} // AnyValueOrOmit diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/Assertion.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/Assertion.java new file mode 100644 index 0000000000000000000000000000000000000000..88cd9d42096ee9c45b92e6de6a07c5d31b7528f9 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/Assertion.java @@ -0,0 +1,69 @@ +/** + */ +package org.etsi.mts.tdl; + + +/** + * + * A representation of the model object 'Assertion'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.Assertion#getOtherwise Otherwise}
  • + *
  • {@link org.etsi.mts.tdl.Assertion#getCondition Condition}
  • + *
+ * + * @see org.etsi.mts.tdl.tdlPackage#getAssertion() + * @model + * @generated + */ +public interface Assertion extends ActionBehaviour +{ + /** + * Returns the value of the 'Otherwise' containment reference. + * + * + * @return the value of the 'Otherwise' containment reference. + * @see #setOtherwise(DataUse) + * @see org.etsi.mts.tdl.tdlPackage#getAssertion_Otherwise() + * @model containment="true" + * @generated + */ + DataUse getOtherwise(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.Assertion#getOtherwise Otherwise}' containment reference. + * + * + * @param value the new value of the 'Otherwise' containment reference. + * @see #getOtherwise() + * @generated + */ + void setOtherwise(DataUse value); + + /** + * Returns the value of the 'Condition' containment reference. + * + * + * @return the value of the 'Condition' containment reference. + * @see #setCondition(DataUse) + * @see org.etsi.mts.tdl.tdlPackage#getAssertion_Condition() + * @model containment="true" required="true" + * @generated + */ + DataUse getCondition(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.Assertion#getCondition Condition}' containment reference. + * + * + * @param value the new value of the 'Condition' containment reference. + * @see #getCondition() + * @generated + */ + void setCondition(DataUse value); + +} // Assertion diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/Assignment.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/Assignment.java new file mode 100644 index 0000000000000000000000000000000000000000..2d1ebeca7fc0a9b97ba3291ddb463834dbbd1a63 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/Assignment.java @@ -0,0 +1,80 @@ +/** + */ +package org.etsi.mts.tdl; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Assignment'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.Assignment#getVariable Variable}
  • + *
  • {@link org.etsi.mts.tdl.Assignment#getExpression Expression}
  • + *
+ * + * @see org.etsi.mts.tdl.tdlPackage#getAssignment() + * @model + * @generated + */ +public interface Assignment extends AtomicBehaviour +{ + /** + * Returns the value of the 'Variable' containment reference. + * + * + * @return the value of the 'Variable' containment reference. + * @see #setVariable(VariableUse) + * @see org.etsi.mts.tdl.tdlPackage#getAssignment_Variable() + * @model containment="true" required="true" + * @generated + */ + VariableUse getVariable(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.Assignment#getVariable Variable}' containment reference. + * + * + * @param value the new value of the 'Variable' containment reference. + * @see #getVariable() + * @generated + */ + void setVariable(VariableUse value); + + /** + * Returns the value of the 'Expression' containment reference. + * + * + * @return the value of the 'Expression' containment reference. + * @see #setExpression(DataUse) + * @see org.etsi.mts.tdl.tdlPackage#getAssignment_Expression() + * @model containment="true" required="true" + * @generated + */ + DataUse getExpression(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.Assignment#getExpression Expression}' containment reference. + * + * + * @param value the new value of the 'Expression' containment reference. + * @see #getExpression() + * @generated + */ + void setExpression(DataUse value); + + /** + * + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot body='\n if self.getParentTestDescription()->exists(td | td.isLocallyOrdered) and self.container().oclIsKindOf(Block) then (\n if not self.variable.componentInstance.oclIsUndefined() then\n OrderedSet { self.variable.componentInstance }\n else\n self.container().oclAsType(Block).getParticipatingComponentsExcluding(self)->asOrderedSet()\n endif\n ) else\n self.getParentTestDescription().testConfiguration.componentInstance->asOrderedSet()\n endif\n '" + * annotation="http://www.eclipse.org/OCL/Collection nullFree='false'" + * @generated + */ + EList getParticipatingComponents(); + +} // Assignment diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/AtomicBehaviour.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/AtomicBehaviour.java new file mode 100644 index 0000000000000000000000000000000000000000..32ee4225d1d2f7fb2cdc1489b0507ee483c27677 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/AtomicBehaviour.java @@ -0,0 +1,70 @@ +/** + */ +package org.etsi.mts.tdl; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Atomic Behaviour'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.AtomicBehaviour#getTimeConstraint Time Constraint}
  • + *
  • {@link org.etsi.mts.tdl.AtomicBehaviour#getTimeLabel Time Label}
  • + *
+ * + * @see org.etsi.mts.tdl.tdlPackage#getAtomicBehaviour() + * @model abstract="true" + * @generated + */ +public interface AtomicBehaviour extends Behaviour +{ + /** + * Returns the value of the 'Time Constraint' containment reference list. + * The list contents are of type {@link org.etsi.mts.tdl.TimeConstraint}. + * + * + * @return the value of the 'Time Constraint' containment reference list. + * @see org.etsi.mts.tdl.tdlPackage#getAtomicBehaviour_TimeConstraint() + * @model containment="true" ordered="false" + * @generated + */ + EList getTimeConstraint(); + + /** + * Returns the value of the 'Time Label' containment reference. + * + * + * @return the value of the 'Time Label' containment reference. + * @see #setTimeLabel(TimeLabel) + * @see org.etsi.mts.tdl.tdlPackage#getAtomicBehaviour_TimeLabel() + * @model containment="true" + * @generated + */ + TimeLabel getTimeLabel(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.AtomicBehaviour#getTimeLabel Time Label}' containment reference. + * + * + * @param value the new value of the 'Time Label' containment reference. + * @see #getTimeLabel() + * @generated + */ + void setTimeLabel(TimeLabel value); + + /** + * + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot body='\n if self.getParentTestDescription()->exists(td | td.isLocallyOrdered) and self.container().oclIsKindOf(Block) then\n self.container().oclAsType(Block).getParticipatingComponentsExcluding(self)->asOrderedSet()\n else\n self.getParentTestDescription().testConfiguration.componentInstance->asOrderedSet()\n endif\n '" + * annotation="http://www.eclipse.org/OCL/Collection nullFree='false'" + * @generated + */ + EList getParticipatingComponents(); + +} // AtomicBehaviour diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/Behaviour.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/Behaviour.java new file mode 100644 index 0000000000000000000000000000000000000000..f3bb7fa5e421853eb16650479db75a0d02f2851d --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/Behaviour.java @@ -0,0 +1,56 @@ +/** + */ +package org.etsi.mts.tdl; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Behaviour'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.Behaviour#getTestObjective Test Objective}
  • + *
+ * + * @see org.etsi.mts.tdl.tdlPackage#getBehaviour() + * @model abstract="true" + * @generated + */ +public interface Behaviour extends Element +{ + /** + * Returns the value of the 'Test Objective' reference list. + * The list contents are of type {@link org.etsi.mts.tdl.TestObjective}. + * + * + * @return the value of the 'Test Objective' reference list. + * @see org.etsi.mts.tdl.tdlPackage#getBehaviour_TestObjective() + * @model ordered="false" + * @generated + */ + EList getTestObjective(); + + /** + * + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot body='\n if (self.oclIsKindOf(TimeOut) or \n self.oclIsKindOf(Quiescence) or\n (self.oclIsKindOf(Interaction) and\n self.oclAsType(Interaction).sourceGate.component.role = ComponentInstanceRole::SUT and\n self.oclAsType(Interaction).target->exists(t | t.targetGate.component.role = ComponentInstanceRole::Tester)\n )\n ) then\n true\n else\n false\n endif'" + * @generated + */ + Boolean isTesterInputEvent(); + + /** + * + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot body='\n if self.getParentTestDescription()->exists(td | td.isLocallyOrdered) then\n OrderedSet{}\n else\n self.getParentTestDescription().testConfiguration.componentInstance->asOrderedSet()\n endif\n '" + * annotation="http://www.eclipse.org/OCL/Collection nullFree='false'" + * @generated + */ + EList getParticipatingComponents(); + +} // Behaviour diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/BehaviourDescription.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/BehaviourDescription.java new file mode 100644 index 0000000000000000000000000000000000000000..4079f58e751392f7f1c0c42342f7d3bcef2ef277 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/BehaviourDescription.java @@ -0,0 +1,46 @@ +/** + */ +package org.etsi.mts.tdl; + + +/** + * + * A representation of the model object 'Behaviour Description'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.BehaviourDescription#getBehaviour Behaviour}
  • + *
+ * + * @see org.etsi.mts.tdl.tdlPackage#getBehaviourDescription() + * @model + * @generated + */ +public interface BehaviourDescription extends Element +{ + /** + * Returns the value of the 'Behaviour' containment reference. + * + * + * @return the value of the 'Behaviour' containment reference. + * @see #setBehaviour(Behaviour) + * @see org.etsi.mts.tdl.tdlPackage#getBehaviourDescription_Behaviour() + * @model containment="true" required="true" + * @generated + */ + Behaviour getBehaviour(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.BehaviourDescription#getBehaviour Behaviour}' containment reference. + * + * + * @param value the new value of the 'Behaviour' containment reference. + * @see #getBehaviour() + * @generated + */ + void setBehaviour(Behaviour value); + +} // BehaviourDescription diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/Block.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/Block.java new file mode 100644 index 0000000000000000000000000000000000000000..c56e324d2779314359dc9a6a34c7c8bb8ae0260a --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/Block.java @@ -0,0 +1,69 @@ +/** + */ +package org.etsi.mts.tdl; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Block'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.Block#getBehaviour Behaviour}
  • + *
  • {@link org.etsi.mts.tdl.Block#getGuard Guard}
  • + *
+ * + * @see org.etsi.mts.tdl.tdlPackage#getBlock() + * @model + * @generated + */ +public interface Block extends Element +{ + /** + * Returns the value of the 'Behaviour' containment reference list. + * The list contents are of type {@link org.etsi.mts.tdl.Behaviour}. + * + * + * @return the value of the 'Behaviour' containment reference list. + * @see org.etsi.mts.tdl.tdlPackage#getBlock_Behaviour() + * @model containment="true" required="true" + * @generated + */ + EList getBehaviour(); + + /** + * Returns the value of the 'Guard' containment reference list. + * The list contents are of type {@link org.etsi.mts.tdl.LocalExpression}. + * + * + * @return the value of the 'Guard' containment reference list. + * @see org.etsi.mts.tdl.tdlPackage#getBlock_Guard() + * @model containment="true" + * @generated + */ + EList getGuard(); + + /** + * + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot body='\n if self.getParentTestDescription()->exists(td | td.isLocallyOrdered) then\n self.behaviour.getParticipatingComponents()->asOrderedSet()\n else\n self.getParentTestDescription().testConfiguration.componentInstance->asOrderedSet()\n endif\n '" + * annotation="http://www.eclipse.org/OCL/Collection nullFree='false'" + * @generated + */ + EList getParticipatingComponents(); + + /** + * + * + * @model annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot body='\n if self.getParentTestDescription()->exists(td | td.isLocallyOrdered) then\n self.behaviour->excluding(excluded).getParticipatingComponents()->asOrderedSet()\n else\n self.getParentTestDescription().testConfiguration.componentInstance->asOrderedSet()\n endif\n '" + * annotation="http://www.eclipse.org/OCL/Collection nullFree='false'" + * @generated + */ + EList getParticipatingComponentsExcluding(Behaviour excluded); + +} // Block diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/BoundedLoopBehaviour.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/BoundedLoopBehaviour.java new file mode 100644 index 0000000000000000000000000000000000000000..41d8ad508ee5e464fbdd184917bd273320e070b6 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/BoundedLoopBehaviour.java @@ -0,0 +1,37 @@ +/** + */ +package org.etsi.mts.tdl; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Bounded Loop Behaviour'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.BoundedLoopBehaviour#getNumIteration Num Iteration}
  • + *
+ * + * @see org.etsi.mts.tdl.tdlPackage#getBoundedLoopBehaviour() + * @model + * @generated + */ +public interface BoundedLoopBehaviour extends SingleCombinedBehaviour +{ + /** + * Returns the value of the 'Num Iteration' containment reference list. + * The list contents are of type {@link org.etsi.mts.tdl.LocalExpression}. + * + * + * @return the value of the 'Num Iteration' containment reference list. + * @see org.etsi.mts.tdl.tdlPackage#getBoundedLoopBehaviour_NumIteration() + * @model containment="true" required="true" + * @generated + */ + EList getNumIteration(); + +} // BoundedLoopBehaviour diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/Break.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/Break.java new file mode 100644 index 0000000000000000000000000000000000000000..95ad456ca0922b5d002260843f7bfc925d707e1c --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/Break.java @@ -0,0 +1,18 @@ +/** + */ +package org.etsi.mts.tdl; + + +/** + * + * A representation of the model object 'Break'. + * + * + * + * @see org.etsi.mts.tdl.tdlPackage#getBreak() + * @model + * @generated + */ +public interface Break extends AtomicBehaviour +{ +} // Break diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/CollectionDataInstance.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/CollectionDataInstance.java new file mode 100644 index 0000000000000000000000000000000000000000..6662d61631714ff97269722fbf71738f121fa9f2 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/CollectionDataInstance.java @@ -0,0 +1,64 @@ +/** + */ +package org.etsi.mts.tdl; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Collection Data Instance'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.CollectionDataInstance#getItem Item}
  • + *
  • {@link org.etsi.mts.tdl.CollectionDataInstance#getUnassignedMember Unassigned Member}
  • + *
+ * + * @see org.etsi.mts.tdl.tdlPackage#getCollectionDataInstance() + * @model + * @generated + */ +public interface CollectionDataInstance extends DataInstance +{ + /** + * Returns the value of the 'Item' containment reference list. + * The list contents are of type {@link org.etsi.mts.tdl.DataUse}. + * + * + * @return the value of the 'Item' containment reference list. + * @see org.etsi.mts.tdl.tdlPackage#getCollectionDataInstance_Item() + * @model containment="true" + * annotation="http://www.eclipse.org/OCL/Collection nullFree='false'" + * @generated + */ + EList getItem(); + + /** + * Returns the value of the 'Unassigned Member' attribute. + * The literals are from the enumeration {@link org.etsi.mts.tdl.UnassignedMemberTreatment}. + * + * + * @return the value of the 'Unassigned Member' attribute. + * @see org.etsi.mts.tdl.UnassignedMemberTreatment + * @see #setUnassignedMember(UnassignedMemberTreatment) + * @see org.etsi.mts.tdl.tdlPackage#getCollectionDataInstance_UnassignedMember() + * @model + * @generated + */ + UnassignedMemberTreatment getUnassignedMember(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.CollectionDataInstance#getUnassignedMember Unassigned Member}' attribute. + * + * + * @param value the new value of the 'Unassigned Member' attribute. + * @see org.etsi.mts.tdl.UnassignedMemberTreatment + * @see #getUnassignedMember() + * @generated + */ + void setUnassignedMember(UnassignedMemberTreatment value); + +} // CollectionDataInstance diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/CollectionDataType.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/CollectionDataType.java new file mode 100644 index 0000000000000000000000000000000000000000..09991a65b07ac6d9f7f3821d8fc509fa69dbbc19 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/CollectionDataType.java @@ -0,0 +1,46 @@ +/** + */ +package org.etsi.mts.tdl; + + +/** + * + * A representation of the model object 'Collection Data Type'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.CollectionDataType#getItemType Item Type}
  • + *
+ * + * @see org.etsi.mts.tdl.tdlPackage#getCollectionDataType() + * @model + * @generated + */ +public interface CollectionDataType extends DataType +{ + /** + * Returns the value of the 'Item Type' reference. + * + * + * @return the value of the 'Item Type' reference. + * @see #setItemType(DataType) + * @see org.etsi.mts.tdl.tdlPackage#getCollectionDataType_ItemType() + * @model required="true" + * @generated + */ + DataType getItemType(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.CollectionDataType#getItemType Item Type}' reference. + * + * + * @param value the new value of the 'Item Type' reference. + * @see #getItemType() + * @generated + */ + void setItemType(DataType value); + +} // CollectionDataType diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/CombinedBehaviour.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/CombinedBehaviour.java new file mode 100644 index 0000000000000000000000000000000000000000..f4a4aa59d3e168828a8e887069221429aff14e7b --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/CombinedBehaviour.java @@ -0,0 +1,50 @@ +/** + */ +package org.etsi.mts.tdl; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Combined Behaviour'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.CombinedBehaviour#getPeriodic Periodic}
  • + *
  • {@link org.etsi.mts.tdl.CombinedBehaviour#getExceptional Exceptional}
  • + *
+ * + * @see org.etsi.mts.tdl.tdlPackage#getCombinedBehaviour() + * @model abstract="true" + * @generated + */ +public interface CombinedBehaviour extends Behaviour +{ + /** + * Returns the value of the 'Periodic' containment reference list. + * The list contents are of type {@link org.etsi.mts.tdl.PeriodicBehaviour}. + * + * + * @return the value of the 'Periodic' containment reference list. + * @see org.etsi.mts.tdl.tdlPackage#getCombinedBehaviour_Periodic() + * @model containment="true" + * @generated + */ + EList getPeriodic(); + + /** + * Returns the value of the 'Exceptional' containment reference list. + * The list contents are of type {@link org.etsi.mts.tdl.ExceptionalBehaviour}. + * + * + * @return the value of the 'Exceptional' containment reference list. + * @see org.etsi.mts.tdl.tdlPackage#getCombinedBehaviour_Exceptional() + * @model containment="true" + * @generated + */ + EList getExceptional(); + +} // CombinedBehaviour diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/Comment.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/Comment.java new file mode 100644 index 0000000000000000000000000000000000000000..8f74b2b3c5a6eaf072144a7cc63da8542f1e260d --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/Comment.java @@ -0,0 +1,71 @@ +/** + */ +package org.etsi.mts.tdl; + + +/** + * + * A representation of the model object 'Comment'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.Comment#getBody Body}
  • + *
  • {@link org.etsi.mts.tdl.Comment#getCommentedElement Commented Element}
  • + *
+ * + * @see org.etsi.mts.tdl.tdlPackage#getComment() + * @model + * @generated + */ +public interface Comment extends Element +{ + /** + * Returns the value of the 'Body' attribute. + * + * + * @return the value of the 'Body' attribute. + * @see #setBody(String) + * @see org.etsi.mts.tdl.tdlPackage#getComment_Body() + * @model required="true" + * @generated + */ + String getBody(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.Comment#getBody Body}' attribute. + * + * + * @param value the new value of the 'Body' attribute. + * @see #getBody() + * @generated + */ + void setBody(String value); + + /** + * Returns the value of the 'Commented Element' container reference. + * It is bidirectional and its opposite is '{@link org.etsi.mts.tdl.Element#getComment Comment}'. + * + * + * @return the value of the 'Commented Element' container reference. + * @see #setCommentedElement(Element) + * @see org.etsi.mts.tdl.tdlPackage#getComment_CommentedElement() + * @see org.etsi.mts.tdl.Element#getComment + * @model opposite="comment" required="true" transient="false" + * @generated + */ + Element getCommentedElement(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.Comment#getCommentedElement Commented Element}' container reference. + * + * + * @param value the new value of the 'Commented Element' container reference. + * @see #getCommentedElement() + * @generated + */ + void setCommentedElement(Element value); + +} // Comment diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/ComponentInstance.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/ComponentInstance.java new file mode 100644 index 0000000000000000000000000000000000000000..caf7885f9a283ab7feb3f985da245196600b9ee9 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/ComponentInstance.java @@ -0,0 +1,72 @@ +/** + */ +package org.etsi.mts.tdl; + + +/** + * + * A representation of the model object 'Component Instance'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.ComponentInstance#getType Type}
  • + *
  • {@link org.etsi.mts.tdl.ComponentInstance#getRole Role}
  • + *
+ * + * @see org.etsi.mts.tdl.tdlPackage#getComponentInstance() + * @model + * @generated + */ +public interface ComponentInstance extends NamedElement +{ + /** + * Returns the value of the 'Type' reference. + * + * + * @return the value of the 'Type' reference. + * @see #setType(ComponentType) + * @see org.etsi.mts.tdl.tdlPackage#getComponentInstance_Type() + * @model required="true" + * @generated + */ + ComponentType getType(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.ComponentInstance#getType Type}' reference. + * + * + * @param value the new value of the 'Type' reference. + * @see #getType() + * @generated + */ + void setType(ComponentType value); + + /** + * Returns the value of the 'Role' attribute. + * The literals are from the enumeration {@link org.etsi.mts.tdl.ComponentInstanceRole}. + * + * + * @return the value of the 'Role' attribute. + * @see org.etsi.mts.tdl.ComponentInstanceRole + * @see #setRole(ComponentInstanceRole) + * @see org.etsi.mts.tdl.tdlPackage#getComponentInstance_Role() + * @model required="true" + * @generated + */ + ComponentInstanceRole getRole(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.ComponentInstance#getRole Role}' attribute. + * + * + * @param value the new value of the 'Role' attribute. + * @see org.etsi.mts.tdl.ComponentInstanceRole + * @see #getRole() + * @generated + */ + void setRole(ComponentInstanceRole value); + +} // ComponentInstance diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/ComponentInstanceBinding.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/ComponentInstanceBinding.java new file mode 100644 index 0000000000000000000000000000000000000000..9aaa026352a86487a5ab78dcf4791b9f3d8182ac --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/ComponentInstanceBinding.java @@ -0,0 +1,69 @@ +/** + */ +package org.etsi.mts.tdl; + + +/** + * + * A representation of the model object 'Component Instance Binding'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.ComponentInstanceBinding#getFormalComponent Formal Component}
  • + *
  • {@link org.etsi.mts.tdl.ComponentInstanceBinding#getActualComponent Actual Component}
  • + *
+ * + * @see org.etsi.mts.tdl.tdlPackage#getComponentInstanceBinding() + * @model + * @generated + */ +public interface ComponentInstanceBinding extends Element +{ + /** + * Returns the value of the 'Formal Component' reference. + * + * + * @return the value of the 'Formal Component' reference. + * @see #setFormalComponent(ComponentInstance) + * @see org.etsi.mts.tdl.tdlPackage#getComponentInstanceBinding_FormalComponent() + * @model required="true" + * @generated + */ + ComponentInstance getFormalComponent(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.ComponentInstanceBinding#getFormalComponent Formal Component}' reference. + * + * + * @param value the new value of the 'Formal Component' reference. + * @see #getFormalComponent() + * @generated + */ + void setFormalComponent(ComponentInstance value); + + /** + * Returns the value of the 'Actual Component' reference. + * + * + * @return the value of the 'Actual Component' reference. + * @see #setActualComponent(ComponentInstance) + * @see org.etsi.mts.tdl.tdlPackage#getComponentInstanceBinding_ActualComponent() + * @model required="true" + * @generated + */ + ComponentInstance getActualComponent(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.ComponentInstanceBinding#getActualComponent Actual Component}' reference. + * + * + * @param value the new value of the 'Actual Component' reference. + * @see #getActualComponent() + * @generated + */ + void setActualComponent(ComponentInstance value); + +} // ComponentInstanceBinding diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/ComponentInstanceRole.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/ComponentInstanceRole.java new file mode 100644 index 0000000000000000000000000000000000000000..58ab4013c9f0a19dc6cd0a297372746bd8f0c988 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/ComponentInstanceRole.java @@ -0,0 +1,224 @@ +/** + */ +package org.etsi.mts.tdl; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +import org.eclipse.emf.common.util.Enumerator; + +/** + * + * A representation of the literals of the enumeration 'Component Instance Role', + * and utility methods for working with them. + * + * @see org.etsi.mts.tdl.tdlPackage#getComponentInstanceRole() + * @model + * @generated + */ +public enum ComponentInstanceRole implements Enumerator +{ + /** + * The 'SUT' literal object. + * + * + * @see #SUT_VALUE + * @generated + * @ordered + */ + SUT(0, "SUT", "SUT"), + + /** + * The 'Tester' literal object. + * + * + * @see #TESTER_VALUE + * @generated + * @ordered + */ + TESTER(1, "Tester", "Tester"); + + /** + * The 'SUT' literal value. + * + * + * @see #SUT + * @model + * @generated + * @ordered + */ + public static final int SUT_VALUE = 0; + + /** + * The 'Tester' literal value. + * + * + * @see #TESTER + * @model name="Tester" + * @generated + * @ordered + */ + public static final int TESTER_VALUE = 1; + + /** + * An array of all the 'Component Instance Role' enumerators. + * + * + * @generated + */ + private static final ComponentInstanceRole[] VALUES_ARRAY = + new ComponentInstanceRole[] + { + SUT, + TESTER, + }; + + /** + * A public read-only list of all the 'Component Instance Role' enumerators. + * + * + * @generated + */ + public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY)); + + /** + * Returns the 'Component Instance Role' literal with the specified literal value. + * + * + * @param literal the literal. + * @return the matching enumerator or null. + * @generated + */ + public static ComponentInstanceRole get(String literal) + { + for (int i = 0; i < VALUES_ARRAY.length; ++i) + { + ComponentInstanceRole result = VALUES_ARRAY[i]; + if (result.toString().equals(literal)) + { + return result; + } + } + return null; + } + + /** + * Returns the 'Component Instance Role' literal with the specified name. + * + * + * @param name the name. + * @return the matching enumerator or null. + * @generated + */ + public static ComponentInstanceRole getByName(String name) + { + for (int i = 0; i < VALUES_ARRAY.length; ++i) + { + ComponentInstanceRole result = VALUES_ARRAY[i]; + if (result.getName().equals(name)) + { + return result; + } + } + return null; + } + + /** + * Returns the 'Component Instance Role' literal with the specified integer value. + * + * + * @param value the integer value. + * @return the matching enumerator or null. + * @generated + */ + public static ComponentInstanceRole get(int value) + { + switch (value) + { + case SUT_VALUE: return SUT; + case TESTER_VALUE: return TESTER; + } + return null; + } + + /** + * + * + * @generated + */ + private final int value; + + /** + * + * + * @generated + */ + private final String name; + + /** + * + * + * @generated + */ + private final String literal; + + /** + * Only this class can construct instances. + * + * + * @generated + */ + private ComponentInstanceRole(int value, String name, String literal) + { + this.value = value; + this.name = name; + this.literal = literal; + } + + /** + * + * + * @generated + */ + @Override + public int getValue() + { + return value; + } + + /** + * + * + * @generated + */ + @Override + public String getName() + { + return name; + } + + /** + * + * + * @generated + */ + @Override + public String getLiteral() + { + return literal; + } + + /** + * Returns the literal value of the enumerator, which is its string representation. + * + * + * @generated + */ + @Override + public String toString() + { + return literal; + } + +} //ComponentInstanceRole diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/ComponentType.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/ComponentType.java new file mode 100644 index 0000000000000000000000000000000000000000..0fb72081aa4b0d046dcf413f1d191ec653876a95 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/ComponentType.java @@ -0,0 +1,113 @@ +/** + */ +package org.etsi.mts.tdl; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Component Type'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.ComponentType#getGateInstance Gate Instance}
  • + *
  • {@link org.etsi.mts.tdl.ComponentType#getTimer Timer}
  • + *
  • {@link org.etsi.mts.tdl.ComponentType#getVariable Variable}
  • + *
  • {@link org.etsi.mts.tdl.ComponentType#getExtension Extension}
  • + *
+ * + * @see org.etsi.mts.tdl.tdlPackage#getComponentType() + * @model + * @generated + */ +public interface ComponentType extends PackageableElement +{ + /** + * Returns the value of the 'Gate Instance' containment reference list. + * The list contents are of type {@link org.etsi.mts.tdl.GateInstance}. + * + * + * @return the value of the 'Gate Instance' containment reference list. + * @see org.etsi.mts.tdl.tdlPackage#getComponentType_GateInstance() + * @model containment="true" required="true" + * @generated + */ + EList getGateInstance(); + + /** + * Returns the value of the 'Timer' containment reference list. + * The list contents are of type {@link org.etsi.mts.tdl.Timer}. + * + * + * @return the value of the 'Timer' containment reference list. + * @see org.etsi.mts.tdl.tdlPackage#getComponentType_Timer() + * @model containment="true" + * @generated + */ + EList getTimer(); + + /** + * Returns the value of the 'Variable' containment reference list. + * The list contents are of type {@link org.etsi.mts.tdl.Variable}. + * + * + * @return the value of the 'Variable' containment reference list. + * @see org.etsi.mts.tdl.tdlPackage#getComponentType_Variable() + * @model containment="true" + * @generated + */ + EList getVariable(); + + /** + * Returns the value of the 'Extension' containment reference. + * + * + * @return the value of the 'Extension' containment reference. + * @see #setExtension(Extension) + * @see org.etsi.mts.tdl.tdlPackage#getComponentType_Extension() + * @model containment="true" + * @generated + */ + Extension getExtension(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.ComponentType#getExtension Extension}' containment reference. + * + * + * @param value the new value of the 'Extension' containment reference. + * @see #getExtension() + * @generated + */ + void setExtension(Extension value); + + /** + * + * + * @model annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot body='\n if (not self.extension.oclIsUndefined()) then\n self.extension.extending.oclAsType(ComponentType).allGates()->union(self.gateInstance)->asOrderedSet()\n else \n self.gateInstance\n endif\n '" + * annotation="http://www.eclipse.org/OCL/Collection nullFree='false'" + * @generated + */ + EList allGates(); + + /** + * + * + * @model annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot body='\n if (not self.extension.oclIsUndefined()) then\n self.extension.extending.oclAsType(ComponentType).allTimers()->union(self.timer)->asOrderedSet()\n else \n self.timer\n endif\n '" + * annotation="http://www.eclipse.org/OCL/Collection nullFree='false'" + * @generated + */ + EList allTimers(); + + /** + * + * + * @model annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot body='\n if (not self.extension.oclIsUndefined()) then\n self.extension.extending.oclAsType(ComponentType).allVariables()->union(self.variable)->asOrderedSet()\n else \n self.variable\n endif\n '" + * annotation="http://www.eclipse.org/OCL/Collection nullFree='false'" + * @generated + */ + EList allVariables(); + +} // ComponentType diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/CompoundBehaviour.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/CompoundBehaviour.java new file mode 100644 index 0000000000000000000000000000000000000000..13afa0606860a652abbeb9b36e2c994d4c161efb --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/CompoundBehaviour.java @@ -0,0 +1,18 @@ +/** + */ +package org.etsi.mts.tdl; + + +/** + * + * A representation of the model object 'Compound Behaviour'. + * + * + * + * @see org.etsi.mts.tdl.tdlPackage#getCompoundBehaviour() + * @model + * @generated + */ +public interface CompoundBehaviour extends SingleCombinedBehaviour +{ +} // CompoundBehaviour diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/ConditionalBehaviour.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/ConditionalBehaviour.java new file mode 100644 index 0000000000000000000000000000000000000000..2eaec64bc43d77165bb396d3d4b24d0881d4a1f5 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/ConditionalBehaviour.java @@ -0,0 +1,18 @@ +/** + */ +package org.etsi.mts.tdl; + + +/** + * + * A representation of the model object 'Conditional Behaviour'. + * + * + * + * @see org.etsi.mts.tdl.tdlPackage#getConditionalBehaviour() + * @model + * @generated + */ +public interface ConditionalBehaviour extends MultipleCombinedBehaviour +{ +} // ConditionalBehaviour diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/Connection.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/Connection.java new file mode 100644 index 0000000000000000000000000000000000000000..3b2aa752de8b927575c8bd781f1ee447c24ae3bd --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/Connection.java @@ -0,0 +1,37 @@ +/** + */ +package org.etsi.mts.tdl; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Connection'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.Connection#getEndPoint End Point}
  • + *
+ * + * @see org.etsi.mts.tdl.tdlPackage#getConnection() + * @model + * @generated + */ +public interface Connection extends Element +{ + /** + * Returns the value of the 'End Point' containment reference list. + * The list contents are of type {@link org.etsi.mts.tdl.GateReference}. + * + * + * @return the value of the 'End Point' containment reference list. + * @see org.etsi.mts.tdl.tdlPackage#getConnection_EndPoint() + * @model containment="true" lower="2" upper="2" ordered="false" + * @generated + */ + EList getEndPoint(); + +} // Connection diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/Constraint.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/Constraint.java new file mode 100644 index 0000000000000000000000000000000000000000..87f57d00c1d1c74cd6c359ff387a0daf58d10963 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/Constraint.java @@ -0,0 +1,61 @@ +/** + */ +package org.etsi.mts.tdl; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Constraint'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.Constraint#getType Type}
  • + *
  • {@link org.etsi.mts.tdl.Constraint#getQuantifier Quantifier}
  • + *
+ * + * @see org.etsi.mts.tdl.tdlPackage#getConstraint() + * @model + * @generated + */ +public interface Constraint extends Element +{ + /** + * Returns the value of the 'Type' reference. + * + * + * @return the value of the 'Type' reference. + * @see #setType(ConstraintType) + * @see org.etsi.mts.tdl.tdlPackage#getConstraint_Type() + * @model required="true" + * @generated + */ + ConstraintType getType(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.Constraint#getType Type}' reference. + * + * + * @param value the new value of the 'Type' reference. + * @see #getType() + * @generated + */ + void setType(ConstraintType value); + + /** + * Returns the value of the 'Quantifier' containment reference list. + * The list contents are of type {@link org.etsi.mts.tdl.DataUse}. + * + * + * @return the value of the 'Quantifier' containment reference list. + * @see org.etsi.mts.tdl.tdlPackage#getConstraint_Quantifier() + * @model containment="true" + * annotation="http://www.eclipse.org/OCL/Collection nullFree='false'" + * @generated + */ + EList getQuantifier(); + +} // Constraint diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/ConstraintType.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/ConstraintType.java new file mode 100644 index 0000000000000000000000000000000000000000..478ad90aebe5e1d7e97b8f55f2d457d958912f89 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/ConstraintType.java @@ -0,0 +1,18 @@ +/** + */ +package org.etsi.mts.tdl; + + +/** + * + * A representation of the model object 'Constraint Type'. + * + * + * + * @see org.etsi.mts.tdl.tdlPackage#getConstraintType() + * @model + * @generated + */ +public interface ConstraintType extends PackageableElement +{ +} // ConstraintType diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/DataElementMapping.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/DataElementMapping.java new file mode 100644 index 0000000000000000000000000000000000000000..a56fadb5f39fad6287482daba894dc2506026235 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/DataElementMapping.java @@ -0,0 +1,106 @@ +/** + */ +package org.etsi.mts.tdl; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Data Element Mapping'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.DataElementMapping#getMappableDataElement Mappable Data Element}
  • + *
  • {@link org.etsi.mts.tdl.DataElementMapping#getElementURI Element URI}
  • + *
  • {@link org.etsi.mts.tdl.DataElementMapping#getDataResourceMapping Data Resource Mapping}
  • + *
  • {@link org.etsi.mts.tdl.DataElementMapping#getParameterMapping Parameter Mapping}
  • + *
+ * + * @see org.etsi.mts.tdl.tdlPackage#getDataElementMapping() + * @model + * @generated + */ +public interface DataElementMapping extends PackageableElement +{ + /** + * Returns the value of the 'Mappable Data Element' reference. + * + * + * @return the value of the 'Mappable Data Element' reference. + * @see #setMappableDataElement(MappableDataElement) + * @see org.etsi.mts.tdl.tdlPackage#getDataElementMapping_MappableDataElement() + * @model required="true" + * @generated + */ + MappableDataElement getMappableDataElement(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.DataElementMapping#getMappableDataElement Mappable Data Element}' reference. + * + * + * @param value the new value of the 'Mappable Data Element' reference. + * @see #getMappableDataElement() + * @generated + */ + void setMappableDataElement(MappableDataElement value); + + /** + * Returns the value of the 'Element URI' attribute. + * + * + * @return the value of the 'Element URI' attribute. + * @see #setElementURI(String) + * @see org.etsi.mts.tdl.tdlPackage#getDataElementMapping_ElementURI() + * @model + * @generated + */ + String getElementURI(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.DataElementMapping#getElementURI Element URI}' attribute. + * + * + * @param value the new value of the 'Element URI' attribute. + * @see #getElementURI() + * @generated + */ + void setElementURI(String value); + + /** + * Returns the value of the 'Data Resource Mapping' reference. + * + * + * @return the value of the 'Data Resource Mapping' reference. + * @see #setDataResourceMapping(DataResourceMapping) + * @see org.etsi.mts.tdl.tdlPackage#getDataElementMapping_DataResourceMapping() + * @model required="true" + * @generated + */ + DataResourceMapping getDataResourceMapping(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.DataElementMapping#getDataResourceMapping Data Resource Mapping}' reference. + * + * + * @param value the new value of the 'Data Resource Mapping' reference. + * @see #getDataResourceMapping() + * @generated + */ + void setDataResourceMapping(DataResourceMapping value); + + /** + * Returns the value of the 'Parameter Mapping' containment reference list. + * The list contents are of type {@link org.etsi.mts.tdl.ParameterMapping}. + * + * + * @return the value of the 'Parameter Mapping' containment reference list. + * @see org.etsi.mts.tdl.tdlPackage#getDataElementMapping_ParameterMapping() + * @model containment="true" ordered="false" + * @generated + */ + EList getParameterMapping(); + +} // DataElementMapping diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/DataElementUse.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/DataElementUse.java new file mode 100644 index 0000000000000000000000000000000000000000..79e274a36137890de9f1e794f1b818828c659ad3 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/DataElementUse.java @@ -0,0 +1,95 @@ +/** + */ +package org.etsi.mts.tdl; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Data Element Use'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.DataElementUse#getUnassignedMember Unassigned Member}
  • + *
  • {@link org.etsi.mts.tdl.DataElementUse#getDataElement Data Element}
  • + *
  • {@link org.etsi.mts.tdl.DataElementUse#getItem Item}
  • + *
+ * + * @see org.etsi.mts.tdl.tdlPackage#getDataElementUse() + * @model + * @generated + */ +public interface DataElementUse extends DataUse +{ + /** + * Returns the value of the 'Unassigned Member' attribute. + * The literals are from the enumeration {@link org.etsi.mts.tdl.UnassignedMemberTreatment}. + * + * + * @return the value of the 'Unassigned Member' attribute. + * @see org.etsi.mts.tdl.UnassignedMemberTreatment + * @see #setUnassignedMember(UnassignedMemberTreatment) + * @see org.etsi.mts.tdl.tdlPackage#getDataElementUse_UnassignedMember() + * @model + * @generated + */ + UnassignedMemberTreatment getUnassignedMember(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.DataElementUse#getUnassignedMember Unassigned Member}' attribute. + * + * + * @param value the new value of the 'Unassigned Member' attribute. + * @see org.etsi.mts.tdl.UnassignedMemberTreatment + * @see #getUnassignedMember() + * @generated + */ + void setUnassignedMember(UnassignedMemberTreatment value); + + /** + * Returns the value of the 'Data Element' reference. + * + * + * @return the value of the 'Data Element' reference. + * @see #setDataElement(NamedElement) + * @see org.etsi.mts.tdl.tdlPackage#getDataElementUse_DataElement() + * @model + * @generated + */ + NamedElement getDataElement(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.DataElementUse#getDataElement Data Element}' reference. + * + * + * @param value the new value of the 'Data Element' reference. + * @see #getDataElement() + * @generated + */ + void setDataElement(NamedElement value); + + /** + * Returns the value of the 'Item' containment reference list. + * The list contents are of type {@link org.etsi.mts.tdl.DataUse}. + * + * + * @return the value of the 'Item' containment reference list. + * @see org.etsi.mts.tdl.tdlPackage#getDataElementUse_Item() + * @model containment="true" + * annotation="http://www.eclipse.org/OCL/Collection nullFree='false'" + * @generated + */ + EList getItem(); + + /** + * + * + * @model annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot body='\n if (not self.dataElement.oclIsUndefined()) then\n if (self.dataElement.oclIsKindOf(DataType)) then\n self.dataElement.oclAsType(DataType)\n else\n if (self.dataElement.oclIsKindOf(DataInstance)) then\n self.dataElement.oclAsType(DataInstance).dataType\n else \n if (self.dataElement.oclIsTypeOf(FormalParameter)) then\n self.dataElement.oclAsType(FormalParameter).dataType\n else \n if (self.dataElement.oclIsTypeOf(Function)) then\n self.dataElement.oclAsType(Function).returnType\n else\n null\n endif\n endif \n endif\n endif\n else \n if (self.container().oclIsTypeOf(MemberAssignment)) then\n self.container().oclAsType(MemberAssignment).member.dataType\n else \n if (self.container().oclIsTypeOf(ParameterBinding)) then\n self.container().oclAsType(ParameterBinding).parameter.dataType\n else\n if (self.container().oclIsTypeOf(CollectionDataInstance)) then\n self.container().oclAsType(CollectionDataInstance).dataType.oclAsType(CollectionDataType).itemType\n else\n if (self.container().oclIsTypeOf(DataElementUse)) then\n self.container().oclAsType(DataElementUse).resolveDataType().oclAsType(CollectionDataType).itemType\n else\n if (self.container().oclIsTypeOf(DataInstanceUse)) then\n self.container().oclAsType(DataInstanceUse).resolveDataType().oclAsType(CollectionDataType).itemType\n else\n null\n endif\n endif\n endif\n endif\n endif\n endif\n '" + * @generated + */ + DataType resolveDataType(); + +} // DataElementUse diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/DataInstance.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/DataInstance.java new file mode 100644 index 0000000000000000000000000000000000000000..9c1f14b07c1f0a4ff3aca534d70389aca1354ddf --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/DataInstance.java @@ -0,0 +1,46 @@ +/** + */ +package org.etsi.mts.tdl; + + +/** + * + * A representation of the model object 'Data Instance'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.DataInstance#getDataType Data Type}
  • + *
+ * + * @see org.etsi.mts.tdl.tdlPackage#getDataInstance() + * @model abstract="true" + * @generated + */ +public interface DataInstance extends MappableDataElement +{ + /** + * Returns the value of the 'Data Type' reference. + * + * + * @return the value of the 'Data Type' reference. + * @see #setDataType(DataType) + * @see org.etsi.mts.tdl.tdlPackage#getDataInstance_DataType() + * @model required="true" + * @generated + */ + DataType getDataType(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.DataInstance#getDataType Data Type}' reference. + * + * + * @param value the new value of the 'Data Type' reference. + * @see #getDataType() + * @generated + */ + void setDataType(DataType value); + +} // DataInstance diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/DataInstanceUse.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/DataInstanceUse.java new file mode 100644 index 0000000000000000000000000000000000000000..3c4eb5eb226565dc3fe1e947098df9308a4dbfcc --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/DataInstanceUse.java @@ -0,0 +1,118 @@ +/** + */ +package org.etsi.mts.tdl; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Data Instance Use'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.DataInstanceUse#getDataInstance Data Instance}
  • + *
  • {@link org.etsi.mts.tdl.DataInstanceUse#getUnassignedMember Unassigned Member}
  • + *
  • {@link org.etsi.mts.tdl.DataInstanceUse#getDataType Data Type}
  • + *
  • {@link org.etsi.mts.tdl.DataInstanceUse#getItem Item}
  • + *
+ * + * @see org.etsi.mts.tdl.tdlPackage#getDataInstanceUse() + * @model + * @generated + */ +public interface DataInstanceUse extends StaticDataUse +{ + /** + * Returns the value of the 'Data Instance' reference. + * + * + * @return the value of the 'Data Instance' reference. + * @see #setDataInstance(DataInstance) + * @see org.etsi.mts.tdl.tdlPackage#getDataInstanceUse_DataInstance() + * @model + * @generated + */ + DataInstance getDataInstance(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.DataInstanceUse#getDataInstance Data Instance}' reference. + * + * + * @param value the new value of the 'Data Instance' reference. + * @see #getDataInstance() + * @generated + */ + void setDataInstance(DataInstance value); + + /** + * Returns the value of the 'Unassigned Member' attribute. + * The literals are from the enumeration {@link org.etsi.mts.tdl.UnassignedMemberTreatment}. + * + * + * @return the value of the 'Unassigned Member' attribute. + * @see org.etsi.mts.tdl.UnassignedMemberTreatment + * @see #setUnassignedMember(UnassignedMemberTreatment) + * @see org.etsi.mts.tdl.tdlPackage#getDataInstanceUse_UnassignedMember() + * @model + * @generated + */ + UnassignedMemberTreatment getUnassignedMember(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.DataInstanceUse#getUnassignedMember Unassigned Member}' attribute. + * + * + * @param value the new value of the 'Unassigned Member' attribute. + * @see org.etsi.mts.tdl.UnassignedMemberTreatment + * @see #getUnassignedMember() + * @generated + */ + void setUnassignedMember(UnassignedMemberTreatment value); + + /** + * Returns the value of the 'Data Type' reference. + * + * + * @return the value of the 'Data Type' reference. + * @see #setDataType(DataType) + * @see org.etsi.mts.tdl.tdlPackage#getDataInstanceUse_DataType() + * @model + * @generated + */ + DataType getDataType(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.DataInstanceUse#getDataType Data Type}' reference. + * + * + * @param value the new value of the 'Data Type' reference. + * @see #getDataType() + * @generated + */ + void setDataType(DataType value); + + /** + * Returns the value of the 'Item' containment reference list. + * The list contents are of type {@link org.etsi.mts.tdl.DataUse}. + * + * + * @return the value of the 'Item' containment reference list. + * @see org.etsi.mts.tdl.tdlPackage#getDataInstanceUse_Item() + * @model containment="true" + * annotation="http://www.eclipse.org/OCL/Collection nullFree='false'" + * @generated + */ + EList getItem(); + + /** + * + * + * @model annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot body='\n if (not self.dataInstance.oclIsUndefined()) then\n self.dataInstance.dataType\n else \n if (not self.dataType.oclIsUndefined()) then\n self.dataType\n else \n if (self.container().oclIsTypeOf(MemberAssignment)) then\n self.container().oclAsType(MemberAssignment).member.dataType\n else \n if (self.container().oclIsTypeOf(ParameterBinding)) then\n self.container().oclAsType(ParameterBinding).parameter.dataType\n else\n if (self.container().oclIsTypeOf(CollectionDataInstance)) then\n self.container().oclAsType(CollectionDataInstance).dataType.oclAsType(CollectionDataType).itemType\n else\n if (self.container().oclIsTypeOf(DataElementUse)) then\n self.container().oclAsType(DataElementUse).resolveDataType().oclAsType(CollectionDataType).itemType\n else\n if (self.container().oclIsTypeOf(DataInstanceUse)) then\n self.container().oclAsType(DataInstanceUse).resolveDataType().oclAsType(CollectionDataType).itemType\n else\n null\n endif\n endif\n endif\n endif\n endif\n endif\n endif\n '" + * @generated + */ + DataType resolveDataType(); + +} // DataInstanceUse diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/DataResourceMapping.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/DataResourceMapping.java new file mode 100644 index 0000000000000000000000000000000000000000..d77cd08fbb7ae83c8f0ed79df1a273823796d7b6 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/DataResourceMapping.java @@ -0,0 +1,46 @@ +/** + */ +package org.etsi.mts.tdl; + + +/** + * + * A representation of the model object 'Data Resource Mapping'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.DataResourceMapping#getResourceURI Resource URI}
  • + *
+ * + * @see org.etsi.mts.tdl.tdlPackage#getDataResourceMapping() + * @model + * @generated + */ +public interface DataResourceMapping extends PackageableElement +{ + /** + * Returns the value of the 'Resource URI' attribute. + * + * + * @return the value of the 'Resource URI' attribute. + * @see #setResourceURI(String) + * @see org.etsi.mts.tdl.tdlPackage#getDataResourceMapping_ResourceURI() + * @model + * @generated + */ + String getResourceURI(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.DataResourceMapping#getResourceURI Resource URI}' attribute. + * + * + * @param value the new value of the 'Resource URI' attribute. + * @see #getResourceURI() + * @generated + */ + void setResourceURI(String value); + +} // DataResourceMapping diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/DataType.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/DataType.java new file mode 100644 index 0000000000000000000000000000000000000000..628771aadf821850e2a12be904b817b7c8470003 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/DataType.java @@ -0,0 +1,47 @@ +/** + */ +package org.etsi.mts.tdl; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Data Type'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.DataType#getConstraint Constraint}
  • + *
+ * + * @see org.etsi.mts.tdl.tdlPackage#getDataType() + * @model abstract="true" + * @generated + */ +public interface DataType extends MappableDataElement +{ + /** + * Returns the value of the 'Constraint' containment reference list. + * The list contents are of type {@link org.etsi.mts.tdl.Constraint}. + * + * + * @return the value of the 'Constraint' containment reference list. + * @see org.etsi.mts.tdl.tdlPackage#getDataType_Constraint() + * @model containment="true" + * annotation="http://www.eclipse.org/OCL/Collection nullFree='false'" + * @generated + */ + EList getConstraint(); + + /** + * + * + * @model annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot body='\n self.constraint\n '" + * annotation="http://www.eclipse.org/OCL/Collection nullFree='false'" + * @generated + */ + EList allConstraints(); + +} // DataType diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/DataUse.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/DataUse.java new file mode 100644 index 0000000000000000000000000000000000000000..d722f80e7d069db815ef0ec4209544cb1c34fa4d --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/DataUse.java @@ -0,0 +1,67 @@ +/** + */ +package org.etsi.mts.tdl; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Data Use'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.DataUse#getArgument Argument}
  • + *
  • {@link org.etsi.mts.tdl.DataUse#getReduction Reduction}
  • + *
+ * + * @see org.etsi.mts.tdl.tdlPackage#getDataUse() + * @model abstract="true" + * @generated + */ +public interface DataUse extends Element +{ + /** + * Returns the value of the 'Argument' containment reference list. + * The list contents are of type {@link org.etsi.mts.tdl.ParameterBinding}. + * + * + * @return the value of the 'Argument' containment reference list. + * @see org.etsi.mts.tdl.tdlPackage#getDataUse_Argument() + * @model containment="true" + * @generated + */ + EList getArgument(); + + /** + * Returns the value of the 'Reduction' containment reference list. + * The list contents are of type {@link org.etsi.mts.tdl.MemberReference}. + * + * + * @return the value of the 'Reduction' containment reference list. + * @see org.etsi.mts.tdl.tdlPackage#getDataUse_Reduction() + * @model containment="true" + * @generated + */ + EList getReduction(); + + /** + * + * + * @model annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot body='null'" + * @generated + */ + DataType resolveDataType(); + + /** + * + * + * @model kind="operation" required="true" + * annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot body='\n (self.oclIsKindOf(StaticDataUse)\n or (self.oclIsKindOf(DataElementUse) and \n (self.oclAsType(DataElementUse).dataElement.oclIsUndefined()\n or self.oclAsType(DataElementUse).dataElement.oclIsKindOf(DataInstance)\n or self.oclAsType(DataElementUse).dataElement.oclIsKindOf(DataType)\n )\n )\n )\n and self.argument->forAll(a | a.dataUse.isEffectivelyStatic())\n '" + * @generated + */ + boolean isEffectivelyStatic(); + +} // DataUse diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/DefaultBehaviour.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/DefaultBehaviour.java new file mode 100644 index 0000000000000000000000000000000000000000..ca7d776cbc7c4d048182e1799bcf5f8b0de24923 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/DefaultBehaviour.java @@ -0,0 +1,18 @@ +/** + */ +package org.etsi.mts.tdl; + + +/** + * + * A representation of the model object 'Default Behaviour'. + * + * + * + * @see org.etsi.mts.tdl.tdlPackage#getDefaultBehaviour() + * @model + * @generated + */ +public interface DefaultBehaviour extends ExceptionalBehaviour +{ +} // DefaultBehaviour diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/DynamicDataUse.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/DynamicDataUse.java new file mode 100644 index 0000000000000000000000000000000000000000..88449c0e6564ad3bd7b99f4f532abaf912a886e5 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/DynamicDataUse.java @@ -0,0 +1,18 @@ +/** + */ +package org.etsi.mts.tdl; + + +/** + * + * A representation of the model object 'Dynamic Data Use'. + * + * + * + * @see org.etsi.mts.tdl.tdlPackage#getDynamicDataUse() + * @model abstract="true" + * @generated + */ +public interface DynamicDataUse extends DataUse +{ +} // DynamicDataUse diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/Element.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/Element.java new file mode 100644 index 0000000000000000000000000000000000000000..4cd18a136175e0393d7bceb448feba1dbe83c6be --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/Element.java @@ -0,0 +1,96 @@ +/** + */ +package org.etsi.mts.tdl; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Element'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.Element#getComment Comment}
  • + *
  • {@link org.etsi.mts.tdl.Element#getAnnotation Annotation}
  • + *
  • {@link org.etsi.mts.tdl.Element#getName Name}
  • + *
+ * + * @see org.etsi.mts.tdl.tdlPackage#getElement() + * @model abstract="true" + * @generated + */ +public interface Element extends EObject +{ + /** + * Returns the value of the 'Comment' containment reference list. + * The list contents are of type {@link org.etsi.mts.tdl.Comment}. + * It is bidirectional and its opposite is '{@link org.etsi.mts.tdl.Comment#getCommentedElement Commented Element}'. + * + * + * @return the value of the 'Comment' containment reference list. + * @see org.etsi.mts.tdl.tdlPackage#getElement_Comment() + * @see org.etsi.mts.tdl.Comment#getCommentedElement + * @model opposite="commentedElement" containment="true" + * @generated + */ + EList getComment(); + + /** + * Returns the value of the 'Annotation' containment reference list. + * The list contents are of type {@link org.etsi.mts.tdl.Annotation}. + * It is bidirectional and its opposite is '{@link org.etsi.mts.tdl.Annotation#getAnnotatedElement Annotated Element}'. + * + * + * @return the value of the 'Annotation' containment reference list. + * @see org.etsi.mts.tdl.tdlPackage#getElement_Annotation() + * @see org.etsi.mts.tdl.Annotation#getAnnotatedElement + * @model opposite="annotatedElement" containment="true" + * @generated + */ + EList getAnnotation(); + + /** + * Returns the value of the 'Name' attribute. + * + * + * @return the value of the 'Name' attribute. + * @see #setName(String) + * @see org.etsi.mts.tdl.tdlPackage#getElement_Name() + * @model + * @generated + */ + String getName(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.Element#getName Name}' attribute. + * + * + * @param value the new value of the 'Name' attribute. + * @see #getName() + * @generated + */ + void setName(String value); + + /** + * + * + * @model annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot body='\n if (not self.oclContainer().oclIsUndefined()) then\n self.oclContainer().oclAsType(Element)\n else \n null\n endif'" + * @generated + */ + Element container(); + + /** + * + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot body=' \n if (not self.container().oclIsUndefined()) then\n if (self.container().oclIsKindOf(TestDescription)) then\n self.container().oclAsType(TestDescription)\n else\n self.container().getParentTestDescription()\n endif\n else \n null\n endif'" + * @generated + */ + TestDescription getParentTestDescription(); + +} // Element diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/ElementImport.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/ElementImport.java new file mode 100644 index 0000000000000000000000000000000000000000..1eca005b72ba2b326af48400bd2b9003bc3f7085 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/ElementImport.java @@ -0,0 +1,60 @@ +/** + */ +package org.etsi.mts.tdl; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Element Import'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.ElementImport#getImportedElement Imported Element}
  • + *
  • {@link org.etsi.mts.tdl.ElementImport#getImportedPackage Imported Package}
  • + *
+ * + * @see org.etsi.mts.tdl.tdlPackage#getElementImport() + * @model + * @generated + */ +public interface ElementImport extends Element +{ + /** + * Returns the value of the 'Imported Element' reference list. + * The list contents are of type {@link org.etsi.mts.tdl.PackageableElement}. + * + * + * @return the value of the 'Imported Element' reference list. + * @see org.etsi.mts.tdl.tdlPackage#getElementImport_ImportedElement() + * @model ordered="false" + * @generated + */ + EList getImportedElement(); + + /** + * Returns the value of the 'Imported Package' reference. + * + * + * @return the value of the 'Imported Package' reference. + * @see #setImportedPackage(org.etsi.mts.tdl.Package) + * @see org.etsi.mts.tdl.tdlPackage#getElementImport_ImportedPackage() + * @model required="true" + * @generated + */ + org.etsi.mts.tdl.Package getImportedPackage(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.ElementImport#getImportedPackage Imported Package}' reference. + * + * + * @param value the new value of the 'Imported Package' reference. + * @see #getImportedPackage() + * @generated + */ + void setImportedPackage(org.etsi.mts.tdl.Package value); + +} // ElementImport diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/EnumDataType.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/EnumDataType.java new file mode 100644 index 0000000000000000000000000000000000000000..f016f219ff3bd6438ef799a660c3bd2cc76a3367 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/EnumDataType.java @@ -0,0 +1,37 @@ +/** + */ +package org.etsi.mts.tdl; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Enum Data Type'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.EnumDataType#getValue Value}
  • + *
+ * + * @see org.etsi.mts.tdl.tdlPackage#getEnumDataType() + * @model + * @generated + */ +public interface EnumDataType extends SimpleDataType +{ + /** + * Returns the value of the 'Value' containment reference list. + * The list contents are of type {@link org.etsi.mts.tdl.SimpleDataInstance}. + * + * + * @return the value of the 'Value' containment reference list. + * @see org.etsi.mts.tdl.tdlPackage#getEnumDataType_Value() + * @model containment="true" + * @generated + */ + EList getValue(); + +} // EnumDataType diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/ExceptionalBehaviour.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/ExceptionalBehaviour.java new file mode 100644 index 0000000000000000000000000000000000000000..52ebc48bcc304ba3faa07f1f551324b310def3e8 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/ExceptionalBehaviour.java @@ -0,0 +1,80 @@ +/** + */ +package org.etsi.mts.tdl; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Exceptional Behaviour'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.ExceptionalBehaviour#getBlock Block}
  • + *
  • {@link org.etsi.mts.tdl.ExceptionalBehaviour#getGuardedComponent Guarded Component}
  • + *
+ * + * @see org.etsi.mts.tdl.tdlPackage#getExceptionalBehaviour() + * @model abstract="true" + * @generated + */ +public interface ExceptionalBehaviour extends Behaviour +{ + /** + * Returns the value of the 'Block' containment reference. + * + * + * @return the value of the 'Block' containment reference. + * @see #setBlock(Block) + * @see org.etsi.mts.tdl.tdlPackage#getExceptionalBehaviour_Block() + * @model containment="true" required="true" + * @generated + */ + Block getBlock(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.ExceptionalBehaviour#getBlock Block}' containment reference. + * + * + * @param value the new value of the 'Block' containment reference. + * @see #getBlock() + * @generated + */ + void setBlock(Block value); + + /** + * Returns the value of the 'Guarded Component' reference. + * + * + * @return the value of the 'Guarded Component' reference. + * @see #setGuardedComponent(ComponentInstance) + * @see org.etsi.mts.tdl.tdlPackage#getExceptionalBehaviour_GuardedComponent() + * @model + * @generated + */ + ComponentInstance getGuardedComponent(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.ExceptionalBehaviour#getGuardedComponent Guarded Component}' reference. + * + * + * @param value the new value of the 'Guarded Component' reference. + * @see #getGuardedComponent() + * @generated + */ + void setGuardedComponent(ComponentInstance value); + + /** + * + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot body='\n if self.getParentTestDescription()->exists(td | td.isLocallyOrdered) then\n self.block.getParticipatingComponents()->asOrderedSet()\n else\n self.getParentTestDescription().testConfiguration.componentInstance->asOrderedSet()\n endif\n '" + * annotation="http://www.eclipse.org/OCL/Collection nullFree='false'" + * @generated + */ + EList getParticipatingComponents(); + +} // ExceptionalBehaviour diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/Extension.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/Extension.java new file mode 100644 index 0000000000000000000000000000000000000000..bb731aba4eb01a58f4e778f06534a732ab2722ca --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/Extension.java @@ -0,0 +1,64 @@ +/** + */ +package org.etsi.mts.tdl; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Extension'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.Extension#getExtending Extending}
  • + *
+ * + * @see org.etsi.mts.tdl.tdlPackage#getExtension() + * @model + * @generated + */ +public interface Extension extends Element +{ + /** + * Returns the value of the 'Extending' reference. + * + * + * @return the value of the 'Extending' reference. + * @see #setExtending(PackageableElement) + * @see org.etsi.mts.tdl.tdlPackage#getExtension_Extending() + * @model required="true" + * @generated + */ + PackageableElement getExtending(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.Extension#getExtending Extending}' reference. + * + * + * @param value the new value of the 'Extending' reference. + * @see #getExtending() + * @generated + */ + void setExtending(PackageableElement value); + + /** + * + * + * @model annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot body='\n if (self.extending.oclIsKindOf(AnnotationType)) then\n OrderedSet { self.extending.oclAsType(AnnotationType).extension }\n else\n if (self.extending.oclIsKindOf(ComponentType)) then\n OrderedSet { self.extending.oclAsType(ComponentType).extension }\n else\n if (self.extending.oclIsKindOf(GateType)) then\n OrderedSet { self.extending.oclAsType(GateType).extension }\n else\n if (self.extending.oclIsKindOf(StructuredDataType)) then\n self.extending.oclAsType(StructuredDataType).extension\n else\n if (self.extending.oclIsKindOf(SimpleDataType)) then\n OrderedSet { self.extending.oclAsType(SimpleDataType).extension }\n else\n OrderedSet { }\n endif\n endif\n endif\n endif\n endif\n '" + * annotation="http://www.eclipse.org/OCL/Collection nullFree='false'" + * @generated + */ + EList transitiveExtending(); + + /** + * + * + * @model annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot body='\n if (self.extending = e) then\n true\n else\n if (self->closure(transitiveExtending())->includes(e)) then\n true\n else\n false\n endif \n endif\n '" + * @generated + */ + Boolean isExtending(PackageableElement e); + +} // Extension diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/FormalParameter.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/FormalParameter.java new file mode 100644 index 0000000000000000000000000000000000000000..8fdb330bfc7cc573e128868c947a833c4bef2dd8 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/FormalParameter.java @@ -0,0 +1,18 @@ +/** + */ +package org.etsi.mts.tdl; + + +/** + * + * A representation of the model object 'Formal Parameter'. + * + * + * + * @see org.etsi.mts.tdl.tdlPackage#getFormalParameter() + * @model + * @generated + */ +public interface FormalParameter extends Parameter +{ +} // FormalParameter diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/FormalParameterUse.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/FormalParameterUse.java new file mode 100644 index 0000000000000000000000000000000000000000..191788fdefb9a5904daaae803bc4345b28fc8a8d --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/FormalParameterUse.java @@ -0,0 +1,54 @@ +/** + */ +package org.etsi.mts.tdl; + + +/** + * + * A representation of the model object 'Formal Parameter Use'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.FormalParameterUse#getParameter Parameter}
  • + *
+ * + * @see org.etsi.mts.tdl.tdlPackage#getFormalParameterUse() + * @model + * @generated + */ +public interface FormalParameterUse extends DynamicDataUse +{ + /** + * Returns the value of the 'Parameter' reference. + * + * + * @return the value of the 'Parameter' reference. + * @see #setParameter(FormalParameter) + * @see org.etsi.mts.tdl.tdlPackage#getFormalParameterUse_Parameter() + * @model required="true" + * @generated + */ + FormalParameter getParameter(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.FormalParameterUse#getParameter Parameter}' reference. + * + * + * @param value the new value of the 'Parameter' reference. + * @see #getParameter() + * @generated + */ + void setParameter(FormalParameter value); + + /** + * + * + * @model annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot body='self.parameter.dataType'" + * @generated + */ + DataType resolveDataType(); + +} // FormalParameterUse diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/Function.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/Function.java new file mode 100644 index 0000000000000000000000000000000000000000..cc027d4d30ba6888566c782b02b806b8a1c1fd8d --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/Function.java @@ -0,0 +1,46 @@ +/** + */ +package org.etsi.mts.tdl; + + +/** + * + * A representation of the model object 'Function'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.Function#getReturnType Return Type}
  • + *
+ * + * @see org.etsi.mts.tdl.tdlPackage#getFunction() + * @model + * @generated + */ +public interface Function extends Action +{ + /** + * Returns the value of the 'Return Type' reference. + * + * + * @return the value of the 'Return Type' reference. + * @see #setReturnType(DataType) + * @see org.etsi.mts.tdl.tdlPackage#getFunction_ReturnType() + * @model required="true" + * @generated + */ + DataType getReturnType(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.Function#getReturnType Return Type}' reference. + * + * + * @param value the new value of the 'Return Type' reference. + * @see #getReturnType() + * @generated + */ + void setReturnType(DataType value); + +} // Function diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/FunctionCall.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/FunctionCall.java new file mode 100644 index 0000000000000000000000000000000000000000..bb44cc8fae3cdd9ef5a894dba9e6a333560d5362 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/FunctionCall.java @@ -0,0 +1,54 @@ +/** + */ +package org.etsi.mts.tdl; + + +/** + * + * A representation of the model object 'Function Call'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.FunctionCall#getFunction Function}
  • + *
+ * + * @see org.etsi.mts.tdl.tdlPackage#getFunctionCall() + * @model + * @generated + */ +public interface FunctionCall extends DynamicDataUse +{ + /** + * Returns the value of the 'Function' reference. + * + * + * @return the value of the 'Function' reference. + * @see #setFunction(Function) + * @see org.etsi.mts.tdl.tdlPackage#getFunctionCall_Function() + * @model required="true" + * @generated + */ + Function getFunction(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.FunctionCall#getFunction Function}' reference. + * + * + * @param value the new value of the 'Function' reference. + * @see #getFunction() + * @generated + */ + void setFunction(Function value); + + /** + * + * + * @model annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot body='self.function.returnType'" + * @generated + */ + DataType resolveDataType(); + +} // FunctionCall diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/GateInstance.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/GateInstance.java new file mode 100644 index 0000000000000000000000000000000000000000..5d6946eab225144b4d1ff4954756a5b69143df3c --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/GateInstance.java @@ -0,0 +1,46 @@ +/** + */ +package org.etsi.mts.tdl; + + +/** + * + * A representation of the model object 'Gate Instance'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.GateInstance#getType Type}
  • + *
+ * + * @see org.etsi.mts.tdl.tdlPackage#getGateInstance() + * @model + * @generated + */ +public interface GateInstance extends NamedElement +{ + /** + * Returns the value of the 'Type' reference. + * + * + * @return the value of the 'Type' reference. + * @see #setType(GateType) + * @see org.etsi.mts.tdl.tdlPackage#getGateInstance_Type() + * @model required="true" + * @generated + */ + GateType getType(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.GateInstance#getType Type}' reference. + * + * + * @param value the new value of the 'Type' reference. + * @see #getType() + * @generated + */ + void setType(GateType value); + +} // GateInstance diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/GateReference.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/GateReference.java new file mode 100644 index 0000000000000000000000000000000000000000..5ed1d0c1be22476ec4a5886225c63e9cc31e41eb --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/GateReference.java @@ -0,0 +1,69 @@ +/** + */ +package org.etsi.mts.tdl; + + +/** + * + * A representation of the model object 'Gate Reference'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.GateReference#getComponent Component}
  • + *
  • {@link org.etsi.mts.tdl.GateReference#getGate Gate}
  • + *
+ * + * @see org.etsi.mts.tdl.tdlPackage#getGateReference() + * @model + * @generated + */ +public interface GateReference extends Element +{ + /** + * Returns the value of the 'Component' reference. + * + * + * @return the value of the 'Component' reference. + * @see #setComponent(ComponentInstance) + * @see org.etsi.mts.tdl.tdlPackage#getGateReference_Component() + * @model required="true" + * @generated + */ + ComponentInstance getComponent(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.GateReference#getComponent Component}' reference. + * + * + * @param value the new value of the 'Component' reference. + * @see #getComponent() + * @generated + */ + void setComponent(ComponentInstance value); + + /** + * Returns the value of the 'Gate' reference. + * + * + * @return the value of the 'Gate' reference. + * @see #setGate(GateInstance) + * @see org.etsi.mts.tdl.tdlPackage#getGateReference_Gate() + * @model required="true" + * @generated + */ + GateInstance getGate(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.GateReference#getGate Gate}' reference. + * + * + * @param value the new value of the 'Gate' reference. + * @see #getGate() + * @generated + */ + void setGate(GateInstance value); + +} // GateReference diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/GateType.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/GateType.java new file mode 100644 index 0000000000000000000000000000000000000000..31b9764131c90df58bf43323fbb7a9cf1d619f9a --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/GateType.java @@ -0,0 +1,96 @@ +/** + */ +package org.etsi.mts.tdl; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Gate Type'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.GateType#getDataType Data Type}
  • + *
  • {@link org.etsi.mts.tdl.GateType#getKind Kind}
  • + *
  • {@link org.etsi.mts.tdl.GateType#getExtension Extension}
  • + *
+ * + * @see org.etsi.mts.tdl.tdlPackage#getGateType() + * @model + * @generated + */ +public interface GateType extends PackageableElement +{ + /** + * Returns the value of the 'Data Type' reference list. + * The list contents are of type {@link org.etsi.mts.tdl.DataType}. + * + * + * @return the value of the 'Data Type' reference list. + * @see org.etsi.mts.tdl.tdlPackage#getGateType_DataType() + * @model required="true" + * @generated + */ + EList getDataType(); + + /** + * Returns the value of the 'Kind' attribute. + * The default value is "Message". + * The literals are from the enumeration {@link org.etsi.mts.tdl.GateTypeKind}. + * + * + * @return the value of the 'Kind' attribute. + * @see org.etsi.mts.tdl.GateTypeKind + * @see #setKind(GateTypeKind) + * @see org.etsi.mts.tdl.tdlPackage#getGateType_Kind() + * @model default="Message" required="true" + * @generated + */ + GateTypeKind getKind(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.GateType#getKind Kind}' attribute. + * + * + * @param value the new value of the 'Kind' attribute. + * @see org.etsi.mts.tdl.GateTypeKind + * @see #getKind() + * @generated + */ + void setKind(GateTypeKind value); + + /** + * Returns the value of the 'Extension' containment reference. + * + * + * @return the value of the 'Extension' containment reference. + * @see #setExtension(Extension) + * @see org.etsi.mts.tdl.tdlPackage#getGateType_Extension() + * @model containment="true" + * @generated + */ + Extension getExtension(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.GateType#getExtension Extension}' containment reference. + * + * + * @param value the new value of the 'Extension' containment reference. + * @see #getExtension() + * @generated + */ + void setExtension(Extension value); + + /** + * + * + * @model annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot body='\n if (not self.extension.oclIsUndefined()) then\n self.extension.extending.oclAsType(GateType).allDataTypes()->union(self.dataType)->asOrderedSet()\n else \n self.dataType\n endif\n '" + * annotation="http://www.eclipse.org/OCL/Collection nullFree='false'" + * @generated + */ + EList allDataTypes(); + +} // GateType diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/GateTypeKind.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/GateTypeKind.java new file mode 100644 index 0000000000000000000000000000000000000000..d4db35e929571fb6b0b21e74cb4caa9f4ed6a053 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/GateTypeKind.java @@ -0,0 +1,224 @@ +/** + */ +package org.etsi.mts.tdl; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +import org.eclipse.emf.common.util.Enumerator; + +/** + * + * A representation of the literals of the enumeration 'Gate Type Kind', + * and utility methods for working with them. + * + * @see org.etsi.mts.tdl.tdlPackage#getGateTypeKind() + * @model + * @generated + */ +public enum GateTypeKind implements Enumerator +{ + /** + * The 'Message' literal object. + * + * + * @see #MESSAGE_VALUE + * @generated + * @ordered + */ + MESSAGE(0, "Message", "Message"), + + /** + * The 'Procedure' literal object. + * + * + * @see #PROCEDURE_VALUE + * @generated + * @ordered + */ + PROCEDURE(1, "Procedure", "Procedure"); + + /** + * The 'Message' literal value. + * + * + * @see #MESSAGE + * @model name="Message" + * @generated + * @ordered + */ + public static final int MESSAGE_VALUE = 0; + + /** + * The 'Procedure' literal value. + * + * + * @see #PROCEDURE + * @model name="Procedure" + * @generated + * @ordered + */ + public static final int PROCEDURE_VALUE = 1; + + /** + * An array of all the 'Gate Type Kind' enumerators. + * + * + * @generated + */ + private static final GateTypeKind[] VALUES_ARRAY = + new GateTypeKind[] + { + MESSAGE, + PROCEDURE, + }; + + /** + * A public read-only list of all the 'Gate Type Kind' enumerators. + * + * + * @generated + */ + public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY)); + + /** + * Returns the 'Gate Type Kind' literal with the specified literal value. + * + * + * @param literal the literal. + * @return the matching enumerator or null. + * @generated + */ + public static GateTypeKind get(String literal) + { + for (int i = 0; i < VALUES_ARRAY.length; ++i) + { + GateTypeKind result = VALUES_ARRAY[i]; + if (result.toString().equals(literal)) + { + return result; + } + } + return null; + } + + /** + * Returns the 'Gate Type Kind' literal with the specified name. + * + * + * @param name the name. + * @return the matching enumerator or null. + * @generated + */ + public static GateTypeKind getByName(String name) + { + for (int i = 0; i < VALUES_ARRAY.length; ++i) + { + GateTypeKind result = VALUES_ARRAY[i]; + if (result.getName().equals(name)) + { + return result; + } + } + return null; + } + + /** + * Returns the 'Gate Type Kind' literal with the specified integer value. + * + * + * @param value the integer value. + * @return the matching enumerator or null. + * @generated + */ + public static GateTypeKind get(int value) + { + switch (value) + { + case MESSAGE_VALUE: return MESSAGE; + case PROCEDURE_VALUE: return PROCEDURE; + } + return null; + } + + /** + * + * + * @generated + */ + private final int value; + + /** + * + * + * @generated + */ + private final String name; + + /** + * + * + * @generated + */ + private final String literal; + + /** + * Only this class can construct instances. + * + * + * @generated + */ + private GateTypeKind(int value, String name, String literal) + { + this.value = value; + this.name = name; + this.literal = literal; + } + + /** + * + * + * @generated + */ + @Override + public int getValue() + { + return value; + } + + /** + * + * + * @generated + */ + @Override + public String getName() + { + return name; + } + + /** + * + * + * @generated + */ + @Override + public String getLiteral() + { + return literal; + } + + /** + * Returns the literal value of the enumerator, which is its string representation. + * + * + * @generated + */ + @Override + public String toString() + { + return literal; + } + +} //GateTypeKind diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/InlineAction.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/InlineAction.java new file mode 100644 index 0000000000000000000000000000000000000000..7beffa40cbf70df0f7c16d7143109e986868c882 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/InlineAction.java @@ -0,0 +1,46 @@ +/** + */ +package org.etsi.mts.tdl; + + +/** + * + * A representation of the model object 'Inline Action'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.InlineAction#getBody Body}
  • + *
+ * + * @see org.etsi.mts.tdl.tdlPackage#getInlineAction() + * @model + * @generated + */ +public interface InlineAction extends ActionBehaviour +{ + /** + * Returns the value of the 'Body' attribute. + * + * + * @return the value of the 'Body' attribute. + * @see #setBody(String) + * @see org.etsi.mts.tdl.tdlPackage#getInlineAction_Body() + * @model required="true" + * @generated + */ + String getBody(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.InlineAction#getBody Body}' attribute. + * + * + * @param value the new value of the 'Body' attribute. + * @see #getBody() + * @generated + */ + void setBody(String value); + +} // InlineAction diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/Interaction.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/Interaction.java new file mode 100644 index 0000000000000000000000000000000000000000..f9c9ac90d9dca320b8bd3b1139eb912534a57ef3 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/Interaction.java @@ -0,0 +1,70 @@ +/** + */ +package org.etsi.mts.tdl; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Interaction'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.Interaction#getSourceGate Source Gate}
  • + *
  • {@link org.etsi.mts.tdl.Interaction#getTarget Target}
  • + *
+ * + * @see org.etsi.mts.tdl.tdlPackage#getInteraction() + * @model + * @generated + */ +public interface Interaction extends AtomicBehaviour +{ + /** + * Returns the value of the 'Source Gate' reference. + * + * + * @return the value of the 'Source Gate' reference. + * @see #setSourceGate(GateReference) + * @see org.etsi.mts.tdl.tdlPackage#getInteraction_SourceGate() + * @model required="true" + * @generated + */ + GateReference getSourceGate(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.Interaction#getSourceGate Source Gate}' reference. + * + * + * @param value the new value of the 'Source Gate' reference. + * @see #getSourceGate() + * @generated + */ + void setSourceGate(GateReference value); + + /** + * Returns the value of the 'Target' containment reference list. + * The list contents are of type {@link org.etsi.mts.tdl.Target}. + * + * + * @return the value of the 'Target' containment reference list. + * @see org.etsi.mts.tdl.tdlPackage#getInteraction_Target() + * @model containment="true" required="true" ordered="false" + * @generated + */ + EList getTarget(); + + /** + * + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot body='\n if self.getParentTestDescription()->exists(td | td.isLocallyOrdered) then\n self.target\n ->collect(targetGate.component)\n ->including(sourceGate.component)\n ->asOrderedSet()\n else\n self.getParentTestDescription().testConfiguration.componentInstance->asOrderedSet()\n endif\n '" + * annotation="http://www.eclipse.org/OCL/Collection nullFree='false'" + * @generated + */ + EList getParticipatingComponents(); + +} // Interaction diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/InterruptBehaviour.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/InterruptBehaviour.java new file mode 100644 index 0000000000000000000000000000000000000000..7f60c53af150a7cb21d2c91af51d11c471806d77 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/InterruptBehaviour.java @@ -0,0 +1,18 @@ +/** + */ +package org.etsi.mts.tdl; + + +/** + * + * A representation of the model object 'Interrupt Behaviour'. + * + * + * + * @see org.etsi.mts.tdl.tdlPackage#getInterruptBehaviour() + * @model + * @generated + */ +public interface InterruptBehaviour extends ExceptionalBehaviour +{ +} // InterruptBehaviour diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/LiteralValueUse.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/LiteralValueUse.java new file mode 100644 index 0000000000000000000000000000000000000000..e2a2417d4e93145b6355fd03cf0fc85c61066103 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/LiteralValueUse.java @@ -0,0 +1,124 @@ +/** + */ +package org.etsi.mts.tdl; + +import java.math.BigInteger; + +/** + * + * A representation of the model object 'Literal Value Use'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.LiteralValueUse#getValue Value}
  • + *
  • {@link org.etsi.mts.tdl.LiteralValueUse#getIntValue Int Value}
  • + *
  • {@link org.etsi.mts.tdl.LiteralValueUse#getBoolValue Bool Value}
  • + *
  • {@link org.etsi.mts.tdl.LiteralValueUse#getDataType Data Type}
  • + *
+ * + * @see org.etsi.mts.tdl.tdlPackage#getLiteralValueUse() + * @model + * @generated + */ +public interface LiteralValueUse extends StaticDataUse +{ + /** + * Returns the value of the 'Value' attribute. + * + * + * @return the value of the 'Value' attribute. + * @see #setValue(String) + * @see org.etsi.mts.tdl.tdlPackage#getLiteralValueUse_Value() + * @model + * @generated + */ + String getValue(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.LiteralValueUse#getValue Value}' attribute. + * + * + * @param value the new value of the 'Value' attribute. + * @see #getValue() + * @generated + */ + void setValue(String value); + + /** + * Returns the value of the 'Int Value' attribute. + * + * + * @return the value of the 'Int Value' attribute. + * @see #setIntValue(BigInteger) + * @see org.etsi.mts.tdl.tdlPackage#getLiteralValueUse_IntValue() + * @model + * @generated + */ + BigInteger getIntValue(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.LiteralValueUse#getIntValue Int Value}' attribute. + * + * + * @param value the new value of the 'Int Value' attribute. + * @see #getIntValue() + * @generated + */ + void setIntValue(BigInteger value); + + /** + * Returns the value of the 'Bool Value' attribute. + * + * + * @return the value of the 'Bool Value' attribute. + * @see #setBoolValue(Boolean) + * @see org.etsi.mts.tdl.tdlPackage#getLiteralValueUse_BoolValue() + * @model + * @generated + */ + Boolean getBoolValue(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.LiteralValueUse#getBoolValue Bool Value}' attribute. + * + * + * @param value the new value of the 'Bool Value' attribute. + * @see #getBoolValue() + * @generated + */ + void setBoolValue(Boolean value); + + /** + * Returns the value of the 'Data Type' reference. + * + * + * @return the value of the 'Data Type' reference. + * @see #setDataType(DataType) + * @see org.etsi.mts.tdl.tdlPackage#getLiteralValueUse_DataType() + * @model + * @generated + */ + DataType getDataType(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.LiteralValueUse#getDataType Data Type}' reference. + * + * + * @param value the new value of the 'Data Type' reference. + * @see #getDataType() + * @generated + */ + void setDataType(DataType value); + + /** + * + * + * @model annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot body='\n if (not self.dataType.oclIsUndefined()) then\n self.dataType\n else \n if (self.container().oclIsTypeOf(MemberAssignment)) then\n self.container().oclAsType(MemberAssignment).member.dataType\n else \n if (self.container().oclIsTypeOf(ParameterBinding)) then\n self.container().oclAsType(ParameterBinding).parameter.dataType\n else\n if (not self.intValue.oclIsUndefined()) then\n SimpleDataType.allInstances()->select(t | t.name = \'Integer\')->asOrderedSet()->first()\n else\n if (not self.boolValue.oclIsUndefined()) then\n SimpleDataType.allInstances()->select(t | t.name = \'Boolean\')->asOrderedSet()->first()\n else \n SimpleDataType.allInstances()->select(t | t.name = \'String\')->asOrderedSet()->first()\n endif\n endif\n endif\n endif\n endif\n '" + * @generated + */ + DataType resolveDataType(); + +} // LiteralValueUse diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/LocalExpression.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/LocalExpression.java new file mode 100644 index 0000000000000000000000000000000000000000..26b59378af2ccdc546e2b0aff759cd55ca450b95 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/LocalExpression.java @@ -0,0 +1,69 @@ +/** + */ +package org.etsi.mts.tdl; + + +/** + * + * A representation of the model object 'Local Expression'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.LocalExpression#getExpression Expression}
  • + *
  • {@link org.etsi.mts.tdl.LocalExpression#getComponentInstance Component Instance}
  • + *
+ * + * @see org.etsi.mts.tdl.tdlPackage#getLocalExpression() + * @model + * @generated + */ +public interface LocalExpression extends Element +{ + /** + * Returns the value of the 'Expression' containment reference. + * + * + * @return the value of the 'Expression' containment reference. + * @see #setExpression(DataUse) + * @see org.etsi.mts.tdl.tdlPackage#getLocalExpression_Expression() + * @model containment="true" required="true" + * @generated + */ + DataUse getExpression(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.LocalExpression#getExpression Expression}' containment reference. + * + * + * @param value the new value of the 'Expression' containment reference. + * @see #getExpression() + * @generated + */ + void setExpression(DataUse value); + + /** + * Returns the value of the 'Component Instance' reference. + * + * + * @return the value of the 'Component Instance' reference. + * @see #setComponentInstance(ComponentInstance) + * @see org.etsi.mts.tdl.tdlPackage#getLocalExpression_ComponentInstance() + * @model + * @generated + */ + ComponentInstance getComponentInstance(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.LocalExpression#getComponentInstance Component Instance}' reference. + * + * + * @param value the new value of the 'Component Instance' reference. + * @see #getComponentInstance() + * @generated + */ + void setComponentInstance(ComponentInstance value); + +} // LocalExpression diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/MappableDataElement.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/MappableDataElement.java new file mode 100644 index 0000000000000000000000000000000000000000..2b0bbf180ce8b420995efe384201cc9670aba07a --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/MappableDataElement.java @@ -0,0 +1,18 @@ +/** + */ +package org.etsi.mts.tdl; + + +/** + * + * A representation of the model object 'Mappable Data Element'. + * + * + * + * @see org.etsi.mts.tdl.tdlPackage#getMappableDataElement() + * @model abstract="true" + * @generated + */ +public interface MappableDataElement extends PackageableElement +{ +} // MappableDataElement diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/Member.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/Member.java new file mode 100644 index 0000000000000000000000000000000000000000..6f2dcf528e7391019ad41b2b11d0fc43d4f1d15a --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/Member.java @@ -0,0 +1,62 @@ +/** + */ +package org.etsi.mts.tdl; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Member'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.Member#isIsOptional Is Optional}
  • + *
  • {@link org.etsi.mts.tdl.Member#getConstraint Constraint}
  • + *
+ * + * @see org.etsi.mts.tdl.tdlPackage#getMember() + * @model + * @generated + */ +public interface Member extends Parameter +{ + /** + * Returns the value of the 'Is Optional' attribute. + * The default value is "false". + * + * + * @return the value of the 'Is Optional' attribute. + * @see #setIsOptional(boolean) + * @see org.etsi.mts.tdl.tdlPackage#getMember_IsOptional() + * @model default="false" required="true" + * @generated + */ + boolean isIsOptional(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.Member#isIsOptional Is Optional}' attribute. + * + * + * @param value the new value of the 'Is Optional' attribute. + * @see #isIsOptional() + * @generated + */ + void setIsOptional(boolean value); + + /** + * Returns the value of the 'Constraint' containment reference list. + * The list contents are of type {@link org.etsi.mts.tdl.Constraint}. + * + * + * @return the value of the 'Constraint' containment reference list. + * @see org.etsi.mts.tdl.tdlPackage#getMember_Constraint() + * @model containment="true" + * annotation="http://www.eclipse.org/OCL/Collection nullFree='false'" + * @generated + */ + EList getConstraint(); + +} // Member diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/MemberAssignment.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/MemberAssignment.java new file mode 100644 index 0000000000000000000000000000000000000000..669870704ab91dfdf1d295064c2410ee9cea2cc6 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/MemberAssignment.java @@ -0,0 +1,69 @@ +/** + */ +package org.etsi.mts.tdl; + + +/** + * + * A representation of the model object 'Member Assignment'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.MemberAssignment#getMember Member}
  • + *
  • {@link org.etsi.mts.tdl.MemberAssignment#getMemberSpec Member Spec}
  • + *
+ * + * @see org.etsi.mts.tdl.tdlPackage#getMemberAssignment() + * @model + * @generated + */ +public interface MemberAssignment extends Element +{ + /** + * Returns the value of the 'Member' reference. + * + * + * @return the value of the 'Member' reference. + * @see #setMember(Member) + * @see org.etsi.mts.tdl.tdlPackage#getMemberAssignment_Member() + * @model required="true" + * @generated + */ + Member getMember(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.MemberAssignment#getMember Member}' reference. + * + * + * @param value the new value of the 'Member' reference. + * @see #getMember() + * @generated + */ + void setMember(Member value); + + /** + * Returns the value of the 'Member Spec' containment reference. + * + * + * @return the value of the 'Member Spec' containment reference. + * @see #setMemberSpec(DataUse) + * @see org.etsi.mts.tdl.tdlPackage#getMemberAssignment_MemberSpec() + * @model containment="true" required="true" + * @generated + */ + DataUse getMemberSpec(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.MemberAssignment#getMemberSpec Member Spec}' containment reference. + * + * + * @param value the new value of the 'Member Spec' containment reference. + * @see #getMemberSpec() + * @generated + */ + void setMemberSpec(DataUse value); + +} // MemberAssignment diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/MemberReference.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/MemberReference.java new file mode 100644 index 0000000000000000000000000000000000000000..b011617fcd357865e973f39256c76cf3277dd432 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/MemberReference.java @@ -0,0 +1,69 @@ +/** + */ +package org.etsi.mts.tdl; + + +/** + * + * A representation of the model object 'Member Reference'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.MemberReference#getMember Member}
  • + *
  • {@link org.etsi.mts.tdl.MemberReference#getCollectionIndex Collection Index}
  • + *
+ * + * @see org.etsi.mts.tdl.tdlPackage#getMemberReference() + * @model + * @generated + */ +public interface MemberReference extends Element +{ + /** + * Returns the value of the 'Member' reference. + * + * + * @return the value of the 'Member' reference. + * @see #setMember(Member) + * @see org.etsi.mts.tdl.tdlPackage#getMemberReference_Member() + * @model + * @generated + */ + Member getMember(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.MemberReference#getMember Member}' reference. + * + * + * @param value the new value of the 'Member' reference. + * @see #getMember() + * @generated + */ + void setMember(Member value); + + /** + * Returns the value of the 'Collection Index' containment reference. + * + * + * @return the value of the 'Collection Index' containment reference. + * @see #setCollectionIndex(DataUse) + * @see org.etsi.mts.tdl.tdlPackage#getMemberReference_CollectionIndex() + * @model containment="true" + * @generated + */ + DataUse getCollectionIndex(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.MemberReference#getCollectionIndex Collection Index}' containment reference. + * + * + * @param value the new value of the 'Collection Index' containment reference. + * @see #getCollectionIndex() + * @generated + */ + void setCollectionIndex(DataUse value); + +} // MemberReference diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/Message.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/Message.java new file mode 100644 index 0000000000000000000000000000000000000000..c3d91e4b15364c00ab79bf940ca79f35a0e96487 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/Message.java @@ -0,0 +1,70 @@ +/** + */ +package org.etsi.mts.tdl; + + +/** + * + * A representation of the model object 'Message'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.Message#isIsTrigger Is Trigger}
  • + *
  • {@link org.etsi.mts.tdl.Message#getArgument Argument}
  • + *
+ * + * @see org.etsi.mts.tdl.tdlPackage#getMessage() + * @model + * @generated + */ +public interface Message extends Interaction +{ + /** + * Returns the value of the 'Is Trigger' attribute. + * The default value is "false". + * + * + * @return the value of the 'Is Trigger' attribute. + * @see #setIsTrigger(boolean) + * @see org.etsi.mts.tdl.tdlPackage#getMessage_IsTrigger() + * @model default="false" required="true" + * @generated + */ + boolean isIsTrigger(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.Message#isIsTrigger Is Trigger}' attribute. + * + * + * @param value the new value of the 'Is Trigger' attribute. + * @see #isIsTrigger() + * @generated + */ + void setIsTrigger(boolean value); + + /** + * Returns the value of the 'Argument' containment reference. + * + * + * @return the value of the 'Argument' containment reference. + * @see #setArgument(DataUse) + * @see org.etsi.mts.tdl.tdlPackage#getMessage_Argument() + * @model containment="true" required="true" + * @generated + */ + DataUse getArgument(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.Message#getArgument Argument}' containment reference. + * + * + * @param value the new value of the 'Argument' containment reference. + * @see #getArgument() + * @generated + */ + void setArgument(DataUse value); + +} // Message diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/MultipleCombinedBehaviour.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/MultipleCombinedBehaviour.java new file mode 100644 index 0000000000000000000000000000000000000000..71ecb5a1f481a700ec8508768116e0874d887c71 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/MultipleCombinedBehaviour.java @@ -0,0 +1,47 @@ +/** + */ +package org.etsi.mts.tdl; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Multiple Combined Behaviour'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.MultipleCombinedBehaviour#getBlock Block}
  • + *
+ * + * @see org.etsi.mts.tdl.tdlPackage#getMultipleCombinedBehaviour() + * @model abstract="true" + * @generated + */ +public interface MultipleCombinedBehaviour extends CombinedBehaviour +{ + /** + * Returns the value of the 'Block' containment reference list. + * The list contents are of type {@link org.etsi.mts.tdl.Block}. + * + * + * @return the value of the 'Block' containment reference list. + * @see org.etsi.mts.tdl.tdlPackage#getMultipleCombinedBehaviour_Block() + * @model containment="true" required="true" + * @generated + */ + EList getBlock(); + + /** + * + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot body='\n if self.getParentTestDescription()->exists(td | td.isLocallyOrdered) then\n self.periodic.getParticipatingComponents()\n ->union(self.exceptional.getParticipatingComponents())\n ->union(self.block.getParticipatingComponents())->asOrderedSet()\n else\n self.getParentTestDescription().testConfiguration.componentInstance->asOrderedSet()\n endif\n '" + * annotation="http://www.eclipse.org/OCL/Collection nullFree='false'" + * @generated + */ + EList getParticipatingComponents(); + +} // MultipleCombinedBehaviour diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/NamedElement.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/NamedElement.java new file mode 100644 index 0000000000000000000000000000000000000000..5ea0acad3617ecf54ce08fe5b47c052c35c5e3c6 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/NamedElement.java @@ -0,0 +1,36 @@ +/** + */ +package org.etsi.mts.tdl; + + +/** + * + * A representation of the model object 'Named Element'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.NamedElement#getQualifiedName Qualified Name}
  • + *
+ * + * @see org.etsi.mts.tdl.tdlPackage#getNamedElement() + * @model abstract="true" + * @generated + */ +public interface NamedElement extends Element +{ + /** + * Returns the value of the 'Qualified Name' attribute. + * + * + * @return the value of the 'Qualified Name' attribute. + * @see org.etsi.mts.tdl.tdlPackage#getNamedElement_QualifiedName() + * @model required="true" transient="true" changeable="false" volatile="true" derived="true" + * annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot derivation='\n if (self.name.oclIsUndefined()) then\n \'\'\n else\n if (not self.oclContainer().oclIsUndefined()) then\n if (self.oclContainer().oclIsKindOf(NamedElement)) then\n self.oclContainer().oclAsType(NamedElement).qualifiedName + \'::\' + self.name\n else\n self.oclContainer().oclAsType(ocl::OclElement)->closure(oclContainer())\n ->select(c | c.oclIsKindOf(NamedElement))\n ->asOrderedSet()\n ->first().oclAsType(NamedElement).qualifiedName + \'::\' + self.name\n endif\n else\n self.name\n endif\n endif'" + * @generated + */ + String getQualifiedName(); + +} // NamedElement diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/OmitValue.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/OmitValue.java new file mode 100644 index 0000000000000000000000000000000000000000..7f701b3da0fb9078604d56416712a480167e6860 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/OmitValue.java @@ -0,0 +1,18 @@ +/** + */ +package org.etsi.mts.tdl; + + +/** + * + * A representation of the model object 'Omit Value'. + * + * + * + * @see org.etsi.mts.tdl.tdlPackage#getOmitValue() + * @model + * @generated + */ +public interface OmitValue extends SpecialValueUse +{ +} // OmitValue diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/OptionalBehaviour.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/OptionalBehaviour.java new file mode 100644 index 0000000000000000000000000000000000000000..1064ceff8568fe9b1a78bd9f4e6701c6f58755f7 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/OptionalBehaviour.java @@ -0,0 +1,18 @@ +/** + */ +package org.etsi.mts.tdl; + + +/** + * + * A representation of the model object 'Optional Behaviour'. + * + * + * + * @see org.etsi.mts.tdl.tdlPackage#getOptionalBehaviour() + * @model + * @generated + */ +public interface OptionalBehaviour extends SingleCombinedBehaviour +{ +} // OptionalBehaviour diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/Package.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/Package.java new file mode 100644 index 0000000000000000000000000000000000000000..d65c95e1e44fb03a8f2e395c5ce69d59bf5be7c7 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/Package.java @@ -0,0 +1,63 @@ +/** + */ +package org.etsi.mts.tdl; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Package'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.Package#getPackagedElement Packaged Element}
  • + *
  • {@link org.etsi.mts.tdl.Package#getImport Import}
  • + *
  • {@link org.etsi.mts.tdl.Package#getNestedPackage Nested Package}
  • + *
+ * + * @see org.etsi.mts.tdl.tdlPackage#getPackage() + * @model + * @generated + */ +public interface Package extends NamedElement +{ + /** + * Returns the value of the 'Packaged Element' containment reference list. + * The list contents are of type {@link org.etsi.mts.tdl.PackageableElement}. + * + * + * @return the value of the 'Packaged Element' containment reference list. + * @see org.etsi.mts.tdl.tdlPackage#getPackage_PackagedElement() + * @model containment="true" ordered="false" + * @generated + */ + EList getPackagedElement(); + + /** + * Returns the value of the 'Import' containment reference list. + * The list contents are of type {@link org.etsi.mts.tdl.ElementImport}. + * + * + * @return the value of the 'Import' containment reference list. + * @see org.etsi.mts.tdl.tdlPackage#getPackage_Import() + * @model containment="true" ordered="false" + * @generated + */ + EList getImport(); + + /** + * Returns the value of the 'Nested Package' containment reference list. + * The list contents are of type {@link org.etsi.mts.tdl.Package}. + * + * + * @return the value of the 'Nested Package' containment reference list. + * @see org.etsi.mts.tdl.tdlPackage#getPackage_NestedPackage() + * @model containment="true" ordered="false" + * @generated + */ + EList getNestedPackage(); + +} // Package diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/PackageableElement.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/PackageableElement.java new file mode 100644 index 0000000000000000000000000000000000000000..09be0fa548a1ab97d55c99ef185a15c567031258 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/PackageableElement.java @@ -0,0 +1,42 @@ +/** + */ +package org.etsi.mts.tdl; + + +/** + * + * A representation of the model object 'Packageable Element'. + * + * + * + * @see org.etsi.mts.tdl.tdlPackage#getPackageableElement() + * @model abstract="true" + * @generated + */ +public interface PackageableElement extends NamedElement +{ + /** + * + * + * @model annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot body=' \n if (self.getElementNamed(n).oclIsUndefined()) then\n false\n else\n self.conformsTo(self.getElementNamed(n)) \n endif\n '" + * @generated + */ + Boolean conformsTo(String n); + + /** + * + * + * @model annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot body='\n self.oclType().allInstances()->select(e | e.name = n)->asOrderedSet()->first()\n '" + * @generated + */ + PackageableElement getElementNamed(String n); + + /** + * + * + * @model annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot body='\n if (self = n) then\n true\n else\n if (self.oclIsKindOf(AnnotationType) and not self.oclAsType(AnnotationType).extension.oclIsUndefined()) then\n self.oclAsType(AnnotationType).extension.isExtending(n)\n else\n if (self.oclIsKindOf(ComponentType) and not self.oclAsType(ComponentType).extension.oclIsUndefined()) then\n self.oclAsType(ComponentType).extension.isExtending(n)\n else\n if (self.oclIsKindOf(GateType) and not self.oclAsType(GateType).extension.oclIsUndefined()) then\n self.oclAsType(GateType).extension.isExtending(n)\n else\n if (self.oclIsKindOf(StructuredDataType)) then\n self.oclAsType(StructuredDataType).extension->exists(ex | ex.isExtending(n))\n else\n if (self.oclIsKindOf(SimpleDataType) and not self.oclAsType(SimpleDataType).extension.oclIsUndefined()) then\n self.oclAsType(SimpleDataType).extension.isExtending(n)\n else\n false\n endif\n endif\n endif\n endif\n endif\n endif\n '" + * @generated + */ + Boolean conformsTo(PackageableElement n); + +} // PackageableElement diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/ParallelBehaviour.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/ParallelBehaviour.java new file mode 100644 index 0000000000000000000000000000000000000000..a9b62e7be9c3db7de47afea14bb4f3476fe6faf9 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/ParallelBehaviour.java @@ -0,0 +1,18 @@ +/** + */ +package org.etsi.mts.tdl; + + +/** + * + * A representation of the model object 'Parallel Behaviour'. + * + * + * + * @see org.etsi.mts.tdl.tdlPackage#getParallelBehaviour() + * @model + * @generated + */ +public interface ParallelBehaviour extends MultipleCombinedBehaviour +{ +} // ParallelBehaviour diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/Parameter.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/Parameter.java new file mode 100644 index 0000000000000000000000000000000000000000..6e7079af5e2004dc506f3c9b09914e53a230913e --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/Parameter.java @@ -0,0 +1,46 @@ +/** + */ +package org.etsi.mts.tdl; + + +/** + * + * A representation of the model object 'Parameter'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.Parameter#getDataType Data Type}
  • + *
+ * + * @see org.etsi.mts.tdl.tdlPackage#getParameter() + * @model abstract="true" + * @generated + */ +public interface Parameter extends NamedElement +{ + /** + * Returns the value of the 'Data Type' reference. + * + * + * @return the value of the 'Data Type' reference. + * @see #setDataType(DataType) + * @see org.etsi.mts.tdl.tdlPackage#getParameter_DataType() + * @model required="true" + * @generated + */ + DataType getDataType(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.Parameter#getDataType Data Type}' reference. + * + * + * @param value the new value of the 'Data Type' reference. + * @see #getDataType() + * @generated + */ + void setDataType(DataType value); + +} // Parameter diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/ParameterBinding.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/ParameterBinding.java new file mode 100644 index 0000000000000000000000000000000000000000..1ae1b29984f09e4374e4f2a01e31fae8bb79fad9 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/ParameterBinding.java @@ -0,0 +1,69 @@ +/** + */ +package org.etsi.mts.tdl; + + +/** + * + * A representation of the model object 'Parameter Binding'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.ParameterBinding#getDataUse Data Use}
  • + *
  • {@link org.etsi.mts.tdl.ParameterBinding#getParameter Parameter}
  • + *
+ * + * @see org.etsi.mts.tdl.tdlPackage#getParameterBinding() + * @model + * @generated + */ +public interface ParameterBinding extends Element +{ + /** + * Returns the value of the 'Data Use' containment reference. + * + * + * @return the value of the 'Data Use' containment reference. + * @see #setDataUse(DataUse) + * @see org.etsi.mts.tdl.tdlPackage#getParameterBinding_DataUse() + * @model containment="true" required="true" + * @generated + */ + DataUse getDataUse(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.ParameterBinding#getDataUse Data Use}' containment reference. + * + * + * @param value the new value of the 'Data Use' containment reference. + * @see #getDataUse() + * @generated + */ + void setDataUse(DataUse value); + + /** + * Returns the value of the 'Parameter' reference. + * + * + * @return the value of the 'Parameter' reference. + * @see #setParameter(Parameter) + * @see org.etsi.mts.tdl.tdlPackage#getParameterBinding_Parameter() + * @model required="true" + * @generated + */ + Parameter getParameter(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.ParameterBinding#getParameter Parameter}' reference. + * + * + * @param value the new value of the 'Parameter' reference. + * @see #getParameter() + * @generated + */ + void setParameter(Parameter value); + +} // ParameterBinding diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/ParameterKind.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/ParameterKind.java new file mode 100644 index 0000000000000000000000000000000000000000..f800cf5465a50cb3d6d08ba12b240ed09c6b29de --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/ParameterKind.java @@ -0,0 +1,247 @@ +/** + */ +package org.etsi.mts.tdl; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +import org.eclipse.emf.common.util.Enumerator; + +/** + * + * A representation of the literals of the enumeration 'Parameter Kind', + * and utility methods for working with them. + * + * @see org.etsi.mts.tdl.tdlPackage#getParameterKind() + * @model + * @generated + */ +public enum ParameterKind implements Enumerator +{ + /** + * The 'In' literal object. + * + * + * @see #IN_VALUE + * @generated + * @ordered + */ + IN(0, "In", "In"), + + /** + * The 'Out' literal object. + * + * + * @see #OUT_VALUE + * @generated + * @ordered + */ + OUT(1, "Out", "Out"), + + /** + * The 'Exception' literal object. + * + * + * @see #EXCEPTION_VALUE + * @generated + * @ordered + */ + EXCEPTION(2, "Exception", "Exception"); + + /** + * The 'In' literal value. + * + * + * @see #IN + * @model name="In" + * @generated + * @ordered + */ + public static final int IN_VALUE = 0; + + /** + * The 'Out' literal value. + * + * + * @see #OUT + * @model name="Out" + * @generated + * @ordered + */ + public static final int OUT_VALUE = 1; + + /** + * The 'Exception' literal value. + * + * + * @see #EXCEPTION + * @model name="Exception" + * @generated + * @ordered + */ + public static final int EXCEPTION_VALUE = 2; + + /** + * An array of all the 'Parameter Kind' enumerators. + * + * + * @generated + */ + private static final ParameterKind[] VALUES_ARRAY = + new ParameterKind[] + { + IN, + OUT, + EXCEPTION, + }; + + /** + * A public read-only list of all the 'Parameter Kind' enumerators. + * + * + * @generated + */ + public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY)); + + /** + * Returns the 'Parameter Kind' literal with the specified literal value. + * + * + * @param literal the literal. + * @return the matching enumerator or null. + * @generated + */ + public static ParameterKind get(String literal) + { + for (int i = 0; i < VALUES_ARRAY.length; ++i) + { + ParameterKind result = VALUES_ARRAY[i]; + if (result.toString().equals(literal)) + { + return result; + } + } + return null; + } + + /** + * Returns the 'Parameter Kind' literal with the specified name. + * + * + * @param name the name. + * @return the matching enumerator or null. + * @generated + */ + public static ParameterKind getByName(String name) + { + for (int i = 0; i < VALUES_ARRAY.length; ++i) + { + ParameterKind result = VALUES_ARRAY[i]; + if (result.getName().equals(name)) + { + return result; + } + } + return null; + } + + /** + * Returns the 'Parameter Kind' literal with the specified integer value. + * + * + * @param value the integer value. + * @return the matching enumerator or null. + * @generated + */ + public static ParameterKind get(int value) + { + switch (value) + { + case IN_VALUE: return IN; + case OUT_VALUE: return OUT; + case EXCEPTION_VALUE: return EXCEPTION; + } + return null; + } + + /** + * + * + * @generated + */ + private final int value; + + /** + * + * + * @generated + */ + private final String name; + + /** + * + * + * @generated + */ + private final String literal; + + /** + * Only this class can construct instances. + * + * + * @generated + */ + private ParameterKind(int value, String name, String literal) + { + this.value = value; + this.name = name; + this.literal = literal; + } + + /** + * + * + * @generated + */ + @Override + public int getValue() + { + return value; + } + + /** + * + * + * @generated + */ + @Override + public String getName() + { + return name; + } + + /** + * + * + * @generated + */ + @Override + public String getLiteral() + { + return literal; + } + + /** + * Returns the literal value of the enumerator, which is its string representation. + * + * + * @generated + */ + @Override + public String toString() + { + return literal; + } + +} //ParameterKind diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/ParameterMapping.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/ParameterMapping.java new file mode 100644 index 0000000000000000000000000000000000000000..4d21477c2ad1246904e80206eef8e72b28b5a444 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/ParameterMapping.java @@ -0,0 +1,69 @@ +/** + */ +package org.etsi.mts.tdl; + + +/** + * + * A representation of the model object 'Parameter Mapping'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.ParameterMapping#getParameterURI Parameter URI}
  • + *
  • {@link org.etsi.mts.tdl.ParameterMapping#getParameter Parameter}
  • + *
+ * + * @see org.etsi.mts.tdl.tdlPackage#getParameterMapping() + * @model + * @generated + */ +public interface ParameterMapping extends Element +{ + /** + * Returns the value of the 'Parameter URI' attribute. + * + * + * @return the value of the 'Parameter URI' attribute. + * @see #setParameterURI(String) + * @see org.etsi.mts.tdl.tdlPackage#getParameterMapping_ParameterURI() + * @model + * @generated + */ + String getParameterURI(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.ParameterMapping#getParameterURI Parameter URI}' attribute. + * + * + * @param value the new value of the 'Parameter URI' attribute. + * @see #getParameterURI() + * @generated + */ + void setParameterURI(String value); + + /** + * Returns the value of the 'Parameter' reference. + * + * + * @return the value of the 'Parameter' reference. + * @see #setParameter(Parameter) + * @see org.etsi.mts.tdl.tdlPackage#getParameterMapping_Parameter() + * @model required="true" + * @generated + */ + Parameter getParameter(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.ParameterMapping#getParameter Parameter}' reference. + * + * + * @param value the new value of the 'Parameter' reference. + * @see #getParameter() + * @generated + */ + void setParameter(Parameter value); + +} // ParameterMapping diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/PeriodicBehaviour.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/PeriodicBehaviour.java new file mode 100644 index 0000000000000000000000000000000000000000..64b3f0444ce15190793779ae4fbc0b277811a82c --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/PeriodicBehaviour.java @@ -0,0 +1,70 @@ +/** + */ +package org.etsi.mts.tdl; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Periodic Behaviour'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.PeriodicBehaviour#getBlock Block}
  • + *
  • {@link org.etsi.mts.tdl.PeriodicBehaviour#getPeriod Period}
  • + *
+ * + * @see org.etsi.mts.tdl.tdlPackage#getPeriodicBehaviour() + * @model + * @generated + */ +public interface PeriodicBehaviour extends Behaviour +{ + /** + * Returns the value of the 'Block' containment reference. + * + * + * @return the value of the 'Block' containment reference. + * @see #setBlock(Block) + * @see org.etsi.mts.tdl.tdlPackage#getPeriodicBehaviour_Block() + * @model containment="true" required="true" + * @generated + */ + Block getBlock(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.PeriodicBehaviour#getBlock Block}' containment reference. + * + * + * @param value the new value of the 'Block' containment reference. + * @see #getBlock() + * @generated + */ + void setBlock(Block value); + + /** + * Returns the value of the 'Period' containment reference list. + * The list contents are of type {@link org.etsi.mts.tdl.LocalExpression}. + * + * + * @return the value of the 'Period' containment reference list. + * @see org.etsi.mts.tdl.tdlPackage#getPeriodicBehaviour_Period() + * @model containment="true" required="true" + * @generated + */ + EList getPeriod(); + + /** + * + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot body='\n if self.getParentTestDescription()->exists(td | td.isLocallyOrdered) then\n self.block.getParticipatingComponents()->asOrderedSet()\n else\n self.getParentTestDescription().testConfiguration.componentInstance->asOrderedSet()\n endif\n '" + * annotation="http://www.eclipse.org/OCL/Collection nullFree='false'" + * @generated + */ + EList getParticipatingComponents(); + +} // PeriodicBehaviour diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/PredefinedFunction.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/PredefinedFunction.java new file mode 100644 index 0000000000000000000000000000000000000000..3291da6003d7e8cc541f1159def3ce5451663b75 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/PredefinedFunction.java @@ -0,0 +1,46 @@ +/** + */ +package org.etsi.mts.tdl; + + +/** + * + * A representation of the model object 'Predefined Function'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.PredefinedFunction#getReturnType Return Type}
  • + *
+ * + * @see org.etsi.mts.tdl.tdlPackage#getPredefinedFunction() + * @model + * @generated + */ +public interface PredefinedFunction extends PackageableElement +{ + /** + * Returns the value of the 'Return Type' reference. + * + * + * @return the value of the 'Return Type' reference. + * @see #setReturnType(DataType) + * @see org.etsi.mts.tdl.tdlPackage#getPredefinedFunction_ReturnType() + * @model + * @generated + */ + DataType getReturnType(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.PredefinedFunction#getReturnType Return Type}' reference. + * + * + * @param value the new value of the 'Return Type' reference. + * @see #getReturnType() + * @generated + */ + void setReturnType(DataType value); + +} // PredefinedFunction diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/PredefinedFunctionCall.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/PredefinedFunctionCall.java new file mode 100644 index 0000000000000000000000000000000000000000..2ddea572ab624523cf1f15017d0a935656c08cab --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/PredefinedFunctionCall.java @@ -0,0 +1,68 @@ +/** + */ +package org.etsi.mts.tdl; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Predefined Function Call'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.PredefinedFunctionCall#getFunction Function}
  • + *
  • {@link org.etsi.mts.tdl.PredefinedFunctionCall#getActualParameters Actual Parameters}
  • + *
+ * + * @see org.etsi.mts.tdl.tdlPackage#getPredefinedFunctionCall() + * @model + * @generated + */ +public interface PredefinedFunctionCall extends DynamicDataUse +{ + /** + * Returns the value of the 'Function' reference. + * + * + * @return the value of the 'Function' reference. + * @see #setFunction(PredefinedFunction) + * @see org.etsi.mts.tdl.tdlPackage#getPredefinedFunctionCall_Function() + * @model required="true" + * @generated + */ + PredefinedFunction getFunction(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.PredefinedFunctionCall#getFunction Function}' reference. + * + * + * @param value the new value of the 'Function' reference. + * @see #getFunction() + * @generated + */ + void setFunction(PredefinedFunction value); + + /** + * Returns the value of the 'Actual Parameters' containment reference list. + * The list contents are of type {@link org.etsi.mts.tdl.DataUse}. + * + * + * @return the value of the 'Actual Parameters' containment reference list. + * @see org.etsi.mts.tdl.tdlPackage#getPredefinedFunctionCall_ActualParameters() + * @model containment="true" + * @generated + */ + EList getActualParameters(); + + /** + * + * + * @model annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot body='self.function.returnType'" + * @generated + */ + DataType resolveDataType(); + +} // PredefinedFunctionCall diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/ProcedureCall.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/ProcedureCall.java new file mode 100644 index 0000000000000000000000000000000000000000..8341a1cdfe2893a935e09ccc698ee6903dcd34fe --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/ProcedureCall.java @@ -0,0 +1,84 @@ +/** + */ +package org.etsi.mts.tdl; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Procedure Call'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.ProcedureCall#getSignature Signature}
  • + *
  • {@link org.etsi.mts.tdl.ProcedureCall#getArgument Argument}
  • + *
  • {@link org.etsi.mts.tdl.ProcedureCall#getReplyTo Reply To}
  • + *
+ * + * @see org.etsi.mts.tdl.tdlPackage#getProcedureCall() + * @model + * @generated + */ +public interface ProcedureCall extends Interaction +{ + /** + * Returns the value of the 'Signature' reference. + * + * + * @return the value of the 'Signature' reference. + * @see #setSignature(ProcedureSignature) + * @see org.etsi.mts.tdl.tdlPackage#getProcedureCall_Signature() + * @model required="true" + * @generated + */ + ProcedureSignature getSignature(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.ProcedureCall#getSignature Signature}' reference. + * + * + * @param value the new value of the 'Signature' reference. + * @see #getSignature() + * @generated + */ + void setSignature(ProcedureSignature value); + + /** + * Returns the value of the 'Argument' containment reference list. + * The list contents are of type {@link org.etsi.mts.tdl.ParameterBinding}. + * + * + * @return the value of the 'Argument' containment reference list. + * @see org.etsi.mts.tdl.tdlPackage#getProcedureCall_Argument() + * @model containment="true" required="true" + * annotation="http://www.eclipse.org/OCL/Collection nullFree='false'" + * @generated + */ + EList getArgument(); + + /** + * Returns the value of the 'Reply To' reference. + * + * + * @return the value of the 'Reply To' reference. + * @see #setReplyTo(ProcedureCall) + * @see org.etsi.mts.tdl.tdlPackage#getProcedureCall_ReplyTo() + * @model + * @generated + */ + ProcedureCall getReplyTo(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.ProcedureCall#getReplyTo Reply To}' reference. + * + * + * @param value the new value of the 'Reply To' reference. + * @see #getReplyTo() + * @generated + */ + void setReplyTo(ProcedureCall value); + +} // ProcedureCall diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/ProcedureParameter.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/ProcedureParameter.java new file mode 100644 index 0000000000000000000000000000000000000000..9af5a1f71a77fc0136ae7d5c62abb72f22182bb4 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/ProcedureParameter.java @@ -0,0 +1,49 @@ +/** + */ +package org.etsi.mts.tdl; + + +/** + * + * A representation of the model object 'Procedure Parameter'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.ProcedureParameter#getKind Kind}
  • + *
+ * + * @see org.etsi.mts.tdl.tdlPackage#getProcedureParameter() + * @model + * @generated + */ +public interface ProcedureParameter extends Parameter +{ + /** + * Returns the value of the 'Kind' attribute. + * The literals are from the enumeration {@link org.etsi.mts.tdl.ParameterKind}. + * + * + * @return the value of the 'Kind' attribute. + * @see org.etsi.mts.tdl.ParameterKind + * @see #setKind(ParameterKind) + * @see org.etsi.mts.tdl.tdlPackage#getProcedureParameter_Kind() + * @model required="true" + * @generated + */ + ParameterKind getKind(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.ProcedureParameter#getKind Kind}' attribute. + * + * + * @param value the new value of the 'Kind' attribute. + * @see org.etsi.mts.tdl.ParameterKind + * @see #getKind() + * @generated + */ + void setKind(ParameterKind value); + +} // ProcedureParameter diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/ProcedureSignature.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/ProcedureSignature.java new file mode 100644 index 0000000000000000000000000000000000000000..52a61b7f7a1b77b168c9db3b7a8dbc07f3d57f8e --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/ProcedureSignature.java @@ -0,0 +1,38 @@ +/** + */ +package org.etsi.mts.tdl; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Procedure Signature'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.ProcedureSignature#getParameter Parameter}
  • + *
+ * + * @see org.etsi.mts.tdl.tdlPackage#getProcedureSignature() + * @model + * @generated + */ +public interface ProcedureSignature extends DataType +{ + /** + * Returns the value of the 'Parameter' containment reference list. + * The list contents are of type {@link org.etsi.mts.tdl.ProcedureParameter}. + * + * + * @return the value of the 'Parameter' containment reference list. + * @see org.etsi.mts.tdl.tdlPackage#getProcedureSignature_Parameter() + * @model containment="true" required="true" + * annotation="http://www.eclipse.org/OCL/Collection nullFree='false'" + * @generated + */ + EList getParameter(); + +} // ProcedureSignature diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/Quiescence.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/Quiescence.java new file mode 100644 index 0000000000000000000000000000000000000000..5c743a435cd7e5831111181dd5c992c5bb89a940 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/Quiescence.java @@ -0,0 +1,57 @@ +/** + */ +package org.etsi.mts.tdl; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Quiescence'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.Quiescence#getGateReference Gate Reference}
  • + *
+ * + * @see org.etsi.mts.tdl.tdlPackage#getQuiescence() + * @model + * @generated + */ +public interface Quiescence extends TimeOperation +{ + /** + * Returns the value of the 'Gate Reference' reference. + * + * + * @return the value of the 'Gate Reference' reference. + * @see #setGateReference(GateReference) + * @see org.etsi.mts.tdl.tdlPackage#getQuiescence_GateReference() + * @model + * @generated + */ + GateReference getGateReference(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.Quiescence#getGateReference Gate Reference}' reference. + * + * + * @param value the new value of the 'Gate Reference' reference. + * @see #getGateReference() + * @generated + */ + void setGateReference(GateReference value); + + /** + * + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot body='\n if self.getParentTestDescription()->exists(td | td.isLocallyOrdered) and self.container().oclIsKindOf(Block) then (\n if not self.componentInstance.oclIsUndefined() or not self.gateReference.oclIsUndefined() then\n self.componentInstance->including(self.gateReference.component)->asOrderedSet()\n else\n self.container().oclAsType(Block).getParticipatingComponentsExcluding(self)->asOrderedSet()\n endif\n ) else\n self.getParentTestDescription().testConfiguration.componentInstance->asOrderedSet()\n endif\n '" + * annotation="http://www.eclipse.org/OCL/Collection nullFree='false'" + * @generated + */ + EList getParticipatingComponents(); + +} // Quiescence diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/SimpleDataInstance.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/SimpleDataInstance.java new file mode 100644 index 0000000000000000000000000000000000000000..8d7d589b4e8dc7c0d2615e694845ab5b7cb494da --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/SimpleDataInstance.java @@ -0,0 +1,18 @@ +/** + */ +package org.etsi.mts.tdl; + + +/** + * + * A representation of the model object 'Simple Data Instance'. + * + * + * + * @see org.etsi.mts.tdl.tdlPackage#getSimpleDataInstance() + * @model + * @generated + */ +public interface SimpleDataInstance extends DataInstance +{ +} // SimpleDataInstance diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/SimpleDataType.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/SimpleDataType.java new file mode 100644 index 0000000000000000000000000000000000000000..e8888de5efcb345a04943263787d2652bd06b14f --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/SimpleDataType.java @@ -0,0 +1,56 @@ +/** + */ +package org.etsi.mts.tdl; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Simple Data Type'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.SimpleDataType#getExtension Extension}
  • + *
+ * + * @see org.etsi.mts.tdl.tdlPackage#getSimpleDataType() + * @model + * @generated + */ +public interface SimpleDataType extends DataType +{ + /** + * Returns the value of the 'Extension' containment reference. + * + * + * @return the value of the 'Extension' containment reference. + * @see #setExtension(Extension) + * @see org.etsi.mts.tdl.tdlPackage#getSimpleDataType_Extension() + * @model containment="true" + * @generated + */ + Extension getExtension(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.SimpleDataType#getExtension Extension}' containment reference. + * + * + * @param value the new value of the 'Extension' containment reference. + * @see #getExtension() + * @generated + */ + void setExtension(Extension value); + + /** + * + * + * @model annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot body='\n if (not self.extension.oclIsUndefined()) then\n self.extension.extending.oclAsType(SimpleDataType).allConstraints()->union(self.constraint)->asOrderedSet()\n else \n self.constraint\n endif\n '" + * annotation="http://www.eclipse.org/OCL/Collection nullFree='false'" + * @generated + */ + EList allConstraints(); + +} // SimpleDataType diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/SingleCombinedBehaviour.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/SingleCombinedBehaviour.java new file mode 100644 index 0000000000000000000000000000000000000000..d49603e4d7e639f4fa4a54d704a6f5b1d2ea48ab --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/SingleCombinedBehaviour.java @@ -0,0 +1,57 @@ +/** + */ +package org.etsi.mts.tdl; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Single Combined Behaviour'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.SingleCombinedBehaviour#getBlock Block}
  • + *
+ * + * @see org.etsi.mts.tdl.tdlPackage#getSingleCombinedBehaviour() + * @model abstract="true" + * @generated + */ +public interface SingleCombinedBehaviour extends CombinedBehaviour +{ + /** + * Returns the value of the 'Block' containment reference. + * + * + * @return the value of the 'Block' containment reference. + * @see #setBlock(Block) + * @see org.etsi.mts.tdl.tdlPackage#getSingleCombinedBehaviour_Block() + * @model containment="true" required="true" + * @generated + */ + Block getBlock(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.SingleCombinedBehaviour#getBlock Block}' containment reference. + * + * + * @param value the new value of the 'Block' containment reference. + * @see #getBlock() + * @generated + */ + void setBlock(Block value); + + /** + * + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot body='\n if self.getParentTestDescription()->exists(td | td.isLocallyOrdered) then\n self.periodic.getParticipatingComponents()\n ->union(self.exceptional.getParticipatingComponents())\n ->union(self.block.getParticipatingComponents())->asOrderedSet()\n else\n self.getParentTestDescription().testConfiguration.componentInstance->asOrderedSet()\n endif\n '" + * annotation="http://www.eclipse.org/OCL/Collection nullFree='false'" + * @generated + */ + EList getParticipatingComponents(); + +} // SingleCombinedBehaviour diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/SpecialValueUse.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/SpecialValueUse.java new file mode 100644 index 0000000000000000000000000000000000000000..b23e377d42cd75ccd98e9a44f1ff1a48cb2f5bfd --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/SpecialValueUse.java @@ -0,0 +1,26 @@ +/** + */ +package org.etsi.mts.tdl; + + +/** + * + * A representation of the model object 'Special Value Use'. + * + * + * + * @see org.etsi.mts.tdl.tdlPackage#getSpecialValueUse() + * @model abstract="true" + * @generated + */ +public interface SpecialValueUse extends StaticDataUse +{ + /** + * + * + * @model annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot body='\n if (self.container().oclIsTypeOf(MemberAssignment)) then\n self.container().oclAsType(MemberAssignment).member.dataType\n else \n if (self.container().oclIsTypeOf(ParameterBinding)) then\n self.container().oclAsType(ParameterBinding).parameter.dataType\n else \n if (self.container().oclIsTypeOf(Interaction) and \n self.oclIsTypeOf(AnyValue)) then\n self.oclAsType(AnyValue).dataType\n else\n null\n endif\n endif\n endif\n '" + * @generated + */ + DataType resolveDataType(); + +} // SpecialValueUse diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/StaticDataUse.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/StaticDataUse.java new file mode 100644 index 0000000000000000000000000000000000000000..f2b2314920a87458e35e37abf0efe43bd2a00c01 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/StaticDataUse.java @@ -0,0 +1,18 @@ +/** + */ +package org.etsi.mts.tdl; + + +/** + * + * A representation of the model object 'Static Data Use'. + * + * + * + * @see org.etsi.mts.tdl.tdlPackage#getStaticDataUse() + * @model abstract="true" + * @generated + */ +public interface StaticDataUse extends DataUse +{ +} // StaticDataUse diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/Stop.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/Stop.java new file mode 100644 index 0000000000000000000000000000000000000000..0ddafeee9e5fb3a17f07268d393b3b29cd4f8ca9 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/Stop.java @@ -0,0 +1,18 @@ +/** + */ +package org.etsi.mts.tdl; + + +/** + * + * A representation of the model object 'Stop'. + * + * + * + * @see org.etsi.mts.tdl.tdlPackage#getStop() + * @model + * @generated + */ +public interface Stop extends AtomicBehaviour +{ +} // Stop diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/StructuredDataInstance.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/StructuredDataInstance.java new file mode 100644 index 0000000000000000000000000000000000000000..c2236bad018614c84e77bd1517ddd0d2ee3e8808 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/StructuredDataInstance.java @@ -0,0 +1,63 @@ +/** + */ +package org.etsi.mts.tdl; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Structured Data Instance'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.StructuredDataInstance#getMemberAssignment Member Assignment}
  • + *
  • {@link org.etsi.mts.tdl.StructuredDataInstance#getUnassignedMember Unassigned Member}
  • + *
+ * + * @see org.etsi.mts.tdl.tdlPackage#getStructuredDataInstance() + * @model + * @generated + */ +public interface StructuredDataInstance extends DataInstance +{ + /** + * Returns the value of the 'Member Assignment' containment reference list. + * The list contents are of type {@link org.etsi.mts.tdl.MemberAssignment}. + * + * + * @return the value of the 'Member Assignment' containment reference list. + * @see org.etsi.mts.tdl.tdlPackage#getStructuredDataInstance_MemberAssignment() + * @model containment="true" + * @generated + */ + EList getMemberAssignment(); + + /** + * Returns the value of the 'Unassigned Member' attribute. + * The literals are from the enumeration {@link org.etsi.mts.tdl.UnassignedMemberTreatment}. + * + * + * @return the value of the 'Unassigned Member' attribute. + * @see org.etsi.mts.tdl.UnassignedMemberTreatment + * @see #setUnassignedMember(UnassignedMemberTreatment) + * @see org.etsi.mts.tdl.tdlPackage#getStructuredDataInstance_UnassignedMember() + * @model + * @generated + */ + UnassignedMemberTreatment getUnassignedMember(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.StructuredDataInstance#getUnassignedMember Unassigned Member}' attribute. + * + * + * @param value the new value of the 'Unassigned Member' attribute. + * @see org.etsi.mts.tdl.UnassignedMemberTreatment + * @see #getUnassignedMember() + * @generated + */ + void setUnassignedMember(UnassignedMemberTreatment value); + +} // StructuredDataInstance diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/StructuredDataType.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/StructuredDataType.java new file mode 100644 index 0000000000000000000000000000000000000000..0b705434a93182094156f92a0cc05d35c2c4a63e --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/StructuredDataType.java @@ -0,0 +1,69 @@ +/** + */ +package org.etsi.mts.tdl; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Structured Data Type'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.StructuredDataType#getExtension Extension}
  • + *
  • {@link org.etsi.mts.tdl.StructuredDataType#getMember Member}
  • + *
+ * + * @see org.etsi.mts.tdl.tdlPackage#getStructuredDataType() + * @model + * @generated + */ +public interface StructuredDataType extends DataType +{ + /** + * Returns the value of the 'Extension' containment reference list. + * The list contents are of type {@link org.etsi.mts.tdl.Extension}. + * + * + * @return the value of the 'Extension' containment reference list. + * @see org.etsi.mts.tdl.tdlPackage#getStructuredDataType_Extension() + * @model containment="true" + * annotation="http://www.eclipse.org/OCL/Collection nullFree='false'" + * @generated + */ + EList getExtension(); + + /** + * Returns the value of the 'Member' containment reference list. + * The list contents are of type {@link org.etsi.mts.tdl.Member}. + * + * + * @return the value of the 'Member' containment reference list. + * @see org.etsi.mts.tdl.tdlPackage#getStructuredDataType_Member() + * @model containment="true" + * @generated + */ + EList getMember(); + + /** + * + * + * @model annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot body='\n if (not self.extension->isEmpty()) then\n self.extension->collect(e | e.extending.oclAsType(StructuredDataType).allMembers())->union(self.member)->asOrderedSet()\n else \n self.member\n endif\n '" + * annotation="http://www.eclipse.org/OCL/Collection nullFree='false'" + * @generated + */ + EList allMembers(); + + /** + * + * + * @model annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot body='\n if (not self.extension->isEmpty()) then\n self.extension->collect(e | e.extending.oclAsType(StructuredDataType).allConstraints())->union(self.constraint)->asOrderedSet()\n else \n self.constraint\n endif\n '" + * annotation="http://www.eclipse.org/OCL/Collection nullFree='false'" + * @generated + */ + EList allConstraints(); + +} // StructuredDataType diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/Target.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/Target.java new file mode 100644 index 0000000000000000000000000000000000000000..4070545c9d15230ac40b6db9b91ed950826ea8ec --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/Target.java @@ -0,0 +1,61 @@ +/** + */ +package org.etsi.mts.tdl; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Target'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.Target#getTargetGate Target Gate}
  • + *
  • {@link org.etsi.mts.tdl.Target#getValueAssignment Value Assignment}
  • + *
+ * + * @see org.etsi.mts.tdl.tdlPackage#getTarget() + * @model + * @generated + */ +public interface Target extends Element +{ + /** + * Returns the value of the 'Target Gate' reference. + * + * + * @return the value of the 'Target Gate' reference. + * @see #setTargetGate(GateReference) + * @see org.etsi.mts.tdl.tdlPackage#getTarget_TargetGate() + * @model required="true" + * @generated + */ + GateReference getTargetGate(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.Target#getTargetGate Target Gate}' reference. + * + * + * @param value the new value of the 'Target Gate' reference. + * @see #getTargetGate() + * @generated + */ + void setTargetGate(GateReference value); + + /** + * Returns the value of the 'Value Assignment' containment reference list. + * The list contents are of type {@link org.etsi.mts.tdl.ValueAssignment}. + * + * + * @return the value of the 'Value Assignment' containment reference list. + * @see org.etsi.mts.tdl.tdlPackage#getTarget_ValueAssignment() + * @model containment="true" + * annotation="http://www.eclipse.org/OCL/Collection nullFree='false'" + * @generated + */ + EList getValueAssignment(); + +} // Target diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/TestConfiguration.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/TestConfiguration.java new file mode 100644 index 0000000000000000000000000000000000000000..aac723cabad78cf998e8d5fe6550550bfd3ff884 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/TestConfiguration.java @@ -0,0 +1,59 @@ +/** + */ +package org.etsi.mts.tdl; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Test Configuration'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.TestConfiguration#getComponentInstance Component Instance}
  • + *
  • {@link org.etsi.mts.tdl.TestConfiguration#getConnection Connection}
  • + *
+ * + * @see org.etsi.mts.tdl.tdlPackage#getTestConfiguration() + * @model + * @generated + */ +public interface TestConfiguration extends PackageableElement +{ + /** + * Returns the value of the 'Component Instance' containment reference list. + * The list contents are of type {@link org.etsi.mts.tdl.ComponentInstance}. + * + * + * @return the value of the 'Component Instance' containment reference list. + * @see org.etsi.mts.tdl.tdlPackage#getTestConfiguration_ComponentInstance() + * @model containment="true" lower="2" ordered="false" + * @generated + */ + EList getComponentInstance(); + + /** + * Returns the value of the 'Connection' containment reference list. + * The list contents are of type {@link org.etsi.mts.tdl.Connection}. + * + * + * @return the value of the 'Connection' containment reference list. + * @see org.etsi.mts.tdl.tdlPackage#getTestConfiguration_Connection() + * @model containment="true" required="true" ordered="false" + * @generated + */ + EList getConnection(); + + /** + * + * + * @model required="true" tcRequired="true" cbMany="true" cbOrdered="false" + * annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot body='self.componentInstance->forAll(c | cb->exists(formalComponent = c)) and\nself.connection->forAll(c1 | tc.connection->exists(c2 |\n\tc1.endPoint->reject(ep1 | c2.endPoint->exists(ep2 |\n\t\tcb->any(formalComponent = ep1.component).actualComponent = ep2.component and ep1.gate = ep2.gate\n\t))->isEmpty()\n))'" + * @generated + */ + boolean compatibleWith(TestConfiguration tc, EList cb); + +} // TestConfiguration diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/TestDescription.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/TestDescription.java new file mode 100644 index 0000000000000000000000000000000000000000..915dbe1ed30083ada27513d510f1f1a677d3a62c --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/TestDescription.java @@ -0,0 +1,120 @@ +/** + */ +package org.etsi.mts.tdl; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Test Description'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.TestDescription#getTestConfiguration Test Configuration}
  • + *
  • {@link org.etsi.mts.tdl.TestDescription#getFormalParameter Formal Parameter}
  • + *
  • {@link org.etsi.mts.tdl.TestDescription#getBehaviourDescription Behaviour Description}
  • + *
  • {@link org.etsi.mts.tdl.TestDescription#getTestObjective Test Objective}
  • + *
  • {@link org.etsi.mts.tdl.TestDescription#isIsLocallyOrdered Is Locally Ordered}
  • + *
+ * + * @see org.etsi.mts.tdl.tdlPackage#getTestDescription() + * @model + * @generated + */ +public interface TestDescription extends PackageableElement +{ + /** + * Returns the value of the 'Test Configuration' reference. + * + * + * @return the value of the 'Test Configuration' reference. + * @see #setTestConfiguration(TestConfiguration) + * @see org.etsi.mts.tdl.tdlPackage#getTestDescription_TestConfiguration() + * @model required="true" + * @generated + */ + TestConfiguration getTestConfiguration(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.TestDescription#getTestConfiguration Test Configuration}' reference. + * + * + * @param value the new value of the 'Test Configuration' reference. + * @see #getTestConfiguration() + * @generated + */ + void setTestConfiguration(TestConfiguration value); + + /** + * Returns the value of the 'Formal Parameter' containment reference list. + * The list contents are of type {@link org.etsi.mts.tdl.FormalParameter}. + * + * + * @return the value of the 'Formal Parameter' containment reference list. + * @see org.etsi.mts.tdl.tdlPackage#getTestDescription_FormalParameter() + * @model containment="true" + * @generated + */ + EList getFormalParameter(); + + /** + * Returns the value of the 'Behaviour Description' containment reference. + * + * + * @return the value of the 'Behaviour Description' containment reference. + * @see #setBehaviourDescription(BehaviourDescription) + * @see org.etsi.mts.tdl.tdlPackage#getTestDescription_BehaviourDescription() + * @model containment="true" + * @generated + */ + BehaviourDescription getBehaviourDescription(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.TestDescription#getBehaviourDescription Behaviour Description}' containment reference. + * + * + * @param value the new value of the 'Behaviour Description' containment reference. + * @see #getBehaviourDescription() + * @generated + */ + void setBehaviourDescription(BehaviourDescription value); + + /** + * Returns the value of the 'Test Objective' reference list. + * The list contents are of type {@link org.etsi.mts.tdl.TestObjective}. + * + * + * @return the value of the 'Test Objective' reference list. + * @see org.etsi.mts.tdl.tdlPackage#getTestDescription_TestObjective() + * @model ordered="false" + * @generated + */ + EList getTestObjective(); + + /** + * Returns the value of the 'Is Locally Ordered' attribute. + * The default value is "false". + * + * + * @return the value of the 'Is Locally Ordered' attribute. + * @see #setIsLocallyOrdered(boolean) + * @see org.etsi.mts.tdl.tdlPackage#getTestDescription_IsLocallyOrdered() + * @model default="false" required="true" + * @generated + */ + boolean isIsLocallyOrdered(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.TestDescription#isIsLocallyOrdered Is Locally Ordered}' attribute. + * + * + * @param value the new value of the 'Is Locally Ordered' attribute. + * @see #isIsLocallyOrdered() + * @generated + */ + void setIsLocallyOrdered(boolean value); + +} // TestDescription diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/TestDescriptionReference.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/TestDescriptionReference.java new file mode 100644 index 0000000000000000000000000000000000000000..63a67bb4a1478ddebef41f3094e10dd5eb460a76 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/TestDescriptionReference.java @@ -0,0 +1,83 @@ +/** + */ +package org.etsi.mts.tdl; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Test Description Reference'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.TestDescriptionReference#getTestDescription Test Description}
  • + *
  • {@link org.etsi.mts.tdl.TestDescriptionReference#getComponentInstanceBinding Component Instance Binding}
  • + *
  • {@link org.etsi.mts.tdl.TestDescriptionReference#getArgument Argument}
  • + *
+ * + * @see org.etsi.mts.tdl.tdlPackage#getTestDescriptionReference() + * @model + * @generated + */ +public interface TestDescriptionReference extends AtomicBehaviour +{ + /** + * Returns the value of the 'Test Description' reference. + * + * + * @return the value of the 'Test Description' reference. + * @see #setTestDescription(TestDescription) + * @see org.etsi.mts.tdl.tdlPackage#getTestDescriptionReference_TestDescription() + * @model required="true" + * @generated + */ + TestDescription getTestDescription(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.TestDescriptionReference#getTestDescription Test Description}' reference. + * + * + * @param value the new value of the 'Test Description' reference. + * @see #getTestDescription() + * @generated + */ + void setTestDescription(TestDescription value); + + /** + * Returns the value of the 'Component Instance Binding' containment reference list. + * The list contents are of type {@link org.etsi.mts.tdl.ComponentInstanceBinding}. + * + * + * @return the value of the 'Component Instance Binding' containment reference list. + * @see org.etsi.mts.tdl.tdlPackage#getTestDescriptionReference_ComponentInstanceBinding() + * @model containment="true" ordered="false" + * @generated + */ + EList getComponentInstanceBinding(); + + /** + * Returns the value of the 'Argument' containment reference list. + * The list contents are of type {@link org.etsi.mts.tdl.ParameterBinding}. + * + * + * @return the value of the 'Argument' containment reference list. + * @see org.etsi.mts.tdl.tdlPackage#getTestDescriptionReference_Argument() + * @model containment="true" + * @generated + */ + EList getArgument(); + + /** + * + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot body='\n if self.getParentTestDescription()->exists(td | td.isLocallyOrdered) and not self.componentInstanceBinding->isEmpty() then\n self.componentInstanceBinding.actualComponent->asOrderedSet()\n else\n self.getParentTestDescription().testConfiguration.componentInstance->asOrderedSet()\n endif\n '" + * annotation="http://www.eclipse.org/OCL/Collection nullFree='false'" + * @generated + */ + EList getParticipatingComponents(); + +} // TestDescriptionReference diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/TestObjective.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/TestObjective.java new file mode 100644 index 0000000000000000000000000000000000000000..7e7800be4357d88fd9e4761bea905017eb5440ac --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/TestObjective.java @@ -0,0 +1,60 @@ +/** + */ +package org.etsi.mts.tdl; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Test Objective'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.TestObjective#getObjectiveURI Objective URI}
  • + *
  • {@link org.etsi.mts.tdl.TestObjective#getDescription Description}
  • + *
+ * + * @see org.etsi.mts.tdl.tdlPackage#getTestObjective() + * @model + * @generated + */ +public interface TestObjective extends PackageableElement +{ + /** + * Returns the value of the 'Objective URI' attribute list. + * The list contents are of type {@link java.lang.String}. + * + * + * @return the value of the 'Objective URI' attribute list. + * @see org.etsi.mts.tdl.tdlPackage#getTestObjective_ObjectiveURI() + * @model unique="false" ordered="false" + * @generated + */ + EList getObjectiveURI(); + + /** + * Returns the value of the 'Description' attribute. + * + * + * @return the value of the 'Description' attribute. + * @see #setDescription(String) + * @see org.etsi.mts.tdl.tdlPackage#getTestObjective_Description() + * @model + * @generated + */ + String getDescription(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.TestObjective#getDescription Description}' attribute. + * + * + * @param value the new value of the 'Description' attribute. + * @see #getDescription() + * @generated + */ + void setDescription(String value); + +} // TestObjective diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/Time.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/Time.java new file mode 100644 index 0000000000000000000000000000000000000000..623f9c6bd934014907c2dde6a5e10c1fbf04cb11 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/Time.java @@ -0,0 +1,18 @@ +/** + */ +package org.etsi.mts.tdl; + + +/** + * + * A representation of the model object 'Time'. + * + * + * + * @see org.etsi.mts.tdl.tdlPackage#getTime() + * @model + * @generated + */ +public interface Time extends SimpleDataType +{ +} // Time diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/TimeConstraint.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/TimeConstraint.java new file mode 100644 index 0000000000000000000000000000000000000000..3b92a72d8ca7c1572eeee3201c94b3fa2526754b --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/TimeConstraint.java @@ -0,0 +1,46 @@ +/** + */ +package org.etsi.mts.tdl; + + +/** + * + * A representation of the model object 'Time Constraint'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.TimeConstraint#getTimeConstraintExpression Time Constraint Expression}
  • + *
+ * + * @see org.etsi.mts.tdl.tdlPackage#getTimeConstraint() + * @model + * @generated + */ +public interface TimeConstraint extends Element +{ + /** + * Returns the value of the 'Time Constraint Expression' containment reference. + * + * + * @return the value of the 'Time Constraint Expression' containment reference. + * @see #setTimeConstraintExpression(DataUse) + * @see org.etsi.mts.tdl.tdlPackage#getTimeConstraint_TimeConstraintExpression() + * @model containment="true" required="true" + * @generated + */ + DataUse getTimeConstraintExpression(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.TimeConstraint#getTimeConstraintExpression Time Constraint Expression}' containment reference. + * + * + * @param value the new value of the 'Time Constraint Expression' containment reference. + * @see #getTimeConstraintExpression() + * @generated + */ + void setTimeConstraintExpression(DataUse value); + +} // TimeConstraint diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/TimeLabel.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/TimeLabel.java new file mode 100644 index 0000000000000000000000000000000000000000..c609d23d814c61d651c272b3303251985eeaf930 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/TimeLabel.java @@ -0,0 +1,18 @@ +/** + */ +package org.etsi.mts.tdl; + + +/** + * + * A representation of the model object 'Time Label'. + * + * + * + * @see org.etsi.mts.tdl.tdlPackage#getTimeLabel() + * @model + * @generated + */ +public interface TimeLabel extends NamedElement +{ +} // TimeLabel diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/TimeLabelUse.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/TimeLabelUse.java new file mode 100644 index 0000000000000000000000000000000000000000..08fefa69c6cdbb5e924c1eb023acec24bc6b497c --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/TimeLabelUse.java @@ -0,0 +1,81 @@ +/** + */ +package org.etsi.mts.tdl; + + +/** + * + * A representation of the model object 'Time Label Use'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.TimeLabelUse#getTimeLabel Time Label}
  • + *
  • {@link org.etsi.mts.tdl.TimeLabelUse#getKind Kind}
  • + *
+ * + * @see org.etsi.mts.tdl.tdlPackage#getTimeLabelUse() + * @model + * @generated + */ +public interface TimeLabelUse extends DynamicDataUse +{ + /** + * Returns the value of the 'Time Label' reference. + * + * + * @return the value of the 'Time Label' reference. + * @see #setTimeLabel(TimeLabel) + * @see org.etsi.mts.tdl.tdlPackage#getTimeLabelUse_TimeLabel() + * @model required="true" + * @generated + */ + TimeLabel getTimeLabel(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.TimeLabelUse#getTimeLabel Time Label}' reference. + * + * + * @param value the new value of the 'Time Label' reference. + * @see #getTimeLabel() + * @generated + */ + void setTimeLabel(TimeLabel value); + + /** + * Returns the value of the 'Kind' attribute. + * The default value is "Last". + * The literals are from the enumeration {@link org.etsi.mts.tdl.TimeLabelUseKind}. + * + * + * @return the value of the 'Kind' attribute. + * @see org.etsi.mts.tdl.TimeLabelUseKind + * @see #setKind(TimeLabelUseKind) + * @see org.etsi.mts.tdl.tdlPackage#getTimeLabelUse_Kind() + * @model default="Last" required="true" + * @generated + */ + TimeLabelUseKind getKind(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.TimeLabelUse#getKind Kind}' attribute. + * + * + * @param value the new value of the 'Kind' attribute. + * @see org.etsi.mts.tdl.TimeLabelUseKind + * @see #getKind() + * @generated + */ + void setKind(TimeLabelUseKind value); + + /** + * + * + * @model annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot body='Time.allInstances()->asOrderedSet()->first()'" + * @generated + */ + DataType resolveDataType(); + +} // TimeLabelUse diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/TimeLabelUseKind.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/TimeLabelUseKind.java new file mode 100644 index 0000000000000000000000000000000000000000..de8f680af8240638f4951d5c8ab2eb67dd8f2de0 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/TimeLabelUseKind.java @@ -0,0 +1,247 @@ +/** + */ +package org.etsi.mts.tdl; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +import org.eclipse.emf.common.util.Enumerator; + +/** + * + * A representation of the literals of the enumeration 'Time Label Use Kind', + * and utility methods for working with them. + * + * @see org.etsi.mts.tdl.tdlPackage#getTimeLabelUseKind() + * @model + * @generated + */ +public enum TimeLabelUseKind implements Enumerator +{ + /** + * The 'Last' literal object. + * + * + * @see #LAST_VALUE + * @generated + * @ordered + */ + LAST(0, "Last", "Last"), + + /** + * The 'Previous' literal object. + * + * + * @see #PREVIOUS_VALUE + * @generated + * @ordered + */ + PREVIOUS(1, "Previous", "Previous"), + + /** + * The 'First' literal object. + * + * + * @see #FIRST_VALUE + * @generated + * @ordered + */ + FIRST(2, "First", "First"); + + /** + * The 'Last' literal value. + * + * + * @see #LAST + * @model name="Last" + * @generated + * @ordered + */ + public static final int LAST_VALUE = 0; + + /** + * The 'Previous' literal value. + * + * + * @see #PREVIOUS + * @model name="Previous" + * @generated + * @ordered + */ + public static final int PREVIOUS_VALUE = 1; + + /** + * The 'First' literal value. + * + * + * @see #FIRST + * @model name="First" + * @generated + * @ordered + */ + public static final int FIRST_VALUE = 2; + + /** + * An array of all the 'Time Label Use Kind' enumerators. + * + * + * @generated + */ + private static final TimeLabelUseKind[] VALUES_ARRAY = + new TimeLabelUseKind[] + { + LAST, + PREVIOUS, + FIRST, + }; + + /** + * A public read-only list of all the 'Time Label Use Kind' enumerators. + * + * + * @generated + */ + public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY)); + + /** + * Returns the 'Time Label Use Kind' literal with the specified literal value. + * + * + * @param literal the literal. + * @return the matching enumerator or null. + * @generated + */ + public static TimeLabelUseKind get(String literal) + { + for (int i = 0; i < VALUES_ARRAY.length; ++i) + { + TimeLabelUseKind result = VALUES_ARRAY[i]; + if (result.toString().equals(literal)) + { + return result; + } + } + return null; + } + + /** + * Returns the 'Time Label Use Kind' literal with the specified name. + * + * + * @param name the name. + * @return the matching enumerator or null. + * @generated + */ + public static TimeLabelUseKind getByName(String name) + { + for (int i = 0; i < VALUES_ARRAY.length; ++i) + { + TimeLabelUseKind result = VALUES_ARRAY[i]; + if (result.getName().equals(name)) + { + return result; + } + } + return null; + } + + /** + * Returns the 'Time Label Use Kind' literal with the specified integer value. + * + * + * @param value the integer value. + * @return the matching enumerator or null. + * @generated + */ + public static TimeLabelUseKind get(int value) + { + switch (value) + { + case LAST_VALUE: return LAST; + case PREVIOUS_VALUE: return PREVIOUS; + case FIRST_VALUE: return FIRST; + } + return null; + } + + /** + * + * + * @generated + */ + private final int value; + + /** + * + * + * @generated + */ + private final String name; + + /** + * + * + * @generated + */ + private final String literal; + + /** + * Only this class can construct instances. + * + * + * @generated + */ + private TimeLabelUseKind(int value, String name, String literal) + { + this.value = value; + this.name = name; + this.literal = literal; + } + + /** + * + * + * @generated + */ + @Override + public int getValue() + { + return value; + } + + /** + * + * + * @generated + */ + @Override + public String getName() + { + return name; + } + + /** + * + * + * @generated + */ + @Override + public String getLiteral() + { + return literal; + } + + /** + * Returns the literal value of the enumerator, which is its string representation. + * + * + * @generated + */ + @Override + public String toString() + { + return literal; + } + +} //TimeLabelUseKind diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/TimeOperation.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/TimeOperation.java new file mode 100644 index 0000000000000000000000000000000000000000..a0f65b5b60f0cdbd86d04dbb3df24ce78b5ec797 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/TimeOperation.java @@ -0,0 +1,80 @@ +/** + */ +package org.etsi.mts.tdl; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Time Operation'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.TimeOperation#getComponentInstance Component Instance}
  • + *
  • {@link org.etsi.mts.tdl.TimeOperation#getPeriod Period}
  • + *
+ * + * @see org.etsi.mts.tdl.tdlPackage#getTimeOperation() + * @model abstract="true" + * @generated + */ +public interface TimeOperation extends AtomicBehaviour +{ + /** + * Returns the value of the 'Component Instance' reference. + * + * + * @return the value of the 'Component Instance' reference. + * @see #setComponentInstance(ComponentInstance) + * @see org.etsi.mts.tdl.tdlPackage#getTimeOperation_ComponentInstance() + * @model + * @generated + */ + ComponentInstance getComponentInstance(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.TimeOperation#getComponentInstance Component Instance}' reference. + * + * + * @param value the new value of the 'Component Instance' reference. + * @see #getComponentInstance() + * @generated + */ + void setComponentInstance(ComponentInstance value); + + /** + * Returns the value of the 'Period' containment reference. + * + * + * @return the value of the 'Period' containment reference. + * @see #setPeriod(DataUse) + * @see org.etsi.mts.tdl.tdlPackage#getTimeOperation_Period() + * @model containment="true" required="true" + * @generated + */ + DataUse getPeriod(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.TimeOperation#getPeriod Period}' containment reference. + * + * + * @param value the new value of the 'Period' containment reference. + * @see #getPeriod() + * @generated + */ + void setPeriod(DataUse value); + + /** + * + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot body='\n if self.getParentTestDescription()->exists(td | td.isLocallyOrdered) and self.container().oclIsKindOf(Block) then (\n if not self.componentInstance.oclIsUndefined() then\n OrderedSet { self.componentInstance }\n else\n self.container().oclAsType(Block).getParticipatingComponentsExcluding(self)->asOrderedSet()\n endif\n ) else\n self.getParentTestDescription().testConfiguration.componentInstance->asOrderedSet()\n endif\n '" + * annotation="http://www.eclipse.org/OCL/Collection nullFree='false'" + * @generated + */ + EList getParticipatingComponents(); + +} // TimeOperation diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/TimeOut.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/TimeOut.java new file mode 100644 index 0000000000000000000000000000000000000000..7ee65d069d6e6bd08f7905cc5fff45e7d9349302 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/TimeOut.java @@ -0,0 +1,18 @@ +/** + */ +package org.etsi.mts.tdl; + + +/** + * + * A representation of the model object 'Time Out'. + * + * + * + * @see org.etsi.mts.tdl.tdlPackage#getTimeOut() + * @model + * @generated + */ +public interface TimeOut extends TimerOperation +{ +} // TimeOut diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/Timer.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/Timer.java new file mode 100644 index 0000000000000000000000000000000000000000..c4d1beec6d80ce8a3b468ded745f240bb3e2f41a --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/Timer.java @@ -0,0 +1,18 @@ +/** + */ +package org.etsi.mts.tdl; + + +/** + * + * A representation of the model object 'Timer'. + * + * + * + * @see org.etsi.mts.tdl.tdlPackage#getTimer() + * @model + * @generated + */ +public interface Timer extends NamedElement +{ +} // Timer diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/TimerOperation.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/TimerOperation.java new file mode 100644 index 0000000000000000000000000000000000000000..4f1adbf627335eea6e5c4bac87d70b49573056af --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/TimerOperation.java @@ -0,0 +1,80 @@ +/** + */ +package org.etsi.mts.tdl; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Timer Operation'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.TimerOperation#getTimer Timer}
  • + *
  • {@link org.etsi.mts.tdl.TimerOperation#getComponentInstance Component Instance}
  • + *
+ * + * @see org.etsi.mts.tdl.tdlPackage#getTimerOperation() + * @model abstract="true" + * @generated + */ +public interface TimerOperation extends AtomicBehaviour +{ + /** + * Returns the value of the 'Timer' reference. + * + * + * @return the value of the 'Timer' reference. + * @see #setTimer(Timer) + * @see org.etsi.mts.tdl.tdlPackage#getTimerOperation_Timer() + * @model required="true" + * @generated + */ + Timer getTimer(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.TimerOperation#getTimer Timer}' reference. + * + * + * @param value the new value of the 'Timer' reference. + * @see #getTimer() + * @generated + */ + void setTimer(Timer value); + + /** + * Returns the value of the 'Component Instance' reference. + * + * + * @return the value of the 'Component Instance' reference. + * @see #setComponentInstance(ComponentInstance) + * @see org.etsi.mts.tdl.tdlPackage#getTimerOperation_ComponentInstance() + * @model required="true" + * @generated + */ + ComponentInstance getComponentInstance(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.TimerOperation#getComponentInstance Component Instance}' reference. + * + * + * @param value the new value of the 'Component Instance' reference. + * @see #getComponentInstance() + * @generated + */ + void setComponentInstance(ComponentInstance value); + + /** + * + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot body='\n if self.getParentTestDescription()->exists(td | td.isLocallyOrdered) then\n OrderedSet { self.componentInstance }\n else\n self.getParentTestDescription().testConfiguration.componentInstance->asOrderedSet()\n endif\n '" + * annotation="http://www.eclipse.org/OCL/Collection nullFree='false'" + * @generated + */ + EList getParticipatingComponents(); + +} // TimerOperation diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/TimerStart.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/TimerStart.java new file mode 100644 index 0000000000000000000000000000000000000000..474ae4b185132f6d52ef58aed053ae7ebe21521b --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/TimerStart.java @@ -0,0 +1,46 @@ +/** + */ +package org.etsi.mts.tdl; + + +/** + * + * A representation of the model object 'Timer Start'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.TimerStart#getPeriod Period}
  • + *
+ * + * @see org.etsi.mts.tdl.tdlPackage#getTimerStart() + * @model + * @generated + */ +public interface TimerStart extends TimerOperation +{ + /** + * Returns the value of the 'Period' containment reference. + * + * + * @return the value of the 'Period' containment reference. + * @see #setPeriod(DataUse) + * @see org.etsi.mts.tdl.tdlPackage#getTimerStart_Period() + * @model containment="true" required="true" + * @generated + */ + DataUse getPeriod(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.TimerStart#getPeriod Period}' containment reference. + * + * + * @param value the new value of the 'Period' containment reference. + * @see #getPeriod() + * @generated + */ + void setPeriod(DataUse value); + +} // TimerStart diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/TimerStop.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/TimerStop.java new file mode 100644 index 0000000000000000000000000000000000000000..20472d54eb823a7797dfe4030432a66a6eaba646 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/TimerStop.java @@ -0,0 +1,18 @@ +/** + */ +package org.etsi.mts.tdl; + + +/** + * + * A representation of the model object 'Timer Stop'. + * + * + * + * @see org.etsi.mts.tdl.tdlPackage#getTimerStop() + * @model + * @generated + */ +public interface TimerStop extends TimerOperation +{ +} // TimerStop diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/UnassignedMemberTreatment.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/UnassignedMemberTreatment.java new file mode 100644 index 0000000000000000000000000000000000000000..a0e61288b2dbc3429d691c4c59910847d09c94c6 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/UnassignedMemberTreatment.java @@ -0,0 +1,247 @@ +/** + */ +package org.etsi.mts.tdl; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +import org.eclipse.emf.common.util.Enumerator; + +/** + * + * A representation of the literals of the enumeration 'Unassigned Member Treatment', + * and utility methods for working with them. + * + * @see org.etsi.mts.tdl.tdlPackage#getUnassignedMemberTreatment() + * @model + * @generated + */ +public enum UnassignedMemberTreatment implements Enumerator +{ + /** + * The 'Undefined' literal object. + * + * + * @see #UNDEFINED_VALUE + * @generated + * @ordered + */ + UNDEFINED(0, "undefined", "undefined"), + + /** + * The 'Any Value' literal object. + * + * + * @see #ANY_VALUE_VALUE + * @generated + * @ordered + */ + ANY_VALUE(1, "AnyValue", "AnyValue"), + + /** + * The 'Any Value Or Omit' literal object. + * + * + * @see #ANY_VALUE_OR_OMIT_VALUE + * @generated + * @ordered + */ + ANY_VALUE_OR_OMIT(2, "AnyValueOrOmit", "AnyValueOrOmit"); + + /** + * The 'Undefined' literal value. + * + * + * @see #UNDEFINED + * @model name="undefined" + * @generated + * @ordered + */ + public static final int UNDEFINED_VALUE = 0; + + /** + * The 'Any Value' literal value. + * + * + * @see #ANY_VALUE + * @model name="AnyValue" + * @generated + * @ordered + */ + public static final int ANY_VALUE_VALUE = 1; + + /** + * The 'Any Value Or Omit' literal value. + * + * + * @see #ANY_VALUE_OR_OMIT + * @model name="AnyValueOrOmit" + * @generated + * @ordered + */ + public static final int ANY_VALUE_OR_OMIT_VALUE = 2; + + /** + * An array of all the 'Unassigned Member Treatment' enumerators. + * + * + * @generated + */ + private static final UnassignedMemberTreatment[] VALUES_ARRAY = + new UnassignedMemberTreatment[] + { + UNDEFINED, + ANY_VALUE, + ANY_VALUE_OR_OMIT, + }; + + /** + * A public read-only list of all the 'Unassigned Member Treatment' enumerators. + * + * + * @generated + */ + public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY)); + + /** + * Returns the 'Unassigned Member Treatment' literal with the specified literal value. + * + * + * @param literal the literal. + * @return the matching enumerator or null. + * @generated + */ + public static UnassignedMemberTreatment get(String literal) + { + for (int i = 0; i < VALUES_ARRAY.length; ++i) + { + UnassignedMemberTreatment result = VALUES_ARRAY[i]; + if (result.toString().equals(literal)) + { + return result; + } + } + return null; + } + + /** + * Returns the 'Unassigned Member Treatment' literal with the specified name. + * + * + * @param name the name. + * @return the matching enumerator or null. + * @generated + */ + public static UnassignedMemberTreatment getByName(String name) + { + for (int i = 0; i < VALUES_ARRAY.length; ++i) + { + UnassignedMemberTreatment result = VALUES_ARRAY[i]; + if (result.getName().equals(name)) + { + return result; + } + } + return null; + } + + /** + * Returns the 'Unassigned Member Treatment' literal with the specified integer value. + * + * + * @param value the integer value. + * @return the matching enumerator or null. + * @generated + */ + public static UnassignedMemberTreatment get(int value) + { + switch (value) + { + case UNDEFINED_VALUE: return UNDEFINED; + case ANY_VALUE_VALUE: return ANY_VALUE; + case ANY_VALUE_OR_OMIT_VALUE: return ANY_VALUE_OR_OMIT; + } + return null; + } + + /** + * + * + * @generated + */ + private final int value; + + /** + * + * + * @generated + */ + private final String name; + + /** + * + * + * @generated + */ + private final String literal; + + /** + * Only this class can construct instances. + * + * + * @generated + */ + private UnassignedMemberTreatment(int value, String name, String literal) + { + this.value = value; + this.name = name; + this.literal = literal; + } + + /** + * + * + * @generated + */ + @Override + public int getValue() + { + return value; + } + + /** + * + * + * @generated + */ + @Override + public String getName() + { + return name; + } + + /** + * + * + * @generated + */ + @Override + public String getLiteral() + { + return literal; + } + + /** + * Returns the literal value of the enumerator, which is its string representation. + * + * + * @generated + */ + @Override + public String toString() + { + return literal; + } + +} //UnassignedMemberTreatment diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/UnboundedLoopBehaviour.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/UnboundedLoopBehaviour.java new file mode 100644 index 0000000000000000000000000000000000000000..0d57a90f88d4cb893871e41849e53f5569fee62f --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/UnboundedLoopBehaviour.java @@ -0,0 +1,18 @@ +/** + */ +package org.etsi.mts.tdl; + + +/** + * + * A representation of the model object 'Unbounded Loop Behaviour'. + * + * + * + * @see org.etsi.mts.tdl.tdlPackage#getUnboundedLoopBehaviour() + * @model + * @generated + */ +public interface UnboundedLoopBehaviour extends SingleCombinedBehaviour +{ +} // UnboundedLoopBehaviour diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/ValueAssignment.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/ValueAssignment.java new file mode 100644 index 0000000000000000000000000000000000000000..f30b26b257e36e204179176f44a05ddff9973b21 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/ValueAssignment.java @@ -0,0 +1,69 @@ +/** + */ +package org.etsi.mts.tdl; + + +/** + * + * A representation of the model object 'Value Assignment'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.ValueAssignment#getVariable Variable}
  • + *
  • {@link org.etsi.mts.tdl.ValueAssignment#getParameter Parameter}
  • + *
+ * + * @see org.etsi.mts.tdl.tdlPackage#getValueAssignment() + * @model + * @generated + */ +public interface ValueAssignment extends Element +{ + /** + * Returns the value of the 'Variable' reference. + * + * + * @return the value of the 'Variable' reference. + * @see #setVariable(Variable) + * @see org.etsi.mts.tdl.tdlPackage#getValueAssignment_Variable() + * @model required="true" + * @generated + */ + Variable getVariable(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.ValueAssignment#getVariable Variable}' reference. + * + * + * @param value the new value of the 'Variable' reference. + * @see #getVariable() + * @generated + */ + void setVariable(Variable value); + + /** + * Returns the value of the 'Parameter' reference. + * + * + * @return the value of the 'Parameter' reference. + * @see #setParameter(Parameter) + * @see org.etsi.mts.tdl.tdlPackage#getValueAssignment_Parameter() + * @model + * @generated + */ + Parameter getParameter(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.ValueAssignment#getParameter Parameter}' reference. + * + * + * @param value the new value of the 'Parameter' reference. + * @see #getParameter() + * @generated + */ + void setParameter(Parameter value); + +} // ValueAssignment diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/Variable.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/Variable.java new file mode 100644 index 0000000000000000000000000000000000000000..c3b71faf9b4c21fd205cab7818638c20c9ed933f --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/Variable.java @@ -0,0 +1,46 @@ +/** + */ +package org.etsi.mts.tdl; + + +/** + * + * A representation of the model object 'Variable'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.Variable#getDataType Data Type}
  • + *
+ * + * @see org.etsi.mts.tdl.tdlPackage#getVariable() + * @model + * @generated + */ +public interface Variable extends NamedElement +{ + /** + * Returns the value of the 'Data Type' reference. + * + * + * @return the value of the 'Data Type' reference. + * @see #setDataType(DataType) + * @see org.etsi.mts.tdl.tdlPackage#getVariable_DataType() + * @model required="true" + * @generated + */ + DataType getDataType(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.Variable#getDataType Data Type}' reference. + * + * + * @param value the new value of the 'Data Type' reference. + * @see #getDataType() + * @generated + */ + void setDataType(DataType value); + +} // Variable diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/VariableUse.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/VariableUse.java new file mode 100644 index 0000000000000000000000000000000000000000..8f5bd8b61a72e5c7494da3a8f178c95b56ccac9f --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/VariableUse.java @@ -0,0 +1,77 @@ +/** + */ +package org.etsi.mts.tdl; + + +/** + * + * A representation of the model object 'Variable Use'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.VariableUse#getComponentInstance Component Instance}
  • + *
  • {@link org.etsi.mts.tdl.VariableUse#getVariable Variable}
  • + *
+ * + * @see org.etsi.mts.tdl.tdlPackage#getVariableUse() + * @model + * @generated + */ +public interface VariableUse extends DynamicDataUse +{ + /** + * Returns the value of the 'Component Instance' reference. + * + * + * @return the value of the 'Component Instance' reference. + * @see #setComponentInstance(ComponentInstance) + * @see org.etsi.mts.tdl.tdlPackage#getVariableUse_ComponentInstance() + * @model required="true" + * @generated + */ + ComponentInstance getComponentInstance(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.VariableUse#getComponentInstance Component Instance}' reference. + * + * + * @param value the new value of the 'Component Instance' reference. + * @see #getComponentInstance() + * @generated + */ + void setComponentInstance(ComponentInstance value); + + /** + * Returns the value of the 'Variable' reference. + * + * + * @return the value of the 'Variable' reference. + * @see #setVariable(Variable) + * @see org.etsi.mts.tdl.tdlPackage#getVariableUse_Variable() + * @model required="true" + * @generated + */ + Variable getVariable(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.VariableUse#getVariable Variable}' reference. + * + * + * @param value the new value of the 'Variable' reference. + * @see #getVariable() + * @generated + */ + void setVariable(Variable value); + + /** + * + * + * @model annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot body='self.variable.dataType'" + * @generated + */ + DataType resolveDataType(); + +} // VariableUse diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/VerdictAssignment.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/VerdictAssignment.java new file mode 100644 index 0000000000000000000000000000000000000000..792e43297304ca48f487701d92238d7e36a76a65 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/VerdictAssignment.java @@ -0,0 +1,46 @@ +/** + */ +package org.etsi.mts.tdl; + + +/** + * + * A representation of the model object 'Verdict Assignment'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.VerdictAssignment#getVerdict Verdict}
  • + *
+ * + * @see org.etsi.mts.tdl.tdlPackage#getVerdictAssignment() + * @model + * @generated + */ +public interface VerdictAssignment extends AtomicBehaviour +{ + /** + * Returns the value of the 'Verdict' containment reference. + * + * + * @return the value of the 'Verdict' containment reference. + * @see #setVerdict(DataUse) + * @see org.etsi.mts.tdl.tdlPackage#getVerdictAssignment_Verdict() + * @model containment="true" required="true" + * @generated + */ + DataUse getVerdict(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.VerdictAssignment#getVerdict Verdict}' containment reference. + * + * + * @param value the new value of the 'Verdict' containment reference. + * @see #getVerdict() + * @generated + */ + void setVerdict(DataUse value); + +} // VerdictAssignment diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/Wait.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/Wait.java new file mode 100644 index 0000000000000000000000000000000000000000..4ac4cf1e8ceb92de59ca634c7daa49ef9268630b --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/Wait.java @@ -0,0 +1,18 @@ +/** + */ +package org.etsi.mts.tdl; + + +/** + * + * A representation of the model object 'Wait'. + * + * + * + * @see org.etsi.mts.tdl.tdlPackage#getWait() + * @model + * @generated + */ +public interface Wait extends TimeOperation +{ +} // Wait diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/extendedconfigurations/ComponentAlias.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/extendedconfigurations/ComponentAlias.java new file mode 100644 index 0000000000000000000000000000000000000000..7bf61c2f13e8fbd8797f23edf8646534806c08f8 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/extendedconfigurations/ComponentAlias.java @@ -0,0 +1,18 @@ +/** + */ +package org.etsi.mts.tdl.extendedconfigurations; + + +/** + * + * A representation of the model object 'Component Alias'. + * + * + * + * @see org.etsi.mts.tdl.extendedconfigurations.ExtendedConfigurationsPackage#getComponentAlias() + * @model + * @generated + */ +public interface ComponentAlias extends TestConfigurationOperation +{ +} // ComponentAlias diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/extendedconfigurations/ComponentHide.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/extendedconfigurations/ComponentHide.java new file mode 100644 index 0000000000000000000000000000000000000000..933c762b780e9ea45cb090a491a43406a2e548ca --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/extendedconfigurations/ComponentHide.java @@ -0,0 +1,18 @@ +/** + */ +package org.etsi.mts.tdl.extendedconfigurations; + + +/** + * + * A representation of the model object 'Component Hide'. + * + * + * + * @see org.etsi.mts.tdl.extendedconfigurations.ExtendedConfigurationsPackage#getComponentHide() + * @model + * @generated + */ +public interface ComponentHide extends TestConfigurationOperation +{ +} // ComponentHide diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/extendedconfigurations/ComponentMerge.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/extendedconfigurations/ComponentMerge.java new file mode 100644 index 0000000000000000000000000000000000000000..5b55f69a3951581535033d5b6bbc331d24aa5e9f --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/extendedconfigurations/ComponentMerge.java @@ -0,0 +1,46 @@ +/** + */ +package org.etsi.mts.tdl.extendedconfigurations; + + +/** + * + * A representation of the model object 'Component Merge'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.extendedconfigurations.ComponentMerge#getTarget Target}
  • + *
+ * + * @see org.etsi.mts.tdl.extendedconfigurations.ExtendedConfigurationsPackage#getComponentMerge() + * @model + * @generated + */ +public interface ComponentMerge extends TestConfigurationOperation +{ + /** + * Returns the value of the 'Target' containment reference. + * + * + * @return the value of the 'Target' containment reference. + * @see #setTarget(ComponentReference) + * @see org.etsi.mts.tdl.extendedconfigurations.ExtendedConfigurationsPackage#getComponentMerge_Target() + * @model containment="true" required="true" + * @generated + */ + ComponentReference getTarget(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.extendedconfigurations.ComponentMerge#getTarget Target}' containment reference. + * + * + * @param value the new value of the 'Target' containment reference. + * @see #getTarget() + * @generated + */ + void setTarget(ComponentReference value); + +} // ComponentMerge diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/extendedconfigurations/ComponentReference.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/extendedconfigurations/ComponentReference.java new file mode 100644 index 0000000000000000000000000000000000000000..e1603ca616557f91060a2756fb082dc54c9575fe --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/extendedconfigurations/ComponentReference.java @@ -0,0 +1,71 @@ +/** + */ +package org.etsi.mts.tdl.extendedconfigurations; + +import org.etsi.mts.tdl.ComponentInstance; +import org.etsi.mts.tdl.Element; + +/** + * + * A representation of the model object 'Component Reference'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.extendedconfigurations.ComponentReference#getComponent Component}
  • + *
  • {@link org.etsi.mts.tdl.extendedconfigurations.ComponentReference#getConfiguration Configuration}
  • + *
+ * + * @see org.etsi.mts.tdl.extendedconfigurations.ExtendedConfigurationsPackage#getComponentReference() + * @model + * @generated + */ +public interface ComponentReference extends Element +{ + /** + * Returns the value of the 'Component' reference. + * + * + * @return the value of the 'Component' reference. + * @see #setComponent(ComponentInstance) + * @see org.etsi.mts.tdl.extendedconfigurations.ExtendedConfigurationsPackage#getComponentReference_Component() + * @model required="true" + * @generated + */ + ComponentInstance getComponent(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.extendedconfigurations.ComponentReference#getComponent Component}' reference. + * + * + * @param value the new value of the 'Component' reference. + * @see #getComponent() + * @generated + */ + void setComponent(ComponentInstance value); + + /** + * Returns the value of the 'Configuration' reference. + * + * + * @return the value of the 'Configuration' reference. + * @see #setConfiguration(TestConfigurationInstance) + * @see org.etsi.mts.tdl.extendedconfigurations.ExtendedConfigurationsPackage#getComponentReference_Configuration() + * @model required="true" + * @generated + */ + TestConfigurationInstance getConfiguration(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.extendedconfigurations.ComponentReference#getConfiguration Configuration}' reference. + * + * + * @param value the new value of the 'Configuration' reference. + * @see #getConfiguration() + * @generated + */ + void setConfiguration(TestConfigurationInstance value); + +} // ComponentReference diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/extendedconfigurations/ExtendedConfigurationsFactory.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/extendedconfigurations/ExtendedConfigurationsFactory.java new file mode 100644 index 0000000000000000000000000000000000000000..0e737dc891ceb48726bf454f7f2a56521b64572a --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/extendedconfigurations/ExtendedConfigurationsFactory.java @@ -0,0 +1,106 @@ +/** + */ +package org.etsi.mts.tdl.extendedconfigurations; + +import org.eclipse.emf.ecore.EFactory; + +/** + * + * The Factory for the model. + * It provides a create method for each non-abstract class of the model. + * + * @see org.etsi.mts.tdl.extendedconfigurations.ExtendedConfigurationsPackage + * @generated + */ +public interface ExtendedConfigurationsFactory extends EFactory +{ + /** + * The singleton instance of the factory. + * + * + * @generated + */ + ExtendedConfigurationsFactory eINSTANCE = org.etsi.mts.tdl.extendedconfigurations.impl.ExtendedConfigurationsFactoryImpl.init(); + + /** + * Returns a new object of class 'Extended Test Configuration'. + * + * + * @return a new object of class 'Extended Test Configuration'. + * @generated + */ + ExtendedTestConfiguration createExtendedTestConfiguration(); + + /** + * Returns a new object of class 'Test Configuration Instance'. + * + * + * @return a new object of class 'Test Configuration Instance'. + * @generated + */ + TestConfigurationInstance createTestConfigurationInstance(); + + /** + * Returns a new object of class 'Component Reference'. + * + * + * @return a new object of class 'Component Reference'. + * @generated + */ + ComponentReference createComponentReference(); + + /** + * Returns a new object of class 'Component Merge'. + * + * + * @return a new object of class 'Component Merge'. + * @generated + */ + ComponentMerge createComponentMerge(); + + /** + * Returns a new object of class 'Component Hide'. + * + * + * @return a new object of class 'Component Hide'. + * @generated + */ + ComponentHide createComponentHide(); + + /** + * Returns a new object of class 'Reassign Role'. + * + * + * @return a new object of class 'Reassign Role'. + * @generated + */ + ReassignRole createReassignRole(); + + /** + * Returns a new object of class 'Component Alias'. + * + * + * @return a new object of class 'Component Alias'. + * @generated + */ + ComponentAlias createComponentAlias(); + + /** + * Returns a new object of class 'Extended Gate Reference'. + * + * + * @return a new object of class 'Extended Gate Reference'. + * @generated + */ + ExtendedGateReference createExtendedGateReference(); + + /** + * Returns the package supported by this factory. + * + * + * @return the package supported by this factory. + * @generated + */ + ExtendedConfigurationsPackage getExtendedConfigurationsPackage(); + +} //ExtendedConfigurationsFactory diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/extendedconfigurations/ExtendedConfigurationsPackage.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/extendedconfigurations/ExtendedConfigurationsPackage.java new file mode 100644 index 0000000000000000000000000000000000000000..89353f3f6f0da6a449dc1ed0c2749a6f2893891f --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/extendedconfigurations/ExtendedConfigurationsPackage.java @@ -0,0 +1,1296 @@ +/** + */ +package org.etsi.mts.tdl.extendedconfigurations; + +import org.eclipse.emf.ecore.EAttribute; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.EReference; + +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * The Package for the model. + * It contains accessors for the meta objects to represent + *
    + *
  • each class,
  • + *
  • each feature of each class,
  • + *
  • each operation of each class,
  • + *
  • each enum,
  • + *
  • and each data type
  • + *
+ * + * @see org.etsi.mts.tdl.extendedconfigurations.ExtendedConfigurationsFactory + * @model kind="package" + * annotation="http://www.eclipse.org/OCL/Import tdl='tdl.ecore#/'" + * @generated + */ +public interface ExtendedConfigurationsPackage extends EPackage +{ + /** + * The package name. + * + * + * @generated + */ + String eNAME = "extendedconfigurations"; + + /** + * The package namespace URI. + * + * + * @generated + */ + String eNS_URI = "http://www.etsi.org/spec/TDL/1.3.1/configurations"; + + /** + * The package namespace name. + * + * + * @generated + */ + String eNS_PREFIX = "configurations"; + + /** + * The singleton instance of the package. + * + * + * @generated + */ + ExtendedConfigurationsPackage eINSTANCE = org.etsi.mts.tdl.extendedconfigurations.impl.ExtendedConfigurationsPackageImpl.init(); + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.extendedconfigurations.impl.ExtendedTestConfigurationImpl Extended Test Configuration}' class. + * + * + * @see org.etsi.mts.tdl.extendedconfigurations.impl.ExtendedTestConfigurationImpl + * @see org.etsi.mts.tdl.extendedconfigurations.impl.ExtendedConfigurationsPackageImpl#getExtendedTestConfiguration() + * @generated + */ + int EXTENDED_TEST_CONFIGURATION = 0; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int EXTENDED_TEST_CONFIGURATION__COMMENT = tdlPackage.TEST_CONFIGURATION__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int EXTENDED_TEST_CONFIGURATION__ANNOTATION = tdlPackage.TEST_CONFIGURATION__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int EXTENDED_TEST_CONFIGURATION__NAME = tdlPackage.TEST_CONFIGURATION__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int EXTENDED_TEST_CONFIGURATION__QUALIFIED_NAME = tdlPackage.TEST_CONFIGURATION__QUALIFIED_NAME; + + /** + * The feature id for the 'Component Instance' containment reference list. + * + * + * @generated + * @ordered + */ + int EXTENDED_TEST_CONFIGURATION__COMPONENT_INSTANCE = tdlPackage.TEST_CONFIGURATION__COMPONENT_INSTANCE; + + /** + * The feature id for the 'Connection' containment reference list. + * + * + * @generated + * @ordered + */ + int EXTENDED_TEST_CONFIGURATION__CONNECTION = tdlPackage.TEST_CONFIGURATION__CONNECTION; + + /** + * The feature id for the 'Configurations' containment reference list. + * + * + * @generated + * @ordered + */ + int EXTENDED_TEST_CONFIGURATION__CONFIGURATIONS = tdlPackage.TEST_CONFIGURATION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Operations' containment reference list. + * + * + * @generated + * @ordered + */ + int EXTENDED_TEST_CONFIGURATION__OPERATIONS = tdlPackage.TEST_CONFIGURATION_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Extended Test Configuration' class. + * + * + * @generated + * @ordered + */ + int EXTENDED_TEST_CONFIGURATION_FEATURE_COUNT = tdlPackage.TEST_CONFIGURATION_FEATURE_COUNT + 2; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int EXTENDED_TEST_CONFIGURATION___CONTAINER = tdlPackage.TEST_CONFIGURATION___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int EXTENDED_TEST_CONFIGURATION___GET_PARENT_TEST_DESCRIPTION = tdlPackage.TEST_CONFIGURATION___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Conforms To' operation. + * + * + * @generated + * @ordered + */ + int EXTENDED_TEST_CONFIGURATION___CONFORMS_TO__STRING = tdlPackage.TEST_CONFIGURATION___CONFORMS_TO__STRING; + + /** + * The operation id for the 'Get Element Named' operation. + * + * + * @generated + * @ordered + */ + int EXTENDED_TEST_CONFIGURATION___GET_ELEMENT_NAMED__STRING = tdlPackage.TEST_CONFIGURATION___GET_ELEMENT_NAMED__STRING; + + /** + * The operation id for the 'Conforms To' operation. + * + * + * @generated + * @ordered + */ + int EXTENDED_TEST_CONFIGURATION___CONFORMS_TO__PACKAGEABLEELEMENT = tdlPackage.TEST_CONFIGURATION___CONFORMS_TO__PACKAGEABLEELEMENT; + + /** + * The operation id for the 'Compatible With' operation. + * + * + * @generated + * @ordered + */ + int EXTENDED_TEST_CONFIGURATION___COMPATIBLE_WITH__TESTCONFIGURATION_ELIST = tdlPackage.TEST_CONFIGURATION___COMPATIBLE_WITH__TESTCONFIGURATION_ELIST; + + /** + * The number of operations of the 'Extended Test Configuration' class. + * + * + * @generated + * @ordered + */ + int EXTENDED_TEST_CONFIGURATION_OPERATION_COUNT = tdlPackage.TEST_CONFIGURATION_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.extendedconfigurations.impl.TestConfigurationInstanceImpl Test Configuration Instance}' class. + * + * + * @see org.etsi.mts.tdl.extendedconfigurations.impl.TestConfigurationInstanceImpl + * @see org.etsi.mts.tdl.extendedconfigurations.impl.ExtendedConfigurationsPackageImpl#getTestConfigurationInstance() + * @generated + */ + int TEST_CONFIGURATION_INSTANCE = 1; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int TEST_CONFIGURATION_INSTANCE__COMMENT = tdlPackage.ELEMENT__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int TEST_CONFIGURATION_INSTANCE__ANNOTATION = tdlPackage.ELEMENT__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int TEST_CONFIGURATION_INSTANCE__NAME = tdlPackage.ELEMENT__NAME; + + /** + * The feature id for the 'Configuration' reference. + * + * + * @generated + * @ordered + */ + int TEST_CONFIGURATION_INSTANCE__CONFIGURATION = tdlPackage.ELEMENT_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Test Configuration Instance' class. + * + * + * @generated + * @ordered + */ + int TEST_CONFIGURATION_INSTANCE_FEATURE_COUNT = tdlPackage.ELEMENT_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int TEST_CONFIGURATION_INSTANCE___CONTAINER = tdlPackage.ELEMENT___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int TEST_CONFIGURATION_INSTANCE___GET_PARENT_TEST_DESCRIPTION = tdlPackage.ELEMENT___GET_PARENT_TEST_DESCRIPTION; + + /** + * The number of operations of the 'Test Configuration Instance' class. + * + * + * @generated + * @ordered + */ + int TEST_CONFIGURATION_INSTANCE_OPERATION_COUNT = tdlPackage.ELEMENT_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.extendedconfigurations.impl.TestConfigurationOperationImpl Test Configuration Operation}' class. + * + * + * @see org.etsi.mts.tdl.extendedconfigurations.impl.TestConfigurationOperationImpl + * @see org.etsi.mts.tdl.extendedconfigurations.impl.ExtendedConfigurationsPackageImpl#getTestConfigurationOperation() + * @generated + */ + int TEST_CONFIGURATION_OPERATION = 2; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int TEST_CONFIGURATION_OPERATION__COMMENT = tdlPackage.ELEMENT__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int TEST_CONFIGURATION_OPERATION__ANNOTATION = tdlPackage.ELEMENT__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int TEST_CONFIGURATION_OPERATION__NAME = tdlPackage.ELEMENT__NAME; + + /** + * The feature id for the 'Component' containment reference. + * + * + * @generated + * @ordered + */ + int TEST_CONFIGURATION_OPERATION__COMPONENT = tdlPackage.ELEMENT_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Test Configuration Operation' class. + * + * + * @generated + * @ordered + */ + int TEST_CONFIGURATION_OPERATION_FEATURE_COUNT = tdlPackage.ELEMENT_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int TEST_CONFIGURATION_OPERATION___CONTAINER = tdlPackage.ELEMENT___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int TEST_CONFIGURATION_OPERATION___GET_PARENT_TEST_DESCRIPTION = tdlPackage.ELEMENT___GET_PARENT_TEST_DESCRIPTION; + + /** + * The number of operations of the 'Test Configuration Operation' class. + * + * + * @generated + * @ordered + */ + int TEST_CONFIGURATION_OPERATION_OPERATION_COUNT = tdlPackage.ELEMENT_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.extendedconfigurations.impl.ComponentReferenceImpl Component Reference}' class. + * + * + * @see org.etsi.mts.tdl.extendedconfigurations.impl.ComponentReferenceImpl + * @see org.etsi.mts.tdl.extendedconfigurations.impl.ExtendedConfigurationsPackageImpl#getComponentReference() + * @generated + */ + int COMPONENT_REFERENCE = 3; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int COMPONENT_REFERENCE__COMMENT = tdlPackage.ELEMENT__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int COMPONENT_REFERENCE__ANNOTATION = tdlPackage.ELEMENT__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int COMPONENT_REFERENCE__NAME = tdlPackage.ELEMENT__NAME; + + /** + * The feature id for the 'Component' reference. + * + * + * @generated + * @ordered + */ + int COMPONENT_REFERENCE__COMPONENT = tdlPackage.ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Configuration' reference. + * + * + * @generated + * @ordered + */ + int COMPONENT_REFERENCE__CONFIGURATION = tdlPackage.ELEMENT_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Component Reference' class. + * + * + * @generated + * @ordered + */ + int COMPONENT_REFERENCE_FEATURE_COUNT = tdlPackage.ELEMENT_FEATURE_COUNT + 2; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int COMPONENT_REFERENCE___CONTAINER = tdlPackage.ELEMENT___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int COMPONENT_REFERENCE___GET_PARENT_TEST_DESCRIPTION = tdlPackage.ELEMENT___GET_PARENT_TEST_DESCRIPTION; + + /** + * The number of operations of the 'Component Reference' class. + * + * + * @generated + * @ordered + */ + int COMPONENT_REFERENCE_OPERATION_COUNT = tdlPackage.ELEMENT_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.extendedconfigurations.impl.ComponentMergeImpl Component Merge}' class. + * + * + * @see org.etsi.mts.tdl.extendedconfigurations.impl.ComponentMergeImpl + * @see org.etsi.mts.tdl.extendedconfigurations.impl.ExtendedConfigurationsPackageImpl#getComponentMerge() + * @generated + */ + int COMPONENT_MERGE = 4; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int COMPONENT_MERGE__COMMENT = TEST_CONFIGURATION_OPERATION__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int COMPONENT_MERGE__ANNOTATION = TEST_CONFIGURATION_OPERATION__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int COMPONENT_MERGE__NAME = TEST_CONFIGURATION_OPERATION__NAME; + + /** + * The feature id for the 'Component' containment reference. + * + * + * @generated + * @ordered + */ + int COMPONENT_MERGE__COMPONENT = TEST_CONFIGURATION_OPERATION__COMPONENT; + + /** + * The feature id for the 'Target' containment reference. + * + * + * @generated + * @ordered + */ + int COMPONENT_MERGE__TARGET = TEST_CONFIGURATION_OPERATION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Component Merge' class. + * + * + * @generated + * @ordered + */ + int COMPONENT_MERGE_FEATURE_COUNT = TEST_CONFIGURATION_OPERATION_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int COMPONENT_MERGE___CONTAINER = TEST_CONFIGURATION_OPERATION___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int COMPONENT_MERGE___GET_PARENT_TEST_DESCRIPTION = TEST_CONFIGURATION_OPERATION___GET_PARENT_TEST_DESCRIPTION; + + /** + * The number of operations of the 'Component Merge' class. + * + * + * @generated + * @ordered + */ + int COMPONENT_MERGE_OPERATION_COUNT = TEST_CONFIGURATION_OPERATION_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.extendedconfigurations.impl.ComponentHideImpl Component Hide}' class. + * + * + * @see org.etsi.mts.tdl.extendedconfigurations.impl.ComponentHideImpl + * @see org.etsi.mts.tdl.extendedconfigurations.impl.ExtendedConfigurationsPackageImpl#getComponentHide() + * @generated + */ + int COMPONENT_HIDE = 5; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int COMPONENT_HIDE__COMMENT = TEST_CONFIGURATION_OPERATION__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int COMPONENT_HIDE__ANNOTATION = TEST_CONFIGURATION_OPERATION__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int COMPONENT_HIDE__NAME = TEST_CONFIGURATION_OPERATION__NAME; + + /** + * The feature id for the 'Component' containment reference. + * + * + * @generated + * @ordered + */ + int COMPONENT_HIDE__COMPONENT = TEST_CONFIGURATION_OPERATION__COMPONENT; + + /** + * The number of structural features of the 'Component Hide' class. + * + * + * @generated + * @ordered + */ + int COMPONENT_HIDE_FEATURE_COUNT = TEST_CONFIGURATION_OPERATION_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int COMPONENT_HIDE___CONTAINER = TEST_CONFIGURATION_OPERATION___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int COMPONENT_HIDE___GET_PARENT_TEST_DESCRIPTION = TEST_CONFIGURATION_OPERATION___GET_PARENT_TEST_DESCRIPTION; + + /** + * The number of operations of the 'Component Hide' class. + * + * + * @generated + * @ordered + */ + int COMPONENT_HIDE_OPERATION_COUNT = TEST_CONFIGURATION_OPERATION_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.extendedconfigurations.impl.ReassignRoleImpl Reassign Role}' class. + * + * + * @see org.etsi.mts.tdl.extendedconfigurations.impl.ReassignRoleImpl + * @see org.etsi.mts.tdl.extendedconfigurations.impl.ExtendedConfigurationsPackageImpl#getReassignRole() + * @generated + */ + int REASSIGN_ROLE = 6; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int REASSIGN_ROLE__COMMENT = TEST_CONFIGURATION_OPERATION__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int REASSIGN_ROLE__ANNOTATION = TEST_CONFIGURATION_OPERATION__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int REASSIGN_ROLE__NAME = TEST_CONFIGURATION_OPERATION__NAME; + + /** + * The feature id for the 'Component' containment reference. + * + * + * @generated + * @ordered + */ + int REASSIGN_ROLE__COMPONENT = TEST_CONFIGURATION_OPERATION__COMPONENT; + + /** + * The feature id for the 'Role' attribute. + * + * + * @generated + * @ordered + */ + int REASSIGN_ROLE__ROLE = TEST_CONFIGURATION_OPERATION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Reassign Role' class. + * + * + * @generated + * @ordered + */ + int REASSIGN_ROLE_FEATURE_COUNT = TEST_CONFIGURATION_OPERATION_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int REASSIGN_ROLE___CONTAINER = TEST_CONFIGURATION_OPERATION___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int REASSIGN_ROLE___GET_PARENT_TEST_DESCRIPTION = TEST_CONFIGURATION_OPERATION___GET_PARENT_TEST_DESCRIPTION; + + /** + * The number of operations of the 'Reassign Role' class. + * + * + * @generated + * @ordered + */ + int REASSIGN_ROLE_OPERATION_COUNT = TEST_CONFIGURATION_OPERATION_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.extendedconfigurations.impl.ComponentAliasImpl Component Alias}' class. + * + * + * @see org.etsi.mts.tdl.extendedconfigurations.impl.ComponentAliasImpl + * @see org.etsi.mts.tdl.extendedconfigurations.impl.ExtendedConfigurationsPackageImpl#getComponentAlias() + * @generated + */ + int COMPONENT_ALIAS = 7; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int COMPONENT_ALIAS__COMMENT = TEST_CONFIGURATION_OPERATION__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int COMPONENT_ALIAS__ANNOTATION = TEST_CONFIGURATION_OPERATION__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int COMPONENT_ALIAS__NAME = TEST_CONFIGURATION_OPERATION__NAME; + + /** + * The feature id for the 'Component' containment reference. + * + * + * @generated + * @ordered + */ + int COMPONENT_ALIAS__COMPONENT = TEST_CONFIGURATION_OPERATION__COMPONENT; + + /** + * The number of structural features of the 'Component Alias' class. + * + * + * @generated + * @ordered + */ + int COMPONENT_ALIAS_FEATURE_COUNT = TEST_CONFIGURATION_OPERATION_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int COMPONENT_ALIAS___CONTAINER = TEST_CONFIGURATION_OPERATION___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int COMPONENT_ALIAS___GET_PARENT_TEST_DESCRIPTION = TEST_CONFIGURATION_OPERATION___GET_PARENT_TEST_DESCRIPTION; + + /** + * The number of operations of the 'Component Alias' class. + * + * + * @generated + * @ordered + */ + int COMPONENT_ALIAS_OPERATION_COUNT = TEST_CONFIGURATION_OPERATION_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.extendedconfigurations.impl.ExtendedGateReferenceImpl Extended Gate Reference}' class. + * + * + * @see org.etsi.mts.tdl.extendedconfigurations.impl.ExtendedGateReferenceImpl + * @see org.etsi.mts.tdl.extendedconfigurations.impl.ExtendedConfigurationsPackageImpl#getExtendedGateReference() + * @generated + */ + int EXTENDED_GATE_REFERENCE = 8; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int EXTENDED_GATE_REFERENCE__COMMENT = tdlPackage.GATE_REFERENCE__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int EXTENDED_GATE_REFERENCE__ANNOTATION = tdlPackage.GATE_REFERENCE__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int EXTENDED_GATE_REFERENCE__NAME = tdlPackage.GATE_REFERENCE__NAME; + + /** + * The feature id for the 'Component' reference. + * + * + * @generated + * @ordered + */ + int EXTENDED_GATE_REFERENCE__COMPONENT = tdlPackage.GATE_REFERENCE__COMPONENT; + + /** + * The feature id for the 'Gate' reference. + * + * + * @generated + * @ordered + */ + int EXTENDED_GATE_REFERENCE__GATE = tdlPackage.GATE_REFERENCE__GATE; + + /** + * The feature id for the 'Configuration' reference. + * + * + * @generated + * @ordered + */ + int EXTENDED_GATE_REFERENCE__CONFIGURATION = tdlPackage.GATE_REFERENCE_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Extended Gate Reference' class. + * + * + * @generated + * @ordered + */ + int EXTENDED_GATE_REFERENCE_FEATURE_COUNT = tdlPackage.GATE_REFERENCE_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int EXTENDED_GATE_REFERENCE___CONTAINER = tdlPackage.GATE_REFERENCE___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int EXTENDED_GATE_REFERENCE___GET_PARENT_TEST_DESCRIPTION = tdlPackage.GATE_REFERENCE___GET_PARENT_TEST_DESCRIPTION; + + /** + * The number of operations of the 'Extended Gate Reference' class. + * + * + * @generated + * @ordered + */ + int EXTENDED_GATE_REFERENCE_OPERATION_COUNT = tdlPackage.GATE_REFERENCE_OPERATION_COUNT + 0; + + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.extendedconfigurations.ExtendedTestConfiguration Extended Test Configuration}'. + * + * + * @return the meta object for class 'Extended Test Configuration'. + * @see org.etsi.mts.tdl.extendedconfigurations.ExtendedTestConfiguration + * @generated + */ + EClass getExtendedTestConfiguration(); + + /** + * Returns the meta object for the containment reference list '{@link org.etsi.mts.tdl.extendedconfigurations.ExtendedTestConfiguration#getConfigurations Configurations}'. + * + * + * @return the meta object for the containment reference list 'Configurations'. + * @see org.etsi.mts.tdl.extendedconfigurations.ExtendedTestConfiguration#getConfigurations() + * @see #getExtendedTestConfiguration() + * @generated + */ + EReference getExtendedTestConfiguration_Configurations(); + + /** + * Returns the meta object for the containment reference list '{@link org.etsi.mts.tdl.extendedconfigurations.ExtendedTestConfiguration#getOperations Operations}'. + * + * + * @return the meta object for the containment reference list 'Operations'. + * @see org.etsi.mts.tdl.extendedconfigurations.ExtendedTestConfiguration#getOperations() + * @see #getExtendedTestConfiguration() + * @generated + */ + EReference getExtendedTestConfiguration_Operations(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.extendedconfigurations.TestConfigurationInstance Test Configuration Instance}'. + * + * + * @return the meta object for class 'Test Configuration Instance'. + * @see org.etsi.mts.tdl.extendedconfigurations.TestConfigurationInstance + * @generated + */ + EClass getTestConfigurationInstance(); + + /** + * Returns the meta object for the reference '{@link org.etsi.mts.tdl.extendedconfigurations.TestConfigurationInstance#getConfiguration Configuration}'. + * + * + * @return the meta object for the reference 'Configuration'. + * @see org.etsi.mts.tdl.extendedconfigurations.TestConfigurationInstance#getConfiguration() + * @see #getTestConfigurationInstance() + * @generated + */ + EReference getTestConfigurationInstance_Configuration(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.extendedconfigurations.TestConfigurationOperation Test Configuration Operation}'. + * + * + * @return the meta object for class 'Test Configuration Operation'. + * @see org.etsi.mts.tdl.extendedconfigurations.TestConfigurationOperation + * @generated + */ + EClass getTestConfigurationOperation(); + + /** + * Returns the meta object for the containment reference '{@link org.etsi.mts.tdl.extendedconfigurations.TestConfigurationOperation#getComponent Component}'. + * + * + * @return the meta object for the containment reference 'Component'. + * @see org.etsi.mts.tdl.extendedconfigurations.TestConfigurationOperation#getComponent() + * @see #getTestConfigurationOperation() + * @generated + */ + EReference getTestConfigurationOperation_Component(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.extendedconfigurations.ComponentReference Component Reference}'. + * + * + * @return the meta object for class 'Component Reference'. + * @see org.etsi.mts.tdl.extendedconfigurations.ComponentReference + * @generated + */ + EClass getComponentReference(); + + /** + * Returns the meta object for the reference '{@link org.etsi.mts.tdl.extendedconfigurations.ComponentReference#getComponent Component}'. + * + * + * @return the meta object for the reference 'Component'. + * @see org.etsi.mts.tdl.extendedconfigurations.ComponentReference#getComponent() + * @see #getComponentReference() + * @generated + */ + EReference getComponentReference_Component(); + + /** + * Returns the meta object for the reference '{@link org.etsi.mts.tdl.extendedconfigurations.ComponentReference#getConfiguration Configuration}'. + * + * + * @return the meta object for the reference 'Configuration'. + * @see org.etsi.mts.tdl.extendedconfigurations.ComponentReference#getConfiguration() + * @see #getComponentReference() + * @generated + */ + EReference getComponentReference_Configuration(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.extendedconfigurations.ComponentMerge Component Merge}'. + * + * + * @return the meta object for class 'Component Merge'. + * @see org.etsi.mts.tdl.extendedconfigurations.ComponentMerge + * @generated + */ + EClass getComponentMerge(); + + /** + * Returns the meta object for the containment reference '{@link org.etsi.mts.tdl.extendedconfigurations.ComponentMerge#getTarget Target}'. + * + * + * @return the meta object for the containment reference 'Target'. + * @see org.etsi.mts.tdl.extendedconfigurations.ComponentMerge#getTarget() + * @see #getComponentMerge() + * @generated + */ + EReference getComponentMerge_Target(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.extendedconfigurations.ComponentHide Component Hide}'. + * + * + * @return the meta object for class 'Component Hide'. + * @see org.etsi.mts.tdl.extendedconfigurations.ComponentHide + * @generated + */ + EClass getComponentHide(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.extendedconfigurations.ReassignRole Reassign Role}'. + * + * + * @return the meta object for class 'Reassign Role'. + * @see org.etsi.mts.tdl.extendedconfigurations.ReassignRole + * @generated + */ + EClass getReassignRole(); + + /** + * Returns the meta object for the attribute '{@link org.etsi.mts.tdl.extendedconfigurations.ReassignRole#getRole Role}'. + * + * + * @return the meta object for the attribute 'Role'. + * @see org.etsi.mts.tdl.extendedconfigurations.ReassignRole#getRole() + * @see #getReassignRole() + * @generated + */ + EAttribute getReassignRole_Role(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.extendedconfigurations.ComponentAlias Component Alias}'. + * + * + * @return the meta object for class 'Component Alias'. + * @see org.etsi.mts.tdl.extendedconfigurations.ComponentAlias + * @generated + */ + EClass getComponentAlias(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.extendedconfigurations.ExtendedGateReference Extended Gate Reference}'. + * + * + * @return the meta object for class 'Extended Gate Reference'. + * @see org.etsi.mts.tdl.extendedconfigurations.ExtendedGateReference + * @generated + */ + EClass getExtendedGateReference(); + + /** + * Returns the meta object for the reference '{@link org.etsi.mts.tdl.extendedconfigurations.ExtendedGateReference#getConfiguration Configuration}'. + * + * + * @return the meta object for the reference 'Configuration'. + * @see org.etsi.mts.tdl.extendedconfigurations.ExtendedGateReference#getConfiguration() + * @see #getExtendedGateReference() + * @generated + */ + EReference getExtendedGateReference_Configuration(); + + /** + * Returns the factory that creates the instances of the model. + * + * + * @return the factory that creates the instances of the model. + * @generated + */ + ExtendedConfigurationsFactory getExtendedConfigurationsFactory(); + + /** + * + * Defines literals for the meta objects that represent + *
    + *
  • each class,
  • + *
  • each feature of each class,
  • + *
  • each operation of each class,
  • + *
  • each enum,
  • + *
  • and each data type
  • + *
+ * + * @generated + */ + interface Literals + { + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.extendedconfigurations.impl.ExtendedTestConfigurationImpl Extended Test Configuration}' class. + * + * + * @see org.etsi.mts.tdl.extendedconfigurations.impl.ExtendedTestConfigurationImpl + * @see org.etsi.mts.tdl.extendedconfigurations.impl.ExtendedConfigurationsPackageImpl#getExtendedTestConfiguration() + * @generated + */ + EClass EXTENDED_TEST_CONFIGURATION = eINSTANCE.getExtendedTestConfiguration(); + + /** + * The meta object literal for the 'Configurations' containment reference list feature. + * + * + * @generated + */ + EReference EXTENDED_TEST_CONFIGURATION__CONFIGURATIONS = eINSTANCE.getExtendedTestConfiguration_Configurations(); + + /** + * The meta object literal for the 'Operations' containment reference list feature. + * + * + * @generated + */ + EReference EXTENDED_TEST_CONFIGURATION__OPERATIONS = eINSTANCE.getExtendedTestConfiguration_Operations(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.extendedconfigurations.impl.TestConfigurationInstanceImpl Test Configuration Instance}' class. + * + * + * @see org.etsi.mts.tdl.extendedconfigurations.impl.TestConfigurationInstanceImpl + * @see org.etsi.mts.tdl.extendedconfigurations.impl.ExtendedConfigurationsPackageImpl#getTestConfigurationInstance() + * @generated + */ + EClass TEST_CONFIGURATION_INSTANCE = eINSTANCE.getTestConfigurationInstance(); + + /** + * The meta object literal for the 'Configuration' reference feature. + * + * + * @generated + */ + EReference TEST_CONFIGURATION_INSTANCE__CONFIGURATION = eINSTANCE.getTestConfigurationInstance_Configuration(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.extendedconfigurations.impl.TestConfigurationOperationImpl Test Configuration Operation}' class. + * + * + * @see org.etsi.mts.tdl.extendedconfigurations.impl.TestConfigurationOperationImpl + * @see org.etsi.mts.tdl.extendedconfigurations.impl.ExtendedConfigurationsPackageImpl#getTestConfigurationOperation() + * @generated + */ + EClass TEST_CONFIGURATION_OPERATION = eINSTANCE.getTestConfigurationOperation(); + + /** + * The meta object literal for the 'Component' containment reference feature. + * + * + * @generated + */ + EReference TEST_CONFIGURATION_OPERATION__COMPONENT = eINSTANCE.getTestConfigurationOperation_Component(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.extendedconfigurations.impl.ComponentReferenceImpl Component Reference}' class. + * + * + * @see org.etsi.mts.tdl.extendedconfigurations.impl.ComponentReferenceImpl + * @see org.etsi.mts.tdl.extendedconfigurations.impl.ExtendedConfigurationsPackageImpl#getComponentReference() + * @generated + */ + EClass COMPONENT_REFERENCE = eINSTANCE.getComponentReference(); + + /** + * The meta object literal for the 'Component' reference feature. + * + * + * @generated + */ + EReference COMPONENT_REFERENCE__COMPONENT = eINSTANCE.getComponentReference_Component(); + + /** + * The meta object literal for the 'Configuration' reference feature. + * + * + * @generated + */ + EReference COMPONENT_REFERENCE__CONFIGURATION = eINSTANCE.getComponentReference_Configuration(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.extendedconfigurations.impl.ComponentMergeImpl Component Merge}' class. + * + * + * @see org.etsi.mts.tdl.extendedconfigurations.impl.ComponentMergeImpl + * @see org.etsi.mts.tdl.extendedconfigurations.impl.ExtendedConfigurationsPackageImpl#getComponentMerge() + * @generated + */ + EClass COMPONENT_MERGE = eINSTANCE.getComponentMerge(); + + /** + * The meta object literal for the 'Target' containment reference feature. + * + * + * @generated + */ + EReference COMPONENT_MERGE__TARGET = eINSTANCE.getComponentMerge_Target(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.extendedconfigurations.impl.ComponentHideImpl Component Hide}' class. + * + * + * @see org.etsi.mts.tdl.extendedconfigurations.impl.ComponentHideImpl + * @see org.etsi.mts.tdl.extendedconfigurations.impl.ExtendedConfigurationsPackageImpl#getComponentHide() + * @generated + */ + EClass COMPONENT_HIDE = eINSTANCE.getComponentHide(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.extendedconfigurations.impl.ReassignRoleImpl Reassign Role}' class. + * + * + * @see org.etsi.mts.tdl.extendedconfigurations.impl.ReassignRoleImpl + * @see org.etsi.mts.tdl.extendedconfigurations.impl.ExtendedConfigurationsPackageImpl#getReassignRole() + * @generated + */ + EClass REASSIGN_ROLE = eINSTANCE.getReassignRole(); + + /** + * The meta object literal for the 'Role' attribute feature. + * + * + * @generated + */ + EAttribute REASSIGN_ROLE__ROLE = eINSTANCE.getReassignRole_Role(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.extendedconfigurations.impl.ComponentAliasImpl Component Alias}' class. + * + * + * @see org.etsi.mts.tdl.extendedconfigurations.impl.ComponentAliasImpl + * @see org.etsi.mts.tdl.extendedconfigurations.impl.ExtendedConfigurationsPackageImpl#getComponentAlias() + * @generated + */ + EClass COMPONENT_ALIAS = eINSTANCE.getComponentAlias(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.extendedconfigurations.impl.ExtendedGateReferenceImpl Extended Gate Reference}' class. + * + * + * @see org.etsi.mts.tdl.extendedconfigurations.impl.ExtendedGateReferenceImpl + * @see org.etsi.mts.tdl.extendedconfigurations.impl.ExtendedConfigurationsPackageImpl#getExtendedGateReference() + * @generated + */ + EClass EXTENDED_GATE_REFERENCE = eINSTANCE.getExtendedGateReference(); + + /** + * The meta object literal for the 'Configuration' reference feature. + * + * + * @generated + */ + EReference EXTENDED_GATE_REFERENCE__CONFIGURATION = eINSTANCE.getExtendedGateReference_Configuration(); + + } + +} //ExtendedConfigurationsPackage diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/extendedconfigurations/ExtendedGateReference.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/extendedconfigurations/ExtendedGateReference.java new file mode 100644 index 0000000000000000000000000000000000000000..889e1e0a3b22026c407befa4702ad1a7e1b5226c --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/extendedconfigurations/ExtendedGateReference.java @@ -0,0 +1,47 @@ +/** + */ +package org.etsi.mts.tdl.extendedconfigurations; + +import org.etsi.mts.tdl.GateReference; + +/** + * + * A representation of the model object 'Extended Gate Reference'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.extendedconfigurations.ExtendedGateReference#getConfiguration Configuration}
  • + *
+ * + * @see org.etsi.mts.tdl.extendedconfigurations.ExtendedConfigurationsPackage#getExtendedGateReference() + * @model + * @generated + */ +public interface ExtendedGateReference extends GateReference +{ + /** + * Returns the value of the 'Configuration' reference. + * + * + * @return the value of the 'Configuration' reference. + * @see #setConfiguration(TestConfigurationInstance) + * @see org.etsi.mts.tdl.extendedconfigurations.ExtendedConfigurationsPackage#getExtendedGateReference_Configuration() + * @model required="true" + * @generated + */ + TestConfigurationInstance getConfiguration(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.extendedconfigurations.ExtendedGateReference#getConfiguration Configuration}' reference. + * + * + * @param value the new value of the 'Configuration' reference. + * @see #getConfiguration() + * @generated + */ + void setConfiguration(TestConfigurationInstance value); + +} // ExtendedGateReference diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/extendedconfigurations/ExtendedTestConfiguration.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/extendedconfigurations/ExtendedTestConfiguration.java new file mode 100644 index 0000000000000000000000000000000000000000..b89d5d4e613c1d827f8ea782e84e75311ecd6434 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/extendedconfigurations/ExtendedTestConfiguration.java @@ -0,0 +1,52 @@ +/** + */ +package org.etsi.mts.tdl.extendedconfigurations; + +import org.eclipse.emf.common.util.EList; + +import org.etsi.mts.tdl.TestConfiguration; + +/** + * + * A representation of the model object 'Extended Test Configuration'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.extendedconfigurations.ExtendedTestConfiguration#getConfigurations Configurations}
  • + *
  • {@link org.etsi.mts.tdl.extendedconfigurations.ExtendedTestConfiguration#getOperations Operations}
  • + *
+ * + * @see org.etsi.mts.tdl.extendedconfigurations.ExtendedConfigurationsPackage#getExtendedTestConfiguration() + * @model + * @generated + */ +public interface ExtendedTestConfiguration extends TestConfiguration +{ + /** + * Returns the value of the 'Configurations' containment reference list. + * The list contents are of type {@link org.etsi.mts.tdl.extendedconfigurations.TestConfigurationInstance}. + * + * + * @return the value of the 'Configurations' containment reference list. + * @see org.etsi.mts.tdl.extendedconfigurations.ExtendedConfigurationsPackage#getExtendedTestConfiguration_Configurations() + * @model containment="true" ordered="false" + * @generated + */ + EList getConfigurations(); + + /** + * Returns the value of the 'Operations' containment reference list. + * The list contents are of type {@link org.etsi.mts.tdl.extendedconfigurations.TestConfigurationOperation}. + * + * + * @return the value of the 'Operations' containment reference list. + * @see org.etsi.mts.tdl.extendedconfigurations.ExtendedConfigurationsPackage#getExtendedTestConfiguration_Operations() + * @model containment="true" ordered="false" + * @generated + */ + EList getOperations(); + +} // ExtendedTestConfiguration diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/extendedconfigurations/ReassignRole.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/extendedconfigurations/ReassignRole.java new file mode 100644 index 0000000000000000000000000000000000000000..d6b25160009b9d1a7ed9bf43d3b4ffd54a1cbd8b --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/extendedconfigurations/ReassignRole.java @@ -0,0 +1,50 @@ +/** + */ +package org.etsi.mts.tdl.extendedconfigurations; + +import org.etsi.mts.tdl.ComponentInstanceRole; + +/** + * + * A representation of the model object 'Reassign Role'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.extendedconfigurations.ReassignRole#getRole Role}
  • + *
+ * + * @see org.etsi.mts.tdl.extendedconfigurations.ExtendedConfigurationsPackage#getReassignRole() + * @model + * @generated + */ +public interface ReassignRole extends TestConfigurationOperation +{ + /** + * Returns the value of the 'Role' attribute. + * The literals are from the enumeration {@link org.etsi.mts.tdl.ComponentInstanceRole}. + * + * + * @return the value of the 'Role' attribute. + * @see org.etsi.mts.tdl.ComponentInstanceRole + * @see #setRole(ComponentInstanceRole) + * @see org.etsi.mts.tdl.extendedconfigurations.ExtendedConfigurationsPackage#getReassignRole_Role() + * @model required="true" + * @generated + */ + ComponentInstanceRole getRole(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.extendedconfigurations.ReassignRole#getRole Role}' attribute. + * + * + * @param value the new value of the 'Role' attribute. + * @see org.etsi.mts.tdl.ComponentInstanceRole + * @see #getRole() + * @generated + */ + void setRole(ComponentInstanceRole value); + +} // ReassignRole diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/extendedconfigurations/TestConfigurationInstance.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/extendedconfigurations/TestConfigurationInstance.java new file mode 100644 index 0000000000000000000000000000000000000000..955f6f87eb4e0d9811ad332b9a62802f9c03840a --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/extendedconfigurations/TestConfigurationInstance.java @@ -0,0 +1,48 @@ +/** + */ +package org.etsi.mts.tdl.extendedconfigurations; + +import org.etsi.mts.tdl.Element; +import org.etsi.mts.tdl.TestConfiguration; + +/** + * + * A representation of the model object 'Test Configuration Instance'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.extendedconfigurations.TestConfigurationInstance#getConfiguration Configuration}
  • + *
+ * + * @see org.etsi.mts.tdl.extendedconfigurations.ExtendedConfigurationsPackage#getTestConfigurationInstance() + * @model + * @generated + */ +public interface TestConfigurationInstance extends Element +{ + /** + * Returns the value of the 'Configuration' reference. + * + * + * @return the value of the 'Configuration' reference. + * @see #setConfiguration(TestConfiguration) + * @see org.etsi.mts.tdl.extendedconfigurations.ExtendedConfigurationsPackage#getTestConfigurationInstance_Configuration() + * @model required="true" + * @generated + */ + TestConfiguration getConfiguration(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.extendedconfigurations.TestConfigurationInstance#getConfiguration Configuration}' reference. + * + * + * @param value the new value of the 'Configuration' reference. + * @see #getConfiguration() + * @generated + */ + void setConfiguration(TestConfiguration value); + +} // TestConfigurationInstance diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/extendedconfigurations/TestConfigurationOperation.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/extendedconfigurations/TestConfigurationOperation.java new file mode 100644 index 0000000000000000000000000000000000000000..18c1d3c2da49b0234dc32203df731ab6ce31632a --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/extendedconfigurations/TestConfigurationOperation.java @@ -0,0 +1,47 @@ +/** + */ +package org.etsi.mts.tdl.extendedconfigurations; + +import org.etsi.mts.tdl.Element; + +/** + * + * A representation of the model object 'Test Configuration Operation'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.extendedconfigurations.TestConfigurationOperation#getComponent Component}
  • + *
+ * + * @see org.etsi.mts.tdl.extendedconfigurations.ExtendedConfigurationsPackage#getTestConfigurationOperation() + * @model abstract="true" + * @generated + */ +public interface TestConfigurationOperation extends Element +{ + /** + * Returns the value of the 'Component' containment reference. + * + * + * @return the value of the 'Component' containment reference. + * @see #setComponent(ComponentReference) + * @see org.etsi.mts.tdl.extendedconfigurations.ExtendedConfigurationsPackage#getTestConfigurationOperation_Component() + * @model containment="true" required="true" + * @generated + */ + ComponentReference getComponent(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.extendedconfigurations.TestConfigurationOperation#getComponent Component}' containment reference. + * + * + * @param value the new value of the 'Component' containment reference. + * @see #getComponent() + * @generated + */ + void setComponent(ComponentReference value); + +} // TestConfigurationOperation diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/extendedconfigurations/impl/ComponentAliasImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/extendedconfigurations/impl/ComponentAliasImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..84d740f3c63cbdecb4d3fd9920d8dd1c5cb59745 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/extendedconfigurations/impl/ComponentAliasImpl.java @@ -0,0 +1,40 @@ +/** + */ +package org.etsi.mts.tdl.extendedconfigurations.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.etsi.mts.tdl.extendedconfigurations.ComponentAlias; +import org.etsi.mts.tdl.extendedconfigurations.ExtendedConfigurationsPackage; + +/** + * + * An implementation of the model object 'Component Alias'. + * + * + * @generated + */ +public class ComponentAliasImpl extends TestConfigurationOperationImpl implements ComponentAlias +{ + /** + * + * + * @generated + */ + protected ComponentAliasImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return ExtendedConfigurationsPackage.Literals.COMPONENT_ALIAS; + } + +} //ComponentAliasImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/extendedconfigurations/impl/ComponentHideImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/extendedconfigurations/impl/ComponentHideImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..e8bd80ccee0a52c4d75d94fb73448f25ad49b6ee --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/extendedconfigurations/impl/ComponentHideImpl.java @@ -0,0 +1,40 @@ +/** + */ +package org.etsi.mts.tdl.extendedconfigurations.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.etsi.mts.tdl.extendedconfigurations.ComponentHide; +import org.etsi.mts.tdl.extendedconfigurations.ExtendedConfigurationsPackage; + +/** + * + * An implementation of the model object 'Component Hide'. + * + * + * @generated + */ +public class ComponentHideImpl extends TestConfigurationOperationImpl implements ComponentHide +{ + /** + * + * + * @generated + */ + protected ComponentHideImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return ExtendedConfigurationsPackage.Literals.COMPONENT_HIDE; + } + +} //ComponentHideImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/extendedconfigurations/impl/ComponentMergeImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/extendedconfigurations/impl/ComponentMergeImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..04a84690fa95b10815e4a912928868a13b9b021e --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/extendedconfigurations/impl/ComponentMergeImpl.java @@ -0,0 +1,195 @@ +/** + */ +package org.etsi.mts.tdl.extendedconfigurations.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.etsi.mts.tdl.extendedconfigurations.ComponentMerge; +import org.etsi.mts.tdl.extendedconfigurations.ComponentReference; +import org.etsi.mts.tdl.extendedconfigurations.ExtendedConfigurationsPackage; + +/** + * + * An implementation of the model object 'Component Merge'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.extendedconfigurations.impl.ComponentMergeImpl#getTarget Target}
  • + *
+ * + * @generated + */ +public class ComponentMergeImpl extends TestConfigurationOperationImpl implements ComponentMerge +{ + /** + * The cached value of the '{@link #getTarget() Target}' containment reference. + * + * + * @see #getTarget() + * @generated + * @ordered + */ + protected ComponentReference target; + + /** + * + * + * @generated + */ + protected ComponentMergeImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return ExtendedConfigurationsPackage.Literals.COMPONENT_MERGE; + } + + /** + * + * + * @generated + */ + @Override + public ComponentReference getTarget() + { + return target; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetTarget(ComponentReference newTarget, NotificationChain msgs) + { + ComponentReference oldTarget = target; + target = newTarget; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ExtendedConfigurationsPackage.COMPONENT_MERGE__TARGET, oldTarget, newTarget); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + @Override + public void setTarget(ComponentReference newTarget) + { + if (newTarget != target) + { + NotificationChain msgs = null; + if (target != null) + msgs = ((InternalEObject)target).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ExtendedConfigurationsPackage.COMPONENT_MERGE__TARGET, null, msgs); + if (newTarget != null) + msgs = ((InternalEObject)newTarget).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ExtendedConfigurationsPackage.COMPONENT_MERGE__TARGET, null, msgs); + msgs = basicSetTarget(newTarget, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExtendedConfigurationsPackage.COMPONENT_MERGE__TARGET, newTarget, newTarget)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case ExtendedConfigurationsPackage.COMPONENT_MERGE__TARGET: + return basicSetTarget(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case ExtendedConfigurationsPackage.COMPONENT_MERGE__TARGET: + return getTarget(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case ExtendedConfigurationsPackage.COMPONENT_MERGE__TARGET: + setTarget((ComponentReference)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case ExtendedConfigurationsPackage.COMPONENT_MERGE__TARGET: + setTarget((ComponentReference)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case ExtendedConfigurationsPackage.COMPONENT_MERGE__TARGET: + return target != null; + } + return super.eIsSet(featureID); + } + +} //ComponentMergeImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/extendedconfigurations/impl/ComponentReferenceImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/extendedconfigurations/impl/ComponentReferenceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..1b344446a7636d97f8725068b1f3770015817738 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/extendedconfigurations/impl/ComponentReferenceImpl.java @@ -0,0 +1,245 @@ +/** + */ +package org.etsi.mts.tdl.extendedconfigurations.impl; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.etsi.mts.tdl.ComponentInstance; + +import org.etsi.mts.tdl.extendedconfigurations.ComponentReference; +import org.etsi.mts.tdl.extendedconfigurations.ExtendedConfigurationsPackage; +import org.etsi.mts.tdl.extendedconfigurations.TestConfigurationInstance; + +import org.etsi.mts.tdl.impl.ElementImpl; + +/** + * + * An implementation of the model object 'Component Reference'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.extendedconfigurations.impl.ComponentReferenceImpl#getComponent Component}
  • + *
  • {@link org.etsi.mts.tdl.extendedconfigurations.impl.ComponentReferenceImpl#getConfiguration Configuration}
  • + *
+ * + * @generated + */ +public class ComponentReferenceImpl extends ElementImpl implements ComponentReference +{ + /** + * The cached value of the '{@link #getComponent() Component}' reference. + * + * + * @see #getComponent() + * @generated + * @ordered + */ + protected ComponentInstance component; + + /** + * The cached value of the '{@link #getConfiguration() Configuration}' reference. + * + * + * @see #getConfiguration() + * @generated + * @ordered + */ + protected TestConfigurationInstance configuration; + + /** + * + * + * @generated + */ + protected ComponentReferenceImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return ExtendedConfigurationsPackage.Literals.COMPONENT_REFERENCE; + } + + /** + * + * + * @generated + */ + @Override + public ComponentInstance getComponent() + { + if (component != null && component.eIsProxy()) + { + InternalEObject oldComponent = (InternalEObject)component; + component = (ComponentInstance)eResolveProxy(oldComponent); + if (component != oldComponent) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtendedConfigurationsPackage.COMPONENT_REFERENCE__COMPONENT, oldComponent, component)); + } + } + return component; + } + + /** + * + * + * @generated + */ + public ComponentInstance basicGetComponent() + { + return component; + } + + /** + * + * + * @generated + */ + @Override + public void setComponent(ComponentInstance newComponent) + { + ComponentInstance oldComponent = component; + component = newComponent; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExtendedConfigurationsPackage.COMPONENT_REFERENCE__COMPONENT, oldComponent, component)); + } + + /** + * + * + * @generated + */ + @Override + public TestConfigurationInstance getConfiguration() + { + if (configuration != null && configuration.eIsProxy()) + { + InternalEObject oldConfiguration = (InternalEObject)configuration; + configuration = (TestConfigurationInstance)eResolveProxy(oldConfiguration); + if (configuration != oldConfiguration) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtendedConfigurationsPackage.COMPONENT_REFERENCE__CONFIGURATION, oldConfiguration, configuration)); + } + } + return configuration; + } + + /** + * + * + * @generated + */ + public TestConfigurationInstance basicGetConfiguration() + { + return configuration; + } + + /** + * + * + * @generated + */ + @Override + public void setConfiguration(TestConfigurationInstance newConfiguration) + { + TestConfigurationInstance oldConfiguration = configuration; + configuration = newConfiguration; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExtendedConfigurationsPackage.COMPONENT_REFERENCE__CONFIGURATION, oldConfiguration, configuration)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case ExtendedConfigurationsPackage.COMPONENT_REFERENCE__COMPONENT: + if (resolve) return getComponent(); + return basicGetComponent(); + case ExtendedConfigurationsPackage.COMPONENT_REFERENCE__CONFIGURATION: + if (resolve) return getConfiguration(); + return basicGetConfiguration(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case ExtendedConfigurationsPackage.COMPONENT_REFERENCE__COMPONENT: + setComponent((ComponentInstance)newValue); + return; + case ExtendedConfigurationsPackage.COMPONENT_REFERENCE__CONFIGURATION: + setConfiguration((TestConfigurationInstance)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case ExtendedConfigurationsPackage.COMPONENT_REFERENCE__COMPONENT: + setComponent((ComponentInstance)null); + return; + case ExtendedConfigurationsPackage.COMPONENT_REFERENCE__CONFIGURATION: + setConfiguration((TestConfigurationInstance)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case ExtendedConfigurationsPackage.COMPONENT_REFERENCE__COMPONENT: + return component != null; + case ExtendedConfigurationsPackage.COMPONENT_REFERENCE__CONFIGURATION: + return configuration != null; + } + return super.eIsSet(featureID); + } + +} //ComponentReferenceImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/extendedconfigurations/impl/ExtendedConfigurationsFactoryImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/extendedconfigurations/impl/ExtendedConfigurationsFactoryImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..6ec56dc638efaba74b92a2ebee6af2bd366cff48 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/extendedconfigurations/impl/ExtendedConfigurationsFactoryImpl.java @@ -0,0 +1,199 @@ +/** + */ +package org.etsi.mts.tdl.extendedconfigurations.impl; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EPackage; + +import org.eclipse.emf.ecore.impl.EFactoryImpl; + +import org.eclipse.emf.ecore.plugin.EcorePlugin; + +import org.etsi.mts.tdl.extendedconfigurations.*; + +/** + * + * An implementation of the model Factory. + * + * @generated + */ +public class ExtendedConfigurationsFactoryImpl extends EFactoryImpl implements ExtendedConfigurationsFactory +{ + /** + * Creates the default factory implementation. + * + * + * @generated + */ + public static ExtendedConfigurationsFactory init() + { + try + { + ExtendedConfigurationsFactory theExtendedConfigurationsFactory = (ExtendedConfigurationsFactory)EPackage.Registry.INSTANCE.getEFactory(ExtendedConfigurationsPackage.eNS_URI); + if (theExtendedConfigurationsFactory != null) + { + return theExtendedConfigurationsFactory; + } + } + catch (Exception exception) + { + EcorePlugin.INSTANCE.log(exception); + } + return new ExtendedConfigurationsFactoryImpl(); + } + + /** + * Creates an instance of the factory. + * + * + * @generated + */ + public ExtendedConfigurationsFactoryImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + public EObject create(EClass eClass) + { + switch (eClass.getClassifierID()) + { + case ExtendedConfigurationsPackage.EXTENDED_TEST_CONFIGURATION: return createExtendedTestConfiguration(); + case ExtendedConfigurationsPackage.TEST_CONFIGURATION_INSTANCE: return createTestConfigurationInstance(); + case ExtendedConfigurationsPackage.COMPONENT_REFERENCE: return createComponentReference(); + case ExtendedConfigurationsPackage.COMPONENT_MERGE: return createComponentMerge(); + case ExtendedConfigurationsPackage.COMPONENT_HIDE: return createComponentHide(); + case ExtendedConfigurationsPackage.REASSIGN_ROLE: return createReassignRole(); + case ExtendedConfigurationsPackage.COMPONENT_ALIAS: return createComponentAlias(); + case ExtendedConfigurationsPackage.EXTENDED_GATE_REFERENCE: return createExtendedGateReference(); + default: + throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); + } + } + + /** + * + * + * @generated + */ + @Override + public ExtendedTestConfiguration createExtendedTestConfiguration() + { + ExtendedTestConfigurationImpl extendedTestConfiguration = new ExtendedTestConfigurationImpl(); + return extendedTestConfiguration; + } + + /** + * + * + * @generated + */ + @Override + public TestConfigurationInstance createTestConfigurationInstance() + { + TestConfigurationInstanceImpl testConfigurationInstance = new TestConfigurationInstanceImpl(); + return testConfigurationInstance; + } + + /** + * + * + * @generated + */ + @Override + public ComponentReference createComponentReference() + { + ComponentReferenceImpl componentReference = new ComponentReferenceImpl(); + return componentReference; + } + + /** + * + * + * @generated + */ + @Override + public ComponentMerge createComponentMerge() + { + ComponentMergeImpl componentMerge = new ComponentMergeImpl(); + return componentMerge; + } + + /** + * + * + * @generated + */ + @Override + public ComponentHide createComponentHide() + { + ComponentHideImpl componentHide = new ComponentHideImpl(); + return componentHide; + } + + /** + * + * + * @generated + */ + @Override + public ReassignRole createReassignRole() + { + ReassignRoleImpl reassignRole = new ReassignRoleImpl(); + return reassignRole; + } + + /** + * + * + * @generated + */ + @Override + public ComponentAlias createComponentAlias() + { + ComponentAliasImpl componentAlias = new ComponentAliasImpl(); + return componentAlias; + } + + /** + * + * + * @generated + */ + @Override + public ExtendedGateReference createExtendedGateReference() + { + ExtendedGateReferenceImpl extendedGateReference = new ExtendedGateReferenceImpl(); + return extendedGateReference; + } + + /** + * + * + * @generated + */ + @Override + public ExtendedConfigurationsPackage getExtendedConfigurationsPackage() + { + return (ExtendedConfigurationsPackage)getEPackage(); + } + + /** + * + * + * @deprecated + * @generated + */ + @Deprecated + public static ExtendedConfigurationsPackage getPackage() + { + return ExtendedConfigurationsPackage.eINSTANCE; + } + +} //ExtendedConfigurationsFactoryImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/extendedconfigurations/impl/ExtendedConfigurationsPackageImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/extendedconfigurations/impl/ExtendedConfigurationsPackageImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..a68937926c122ce52a040a4eca8267abab38d5ec --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/extendedconfigurations/impl/ExtendedConfigurationsPackageImpl.java @@ -0,0 +1,528 @@ +/** + */ +package org.etsi.mts.tdl.extendedconfigurations.impl; + +import org.eclipse.emf.ecore.EAttribute; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.EReference; + +import org.eclipse.emf.ecore.impl.EPackageImpl; + +import org.etsi.mts.tdl.extendedconfigurations.ComponentAlias; +import org.etsi.mts.tdl.extendedconfigurations.ComponentHide; +import org.etsi.mts.tdl.extendedconfigurations.ComponentMerge; +import org.etsi.mts.tdl.extendedconfigurations.ComponentReference; +import org.etsi.mts.tdl.extendedconfigurations.ExtendedConfigurationsFactory; +import org.etsi.mts.tdl.extendedconfigurations.ExtendedConfigurationsPackage; +import org.etsi.mts.tdl.extendedconfigurations.ExtendedGateReference; +import org.etsi.mts.tdl.extendedconfigurations.ExtendedTestConfiguration; +import org.etsi.mts.tdl.extendedconfigurations.ReassignRole; +import org.etsi.mts.tdl.extendedconfigurations.TestConfigurationInstance; +import org.etsi.mts.tdl.extendedconfigurations.TestConfigurationOperation; + +import org.etsi.mts.tdl.impl.tdlPackageImpl; + +import org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage; + +import org.etsi.mts.tdl.structuredobjectives.impl.StructuredObjectivesPackageImpl; + +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model Package. + * + * @generated + */ +public class ExtendedConfigurationsPackageImpl extends EPackageImpl implements ExtendedConfigurationsPackage +{ + /** + * + * + * @generated + */ + private EClass extendedTestConfigurationEClass = null; + + /** + * + * + * @generated + */ + private EClass testConfigurationInstanceEClass = null; + + /** + * + * + * @generated + */ + private EClass testConfigurationOperationEClass = null; + + /** + * + * + * @generated + */ + private EClass componentReferenceEClass = null; + + /** + * + * + * @generated + */ + private EClass componentMergeEClass = null; + + /** + * + * + * @generated + */ + private EClass componentHideEClass = null; + + /** + * + * + * @generated + */ + private EClass reassignRoleEClass = null; + + /** + * + * + * @generated + */ + private EClass componentAliasEClass = null; + + /** + * + * + * @generated + */ + private EClass extendedGateReferenceEClass = null; + + /** + * Creates an instance of the model Package, registered with + * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package + * package URI value. + *

Note: the correct way to create the package is via the static + * factory method {@link #init init()}, which also performs + * initialization of the package, or returns the registered package, + * if one already exists. + * + * + * @see org.eclipse.emf.ecore.EPackage.Registry + * @see org.etsi.mts.tdl.extendedconfigurations.ExtendedConfigurationsPackage#eNS_URI + * @see #init() + * @generated + */ + private ExtendedConfigurationsPackageImpl() + { + super(eNS_URI, ExtendedConfigurationsFactory.eINSTANCE); + } + /** + * + * + * @generated + */ + private static boolean isInited = false; + + /** + * Creates, registers, and initializes the Package for this model, and for any others upon which it depends. + * + *

This method is used to initialize {@link ExtendedConfigurationsPackage#eINSTANCE} when that field is accessed. + * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package. + * + * + * @see #eNS_URI + * @see #createPackageContents() + * @see #initializePackageContents() + * @generated + */ + public static ExtendedConfigurationsPackage init() + { + if (isInited) return (ExtendedConfigurationsPackage)EPackage.Registry.INSTANCE.getEPackage(ExtendedConfigurationsPackage.eNS_URI); + + // Obtain or create and register package + Object registeredExtendedConfigurationsPackage = EPackage.Registry.INSTANCE.get(eNS_URI); + ExtendedConfigurationsPackageImpl theExtendedConfigurationsPackage = registeredExtendedConfigurationsPackage instanceof ExtendedConfigurationsPackageImpl ? (ExtendedConfigurationsPackageImpl)registeredExtendedConfigurationsPackage : new ExtendedConfigurationsPackageImpl(); + + isInited = true; + + // Obtain or create and register interdependencies + Object registeredPackage = EPackage.Registry.INSTANCE.getEPackage(tdlPackage.eNS_URI); + tdlPackageImpl thetdlPackage = (tdlPackageImpl)(registeredPackage instanceof tdlPackageImpl ? registeredPackage : tdlPackage.eINSTANCE); + registeredPackage = EPackage.Registry.INSTANCE.getEPackage(StructuredObjectivesPackage.eNS_URI); + StructuredObjectivesPackageImpl theStructuredObjectivesPackage = (StructuredObjectivesPackageImpl)(registeredPackage instanceof StructuredObjectivesPackageImpl ? registeredPackage : StructuredObjectivesPackage.eINSTANCE); + + // Create package meta-data objects + theExtendedConfigurationsPackage.createPackageContents(); + thetdlPackage.createPackageContents(); + theStructuredObjectivesPackage.createPackageContents(); + + // Initialize created meta-data + theExtendedConfigurationsPackage.initializePackageContents(); + thetdlPackage.initializePackageContents(); + theStructuredObjectivesPackage.initializePackageContents(); + + // Mark meta-data to indicate it can't be changed + theExtendedConfigurationsPackage.freeze(); + + // Update the registry and return the package + EPackage.Registry.INSTANCE.put(ExtendedConfigurationsPackage.eNS_URI, theExtendedConfigurationsPackage); + return theExtendedConfigurationsPackage; + } + + /** + * + * + * @generated + */ + @Override + public EClass getExtendedTestConfiguration() + { + return extendedTestConfigurationEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getExtendedTestConfiguration_Configurations() + { + return (EReference)extendedTestConfigurationEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getExtendedTestConfiguration_Operations() + { + return (EReference)extendedTestConfigurationEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EClass getTestConfigurationInstance() + { + return testConfigurationInstanceEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getTestConfigurationInstance_Configuration() + { + return (EReference)testConfigurationInstanceEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getTestConfigurationOperation() + { + return testConfigurationOperationEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getTestConfigurationOperation_Component() + { + return (EReference)testConfigurationOperationEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getComponentReference() + { + return componentReferenceEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getComponentReference_Component() + { + return (EReference)componentReferenceEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getComponentReference_Configuration() + { + return (EReference)componentReferenceEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EClass getComponentMerge() + { + return componentMergeEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getComponentMerge_Target() + { + return (EReference)componentMergeEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getComponentHide() + { + return componentHideEClass; + } + + /** + * + * + * @generated + */ + @Override + public EClass getReassignRole() + { + return reassignRoleEClass; + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getReassignRole_Role() + { + return (EAttribute)reassignRoleEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getComponentAlias() + { + return componentAliasEClass; + } + + /** + * + * + * @generated + */ + @Override + public EClass getExtendedGateReference() + { + return extendedGateReferenceEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getExtendedGateReference_Configuration() + { + return (EReference)extendedGateReferenceEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public ExtendedConfigurationsFactory getExtendedConfigurationsFactory() + { + return (ExtendedConfigurationsFactory)getEFactoryInstance(); + } + + /** + * + * + * @generated + */ + private boolean isCreated = false; + + /** + * Creates the meta-model objects for the package. This method is + * guarded to have no affect on any invocation but its first. + * + * + * @generated + */ + public void createPackageContents() + { + if (isCreated) return; + isCreated = true; + + // Create classes and their features + extendedTestConfigurationEClass = createEClass(EXTENDED_TEST_CONFIGURATION); + createEReference(extendedTestConfigurationEClass, EXTENDED_TEST_CONFIGURATION__CONFIGURATIONS); + createEReference(extendedTestConfigurationEClass, EXTENDED_TEST_CONFIGURATION__OPERATIONS); + + testConfigurationInstanceEClass = createEClass(TEST_CONFIGURATION_INSTANCE); + createEReference(testConfigurationInstanceEClass, TEST_CONFIGURATION_INSTANCE__CONFIGURATION); + + testConfigurationOperationEClass = createEClass(TEST_CONFIGURATION_OPERATION); + createEReference(testConfigurationOperationEClass, TEST_CONFIGURATION_OPERATION__COMPONENT); + + componentReferenceEClass = createEClass(COMPONENT_REFERENCE); + createEReference(componentReferenceEClass, COMPONENT_REFERENCE__COMPONENT); + createEReference(componentReferenceEClass, COMPONENT_REFERENCE__CONFIGURATION); + + componentMergeEClass = createEClass(COMPONENT_MERGE); + createEReference(componentMergeEClass, COMPONENT_MERGE__TARGET); + + componentHideEClass = createEClass(COMPONENT_HIDE); + + reassignRoleEClass = createEClass(REASSIGN_ROLE); + createEAttribute(reassignRoleEClass, REASSIGN_ROLE__ROLE); + + componentAliasEClass = createEClass(COMPONENT_ALIAS); + + extendedGateReferenceEClass = createEClass(EXTENDED_GATE_REFERENCE); + createEReference(extendedGateReferenceEClass, EXTENDED_GATE_REFERENCE__CONFIGURATION); + } + + /** + * + * + * @generated + */ + private boolean isInitialized = false; + + /** + * Complete the initialization of the package and its meta-model. This + * method is guarded to have no affect on any invocation but its first. + * + * + * @generated + */ + public void initializePackageContents() + { + if (isInitialized) return; + isInitialized = true; + + // Initialize package + setName(eNAME); + setNsPrefix(eNS_PREFIX); + setNsURI(eNS_URI); + + // Obtain other dependent packages + tdlPackage thetdlPackage = (tdlPackage)EPackage.Registry.INSTANCE.getEPackage(tdlPackage.eNS_URI); + + // Create type parameters + + // Set bounds for type parameters + + // Add supertypes to classes + extendedTestConfigurationEClass.getESuperTypes().add(thetdlPackage.getTestConfiguration()); + testConfigurationInstanceEClass.getESuperTypes().add(thetdlPackage.getElement()); + testConfigurationOperationEClass.getESuperTypes().add(thetdlPackage.getElement()); + componentReferenceEClass.getESuperTypes().add(thetdlPackage.getElement()); + componentMergeEClass.getESuperTypes().add(this.getTestConfigurationOperation()); + componentHideEClass.getESuperTypes().add(this.getTestConfigurationOperation()); + reassignRoleEClass.getESuperTypes().add(this.getTestConfigurationOperation()); + componentAliasEClass.getESuperTypes().add(this.getTestConfigurationOperation()); + extendedGateReferenceEClass.getESuperTypes().add(thetdlPackage.getGateReference()); + + // Initialize classes, features, and operations; add parameters + initEClass(extendedTestConfigurationEClass, ExtendedTestConfiguration.class, "ExtendedTestConfiguration", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getExtendedTestConfiguration_Configurations(), this.getTestConfigurationInstance(), null, "configurations", null, 0, -1, ExtendedTestConfiguration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + initEReference(getExtendedTestConfiguration_Operations(), this.getTestConfigurationOperation(), null, "operations", null, 0, -1, ExtendedTestConfiguration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + + initEClass(testConfigurationInstanceEClass, TestConfigurationInstance.class, "TestConfigurationInstance", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getTestConfigurationInstance_Configuration(), thetdlPackage.getTestConfiguration(), null, "configuration", null, 1, 1, TestConfigurationInstance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(testConfigurationOperationEClass, TestConfigurationOperation.class, "TestConfigurationOperation", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getTestConfigurationOperation_Component(), this.getComponentReference(), null, "component", null, 1, 1, TestConfigurationOperation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(componentReferenceEClass, ComponentReference.class, "ComponentReference", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getComponentReference_Component(), thetdlPackage.getComponentInstance(), null, "component", null, 1, 1, ComponentReference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getComponentReference_Configuration(), this.getTestConfigurationInstance(), null, "configuration", null, 1, 1, ComponentReference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(componentMergeEClass, ComponentMerge.class, "ComponentMerge", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getComponentMerge_Target(), this.getComponentReference(), null, "target", null, 1, 1, ComponentMerge.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(componentHideEClass, ComponentHide.class, "ComponentHide", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(reassignRoleEClass, ReassignRole.class, "ReassignRole", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getReassignRole_Role(), thetdlPackage.getComponentInstanceRole(), "role", null, 1, 1, ReassignRole.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(componentAliasEClass, ComponentAlias.class, "ComponentAlias", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(extendedGateReferenceEClass, ExtendedGateReference.class, "ExtendedGateReference", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getExtendedGateReference_Configuration(), this.getTestConfigurationInstance(), null, "configuration", null, 1, 1, ExtendedGateReference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + // Create resource + createResource(eNS_URI); + + // Create annotations + // http://www.eclipse.org/OCL/Import + createImportAnnotations(); + } + + /** + * Initializes the annotations for http://www.eclipse.org/OCL/Import. + * + * + * @generated + */ + protected void createImportAnnotations() + { + String source = "http://www.eclipse.org/OCL/Import"; + addAnnotation + (this, + source, + new String[] + { + "tdl", "tdl.ecore#/" + }); + } + +} //ExtendedConfigurationsPackageImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/extendedconfigurations/impl/ExtendedGateReferenceImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/extendedconfigurations/impl/ExtendedGateReferenceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..d0c3e2f4a8952e77a6c847b09e3e5f20ecd415ea --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/extendedconfigurations/impl/ExtendedGateReferenceImpl.java @@ -0,0 +1,176 @@ +/** + */ +package org.etsi.mts.tdl.extendedconfigurations.impl; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.etsi.mts.tdl.extendedconfigurations.ExtendedConfigurationsPackage; +import org.etsi.mts.tdl.extendedconfigurations.ExtendedGateReference; +import org.etsi.mts.tdl.extendedconfigurations.TestConfigurationInstance; + +import org.etsi.mts.tdl.impl.GateReferenceImpl; + +/** + * + * An implementation of the model object 'Extended Gate Reference'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.extendedconfigurations.impl.ExtendedGateReferenceImpl#getConfiguration Configuration}
  • + *
+ * + * @generated + */ +public class ExtendedGateReferenceImpl extends GateReferenceImpl implements ExtendedGateReference +{ + /** + * The cached value of the '{@link #getConfiguration() Configuration}' reference. + * + * + * @see #getConfiguration() + * @generated + * @ordered + */ + protected TestConfigurationInstance configuration; + + /** + * + * + * @generated + */ + protected ExtendedGateReferenceImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return ExtendedConfigurationsPackage.Literals.EXTENDED_GATE_REFERENCE; + } + + /** + * + * + * @generated + */ + @Override + public TestConfigurationInstance getConfiguration() + { + if (configuration != null && configuration.eIsProxy()) + { + InternalEObject oldConfiguration = (InternalEObject)configuration; + configuration = (TestConfigurationInstance)eResolveProxy(oldConfiguration); + if (configuration != oldConfiguration) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtendedConfigurationsPackage.EXTENDED_GATE_REFERENCE__CONFIGURATION, oldConfiguration, configuration)); + } + } + return configuration; + } + + /** + * + * + * @generated + */ + public TestConfigurationInstance basicGetConfiguration() + { + return configuration; + } + + /** + * + * + * @generated + */ + @Override + public void setConfiguration(TestConfigurationInstance newConfiguration) + { + TestConfigurationInstance oldConfiguration = configuration; + configuration = newConfiguration; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExtendedConfigurationsPackage.EXTENDED_GATE_REFERENCE__CONFIGURATION, oldConfiguration, configuration)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case ExtendedConfigurationsPackage.EXTENDED_GATE_REFERENCE__CONFIGURATION: + if (resolve) return getConfiguration(); + return basicGetConfiguration(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case ExtendedConfigurationsPackage.EXTENDED_GATE_REFERENCE__CONFIGURATION: + setConfiguration((TestConfigurationInstance)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case ExtendedConfigurationsPackage.EXTENDED_GATE_REFERENCE__CONFIGURATION: + setConfiguration((TestConfigurationInstance)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case ExtendedConfigurationsPackage.EXTENDED_GATE_REFERENCE__CONFIGURATION: + return configuration != null; + } + return super.eIsSet(featureID); + } + +} //ExtendedGateReferenceImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/extendedconfigurations/impl/ExtendedTestConfigurationImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/extendedconfigurations/impl/ExtendedTestConfigurationImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..b40015728d9592ca6a87e4343b1e11e20aca2520 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/extendedconfigurations/impl/ExtendedTestConfigurationImpl.java @@ -0,0 +1,208 @@ +/** + */ +package org.etsi.mts.tdl.extendedconfigurations.impl; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.etsi.mts.tdl.extendedconfigurations.ExtendedConfigurationsPackage; +import org.etsi.mts.tdl.extendedconfigurations.ExtendedTestConfiguration; +import org.etsi.mts.tdl.extendedconfigurations.TestConfigurationInstance; +import org.etsi.mts.tdl.extendedconfigurations.TestConfigurationOperation; + +import org.etsi.mts.tdl.impl.TestConfigurationImpl; + +/** + * + * An implementation of the model object 'Extended Test Configuration'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.extendedconfigurations.impl.ExtendedTestConfigurationImpl#getConfigurations Configurations}
  • + *
  • {@link org.etsi.mts.tdl.extendedconfigurations.impl.ExtendedTestConfigurationImpl#getOperations Operations}
  • + *
+ * + * @generated + */ +public class ExtendedTestConfigurationImpl extends TestConfigurationImpl implements ExtendedTestConfiguration +{ + /** + * The cached value of the '{@link #getConfigurations() Configurations}' containment reference list. + * + * + * @see #getConfigurations() + * @generated + * @ordered + */ + protected EList configurations; + + /** + * The cached value of the '{@link #getOperations() Operations}' containment reference list. + * + * + * @see #getOperations() + * @generated + * @ordered + */ + protected EList operations; + + /** + * + * + * @generated + */ + protected ExtendedTestConfigurationImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return ExtendedConfigurationsPackage.Literals.EXTENDED_TEST_CONFIGURATION; + } + + /** + * + * + * @generated + */ + @Override + public EList getConfigurations() + { + if (configurations == null) + { + configurations = new EObjectContainmentEList(TestConfigurationInstance.class, this, ExtendedConfigurationsPackage.EXTENDED_TEST_CONFIGURATION__CONFIGURATIONS); + } + return configurations; + } + + /** + * + * + * @generated + */ + @Override + public EList getOperations() + { + if (operations == null) + { + operations = new EObjectContainmentEList(TestConfigurationOperation.class, this, ExtendedConfigurationsPackage.EXTENDED_TEST_CONFIGURATION__OPERATIONS); + } + return operations; + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case ExtendedConfigurationsPackage.EXTENDED_TEST_CONFIGURATION__CONFIGURATIONS: + return ((InternalEList)getConfigurations()).basicRemove(otherEnd, msgs); + case ExtendedConfigurationsPackage.EXTENDED_TEST_CONFIGURATION__OPERATIONS: + return ((InternalEList)getOperations()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case ExtendedConfigurationsPackage.EXTENDED_TEST_CONFIGURATION__CONFIGURATIONS: + return getConfigurations(); + case ExtendedConfigurationsPackage.EXTENDED_TEST_CONFIGURATION__OPERATIONS: + return getOperations(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case ExtendedConfigurationsPackage.EXTENDED_TEST_CONFIGURATION__CONFIGURATIONS: + getConfigurations().clear(); + getConfigurations().addAll((Collection)newValue); + return; + case ExtendedConfigurationsPackage.EXTENDED_TEST_CONFIGURATION__OPERATIONS: + getOperations().clear(); + getOperations().addAll((Collection)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case ExtendedConfigurationsPackage.EXTENDED_TEST_CONFIGURATION__CONFIGURATIONS: + getConfigurations().clear(); + return; + case ExtendedConfigurationsPackage.EXTENDED_TEST_CONFIGURATION__OPERATIONS: + getOperations().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case ExtendedConfigurationsPackage.EXTENDED_TEST_CONFIGURATION__CONFIGURATIONS: + return configurations != null && !configurations.isEmpty(); + case ExtendedConfigurationsPackage.EXTENDED_TEST_CONFIGURATION__OPERATIONS: + return operations != null && !operations.isEmpty(); + } + return super.eIsSet(featureID); + } + +} //ExtendedTestConfigurationImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/extendedconfigurations/impl/ReassignRoleImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/extendedconfigurations/impl/ReassignRoleImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..e6dd473c7da1396a05911083c53d08f7cb1eddc4 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/extendedconfigurations/impl/ReassignRoleImpl.java @@ -0,0 +1,180 @@ +/** + */ +package org.etsi.mts.tdl.extendedconfigurations.impl; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.etsi.mts.tdl.ComponentInstanceRole; + +import org.etsi.mts.tdl.extendedconfigurations.ExtendedConfigurationsPackage; +import org.etsi.mts.tdl.extendedconfigurations.ReassignRole; + +/** + * + * An implementation of the model object 'Reassign Role'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.extendedconfigurations.impl.ReassignRoleImpl#getRole Role}
  • + *
+ * + * @generated + */ +public class ReassignRoleImpl extends TestConfigurationOperationImpl implements ReassignRole +{ + /** + * The default value of the '{@link #getRole() Role}' attribute. + * + * + * @see #getRole() + * @generated + * @ordered + */ + protected static final ComponentInstanceRole ROLE_EDEFAULT = ComponentInstanceRole.SUT; + + /** + * The cached value of the '{@link #getRole() Role}' attribute. + * + * + * @see #getRole() + * @generated + * @ordered + */ + protected ComponentInstanceRole role = ROLE_EDEFAULT; + + /** + * + * + * @generated + */ + protected ReassignRoleImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return ExtendedConfigurationsPackage.Literals.REASSIGN_ROLE; + } + + /** + * + * + * @generated + */ + @Override + public ComponentInstanceRole getRole() + { + return role; + } + + /** + * + * + * @generated + */ + @Override + public void setRole(ComponentInstanceRole newRole) + { + ComponentInstanceRole oldRole = role; + role = newRole == null ? ROLE_EDEFAULT : newRole; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExtendedConfigurationsPackage.REASSIGN_ROLE__ROLE, oldRole, role)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case ExtendedConfigurationsPackage.REASSIGN_ROLE__ROLE: + return getRole(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case ExtendedConfigurationsPackage.REASSIGN_ROLE__ROLE: + setRole((ComponentInstanceRole)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case ExtendedConfigurationsPackage.REASSIGN_ROLE__ROLE: + setRole(ROLE_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case ExtendedConfigurationsPackage.REASSIGN_ROLE__ROLE: + return role != ROLE_EDEFAULT; + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuilder result = new StringBuilder(super.toString()); + result.append(" (role: "); + result.append(role); + result.append(')'); + return result.toString(); + } + +} //ReassignRoleImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/extendedconfigurations/impl/TestConfigurationInstanceImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/extendedconfigurations/impl/TestConfigurationInstanceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..6fda1230de58a2e5c881301e97107e0c2ed88a67 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/extendedconfigurations/impl/TestConfigurationInstanceImpl.java @@ -0,0 +1,177 @@ +/** + */ +package org.etsi.mts.tdl.extendedconfigurations.impl; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.etsi.mts.tdl.TestConfiguration; + +import org.etsi.mts.tdl.extendedconfigurations.ExtendedConfigurationsPackage; +import org.etsi.mts.tdl.extendedconfigurations.TestConfigurationInstance; + +import org.etsi.mts.tdl.impl.ElementImpl; + +/** + * + * An implementation of the model object 'Test Configuration Instance'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.extendedconfigurations.impl.TestConfigurationInstanceImpl#getConfiguration Configuration}
  • + *
+ * + * @generated + */ +public class TestConfigurationInstanceImpl extends ElementImpl implements TestConfigurationInstance +{ + /** + * The cached value of the '{@link #getConfiguration() Configuration}' reference. + * + * + * @see #getConfiguration() + * @generated + * @ordered + */ + protected TestConfiguration configuration; + + /** + * + * + * @generated + */ + protected TestConfigurationInstanceImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return ExtendedConfigurationsPackage.Literals.TEST_CONFIGURATION_INSTANCE; + } + + /** + * + * + * @generated + */ + @Override + public TestConfiguration getConfiguration() + { + if (configuration != null && configuration.eIsProxy()) + { + InternalEObject oldConfiguration = (InternalEObject)configuration; + configuration = (TestConfiguration)eResolveProxy(oldConfiguration); + if (configuration != oldConfiguration) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtendedConfigurationsPackage.TEST_CONFIGURATION_INSTANCE__CONFIGURATION, oldConfiguration, configuration)); + } + } + return configuration; + } + + /** + * + * + * @generated + */ + public TestConfiguration basicGetConfiguration() + { + return configuration; + } + + /** + * + * + * @generated + */ + @Override + public void setConfiguration(TestConfiguration newConfiguration) + { + TestConfiguration oldConfiguration = configuration; + configuration = newConfiguration; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExtendedConfigurationsPackage.TEST_CONFIGURATION_INSTANCE__CONFIGURATION, oldConfiguration, configuration)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case ExtendedConfigurationsPackage.TEST_CONFIGURATION_INSTANCE__CONFIGURATION: + if (resolve) return getConfiguration(); + return basicGetConfiguration(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case ExtendedConfigurationsPackage.TEST_CONFIGURATION_INSTANCE__CONFIGURATION: + setConfiguration((TestConfiguration)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case ExtendedConfigurationsPackage.TEST_CONFIGURATION_INSTANCE__CONFIGURATION: + setConfiguration((TestConfiguration)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case ExtendedConfigurationsPackage.TEST_CONFIGURATION_INSTANCE__CONFIGURATION: + return configuration != null; + } + return super.eIsSet(featureID); + } + +} //TestConfigurationInstanceImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/extendedconfigurations/impl/TestConfigurationOperationImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/extendedconfigurations/impl/TestConfigurationOperationImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..4e7b99de0e54c318fe3f3a64b27410188078f1de --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/extendedconfigurations/impl/TestConfigurationOperationImpl.java @@ -0,0 +1,197 @@ +/** + */ +package org.etsi.mts.tdl.extendedconfigurations.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.etsi.mts.tdl.extendedconfigurations.ComponentReference; +import org.etsi.mts.tdl.extendedconfigurations.ExtendedConfigurationsPackage; +import org.etsi.mts.tdl.extendedconfigurations.TestConfigurationOperation; + +import org.etsi.mts.tdl.impl.ElementImpl; + +/** + * + * An implementation of the model object 'Test Configuration Operation'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.extendedconfigurations.impl.TestConfigurationOperationImpl#getComponent Component}
  • + *
+ * + * @generated + */ +public abstract class TestConfigurationOperationImpl extends ElementImpl implements TestConfigurationOperation +{ + /** + * The cached value of the '{@link #getComponent() Component}' containment reference. + * + * + * @see #getComponent() + * @generated + * @ordered + */ + protected ComponentReference component; + + /** + * + * + * @generated + */ + protected TestConfigurationOperationImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return ExtendedConfigurationsPackage.Literals.TEST_CONFIGURATION_OPERATION; + } + + /** + * + * + * @generated + */ + @Override + public ComponentReference getComponent() + { + return component; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetComponent(ComponentReference newComponent, NotificationChain msgs) + { + ComponentReference oldComponent = component; + component = newComponent; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ExtendedConfigurationsPackage.TEST_CONFIGURATION_OPERATION__COMPONENT, oldComponent, newComponent); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + @Override + public void setComponent(ComponentReference newComponent) + { + if (newComponent != component) + { + NotificationChain msgs = null; + if (component != null) + msgs = ((InternalEObject)component).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ExtendedConfigurationsPackage.TEST_CONFIGURATION_OPERATION__COMPONENT, null, msgs); + if (newComponent != null) + msgs = ((InternalEObject)newComponent).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ExtendedConfigurationsPackage.TEST_CONFIGURATION_OPERATION__COMPONENT, null, msgs); + msgs = basicSetComponent(newComponent, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExtendedConfigurationsPackage.TEST_CONFIGURATION_OPERATION__COMPONENT, newComponent, newComponent)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case ExtendedConfigurationsPackage.TEST_CONFIGURATION_OPERATION__COMPONENT: + return basicSetComponent(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case ExtendedConfigurationsPackage.TEST_CONFIGURATION_OPERATION__COMPONENT: + return getComponent(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case ExtendedConfigurationsPackage.TEST_CONFIGURATION_OPERATION__COMPONENT: + setComponent((ComponentReference)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case ExtendedConfigurationsPackage.TEST_CONFIGURATION_OPERATION__COMPONENT: + setComponent((ComponentReference)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case ExtendedConfigurationsPackage.TEST_CONFIGURATION_OPERATION__COMPONENT: + return component != null; + } + return super.eIsSet(featureID); + } + +} //TestConfigurationOperationImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/extendedconfigurations/util/ExtendedConfigurationsAdapterFactory.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/extendedconfigurations/util/ExtendedConfigurationsAdapterFactory.java new file mode 100644 index 0000000000000000000000000000000000000000..b0e4df74041106370e9f2b006707525d039f357d --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/extendedconfigurations/util/ExtendedConfigurationsAdapterFactory.java @@ -0,0 +1,398 @@ +/** + */ +package org.etsi.mts.tdl.extendedconfigurations.util; + +import org.eclipse.emf.common.notify.Adapter; +import org.eclipse.emf.common.notify.Notifier; + +import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl; + +import org.eclipse.emf.ecore.EObject; + +import org.etsi.mts.tdl.Element; +import org.etsi.mts.tdl.GateReference; +import org.etsi.mts.tdl.NamedElement; +import org.etsi.mts.tdl.PackageableElement; +import org.etsi.mts.tdl.TestConfiguration; + +import org.etsi.mts.tdl.extendedconfigurations.*; + +/** + * + * The Adapter Factory for the model. + * It provides an adapter createXXX method for each class of the model. + * + * @see org.etsi.mts.tdl.extendedconfigurations.ExtendedConfigurationsPackage + * @generated + */ +public class ExtendedConfigurationsAdapterFactory extends AdapterFactoryImpl +{ + /** + * The cached model package. + * + * + * @generated + */ + protected static ExtendedConfigurationsPackage modelPackage; + + /** + * Creates an instance of the adapter factory. + * + * + * @generated + */ + public ExtendedConfigurationsAdapterFactory() + { + if (modelPackage == null) + { + modelPackage = ExtendedConfigurationsPackage.eINSTANCE; + } + } + + /** + * Returns whether this factory is applicable for the type of the object. + * + * This implementation returns true if the object is either the model's package or is an instance object of the model. + * + * @return whether this factory is applicable for the type of the object. + * @generated + */ + @Override + public boolean isFactoryForType(Object object) + { + if (object == modelPackage) + { + return true; + } + if (object instanceof EObject) + { + return ((EObject)object).eClass().getEPackage() == modelPackage; + } + return false; + } + + /** + * The switch that delegates to the createXXX methods. + * + * + * @generated + */ + protected ExtendedConfigurationsSwitch modelSwitch = + new ExtendedConfigurationsSwitch() + { + @Override + public Adapter caseExtendedTestConfiguration(ExtendedTestConfiguration object) + { + return createExtendedTestConfigurationAdapter(); + } + @Override + public Adapter caseTestConfigurationInstance(TestConfigurationInstance object) + { + return createTestConfigurationInstanceAdapter(); + } + @Override + public Adapter caseTestConfigurationOperation(TestConfigurationOperation object) + { + return createTestConfigurationOperationAdapter(); + } + @Override + public Adapter caseComponentReference(ComponentReference object) + { + return createComponentReferenceAdapter(); + } + @Override + public Adapter caseComponentMerge(ComponentMerge object) + { + return createComponentMergeAdapter(); + } + @Override + public Adapter caseComponentHide(ComponentHide object) + { + return createComponentHideAdapter(); + } + @Override + public Adapter caseReassignRole(ReassignRole object) + { + return createReassignRoleAdapter(); + } + @Override + public Adapter caseComponentAlias(ComponentAlias object) + { + return createComponentAliasAdapter(); + } + @Override + public Adapter caseExtendedGateReference(ExtendedGateReference object) + { + return createExtendedGateReferenceAdapter(); + } + @Override + public Adapter caseElement(Element object) + { + return createElementAdapter(); + } + @Override + public Adapter caseNamedElement(NamedElement object) + { + return createNamedElementAdapter(); + } + @Override + public Adapter casePackageableElement(PackageableElement object) + { + return createPackageableElementAdapter(); + } + @Override + public Adapter caseTestConfiguration(TestConfiguration object) + { + return createTestConfigurationAdapter(); + } + @Override + public Adapter caseGateReference(GateReference object) + { + return createGateReferenceAdapter(); + } + @Override + public Adapter defaultCase(EObject object) + { + return createEObjectAdapter(); + } + }; + + /** + * Creates an adapter for the target. + * + * + * @param target the object to adapt. + * @return the adapter for the target. + * @generated + */ + @Override + public Adapter createAdapter(Notifier target) + { + return modelSwitch.doSwitch((EObject)target); + } + + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.extendedconfigurations.ExtendedTestConfiguration Extended Test Configuration}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.extendedconfigurations.ExtendedTestConfiguration + * @generated + */ + public Adapter createExtendedTestConfigurationAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.extendedconfigurations.TestConfigurationInstance Test Configuration Instance}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.extendedconfigurations.TestConfigurationInstance + * @generated + */ + public Adapter createTestConfigurationInstanceAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.extendedconfigurations.TestConfigurationOperation Test Configuration Operation}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.extendedconfigurations.TestConfigurationOperation + * @generated + */ + public Adapter createTestConfigurationOperationAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.extendedconfigurations.ComponentReference Component Reference}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.extendedconfigurations.ComponentReference + * @generated + */ + public Adapter createComponentReferenceAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.extendedconfigurations.ComponentMerge Component Merge}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.extendedconfigurations.ComponentMerge + * @generated + */ + public Adapter createComponentMergeAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.extendedconfigurations.ComponentHide Component Hide}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.extendedconfigurations.ComponentHide + * @generated + */ + public Adapter createComponentHideAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.extendedconfigurations.ReassignRole Reassign Role}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.extendedconfigurations.ReassignRole + * @generated + */ + public Adapter createReassignRoleAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.extendedconfigurations.ComponentAlias Component Alias}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.extendedconfigurations.ComponentAlias + * @generated + */ + public Adapter createComponentAliasAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.extendedconfigurations.ExtendedGateReference Extended Gate Reference}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.extendedconfigurations.ExtendedGateReference + * @generated + */ + public Adapter createExtendedGateReferenceAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.Element Element}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.Element + * @generated + */ + public Adapter createElementAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.NamedElement Named Element}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.NamedElement + * @generated + */ + public Adapter createNamedElementAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.PackageableElement Packageable Element}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.PackageableElement + * @generated + */ + public Adapter createPackageableElementAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.TestConfiguration Test Configuration}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.TestConfiguration + * @generated + */ + public Adapter createTestConfigurationAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.GateReference Gate Reference}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.GateReference + * @generated + */ + public Adapter createGateReferenceAdapter() + { + return null; + } + + /** + * Creates a new adapter for the default case. + * + * This default implementation returns null. + * + * @return the new adapter. + * @generated + */ + public Adapter createEObjectAdapter() + { + return null; + } + +} //ExtendedConfigurationsAdapterFactory diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/extendedconfigurations/util/ExtendedConfigurationsSwitch.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/extendedconfigurations/util/ExtendedConfigurationsSwitch.java new file mode 100644 index 0000000000000000000000000000000000000000..8709c27859950dcbe6bbce41dfbd4ef780a7dc21 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/extendedconfigurations/util/ExtendedConfigurationsSwitch.java @@ -0,0 +1,406 @@ +/** + */ +package org.etsi.mts.tdl.extendedconfigurations.util; + +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EPackage; + +import org.eclipse.emf.ecore.util.Switch; + +import org.etsi.mts.tdl.Element; +import org.etsi.mts.tdl.GateReference; +import org.etsi.mts.tdl.NamedElement; +import org.etsi.mts.tdl.PackageableElement; +import org.etsi.mts.tdl.TestConfiguration; + +import org.etsi.mts.tdl.extendedconfigurations.*; + +/** + * + * The Switch for the model's inheritance hierarchy. + * It supports the call {@link #doSwitch(EObject) doSwitch(object)} + * to invoke the caseXXX method for each class of the model, + * starting with the actual class of the object + * and proceeding up the inheritance hierarchy + * until a non-null result is returned, + * which is the result of the switch. + * + * @see org.etsi.mts.tdl.extendedconfigurations.ExtendedConfigurationsPackage + * @generated + */ +public class ExtendedConfigurationsSwitch extends Switch +{ + /** + * The cached model package + * + * + * @generated + */ + protected static ExtendedConfigurationsPackage modelPackage; + + /** + * Creates an instance of the switch. + * + * + * @generated + */ + public ExtendedConfigurationsSwitch() + { + if (modelPackage == null) + { + modelPackage = ExtendedConfigurationsPackage.eINSTANCE; + } + } + + /** + * Checks whether this is a switch for the given package. + * + * + * @param ePackage the package in question. + * @return whether this is a switch for the given package. + * @generated + */ + @Override + protected boolean isSwitchFor(EPackage ePackage) + { + return ePackage == modelPackage; + } + + /** + * Calls caseXXX for each class of the model until one returns a non null result; it yields that result. + * + * + * @return the first non-null result returned by a caseXXX call. + * @generated + */ + @Override + protected T doSwitch(int classifierID, EObject theEObject) + { + switch (classifierID) + { + case ExtendedConfigurationsPackage.EXTENDED_TEST_CONFIGURATION: + { + ExtendedTestConfiguration extendedTestConfiguration = (ExtendedTestConfiguration)theEObject; + T result = caseExtendedTestConfiguration(extendedTestConfiguration); + if (result == null) result = caseTestConfiguration(extendedTestConfiguration); + if (result == null) result = casePackageableElement(extendedTestConfiguration); + if (result == null) result = caseNamedElement(extendedTestConfiguration); + if (result == null) result = caseElement(extendedTestConfiguration); + if (result == null) result = defaultCase(theEObject); + return result; + } + case ExtendedConfigurationsPackage.TEST_CONFIGURATION_INSTANCE: + { + TestConfigurationInstance testConfigurationInstance = (TestConfigurationInstance)theEObject; + T result = caseTestConfigurationInstance(testConfigurationInstance); + if (result == null) result = caseElement(testConfigurationInstance); + if (result == null) result = defaultCase(theEObject); + return result; + } + case ExtendedConfigurationsPackage.TEST_CONFIGURATION_OPERATION: + { + TestConfigurationOperation testConfigurationOperation = (TestConfigurationOperation)theEObject; + T result = caseTestConfigurationOperation(testConfigurationOperation); + if (result == null) result = caseElement(testConfigurationOperation); + if (result == null) result = defaultCase(theEObject); + return result; + } + case ExtendedConfigurationsPackage.COMPONENT_REFERENCE: + { + ComponentReference componentReference = (ComponentReference)theEObject; + T result = caseComponentReference(componentReference); + if (result == null) result = caseElement(componentReference); + if (result == null) result = defaultCase(theEObject); + return result; + } + case ExtendedConfigurationsPackage.COMPONENT_MERGE: + { + ComponentMerge componentMerge = (ComponentMerge)theEObject; + T result = caseComponentMerge(componentMerge); + if (result == null) result = caseTestConfigurationOperation(componentMerge); + if (result == null) result = caseElement(componentMerge); + if (result == null) result = defaultCase(theEObject); + return result; + } + case ExtendedConfigurationsPackage.COMPONENT_HIDE: + { + ComponentHide componentHide = (ComponentHide)theEObject; + T result = caseComponentHide(componentHide); + if (result == null) result = caseTestConfigurationOperation(componentHide); + if (result == null) result = caseElement(componentHide); + if (result == null) result = defaultCase(theEObject); + return result; + } + case ExtendedConfigurationsPackage.REASSIGN_ROLE: + { + ReassignRole reassignRole = (ReassignRole)theEObject; + T result = caseReassignRole(reassignRole); + if (result == null) result = caseTestConfigurationOperation(reassignRole); + if (result == null) result = caseElement(reassignRole); + if (result == null) result = defaultCase(theEObject); + return result; + } + case ExtendedConfigurationsPackage.COMPONENT_ALIAS: + { + ComponentAlias componentAlias = (ComponentAlias)theEObject; + T result = caseComponentAlias(componentAlias); + if (result == null) result = caseTestConfigurationOperation(componentAlias); + if (result == null) result = caseElement(componentAlias); + if (result == null) result = defaultCase(theEObject); + return result; + } + case ExtendedConfigurationsPackage.EXTENDED_GATE_REFERENCE: + { + ExtendedGateReference extendedGateReference = (ExtendedGateReference)theEObject; + T result = caseExtendedGateReference(extendedGateReference); + if (result == null) result = caseGateReference(extendedGateReference); + if (result == null) result = caseElement(extendedGateReference); + if (result == null) result = defaultCase(theEObject); + return result; + } + default: return defaultCase(theEObject); + } + } + + /** + * Returns the result of interpreting the object as an instance of 'Extended Test Configuration'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Extended Test Configuration'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseExtendedTestConfiguration(ExtendedTestConfiguration object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Test Configuration Instance'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Test Configuration Instance'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseTestConfigurationInstance(TestConfigurationInstance object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Test Configuration Operation'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Test Configuration Operation'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseTestConfigurationOperation(TestConfigurationOperation object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Component Reference'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Component Reference'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseComponentReference(ComponentReference object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Component Merge'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Component Merge'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseComponentMerge(ComponentMerge object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Component Hide'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Component Hide'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseComponentHide(ComponentHide object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Reassign Role'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Reassign Role'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseReassignRole(ReassignRole object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Component Alias'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Component Alias'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseComponentAlias(ComponentAlias object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Extended Gate Reference'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Extended Gate Reference'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseExtendedGateReference(ExtendedGateReference object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Element'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Element'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseElement(Element object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Named Element'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Named Element'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseNamedElement(NamedElement object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Packageable Element'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Packageable Element'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T casePackageableElement(PackageableElement object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Test Configuration'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Test Configuration'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseTestConfiguration(TestConfiguration object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Gate Reference'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Gate Reference'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseGateReference(GateReference object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'EObject'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch, but this is the last case anyway. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'EObject'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) + * @generated + */ + @Override + public T defaultCase(EObject object) + { + return null; + } + +} //ExtendedConfigurationsSwitch diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/ActionBehaviourImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/ActionBehaviourImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..225332b1258a018c822702f0c7a254fce231bbdc --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/ActionBehaviourImpl.java @@ -0,0 +1,254 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import java.lang.reflect.InvocationTargetException; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.common.util.WrappedException; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EOperation; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.etsi.mts.tdl.ActionBehaviour; +import org.etsi.mts.tdl.AtomicBehaviour; +import org.etsi.mts.tdl.Behaviour; +import org.etsi.mts.tdl.ComponentInstance; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Action Behaviour'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.impl.ActionBehaviourImpl#getComponentInstance Component Instance}
  • + *
+ * + * @generated + */ +public abstract class ActionBehaviourImpl extends AtomicBehaviourImpl implements ActionBehaviour +{ + /** + * The cached value of the '{@link #getComponentInstance() Component Instance}' reference. + * + * + * @see #getComponentInstance() + * @generated + * @ordered + */ + protected ComponentInstance componentInstance; + + /** + * + * + * @generated + */ + protected ActionBehaviourImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.ACTION_BEHAVIOUR; + } + + /** + * + * + * @generated + */ + @Override + public ComponentInstance getComponentInstance() + { + if (componentInstance != null && componentInstance.eIsProxy()) + { + InternalEObject oldComponentInstance = (InternalEObject)componentInstance; + componentInstance = (ComponentInstance)eResolveProxy(oldComponentInstance); + if (componentInstance != oldComponentInstance) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, tdlPackage.ACTION_BEHAVIOUR__COMPONENT_INSTANCE, oldComponentInstance, componentInstance)); + } + } + return componentInstance; + } + + /** + * + * + * @generated + */ + public ComponentInstance basicGetComponentInstance() + { + return componentInstance; + } + + /** + * + * + * @generated + */ + @Override + public void setComponentInstance(ComponentInstance newComponentInstance) + { + ComponentInstance oldComponentInstance = componentInstance; + componentInstance = newComponentInstance; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.ACTION_BEHAVIOUR__COMPONENT_INSTANCE, oldComponentInstance, componentInstance)); + } + + /** + * The cached invocation delegate for the '{@link #getParticipatingComponents() Get Participating Components}' operation. + * + * + * @see #getParticipatingComponents() + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate GET_PARTICIPATING_COMPONENTS__EINVOCATION_DELEGATE = ((EOperation.Internal)tdlPackage.Literals.ACTION_BEHAVIOUR___GET_PARTICIPATING_COMPONENTS).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getParticipatingComponents() + { + try + { + return (EList)GET_PARTICIPATING_COMPONENTS__EINVOCATION_DELEGATE.dynamicInvoke(this, null); + } + catch (InvocationTargetException ite) + { + throw new WrappedException(ite); + } + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case tdlPackage.ACTION_BEHAVIOUR__COMPONENT_INSTANCE: + if (resolve) return getComponentInstance(); + return basicGetComponentInstance(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case tdlPackage.ACTION_BEHAVIOUR__COMPONENT_INSTANCE: + setComponentInstance((ComponentInstance)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case tdlPackage.ACTION_BEHAVIOUR__COMPONENT_INSTANCE: + setComponentInstance((ComponentInstance)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case tdlPackage.ACTION_BEHAVIOUR__COMPONENT_INSTANCE: + return componentInstance != null; + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public int eDerivedOperationID(int baseOperationID, Class baseClass) + { + if (baseClass == Behaviour.class) + { + switch (baseOperationID) + { + case tdlPackage.BEHAVIOUR___GET_PARTICIPATING_COMPONENTS: return tdlPackage.ACTION_BEHAVIOUR___GET_PARTICIPATING_COMPONENTS; + default: return super.eDerivedOperationID(baseOperationID, baseClass); + } + } + if (baseClass == AtomicBehaviour.class) + { + switch (baseOperationID) + { + case tdlPackage.ATOMIC_BEHAVIOUR___GET_PARTICIPATING_COMPONENTS: return tdlPackage.ACTION_BEHAVIOUR___GET_PARTICIPATING_COMPONENTS; + default: return super.eDerivedOperationID(baseOperationID, baseClass); + } + } + return super.eDerivedOperationID(baseOperationID, baseClass); + } + + /** + * + * + * @generated + */ + @Override + public Object eInvoke(int operationID, EList arguments) throws InvocationTargetException + { + switch (operationID) + { + case tdlPackage.ACTION_BEHAVIOUR___GET_PARTICIPATING_COMPONENTS: + return getParticipatingComponents(); + } + return super.eInvoke(operationID, arguments); + } + +} //ActionBehaviourImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/ActionImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/ActionImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..3848737618edc749bd11c31f694d4be79b4689cf --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/ActionImpl.java @@ -0,0 +1,242 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.etsi.mts.tdl.Action; +import org.etsi.mts.tdl.FormalParameter; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Action'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.impl.ActionImpl#getBody Body}
  • + *
  • {@link org.etsi.mts.tdl.impl.ActionImpl#getFormalParameter Formal Parameter}
  • + *
+ * + * @generated + */ +public class ActionImpl extends MappableDataElementImpl implements Action +{ + /** + * The default value of the '{@link #getBody() Body}' attribute. + * + * + * @see #getBody() + * @generated + * @ordered + */ + protected static final String BODY_EDEFAULT = null; + + /** + * The cached value of the '{@link #getBody() Body}' attribute. + * + * + * @see #getBody() + * @generated + * @ordered + */ + protected String body = BODY_EDEFAULT; + + /** + * The cached value of the '{@link #getFormalParameter() Formal Parameter}' containment reference list. + * + * + * @see #getFormalParameter() + * @generated + * @ordered + */ + protected EList formalParameter; + + /** + * + * + * @generated + */ + protected ActionImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.ACTION; + } + + /** + * + * + * @generated + */ + @Override + public String getBody() + { + return body; + } + + /** + * + * + * @generated + */ + @Override + public void setBody(String newBody) + { + String oldBody = body; + body = newBody; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.ACTION__BODY, oldBody, body)); + } + + /** + * + * + * @generated + */ + @Override + public EList getFormalParameter() + { + if (formalParameter == null) + { + formalParameter = new EObjectContainmentEList(FormalParameter.class, this, tdlPackage.ACTION__FORMAL_PARAMETER); + } + return formalParameter; + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case tdlPackage.ACTION__FORMAL_PARAMETER: + return ((InternalEList)getFormalParameter()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case tdlPackage.ACTION__BODY: + return getBody(); + case tdlPackage.ACTION__FORMAL_PARAMETER: + return getFormalParameter(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case tdlPackage.ACTION__BODY: + setBody((String)newValue); + return; + case tdlPackage.ACTION__FORMAL_PARAMETER: + getFormalParameter().clear(); + getFormalParameter().addAll((Collection)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case tdlPackage.ACTION__BODY: + setBody(BODY_EDEFAULT); + return; + case tdlPackage.ACTION__FORMAL_PARAMETER: + getFormalParameter().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case tdlPackage.ACTION__BODY: + return BODY_EDEFAULT == null ? body != null : !BODY_EDEFAULT.equals(body); + case tdlPackage.ACTION__FORMAL_PARAMETER: + return formalParameter != null && !formalParameter.isEmpty(); + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuilder result = new StringBuilder(super.toString()); + result.append(" (body: "); + result.append(body); + result.append(')'); + return result.toString(); + } + +} //ActionImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/ActionReferenceImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/ActionReferenceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..8afe4f23532d298a3db9dea6889ed3b68b983a85 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/ActionReferenceImpl.java @@ -0,0 +1,237 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.etsi.mts.tdl.Action; +import org.etsi.mts.tdl.ActionReference; +import org.etsi.mts.tdl.ParameterBinding; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Action Reference'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.impl.ActionReferenceImpl#getAction Action}
  • + *
  • {@link org.etsi.mts.tdl.impl.ActionReferenceImpl#getArgument Argument}
  • + *
+ * + * @generated + */ +public class ActionReferenceImpl extends ActionBehaviourImpl implements ActionReference +{ + /** + * The cached value of the '{@link #getAction() Action}' reference. + * + * + * @see #getAction() + * @generated + * @ordered + */ + protected Action action; + + /** + * The cached value of the '{@link #getArgument() Argument}' containment reference list. + * + * + * @see #getArgument() + * @generated + * @ordered + */ + protected EList argument; + + /** + * + * + * @generated + */ + protected ActionReferenceImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.ACTION_REFERENCE; + } + + /** + * + * + * @generated + */ + @Override + public Action getAction() + { + if (action != null && action.eIsProxy()) + { + InternalEObject oldAction = (InternalEObject)action; + action = (Action)eResolveProxy(oldAction); + if (action != oldAction) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, tdlPackage.ACTION_REFERENCE__ACTION, oldAction, action)); + } + } + return action; + } + + /** + * + * + * @generated + */ + public Action basicGetAction() + { + return action; + } + + /** + * + * + * @generated + */ + @Override + public void setAction(Action newAction) + { + Action oldAction = action; + action = newAction; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.ACTION_REFERENCE__ACTION, oldAction, action)); + } + + /** + * + * + * @generated + */ + @Override + public EList getArgument() + { + if (argument == null) + { + argument = new EObjectContainmentEList(ParameterBinding.class, this, tdlPackage.ACTION_REFERENCE__ARGUMENT); + } + return argument; + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case tdlPackage.ACTION_REFERENCE__ARGUMENT: + return ((InternalEList)getArgument()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case tdlPackage.ACTION_REFERENCE__ACTION: + if (resolve) return getAction(); + return basicGetAction(); + case tdlPackage.ACTION_REFERENCE__ARGUMENT: + return getArgument(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case tdlPackage.ACTION_REFERENCE__ACTION: + setAction((Action)newValue); + return; + case tdlPackage.ACTION_REFERENCE__ARGUMENT: + getArgument().clear(); + getArgument().addAll((Collection)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case tdlPackage.ACTION_REFERENCE__ACTION: + setAction((Action)null); + return; + case tdlPackage.ACTION_REFERENCE__ARGUMENT: + getArgument().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case tdlPackage.ACTION_REFERENCE__ACTION: + return action != null; + case tdlPackage.ACTION_REFERENCE__ARGUMENT: + return argument != null && !argument.isEmpty(); + } + return super.eIsSet(featureID); + } + +} //ActionReferenceImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/AlternativeBehaviourImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/AlternativeBehaviourImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..56a4b95e4cee8cd2e0c74d9bfc90b09e45dd0acb --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/AlternativeBehaviourImpl.java @@ -0,0 +1,40 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.etsi.mts.tdl.AlternativeBehaviour; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Alternative Behaviour'. + * + * + * @generated + */ +public class AlternativeBehaviourImpl extends MultipleCombinedBehaviourImpl implements AlternativeBehaviour +{ + /** + * + * + * @generated + */ + protected AlternativeBehaviourImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.ALTERNATIVE_BEHAVIOUR; + } + +} //AlternativeBehaviourImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/AnnotationImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/AnnotationImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..25149c681d91b287379980413d18a3e760b14ddb --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/AnnotationImpl.java @@ -0,0 +1,359 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EcoreUtil; + +import org.etsi.mts.tdl.Annotation; +import org.etsi.mts.tdl.AnnotationType; +import org.etsi.mts.tdl.Element; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Annotation'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.impl.AnnotationImpl#getValue Value}
  • + *
  • {@link org.etsi.mts.tdl.impl.AnnotationImpl#getKey Key}
  • + *
  • {@link org.etsi.mts.tdl.impl.AnnotationImpl#getAnnotatedElement Annotated Element}
  • + *
+ * + * @generated + */ +public class AnnotationImpl extends ElementImpl implements Annotation +{ + /** + * The default value of the '{@link #getValue() Value}' attribute. + * + * + * @see #getValue() + * @generated + * @ordered + */ + protected static final String VALUE_EDEFAULT = null; + + /** + * The cached value of the '{@link #getValue() Value}' attribute. + * + * + * @see #getValue() + * @generated + * @ordered + */ + protected String value = VALUE_EDEFAULT; + + /** + * The cached value of the '{@link #getKey() Key}' reference. + * + * + * @see #getKey() + * @generated + * @ordered + */ + protected AnnotationType key; + + /** + * + * + * @generated + */ + protected AnnotationImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.ANNOTATION; + } + + /** + * + * + * @generated + */ + @Override + public String getValue() + { + return value; + } + + /** + * + * + * @generated + */ + @Override + public void setValue(String newValue) + { + String oldValue = value; + value = newValue; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.ANNOTATION__VALUE, oldValue, value)); + } + + /** + * + * + * @generated + */ + @Override + public AnnotationType getKey() + { + if (key != null && key.eIsProxy()) + { + InternalEObject oldKey = (InternalEObject)key; + key = (AnnotationType)eResolveProxy(oldKey); + if (key != oldKey) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, tdlPackage.ANNOTATION__KEY, oldKey, key)); + } + } + return key; + } + + /** + * + * + * @generated + */ + public AnnotationType basicGetKey() + { + return key; + } + + /** + * + * + * @generated + */ + @Override + public void setKey(AnnotationType newKey) + { + AnnotationType oldKey = key; + key = newKey; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.ANNOTATION__KEY, oldKey, key)); + } + + /** + * + * + * @generated + */ + @Override + public Element getAnnotatedElement() + { + if (eContainerFeatureID() != tdlPackage.ANNOTATION__ANNOTATED_ELEMENT) return null; + return (Element)eInternalContainer(); + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetAnnotatedElement(Element newAnnotatedElement, NotificationChain msgs) + { + msgs = eBasicSetContainer((InternalEObject)newAnnotatedElement, tdlPackage.ANNOTATION__ANNOTATED_ELEMENT, msgs); + return msgs; + } + + /** + * + * + * @generated + */ + @Override + public void setAnnotatedElement(Element newAnnotatedElement) + { + if (newAnnotatedElement != eInternalContainer() || (eContainerFeatureID() != tdlPackage.ANNOTATION__ANNOTATED_ELEMENT && newAnnotatedElement != null)) + { + if (EcoreUtil.isAncestor(this, newAnnotatedElement)) + throw new IllegalArgumentException("Recursive containment not allowed for " + toString()); + NotificationChain msgs = null; + if (eInternalContainer() != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newAnnotatedElement != null) + msgs = ((InternalEObject)newAnnotatedElement).eInverseAdd(this, tdlPackage.ELEMENT__ANNOTATION, Element.class, msgs); + msgs = basicSetAnnotatedElement(newAnnotatedElement, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.ANNOTATION__ANNOTATED_ELEMENT, newAnnotatedElement, newAnnotatedElement)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case tdlPackage.ANNOTATION__ANNOTATED_ELEMENT: + if (eInternalContainer() != null) + msgs = eBasicRemoveFromContainer(msgs); + return basicSetAnnotatedElement((Element)otherEnd, msgs); + } + return super.eInverseAdd(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case tdlPackage.ANNOTATION__ANNOTATED_ELEMENT: + return basicSetAnnotatedElement(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) + { + switch (eContainerFeatureID()) + { + case tdlPackage.ANNOTATION__ANNOTATED_ELEMENT: + return eInternalContainer().eInverseRemove(this, tdlPackage.ELEMENT__ANNOTATION, Element.class, msgs); + } + return super.eBasicRemoveFromContainerFeature(msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case tdlPackage.ANNOTATION__VALUE: + return getValue(); + case tdlPackage.ANNOTATION__KEY: + if (resolve) return getKey(); + return basicGetKey(); + case tdlPackage.ANNOTATION__ANNOTATED_ELEMENT: + return getAnnotatedElement(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case tdlPackage.ANNOTATION__VALUE: + setValue((String)newValue); + return; + case tdlPackage.ANNOTATION__KEY: + setKey((AnnotationType)newValue); + return; + case tdlPackage.ANNOTATION__ANNOTATED_ELEMENT: + setAnnotatedElement((Element)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case tdlPackage.ANNOTATION__VALUE: + setValue(VALUE_EDEFAULT); + return; + case tdlPackage.ANNOTATION__KEY: + setKey((AnnotationType)null); + return; + case tdlPackage.ANNOTATION__ANNOTATED_ELEMENT: + setAnnotatedElement((Element)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case tdlPackage.ANNOTATION__VALUE: + return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value); + case tdlPackage.ANNOTATION__KEY: + return key != null; + case tdlPackage.ANNOTATION__ANNOTATED_ELEMENT: + return getAnnotatedElement() != null; + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuilder result = new StringBuilder(super.toString()); + result.append(" (value: "); + result.append(value); + result.append(')'); + return result.toString(); + } + +} //AnnotationImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/AnnotationTypeImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/AnnotationTypeImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..1dedabac3fa0e03701a52ec15db411b129a8203b --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/AnnotationTypeImpl.java @@ -0,0 +1,195 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.etsi.mts.tdl.AnnotationType; +import org.etsi.mts.tdl.Extension; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Annotation Type'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.impl.AnnotationTypeImpl#getExtension Extension}
  • + *
+ * + * @generated + */ +public class AnnotationTypeImpl extends PackageableElementImpl implements AnnotationType +{ + /** + * The cached value of the '{@link #getExtension() Extension}' containment reference. + * + * + * @see #getExtension() + * @generated + * @ordered + */ + protected Extension extension; + + /** + * + * + * @generated + */ + protected AnnotationTypeImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.ANNOTATION_TYPE; + } + + /** + * + * + * @generated + */ + @Override + public Extension getExtension() + { + return extension; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetExtension(Extension newExtension, NotificationChain msgs) + { + Extension oldExtension = extension; + extension = newExtension; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, tdlPackage.ANNOTATION_TYPE__EXTENSION, oldExtension, newExtension); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + @Override + public void setExtension(Extension newExtension) + { + if (newExtension != extension) + { + NotificationChain msgs = null; + if (extension != null) + msgs = ((InternalEObject)extension).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - tdlPackage.ANNOTATION_TYPE__EXTENSION, null, msgs); + if (newExtension != null) + msgs = ((InternalEObject)newExtension).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - tdlPackage.ANNOTATION_TYPE__EXTENSION, null, msgs); + msgs = basicSetExtension(newExtension, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.ANNOTATION_TYPE__EXTENSION, newExtension, newExtension)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case tdlPackage.ANNOTATION_TYPE__EXTENSION: + return basicSetExtension(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case tdlPackage.ANNOTATION_TYPE__EXTENSION: + return getExtension(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case tdlPackage.ANNOTATION_TYPE__EXTENSION: + setExtension((Extension)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case tdlPackage.ANNOTATION_TYPE__EXTENSION: + setExtension((Extension)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case tdlPackage.ANNOTATION_TYPE__EXTENSION: + return extension != null; + } + return super.eIsSet(featureID); + } + +} //AnnotationTypeImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/AnyValueImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/AnyValueImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..362fd761d6c6cf273b4644d11621aac2f8666acc --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/AnyValueImpl.java @@ -0,0 +1,253 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import java.lang.reflect.InvocationTargetException; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.common.util.WrappedException; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EOperation; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.etsi.mts.tdl.AnyValue; +import org.etsi.mts.tdl.DataType; +import org.etsi.mts.tdl.DataUse; +import org.etsi.mts.tdl.SpecialValueUse; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Any Value'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.impl.AnyValueImpl#getDataType Data Type}
  • + *
+ * + * @generated + */ +public class AnyValueImpl extends SpecialValueUseImpl implements AnyValue +{ + /** + * The cached value of the '{@link #getDataType() Data Type}' reference. + * + * + * @see #getDataType() + * @generated + * @ordered + */ + protected DataType dataType; + + /** + * + * + * @generated + */ + protected AnyValueImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.ANY_VALUE; + } + + /** + * + * + * @generated + */ + @Override + public DataType getDataType() + { + if (dataType != null && dataType.eIsProxy()) + { + InternalEObject oldDataType = (InternalEObject)dataType; + dataType = (DataType)eResolveProxy(oldDataType); + if (dataType != oldDataType) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, tdlPackage.ANY_VALUE__DATA_TYPE, oldDataType, dataType)); + } + } + return dataType; + } + + /** + * + * + * @generated + */ + public DataType basicGetDataType() + { + return dataType; + } + + /** + * + * + * @generated + */ + @Override + public void setDataType(DataType newDataType) + { + DataType oldDataType = dataType; + dataType = newDataType; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.ANY_VALUE__DATA_TYPE, oldDataType, dataType)); + } + + /** + * The cached invocation delegate for the '{@link #resolveDataType() Resolve Data Type}' operation. + * + * + * @see #resolveDataType() + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate RESOLVE_DATA_TYPE__EINVOCATION_DELEGATE = ((EOperation.Internal)tdlPackage.Literals.ANY_VALUE___RESOLVE_DATA_TYPE).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @Override + public DataType resolveDataType() + { + try + { + return (DataType)RESOLVE_DATA_TYPE__EINVOCATION_DELEGATE.dynamicInvoke(this, null); + } + catch (InvocationTargetException ite) + { + throw new WrappedException(ite); + } + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case tdlPackage.ANY_VALUE__DATA_TYPE: + if (resolve) return getDataType(); + return basicGetDataType(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case tdlPackage.ANY_VALUE__DATA_TYPE: + setDataType((DataType)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case tdlPackage.ANY_VALUE__DATA_TYPE: + setDataType((DataType)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case tdlPackage.ANY_VALUE__DATA_TYPE: + return dataType != null; + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public int eDerivedOperationID(int baseOperationID, Class baseClass) + { + if (baseClass == DataUse.class) + { + switch (baseOperationID) + { + case tdlPackage.DATA_USE___RESOLVE_DATA_TYPE: return tdlPackage.ANY_VALUE___RESOLVE_DATA_TYPE; + default: return super.eDerivedOperationID(baseOperationID, baseClass); + } + } + if (baseClass == SpecialValueUse.class) + { + switch (baseOperationID) + { + case tdlPackage.SPECIAL_VALUE_USE___RESOLVE_DATA_TYPE: return tdlPackage.ANY_VALUE___RESOLVE_DATA_TYPE; + default: return super.eDerivedOperationID(baseOperationID, baseClass); + } + } + return super.eDerivedOperationID(baseOperationID, baseClass); + } + + /** + * + * + * @generated + */ + @Override + public Object eInvoke(int operationID, EList arguments) throws InvocationTargetException + { + switch (operationID) + { + case tdlPackage.ANY_VALUE___RESOLVE_DATA_TYPE: + return resolveDataType(); + } + return super.eInvoke(operationID, arguments); + } + +} //AnyValueImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/AnyValueOrOmitImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/AnyValueOrOmitImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..28313d30294618dbc74155024de7cf0a0227c30b --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/AnyValueOrOmitImpl.java @@ -0,0 +1,40 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.etsi.mts.tdl.AnyValueOrOmit; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Any Value Or Omit'. + * + * + * @generated + */ +public class AnyValueOrOmitImpl extends SpecialValueUseImpl implements AnyValueOrOmit +{ + /** + * + * + * @generated + */ + protected AnyValueOrOmitImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.ANY_VALUE_OR_OMIT; + } + +} //AnyValueOrOmitImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/AssertionImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/AssertionImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..37ba40f932b39375ed8237e43d5be16fa484ed15 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/AssertionImpl.java @@ -0,0 +1,268 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.etsi.mts.tdl.Assertion; +import org.etsi.mts.tdl.DataUse; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Assertion'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.impl.AssertionImpl#getOtherwise Otherwise}
  • + *
  • {@link org.etsi.mts.tdl.impl.AssertionImpl#getCondition Condition}
  • + *
+ * + * @generated + */ +public class AssertionImpl extends ActionBehaviourImpl implements Assertion +{ + /** + * The cached value of the '{@link #getOtherwise() Otherwise}' containment reference. + * + * + * @see #getOtherwise() + * @generated + * @ordered + */ + protected DataUse otherwise; + + /** + * The cached value of the '{@link #getCondition() Condition}' containment reference. + * + * + * @see #getCondition() + * @generated + * @ordered + */ + protected DataUse condition; + + /** + * + * + * @generated + */ + protected AssertionImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.ASSERTION; + } + + /** + * + * + * @generated + */ + @Override + public DataUse getOtherwise() + { + return otherwise; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetOtherwise(DataUse newOtherwise, NotificationChain msgs) + { + DataUse oldOtherwise = otherwise; + otherwise = newOtherwise; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, tdlPackage.ASSERTION__OTHERWISE, oldOtherwise, newOtherwise); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + @Override + public void setOtherwise(DataUse newOtherwise) + { + if (newOtherwise != otherwise) + { + NotificationChain msgs = null; + if (otherwise != null) + msgs = ((InternalEObject)otherwise).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - tdlPackage.ASSERTION__OTHERWISE, null, msgs); + if (newOtherwise != null) + msgs = ((InternalEObject)newOtherwise).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - tdlPackage.ASSERTION__OTHERWISE, null, msgs); + msgs = basicSetOtherwise(newOtherwise, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.ASSERTION__OTHERWISE, newOtherwise, newOtherwise)); + } + + /** + * + * + * @generated + */ + @Override + public DataUse getCondition() + { + return condition; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetCondition(DataUse newCondition, NotificationChain msgs) + { + DataUse oldCondition = condition; + condition = newCondition; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, tdlPackage.ASSERTION__CONDITION, oldCondition, newCondition); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + @Override + public void setCondition(DataUse newCondition) + { + if (newCondition != condition) + { + NotificationChain msgs = null; + if (condition != null) + msgs = ((InternalEObject)condition).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - tdlPackage.ASSERTION__CONDITION, null, msgs); + if (newCondition != null) + msgs = ((InternalEObject)newCondition).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - tdlPackage.ASSERTION__CONDITION, null, msgs); + msgs = basicSetCondition(newCondition, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.ASSERTION__CONDITION, newCondition, newCondition)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case tdlPackage.ASSERTION__OTHERWISE: + return basicSetOtherwise(null, msgs); + case tdlPackage.ASSERTION__CONDITION: + return basicSetCondition(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case tdlPackage.ASSERTION__OTHERWISE: + return getOtherwise(); + case tdlPackage.ASSERTION__CONDITION: + return getCondition(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case tdlPackage.ASSERTION__OTHERWISE: + setOtherwise((DataUse)newValue); + return; + case tdlPackage.ASSERTION__CONDITION: + setCondition((DataUse)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case tdlPackage.ASSERTION__OTHERWISE: + setOtherwise((DataUse)null); + return; + case tdlPackage.ASSERTION__CONDITION: + setCondition((DataUse)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case tdlPackage.ASSERTION__OTHERWISE: + return otherwise != null; + case tdlPackage.ASSERTION__CONDITION: + return condition != null; + } + return super.eIsSet(featureID); + } + +} //AssertionImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/AssignmentImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/AssignmentImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..4d9908183f6522939c95d381681f3459cf00b0b6 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/AssignmentImpl.java @@ -0,0 +1,350 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import java.lang.reflect.InvocationTargetException; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.common.util.WrappedException; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EOperation; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.etsi.mts.tdl.Assignment; +import org.etsi.mts.tdl.AtomicBehaviour; +import org.etsi.mts.tdl.Behaviour; +import org.etsi.mts.tdl.ComponentInstance; +import org.etsi.mts.tdl.DataUse; +import org.etsi.mts.tdl.VariableUse; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Assignment'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.impl.AssignmentImpl#getVariable Variable}
  • + *
  • {@link org.etsi.mts.tdl.impl.AssignmentImpl#getExpression Expression}
  • + *
+ * + * @generated + */ +public class AssignmentImpl extends AtomicBehaviourImpl implements Assignment +{ + /** + * The cached value of the '{@link #getVariable() Variable}' containment reference. + * + * + * @see #getVariable() + * @generated + * @ordered + */ + protected VariableUse variable; + + /** + * The cached value of the '{@link #getExpression() Expression}' containment reference. + * + * + * @see #getExpression() + * @generated + * @ordered + */ + protected DataUse expression; + + /** + * + * + * @generated + */ + protected AssignmentImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.ASSIGNMENT; + } + + /** + * + * + * @generated + */ + @Override + public VariableUse getVariable() + { + return variable; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetVariable(VariableUse newVariable, NotificationChain msgs) + { + VariableUse oldVariable = variable; + variable = newVariable; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, tdlPackage.ASSIGNMENT__VARIABLE, oldVariable, newVariable); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + @Override + public void setVariable(VariableUse newVariable) + { + if (newVariable != variable) + { + NotificationChain msgs = null; + if (variable != null) + msgs = ((InternalEObject)variable).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - tdlPackage.ASSIGNMENT__VARIABLE, null, msgs); + if (newVariable != null) + msgs = ((InternalEObject)newVariable).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - tdlPackage.ASSIGNMENT__VARIABLE, null, msgs); + msgs = basicSetVariable(newVariable, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.ASSIGNMENT__VARIABLE, newVariable, newVariable)); + } + + /** + * + * + * @generated + */ + @Override + public DataUse getExpression() + { + return expression; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetExpression(DataUse newExpression, NotificationChain msgs) + { + DataUse oldExpression = expression; + expression = newExpression; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, tdlPackage.ASSIGNMENT__EXPRESSION, oldExpression, newExpression); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + @Override + public void setExpression(DataUse newExpression) + { + if (newExpression != expression) + { + NotificationChain msgs = null; + if (expression != null) + msgs = ((InternalEObject)expression).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - tdlPackage.ASSIGNMENT__EXPRESSION, null, msgs); + if (newExpression != null) + msgs = ((InternalEObject)newExpression).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - tdlPackage.ASSIGNMENT__EXPRESSION, null, msgs); + msgs = basicSetExpression(newExpression, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.ASSIGNMENT__EXPRESSION, newExpression, newExpression)); + } + + /** + * The cached invocation delegate for the '{@link #getParticipatingComponents() Get Participating Components}' operation. + * + * + * @see #getParticipatingComponents() + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate GET_PARTICIPATING_COMPONENTS__EINVOCATION_DELEGATE = ((EOperation.Internal)tdlPackage.Literals.ASSIGNMENT___GET_PARTICIPATING_COMPONENTS).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getParticipatingComponents() + { + try + { + return (EList)GET_PARTICIPATING_COMPONENTS__EINVOCATION_DELEGATE.dynamicInvoke(this, null); + } + catch (InvocationTargetException ite) + { + throw new WrappedException(ite); + } + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case tdlPackage.ASSIGNMENT__VARIABLE: + return basicSetVariable(null, msgs); + case tdlPackage.ASSIGNMENT__EXPRESSION: + return basicSetExpression(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case tdlPackage.ASSIGNMENT__VARIABLE: + return getVariable(); + case tdlPackage.ASSIGNMENT__EXPRESSION: + return getExpression(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case tdlPackage.ASSIGNMENT__VARIABLE: + setVariable((VariableUse)newValue); + return; + case tdlPackage.ASSIGNMENT__EXPRESSION: + setExpression((DataUse)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case tdlPackage.ASSIGNMENT__VARIABLE: + setVariable((VariableUse)null); + return; + case tdlPackage.ASSIGNMENT__EXPRESSION: + setExpression((DataUse)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case tdlPackage.ASSIGNMENT__VARIABLE: + return variable != null; + case tdlPackage.ASSIGNMENT__EXPRESSION: + return expression != null; + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public int eDerivedOperationID(int baseOperationID, Class baseClass) + { + if (baseClass == Behaviour.class) + { + switch (baseOperationID) + { + case tdlPackage.BEHAVIOUR___GET_PARTICIPATING_COMPONENTS: return tdlPackage.ASSIGNMENT___GET_PARTICIPATING_COMPONENTS; + default: return super.eDerivedOperationID(baseOperationID, baseClass); + } + } + if (baseClass == AtomicBehaviour.class) + { + switch (baseOperationID) + { + case tdlPackage.ATOMIC_BEHAVIOUR___GET_PARTICIPATING_COMPONENTS: return tdlPackage.ASSIGNMENT___GET_PARTICIPATING_COMPONENTS; + default: return super.eDerivedOperationID(baseOperationID, baseClass); + } + } + return super.eDerivedOperationID(baseOperationID, baseClass); + } + + /** + * + * + * @generated + */ + @Override + public Object eInvoke(int operationID, EList arguments) throws InvocationTargetException + { + switch (operationID) + { + case tdlPackage.ASSIGNMENT___GET_PARTICIPATING_COMPONENTS: + return getParticipatingComponents(); + } + return super.eInvoke(operationID, arguments); + } + +} //AssignmentImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/AtomicBehaviourImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/AtomicBehaviourImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..661d8d9512d7fd3a7fcc501622ee9c4642b90ba7 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/AtomicBehaviourImpl.java @@ -0,0 +1,313 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import java.lang.reflect.InvocationTargetException; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.common.util.WrappedException; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EOperation; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.etsi.mts.tdl.AtomicBehaviour; +import org.etsi.mts.tdl.Behaviour; +import org.etsi.mts.tdl.ComponentInstance; +import org.etsi.mts.tdl.TimeConstraint; +import org.etsi.mts.tdl.TimeLabel; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Atomic Behaviour'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.impl.AtomicBehaviourImpl#getTimeConstraint Time Constraint}
  • + *
  • {@link org.etsi.mts.tdl.impl.AtomicBehaviourImpl#getTimeLabel Time Label}
  • + *
+ * + * @generated + */ +public abstract class AtomicBehaviourImpl extends BehaviourImpl implements AtomicBehaviour +{ + /** + * The cached value of the '{@link #getTimeConstraint() Time Constraint}' containment reference list. + * + * + * @see #getTimeConstraint() + * @generated + * @ordered + */ + protected EList timeConstraint; + + /** + * The cached value of the '{@link #getTimeLabel() Time Label}' containment reference. + * + * + * @see #getTimeLabel() + * @generated + * @ordered + */ + protected TimeLabel timeLabel; + + /** + * + * + * @generated + */ + protected AtomicBehaviourImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.ATOMIC_BEHAVIOUR; + } + + /** + * + * + * @generated + */ + @Override + public EList getTimeConstraint() + { + if (timeConstraint == null) + { + timeConstraint = new EObjectContainmentEList(TimeConstraint.class, this, tdlPackage.ATOMIC_BEHAVIOUR__TIME_CONSTRAINT); + } + return timeConstraint; + } + + /** + * + * + * @generated + */ + @Override + public TimeLabel getTimeLabel() + { + return timeLabel; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetTimeLabel(TimeLabel newTimeLabel, NotificationChain msgs) + { + TimeLabel oldTimeLabel = timeLabel; + timeLabel = newTimeLabel; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, tdlPackage.ATOMIC_BEHAVIOUR__TIME_LABEL, oldTimeLabel, newTimeLabel); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + @Override + public void setTimeLabel(TimeLabel newTimeLabel) + { + if (newTimeLabel != timeLabel) + { + NotificationChain msgs = null; + if (timeLabel != null) + msgs = ((InternalEObject)timeLabel).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - tdlPackage.ATOMIC_BEHAVIOUR__TIME_LABEL, null, msgs); + if (newTimeLabel != null) + msgs = ((InternalEObject)newTimeLabel).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - tdlPackage.ATOMIC_BEHAVIOUR__TIME_LABEL, null, msgs); + msgs = basicSetTimeLabel(newTimeLabel, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.ATOMIC_BEHAVIOUR__TIME_LABEL, newTimeLabel, newTimeLabel)); + } + + /** + * The cached invocation delegate for the '{@link #getParticipatingComponents() Get Participating Components}' operation. + * + * + * @see #getParticipatingComponents() + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate GET_PARTICIPATING_COMPONENTS__EINVOCATION_DELEGATE = ((EOperation.Internal)tdlPackage.Literals.ATOMIC_BEHAVIOUR___GET_PARTICIPATING_COMPONENTS).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getParticipatingComponents() + { + try + { + return (EList)GET_PARTICIPATING_COMPONENTS__EINVOCATION_DELEGATE.dynamicInvoke(this, null); + } + catch (InvocationTargetException ite) + { + throw new WrappedException(ite); + } + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case tdlPackage.ATOMIC_BEHAVIOUR__TIME_CONSTRAINT: + return ((InternalEList)getTimeConstraint()).basicRemove(otherEnd, msgs); + case tdlPackage.ATOMIC_BEHAVIOUR__TIME_LABEL: + return basicSetTimeLabel(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case tdlPackage.ATOMIC_BEHAVIOUR__TIME_CONSTRAINT: + return getTimeConstraint(); + case tdlPackage.ATOMIC_BEHAVIOUR__TIME_LABEL: + return getTimeLabel(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case tdlPackage.ATOMIC_BEHAVIOUR__TIME_CONSTRAINT: + getTimeConstraint().clear(); + getTimeConstraint().addAll((Collection)newValue); + return; + case tdlPackage.ATOMIC_BEHAVIOUR__TIME_LABEL: + setTimeLabel((TimeLabel)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case tdlPackage.ATOMIC_BEHAVIOUR__TIME_CONSTRAINT: + getTimeConstraint().clear(); + return; + case tdlPackage.ATOMIC_BEHAVIOUR__TIME_LABEL: + setTimeLabel((TimeLabel)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case tdlPackage.ATOMIC_BEHAVIOUR__TIME_CONSTRAINT: + return timeConstraint != null && !timeConstraint.isEmpty(); + case tdlPackage.ATOMIC_BEHAVIOUR__TIME_LABEL: + return timeLabel != null; + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public int eDerivedOperationID(int baseOperationID, Class baseClass) + { + if (baseClass == Behaviour.class) + { + switch (baseOperationID) + { + case tdlPackage.BEHAVIOUR___GET_PARTICIPATING_COMPONENTS: return tdlPackage.ATOMIC_BEHAVIOUR___GET_PARTICIPATING_COMPONENTS; + default: return super.eDerivedOperationID(baseOperationID, baseClass); + } + } + return super.eDerivedOperationID(baseOperationID, baseClass); + } + + /** + * + * + * @generated + */ + @Override + public Object eInvoke(int operationID, EList arguments) throws InvocationTargetException + { + switch (operationID) + { + case tdlPackage.ATOMIC_BEHAVIOUR___GET_PARTICIPATING_COMPONENTS: + return getParticipatingComponents(); + } + return super.eInvoke(operationID, arguments); + } + +} //AtomicBehaviourImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/BehaviourDescriptionImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/BehaviourDescriptionImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..d96be42974a01fa86eb2f90f7610e6b613914497 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/BehaviourDescriptionImpl.java @@ -0,0 +1,195 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.etsi.mts.tdl.Behaviour; +import org.etsi.mts.tdl.BehaviourDescription; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Behaviour Description'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.impl.BehaviourDescriptionImpl#getBehaviour Behaviour}
  • + *
+ * + * @generated + */ +public class BehaviourDescriptionImpl extends ElementImpl implements BehaviourDescription +{ + /** + * The cached value of the '{@link #getBehaviour() Behaviour}' containment reference. + * + * + * @see #getBehaviour() + * @generated + * @ordered + */ + protected Behaviour behaviour; + + /** + * + * + * @generated + */ + protected BehaviourDescriptionImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.BEHAVIOUR_DESCRIPTION; + } + + /** + * + * + * @generated + */ + @Override + public Behaviour getBehaviour() + { + return behaviour; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetBehaviour(Behaviour newBehaviour, NotificationChain msgs) + { + Behaviour oldBehaviour = behaviour; + behaviour = newBehaviour; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, tdlPackage.BEHAVIOUR_DESCRIPTION__BEHAVIOUR, oldBehaviour, newBehaviour); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + @Override + public void setBehaviour(Behaviour newBehaviour) + { + if (newBehaviour != behaviour) + { + NotificationChain msgs = null; + if (behaviour != null) + msgs = ((InternalEObject)behaviour).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - tdlPackage.BEHAVIOUR_DESCRIPTION__BEHAVIOUR, null, msgs); + if (newBehaviour != null) + msgs = ((InternalEObject)newBehaviour).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - tdlPackage.BEHAVIOUR_DESCRIPTION__BEHAVIOUR, null, msgs); + msgs = basicSetBehaviour(newBehaviour, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.BEHAVIOUR_DESCRIPTION__BEHAVIOUR, newBehaviour, newBehaviour)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case tdlPackage.BEHAVIOUR_DESCRIPTION__BEHAVIOUR: + return basicSetBehaviour(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case tdlPackage.BEHAVIOUR_DESCRIPTION__BEHAVIOUR: + return getBehaviour(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case tdlPackage.BEHAVIOUR_DESCRIPTION__BEHAVIOUR: + setBehaviour((Behaviour)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case tdlPackage.BEHAVIOUR_DESCRIPTION__BEHAVIOUR: + setBehaviour((Behaviour)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case tdlPackage.BEHAVIOUR_DESCRIPTION__BEHAVIOUR: + return behaviour != null; + } + return super.eIsSet(featureID); + } + +} //BehaviourDescriptionImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/BehaviourImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/BehaviourImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..6601954f6f4ce98818fd31950c0c6d2e623f597b --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/BehaviourImpl.java @@ -0,0 +1,226 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import java.lang.reflect.InvocationTargetException; + +import java.util.Collection; + +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.common.util.WrappedException; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EOperation; + +import org.eclipse.emf.ecore.util.EObjectResolvingEList; + +import org.etsi.mts.tdl.Behaviour; +import org.etsi.mts.tdl.ComponentInstance; +import org.etsi.mts.tdl.TestObjective; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Behaviour'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.impl.BehaviourImpl#getTestObjective Test Objective}
  • + *
+ * + * @generated + */ +public abstract class BehaviourImpl extends ElementImpl implements Behaviour +{ + /** + * The cached value of the '{@link #getTestObjective() Test Objective}' reference list. + * + * + * @see #getTestObjective() + * @generated + * @ordered + */ + protected EList testObjective; + + /** + * + * + * @generated + */ + protected BehaviourImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.BEHAVIOUR; + } + + /** + * + * + * @generated + */ + @Override + public EList getTestObjective() + { + if (testObjective == null) + { + testObjective = new EObjectResolvingEList(TestObjective.class, this, tdlPackage.BEHAVIOUR__TEST_OBJECTIVE); + } + return testObjective; + } + + /** + * The cached invocation delegate for the '{@link #isTesterInputEvent() Is Tester Input Event}' operation. + * + * + * @see #isTesterInputEvent() + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate IS_TESTER_INPUT_EVENT__EINVOCATION_DELEGATE = ((EOperation.Internal)tdlPackage.Literals.BEHAVIOUR___IS_TESTER_INPUT_EVENT).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @Override + public Boolean isTesterInputEvent() + { + try + { + return (Boolean)IS_TESTER_INPUT_EVENT__EINVOCATION_DELEGATE.dynamicInvoke(this, null); + } + catch (InvocationTargetException ite) + { + throw new WrappedException(ite); + } + } + + /** + * The cached invocation delegate for the '{@link #getParticipatingComponents() Get Participating Components}' operation. + * + * + * @see #getParticipatingComponents() + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate GET_PARTICIPATING_COMPONENTS__EINVOCATION_DELEGATE = ((EOperation.Internal)tdlPackage.Literals.BEHAVIOUR___GET_PARTICIPATING_COMPONENTS).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getParticipatingComponents() + { + try + { + return (EList)GET_PARTICIPATING_COMPONENTS__EINVOCATION_DELEGATE.dynamicInvoke(this, null); + } + catch (InvocationTargetException ite) + { + throw new WrappedException(ite); + } + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case tdlPackage.BEHAVIOUR__TEST_OBJECTIVE: + return getTestObjective(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case tdlPackage.BEHAVIOUR__TEST_OBJECTIVE: + getTestObjective().clear(); + getTestObjective().addAll((Collection)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case tdlPackage.BEHAVIOUR__TEST_OBJECTIVE: + getTestObjective().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case tdlPackage.BEHAVIOUR__TEST_OBJECTIVE: + return testObjective != null && !testObjective.isEmpty(); + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public Object eInvoke(int operationID, EList arguments) throws InvocationTargetException + { + switch (operationID) + { + case tdlPackage.BEHAVIOUR___IS_TESTER_INPUT_EVENT: + return isTesterInputEvent(); + case tdlPackage.BEHAVIOUR___GET_PARTICIPATING_COMPONENTS: + return getParticipatingComponents(); + } + return super.eInvoke(operationID, arguments); + } + +} //BehaviourImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/BlockImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/BlockImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..b5f2185ee1e9e23f9661f3e44de551ad02649533 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/BlockImpl.java @@ -0,0 +1,288 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import java.lang.reflect.InvocationTargetException; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.BasicEList; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.common.util.WrappedException; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EOperation; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.etsi.mts.tdl.Behaviour; +import org.etsi.mts.tdl.Block; +import org.etsi.mts.tdl.ComponentInstance; +import org.etsi.mts.tdl.LocalExpression; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Block'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.impl.BlockImpl#getBehaviour Behaviour}
  • + *
  • {@link org.etsi.mts.tdl.impl.BlockImpl#getGuard Guard}
  • + *
+ * + * @generated + */ +public class BlockImpl extends ElementImpl implements Block +{ + /** + * The cached value of the '{@link #getBehaviour() Behaviour}' containment reference list. + * + * + * @see #getBehaviour() + * @generated + * @ordered + */ + protected EList behaviour; + + /** + * The cached value of the '{@link #getGuard() Guard}' containment reference list. + * + * + * @see #getGuard() + * @generated + * @ordered + */ + protected EList guard; + + /** + * + * + * @generated + */ + protected BlockImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.BLOCK; + } + + /** + * + * + * @generated + */ + @Override + public EList getBehaviour() + { + if (behaviour == null) + { + behaviour = new EObjectContainmentEList(Behaviour.class, this, tdlPackage.BLOCK__BEHAVIOUR); + } + return behaviour; + } + + /** + * + * + * @generated + */ + @Override + public EList getGuard() + { + if (guard == null) + { + guard = new EObjectContainmentEList(LocalExpression.class, this, tdlPackage.BLOCK__GUARD); + } + return guard; + } + + /** + * The cached invocation delegate for the '{@link #getParticipatingComponents() Get Participating Components}' operation. + * + * + * @see #getParticipatingComponents() + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate GET_PARTICIPATING_COMPONENTS__EINVOCATION_DELEGATE = ((EOperation.Internal)tdlPackage.Literals.BLOCK___GET_PARTICIPATING_COMPONENTS).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getParticipatingComponents() + { + try + { + return (EList)GET_PARTICIPATING_COMPONENTS__EINVOCATION_DELEGATE.dynamicInvoke(this, null); + } + catch (InvocationTargetException ite) + { + throw new WrappedException(ite); + } + } + + /** + * The cached invocation delegate for the '{@link #getParticipatingComponentsExcluding(org.etsi.mts.tdl.Behaviour) Get Participating Components Excluding}' operation. + * + * + * @see #getParticipatingComponentsExcluding(org.etsi.mts.tdl.Behaviour) + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate GET_PARTICIPATING_COMPONENTS_EXCLUDING_BEHAVIOUR__EINVOCATION_DELEGATE = ((EOperation.Internal)tdlPackage.Literals.BLOCK___GET_PARTICIPATING_COMPONENTS_EXCLUDING__BEHAVIOUR).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getParticipatingComponentsExcluding(Behaviour excluded) + { + try + { + return (EList)GET_PARTICIPATING_COMPONENTS_EXCLUDING_BEHAVIOUR__EINVOCATION_DELEGATE.dynamicInvoke(this, new BasicEList.UnmodifiableEList(1, new Object[]{excluded})); + } + catch (InvocationTargetException ite) + { + throw new WrappedException(ite); + } + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case tdlPackage.BLOCK__BEHAVIOUR: + return ((InternalEList)getBehaviour()).basicRemove(otherEnd, msgs); + case tdlPackage.BLOCK__GUARD: + return ((InternalEList)getGuard()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case tdlPackage.BLOCK__BEHAVIOUR: + return getBehaviour(); + case tdlPackage.BLOCK__GUARD: + return getGuard(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case tdlPackage.BLOCK__BEHAVIOUR: + getBehaviour().clear(); + getBehaviour().addAll((Collection)newValue); + return; + case tdlPackage.BLOCK__GUARD: + getGuard().clear(); + getGuard().addAll((Collection)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case tdlPackage.BLOCK__BEHAVIOUR: + getBehaviour().clear(); + return; + case tdlPackage.BLOCK__GUARD: + getGuard().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case tdlPackage.BLOCK__BEHAVIOUR: + return behaviour != null && !behaviour.isEmpty(); + case tdlPackage.BLOCK__GUARD: + return guard != null && !guard.isEmpty(); + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public Object eInvoke(int operationID, EList arguments) throws InvocationTargetException + { + switch (operationID) + { + case tdlPackage.BLOCK___GET_PARTICIPATING_COMPONENTS: + return getParticipatingComponents(); + case tdlPackage.BLOCK___GET_PARTICIPATING_COMPONENTS_EXCLUDING__BEHAVIOUR: + return getParticipatingComponentsExcluding((Behaviour)arguments.get(0)); + } + return super.eInvoke(operationID, arguments); + } + +} //BlockImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/BoundedLoopBehaviourImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/BoundedLoopBehaviourImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..6b5b18c482980b476e8fbf2deba3cd205774bf4a --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/BoundedLoopBehaviourImpl.java @@ -0,0 +1,166 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.etsi.mts.tdl.BoundedLoopBehaviour; +import org.etsi.mts.tdl.LocalExpression; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Bounded Loop Behaviour'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.impl.BoundedLoopBehaviourImpl#getNumIteration Num Iteration}
  • + *
+ * + * @generated + */ +public class BoundedLoopBehaviourImpl extends SingleCombinedBehaviourImpl implements BoundedLoopBehaviour +{ + /** + * The cached value of the '{@link #getNumIteration() Num Iteration}' containment reference list. + * + * + * @see #getNumIteration() + * @generated + * @ordered + */ + protected EList numIteration; + + /** + * + * + * @generated + */ + protected BoundedLoopBehaviourImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.BOUNDED_LOOP_BEHAVIOUR; + } + + /** + * + * + * @generated + */ + @Override + public EList getNumIteration() + { + if (numIteration == null) + { + numIteration = new EObjectContainmentEList(LocalExpression.class, this, tdlPackage.BOUNDED_LOOP_BEHAVIOUR__NUM_ITERATION); + } + return numIteration; + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case tdlPackage.BOUNDED_LOOP_BEHAVIOUR__NUM_ITERATION: + return ((InternalEList)getNumIteration()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case tdlPackage.BOUNDED_LOOP_BEHAVIOUR__NUM_ITERATION: + return getNumIteration(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case tdlPackage.BOUNDED_LOOP_BEHAVIOUR__NUM_ITERATION: + getNumIteration().clear(); + getNumIteration().addAll((Collection)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case tdlPackage.BOUNDED_LOOP_BEHAVIOUR__NUM_ITERATION: + getNumIteration().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case tdlPackage.BOUNDED_LOOP_BEHAVIOUR__NUM_ITERATION: + return numIteration != null && !numIteration.isEmpty(); + } + return super.eIsSet(featureID); + } + +} //BoundedLoopBehaviourImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/BreakImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/BreakImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..f80d7945245f787e595a356e26cb1c2bd1a6173d --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/BreakImpl.java @@ -0,0 +1,40 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.etsi.mts.tdl.Break; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Break'. + * + * + * @generated + */ +public class BreakImpl extends AtomicBehaviourImpl implements Break +{ + /** + * + * + * @generated + */ + protected BreakImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.BREAK; + } + +} //BreakImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/CollectionDataInstanceImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/CollectionDataInstanceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..2c7a63c1ef97817bc3636912eebade5beb5c4882 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/CollectionDataInstanceImpl.java @@ -0,0 +1,243 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.etsi.mts.tdl.CollectionDataInstance; +import org.etsi.mts.tdl.DataUse; +import org.etsi.mts.tdl.UnassignedMemberTreatment; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Collection Data Instance'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.impl.CollectionDataInstanceImpl#getItem Item}
  • + *
  • {@link org.etsi.mts.tdl.impl.CollectionDataInstanceImpl#getUnassignedMember Unassigned Member}
  • + *
+ * + * @generated + */ +public class CollectionDataInstanceImpl extends DataInstanceImpl implements CollectionDataInstance +{ + /** + * The cached value of the '{@link #getItem() Item}' containment reference list. + * + * + * @see #getItem() + * @generated + * @ordered + */ + protected EList item; + + /** + * The default value of the '{@link #getUnassignedMember() Unassigned Member}' attribute. + * + * + * @see #getUnassignedMember() + * @generated + * @ordered + */ + protected static final UnassignedMemberTreatment UNASSIGNED_MEMBER_EDEFAULT = UnassignedMemberTreatment.UNDEFINED; + + /** + * The cached value of the '{@link #getUnassignedMember() Unassigned Member}' attribute. + * + * + * @see #getUnassignedMember() + * @generated + * @ordered + */ + protected UnassignedMemberTreatment unassignedMember = UNASSIGNED_MEMBER_EDEFAULT; + + /** + * + * + * @generated + */ + protected CollectionDataInstanceImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.COLLECTION_DATA_INSTANCE; + } + + /** + * + * + * @generated + */ + @Override + public EList getItem() + { + if (item == null) + { + item = new EObjectContainmentEList(DataUse.class, this, tdlPackage.COLLECTION_DATA_INSTANCE__ITEM); + } + return item; + } + + /** + * + * + * @generated + */ + @Override + public UnassignedMemberTreatment getUnassignedMember() + { + return unassignedMember; + } + + /** + * + * + * @generated + */ + @Override + public void setUnassignedMember(UnassignedMemberTreatment newUnassignedMember) + { + UnassignedMemberTreatment oldUnassignedMember = unassignedMember; + unassignedMember = newUnassignedMember == null ? UNASSIGNED_MEMBER_EDEFAULT : newUnassignedMember; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.COLLECTION_DATA_INSTANCE__UNASSIGNED_MEMBER, oldUnassignedMember, unassignedMember)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case tdlPackage.COLLECTION_DATA_INSTANCE__ITEM: + return ((InternalEList)getItem()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case tdlPackage.COLLECTION_DATA_INSTANCE__ITEM: + return getItem(); + case tdlPackage.COLLECTION_DATA_INSTANCE__UNASSIGNED_MEMBER: + return getUnassignedMember(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case tdlPackage.COLLECTION_DATA_INSTANCE__ITEM: + getItem().clear(); + getItem().addAll((Collection)newValue); + return; + case tdlPackage.COLLECTION_DATA_INSTANCE__UNASSIGNED_MEMBER: + setUnassignedMember((UnassignedMemberTreatment)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case tdlPackage.COLLECTION_DATA_INSTANCE__ITEM: + getItem().clear(); + return; + case tdlPackage.COLLECTION_DATA_INSTANCE__UNASSIGNED_MEMBER: + setUnassignedMember(UNASSIGNED_MEMBER_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case tdlPackage.COLLECTION_DATA_INSTANCE__ITEM: + return item != null && !item.isEmpty(); + case tdlPackage.COLLECTION_DATA_INSTANCE__UNASSIGNED_MEMBER: + return unassignedMember != UNASSIGNED_MEMBER_EDEFAULT; + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuilder result = new StringBuilder(super.toString()); + result.append(" (unassignedMember: "); + result.append(unassignedMember); + result.append(')'); + return result.toString(); + } + +} //CollectionDataInstanceImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/CollectionDataTypeImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/CollectionDataTypeImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..c185cdd0d0fa240c5923539f812700ac72029f10 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/CollectionDataTypeImpl.java @@ -0,0 +1,174 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.etsi.mts.tdl.CollectionDataType; +import org.etsi.mts.tdl.DataType; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Collection Data Type'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.impl.CollectionDataTypeImpl#getItemType Item Type}
  • + *
+ * + * @generated + */ +public class CollectionDataTypeImpl extends DataTypeImpl implements CollectionDataType +{ + /** + * The cached value of the '{@link #getItemType() Item Type}' reference. + * + * + * @see #getItemType() + * @generated + * @ordered + */ + protected DataType itemType; + + /** + * + * + * @generated + */ + protected CollectionDataTypeImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.COLLECTION_DATA_TYPE; + } + + /** + * + * + * @generated + */ + @Override + public DataType getItemType() + { + if (itemType != null && itemType.eIsProxy()) + { + InternalEObject oldItemType = (InternalEObject)itemType; + itemType = (DataType)eResolveProxy(oldItemType); + if (itemType != oldItemType) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, tdlPackage.COLLECTION_DATA_TYPE__ITEM_TYPE, oldItemType, itemType)); + } + } + return itemType; + } + + /** + * + * + * @generated + */ + public DataType basicGetItemType() + { + return itemType; + } + + /** + * + * + * @generated + */ + @Override + public void setItemType(DataType newItemType) + { + DataType oldItemType = itemType; + itemType = newItemType; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.COLLECTION_DATA_TYPE__ITEM_TYPE, oldItemType, itemType)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case tdlPackage.COLLECTION_DATA_TYPE__ITEM_TYPE: + if (resolve) return getItemType(); + return basicGetItemType(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case tdlPackage.COLLECTION_DATA_TYPE__ITEM_TYPE: + setItemType((DataType)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case tdlPackage.COLLECTION_DATA_TYPE__ITEM_TYPE: + setItemType((DataType)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case tdlPackage.COLLECTION_DATA_TYPE__ITEM_TYPE: + return itemType != null; + } + return super.eIsSet(featureID); + } + +} //CollectionDataTypeImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/CombinedBehaviourImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/CombinedBehaviourImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..4613d154935a1c8402f73416104937613599949a --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/CombinedBehaviourImpl.java @@ -0,0 +1,206 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.etsi.mts.tdl.CombinedBehaviour; +import org.etsi.mts.tdl.ExceptionalBehaviour; +import org.etsi.mts.tdl.PeriodicBehaviour; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Combined Behaviour'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.impl.CombinedBehaviourImpl#getPeriodic Periodic}
  • + *
  • {@link org.etsi.mts.tdl.impl.CombinedBehaviourImpl#getExceptional Exceptional}
  • + *
+ * + * @generated + */ +public abstract class CombinedBehaviourImpl extends BehaviourImpl implements CombinedBehaviour +{ + /** + * The cached value of the '{@link #getPeriodic() Periodic}' containment reference list. + * + * + * @see #getPeriodic() + * @generated + * @ordered + */ + protected EList periodic; + + /** + * The cached value of the '{@link #getExceptional() Exceptional}' containment reference list. + * + * + * @see #getExceptional() + * @generated + * @ordered + */ + protected EList exceptional; + + /** + * + * + * @generated + */ + protected CombinedBehaviourImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.COMBINED_BEHAVIOUR; + } + + /** + * + * + * @generated + */ + @Override + public EList getPeriodic() + { + if (periodic == null) + { + periodic = new EObjectContainmentEList(PeriodicBehaviour.class, this, tdlPackage.COMBINED_BEHAVIOUR__PERIODIC); + } + return periodic; + } + + /** + * + * + * @generated + */ + @Override + public EList getExceptional() + { + if (exceptional == null) + { + exceptional = new EObjectContainmentEList(ExceptionalBehaviour.class, this, tdlPackage.COMBINED_BEHAVIOUR__EXCEPTIONAL); + } + return exceptional; + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case tdlPackage.COMBINED_BEHAVIOUR__PERIODIC: + return ((InternalEList)getPeriodic()).basicRemove(otherEnd, msgs); + case tdlPackage.COMBINED_BEHAVIOUR__EXCEPTIONAL: + return ((InternalEList)getExceptional()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case tdlPackage.COMBINED_BEHAVIOUR__PERIODIC: + return getPeriodic(); + case tdlPackage.COMBINED_BEHAVIOUR__EXCEPTIONAL: + return getExceptional(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case tdlPackage.COMBINED_BEHAVIOUR__PERIODIC: + getPeriodic().clear(); + getPeriodic().addAll((Collection)newValue); + return; + case tdlPackage.COMBINED_BEHAVIOUR__EXCEPTIONAL: + getExceptional().clear(); + getExceptional().addAll((Collection)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case tdlPackage.COMBINED_BEHAVIOUR__PERIODIC: + getPeriodic().clear(); + return; + case tdlPackage.COMBINED_BEHAVIOUR__EXCEPTIONAL: + getExceptional().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case tdlPackage.COMBINED_BEHAVIOUR__PERIODIC: + return periodic != null && !periodic.isEmpty(); + case tdlPackage.COMBINED_BEHAVIOUR__EXCEPTIONAL: + return exceptional != null && !exceptional.isEmpty(); + } + return super.eIsSet(featureID); + } + +} //CombinedBehaviourImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/CommentImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/CommentImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..cad38afabe2535dcdfa0022f755deb1bc1c437fc --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/CommentImpl.java @@ -0,0 +1,291 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EcoreUtil; + +import org.etsi.mts.tdl.Comment; +import org.etsi.mts.tdl.Element; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Comment'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.impl.CommentImpl#getBody Body}
  • + *
  • {@link org.etsi.mts.tdl.impl.CommentImpl#getCommentedElement Commented Element}
  • + *
+ * + * @generated + */ +public class CommentImpl extends ElementImpl implements Comment +{ + /** + * The default value of the '{@link #getBody() Body}' attribute. + * + * + * @see #getBody() + * @generated + * @ordered + */ + protected static final String BODY_EDEFAULT = null; + + /** + * The cached value of the '{@link #getBody() Body}' attribute. + * + * + * @see #getBody() + * @generated + * @ordered + */ + protected String body = BODY_EDEFAULT; + + /** + * + * + * @generated + */ + protected CommentImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.COMMENT; + } + + /** + * + * + * @generated + */ + @Override + public String getBody() + { + return body; + } + + /** + * + * + * @generated + */ + @Override + public void setBody(String newBody) + { + String oldBody = body; + body = newBody; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.COMMENT__BODY, oldBody, body)); + } + + /** + * + * + * @generated + */ + @Override + public Element getCommentedElement() + { + if (eContainerFeatureID() != tdlPackage.COMMENT__COMMENTED_ELEMENT) return null; + return (Element)eInternalContainer(); + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetCommentedElement(Element newCommentedElement, NotificationChain msgs) + { + msgs = eBasicSetContainer((InternalEObject)newCommentedElement, tdlPackage.COMMENT__COMMENTED_ELEMENT, msgs); + return msgs; + } + + /** + * + * + * @generated + */ + @Override + public void setCommentedElement(Element newCommentedElement) + { + if (newCommentedElement != eInternalContainer() || (eContainerFeatureID() != tdlPackage.COMMENT__COMMENTED_ELEMENT && newCommentedElement != null)) + { + if (EcoreUtil.isAncestor(this, newCommentedElement)) + throw new IllegalArgumentException("Recursive containment not allowed for " + toString()); + NotificationChain msgs = null; + if (eInternalContainer() != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newCommentedElement != null) + msgs = ((InternalEObject)newCommentedElement).eInverseAdd(this, tdlPackage.ELEMENT__COMMENT, Element.class, msgs); + msgs = basicSetCommentedElement(newCommentedElement, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.COMMENT__COMMENTED_ELEMENT, newCommentedElement, newCommentedElement)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case tdlPackage.COMMENT__COMMENTED_ELEMENT: + if (eInternalContainer() != null) + msgs = eBasicRemoveFromContainer(msgs); + return basicSetCommentedElement((Element)otherEnd, msgs); + } + return super.eInverseAdd(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case tdlPackage.COMMENT__COMMENTED_ELEMENT: + return basicSetCommentedElement(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) + { + switch (eContainerFeatureID()) + { + case tdlPackage.COMMENT__COMMENTED_ELEMENT: + return eInternalContainer().eInverseRemove(this, tdlPackage.ELEMENT__COMMENT, Element.class, msgs); + } + return super.eBasicRemoveFromContainerFeature(msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case tdlPackage.COMMENT__BODY: + return getBody(); + case tdlPackage.COMMENT__COMMENTED_ELEMENT: + return getCommentedElement(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case tdlPackage.COMMENT__BODY: + setBody((String)newValue); + return; + case tdlPackage.COMMENT__COMMENTED_ELEMENT: + setCommentedElement((Element)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case tdlPackage.COMMENT__BODY: + setBody(BODY_EDEFAULT); + return; + case tdlPackage.COMMENT__COMMENTED_ELEMENT: + setCommentedElement((Element)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case tdlPackage.COMMENT__BODY: + return BODY_EDEFAULT == null ? body != null : !BODY_EDEFAULT.equals(body); + case tdlPackage.COMMENT__COMMENTED_ELEMENT: + return getCommentedElement() != null; + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuilder result = new StringBuilder(super.toString()); + result.append(" (body: "); + result.append(body); + result.append(')'); + return result.toString(); + } + +} //CommentImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/ComponentInstanceBindingImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/ComponentInstanceBindingImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..d3534c1b4d6db215b359812e1221660374ba138d --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/ComponentInstanceBindingImpl.java @@ -0,0 +1,241 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.etsi.mts.tdl.ComponentInstance; +import org.etsi.mts.tdl.ComponentInstanceBinding; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Component Instance Binding'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.impl.ComponentInstanceBindingImpl#getFormalComponent Formal Component}
  • + *
  • {@link org.etsi.mts.tdl.impl.ComponentInstanceBindingImpl#getActualComponent Actual Component}
  • + *
+ * + * @generated + */ +public class ComponentInstanceBindingImpl extends ElementImpl implements ComponentInstanceBinding +{ + /** + * The cached value of the '{@link #getFormalComponent() Formal Component}' reference. + * + * + * @see #getFormalComponent() + * @generated + * @ordered + */ + protected ComponentInstance formalComponent; + + /** + * The cached value of the '{@link #getActualComponent() Actual Component}' reference. + * + * + * @see #getActualComponent() + * @generated + * @ordered + */ + protected ComponentInstance actualComponent; + + /** + * + * + * @generated + */ + protected ComponentInstanceBindingImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.COMPONENT_INSTANCE_BINDING; + } + + /** + * + * + * @generated + */ + @Override + public ComponentInstance getFormalComponent() + { + if (formalComponent != null && formalComponent.eIsProxy()) + { + InternalEObject oldFormalComponent = (InternalEObject)formalComponent; + formalComponent = (ComponentInstance)eResolveProxy(oldFormalComponent); + if (formalComponent != oldFormalComponent) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, tdlPackage.COMPONENT_INSTANCE_BINDING__FORMAL_COMPONENT, oldFormalComponent, formalComponent)); + } + } + return formalComponent; + } + + /** + * + * + * @generated + */ + public ComponentInstance basicGetFormalComponent() + { + return formalComponent; + } + + /** + * + * + * @generated + */ + @Override + public void setFormalComponent(ComponentInstance newFormalComponent) + { + ComponentInstance oldFormalComponent = formalComponent; + formalComponent = newFormalComponent; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.COMPONENT_INSTANCE_BINDING__FORMAL_COMPONENT, oldFormalComponent, formalComponent)); + } + + /** + * + * + * @generated + */ + @Override + public ComponentInstance getActualComponent() + { + if (actualComponent != null && actualComponent.eIsProxy()) + { + InternalEObject oldActualComponent = (InternalEObject)actualComponent; + actualComponent = (ComponentInstance)eResolveProxy(oldActualComponent); + if (actualComponent != oldActualComponent) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, tdlPackage.COMPONENT_INSTANCE_BINDING__ACTUAL_COMPONENT, oldActualComponent, actualComponent)); + } + } + return actualComponent; + } + + /** + * + * + * @generated + */ + public ComponentInstance basicGetActualComponent() + { + return actualComponent; + } + + /** + * + * + * @generated + */ + @Override + public void setActualComponent(ComponentInstance newActualComponent) + { + ComponentInstance oldActualComponent = actualComponent; + actualComponent = newActualComponent; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.COMPONENT_INSTANCE_BINDING__ACTUAL_COMPONENT, oldActualComponent, actualComponent)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case tdlPackage.COMPONENT_INSTANCE_BINDING__FORMAL_COMPONENT: + if (resolve) return getFormalComponent(); + return basicGetFormalComponent(); + case tdlPackage.COMPONENT_INSTANCE_BINDING__ACTUAL_COMPONENT: + if (resolve) return getActualComponent(); + return basicGetActualComponent(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case tdlPackage.COMPONENT_INSTANCE_BINDING__FORMAL_COMPONENT: + setFormalComponent((ComponentInstance)newValue); + return; + case tdlPackage.COMPONENT_INSTANCE_BINDING__ACTUAL_COMPONENT: + setActualComponent((ComponentInstance)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case tdlPackage.COMPONENT_INSTANCE_BINDING__FORMAL_COMPONENT: + setFormalComponent((ComponentInstance)null); + return; + case tdlPackage.COMPONENT_INSTANCE_BINDING__ACTUAL_COMPONENT: + setActualComponent((ComponentInstance)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case tdlPackage.COMPONENT_INSTANCE_BINDING__FORMAL_COMPONENT: + return formalComponent != null; + case tdlPackage.COMPONENT_INSTANCE_BINDING__ACTUAL_COMPONENT: + return actualComponent != null; + } + return super.eIsSet(featureID); + } + +} //ComponentInstanceBindingImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/ComponentInstanceImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/ComponentInstanceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..38ed65d7c192e4ba3fc3b68b6a631cf19a59dd08 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/ComponentInstanceImpl.java @@ -0,0 +1,248 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.etsi.mts.tdl.ComponentInstance; +import org.etsi.mts.tdl.ComponentInstanceRole; +import org.etsi.mts.tdl.ComponentType; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Component Instance'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.impl.ComponentInstanceImpl#getType Type}
  • + *
  • {@link org.etsi.mts.tdl.impl.ComponentInstanceImpl#getRole Role}
  • + *
+ * + * @generated + */ +public class ComponentInstanceImpl extends NamedElementImpl implements ComponentInstance +{ + /** + * The cached value of the '{@link #getType() Type}' reference. + * + * + * @see #getType() + * @generated + * @ordered + */ + protected ComponentType type; + + /** + * The default value of the '{@link #getRole() Role}' attribute. + * + * + * @see #getRole() + * @generated + * @ordered + */ + protected static final ComponentInstanceRole ROLE_EDEFAULT = ComponentInstanceRole.SUT; + + /** + * The cached value of the '{@link #getRole() Role}' attribute. + * + * + * @see #getRole() + * @generated + * @ordered + */ + protected ComponentInstanceRole role = ROLE_EDEFAULT; + + /** + * + * + * @generated + */ + protected ComponentInstanceImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.COMPONENT_INSTANCE; + } + + /** + * + * + * @generated + */ + @Override + public ComponentType getType() + { + if (type != null && type.eIsProxy()) + { + InternalEObject oldType = (InternalEObject)type; + type = (ComponentType)eResolveProxy(oldType); + if (type != oldType) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, tdlPackage.COMPONENT_INSTANCE__TYPE, oldType, type)); + } + } + return type; + } + + /** + * + * + * @generated + */ + public ComponentType basicGetType() + { + return type; + } + + /** + * + * + * @generated + */ + @Override + public void setType(ComponentType newType) + { + ComponentType oldType = type; + type = newType; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.COMPONENT_INSTANCE__TYPE, oldType, type)); + } + + /** + * + * + * @generated + */ + @Override + public ComponentInstanceRole getRole() + { + return role; + } + + /** + * + * + * @generated + */ + @Override + public void setRole(ComponentInstanceRole newRole) + { + ComponentInstanceRole oldRole = role; + role = newRole == null ? ROLE_EDEFAULT : newRole; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.COMPONENT_INSTANCE__ROLE, oldRole, role)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case tdlPackage.COMPONENT_INSTANCE__TYPE: + if (resolve) return getType(); + return basicGetType(); + case tdlPackage.COMPONENT_INSTANCE__ROLE: + return getRole(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case tdlPackage.COMPONENT_INSTANCE__TYPE: + setType((ComponentType)newValue); + return; + case tdlPackage.COMPONENT_INSTANCE__ROLE: + setRole((ComponentInstanceRole)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case tdlPackage.COMPONENT_INSTANCE__TYPE: + setType((ComponentType)null); + return; + case tdlPackage.COMPONENT_INSTANCE__ROLE: + setRole(ROLE_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case tdlPackage.COMPONENT_INSTANCE__TYPE: + return type != null; + case tdlPackage.COMPONENT_INSTANCE__ROLE: + return role != ROLE_EDEFAULT; + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuilder result = new StringBuilder(super.toString()); + result.append(" (role: "); + result.append(role); + result.append(')'); + return result.toString(); + } + +} //ComponentInstanceImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/ComponentTypeImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/ComponentTypeImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..fb26e30febcb8918c9d897737942668276f0ecd2 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/ComponentTypeImpl.java @@ -0,0 +1,434 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import java.lang.reflect.InvocationTargetException; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.common.util.WrappedException; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EOperation; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.etsi.mts.tdl.ComponentType; +import org.etsi.mts.tdl.Extension; +import org.etsi.mts.tdl.GateInstance; +import org.etsi.mts.tdl.Timer; +import org.etsi.mts.tdl.Variable; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Component Type'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.impl.ComponentTypeImpl#getGateInstance Gate Instance}
  • + *
  • {@link org.etsi.mts.tdl.impl.ComponentTypeImpl#getTimer Timer}
  • + *
  • {@link org.etsi.mts.tdl.impl.ComponentTypeImpl#getVariable Variable}
  • + *
  • {@link org.etsi.mts.tdl.impl.ComponentTypeImpl#getExtension Extension}
  • + *
+ * + * @generated + */ +public class ComponentTypeImpl extends PackageableElementImpl implements ComponentType +{ + /** + * The cached value of the '{@link #getGateInstance() Gate Instance}' containment reference list. + * + * + * @see #getGateInstance() + * @generated + * @ordered + */ + protected EList gateInstance; + + /** + * The cached value of the '{@link #getTimer() Timer}' containment reference list. + * + * + * @see #getTimer() + * @generated + * @ordered + */ + protected EList timer; + + /** + * The cached value of the '{@link #getVariable() Variable}' containment reference list. + * + * + * @see #getVariable() + * @generated + * @ordered + */ + protected EList variable; + + /** + * The cached value of the '{@link #getExtension() Extension}' containment reference. + * + * + * @see #getExtension() + * @generated + * @ordered + */ + protected Extension extension; + + /** + * + * + * @generated + */ + protected ComponentTypeImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.COMPONENT_TYPE; + } + + /** + * + * + * @generated + */ + @Override + public EList getGateInstance() + { + if (gateInstance == null) + { + gateInstance = new EObjectContainmentEList(GateInstance.class, this, tdlPackage.COMPONENT_TYPE__GATE_INSTANCE); + } + return gateInstance; + } + + /** + * + * + * @generated + */ + @Override + public EList getTimer() + { + if (timer == null) + { + timer = new EObjectContainmentEList(Timer.class, this, tdlPackage.COMPONENT_TYPE__TIMER); + } + return timer; + } + + /** + * + * + * @generated + */ + @Override + public EList getVariable() + { + if (variable == null) + { + variable = new EObjectContainmentEList(Variable.class, this, tdlPackage.COMPONENT_TYPE__VARIABLE); + } + return variable; + } + + /** + * + * + * @generated + */ + @Override + public Extension getExtension() + { + return extension; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetExtension(Extension newExtension, NotificationChain msgs) + { + Extension oldExtension = extension; + extension = newExtension; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, tdlPackage.COMPONENT_TYPE__EXTENSION, oldExtension, newExtension); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + @Override + public void setExtension(Extension newExtension) + { + if (newExtension != extension) + { + NotificationChain msgs = null; + if (extension != null) + msgs = ((InternalEObject)extension).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - tdlPackage.COMPONENT_TYPE__EXTENSION, null, msgs); + if (newExtension != null) + msgs = ((InternalEObject)newExtension).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - tdlPackage.COMPONENT_TYPE__EXTENSION, null, msgs); + msgs = basicSetExtension(newExtension, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.COMPONENT_TYPE__EXTENSION, newExtension, newExtension)); + } + + /** + * The cached invocation delegate for the '{@link #allGates() All Gates}' operation. + * + * + * @see #allGates() + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate ALL_GATES__EINVOCATION_DELEGATE = ((EOperation.Internal)tdlPackage.Literals.COMPONENT_TYPE___ALL_GATES).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList allGates() + { + try + { + return (EList)ALL_GATES__EINVOCATION_DELEGATE.dynamicInvoke(this, null); + } + catch (InvocationTargetException ite) + { + throw new WrappedException(ite); + } + } + + /** + * The cached invocation delegate for the '{@link #allTimers() All Timers}' operation. + * + * + * @see #allTimers() + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate ALL_TIMERS__EINVOCATION_DELEGATE = ((EOperation.Internal)tdlPackage.Literals.COMPONENT_TYPE___ALL_TIMERS).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList allTimers() + { + try + { + return (EList)ALL_TIMERS__EINVOCATION_DELEGATE.dynamicInvoke(this, null); + } + catch (InvocationTargetException ite) + { + throw new WrappedException(ite); + } + } + + /** + * The cached invocation delegate for the '{@link #allVariables() All Variables}' operation. + * + * + * @see #allVariables() + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate ALL_VARIABLES__EINVOCATION_DELEGATE = ((EOperation.Internal)tdlPackage.Literals.COMPONENT_TYPE___ALL_VARIABLES).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList allVariables() + { + try + { + return (EList)ALL_VARIABLES__EINVOCATION_DELEGATE.dynamicInvoke(this, null); + } + catch (InvocationTargetException ite) + { + throw new WrappedException(ite); + } + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case tdlPackage.COMPONENT_TYPE__GATE_INSTANCE: + return ((InternalEList)getGateInstance()).basicRemove(otherEnd, msgs); + case tdlPackage.COMPONENT_TYPE__TIMER: + return ((InternalEList)getTimer()).basicRemove(otherEnd, msgs); + case tdlPackage.COMPONENT_TYPE__VARIABLE: + return ((InternalEList)getVariable()).basicRemove(otherEnd, msgs); + case tdlPackage.COMPONENT_TYPE__EXTENSION: + return basicSetExtension(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case tdlPackage.COMPONENT_TYPE__GATE_INSTANCE: + return getGateInstance(); + case tdlPackage.COMPONENT_TYPE__TIMER: + return getTimer(); + case tdlPackage.COMPONENT_TYPE__VARIABLE: + return getVariable(); + case tdlPackage.COMPONENT_TYPE__EXTENSION: + return getExtension(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case tdlPackage.COMPONENT_TYPE__GATE_INSTANCE: + getGateInstance().clear(); + getGateInstance().addAll((Collection)newValue); + return; + case tdlPackage.COMPONENT_TYPE__TIMER: + getTimer().clear(); + getTimer().addAll((Collection)newValue); + return; + case tdlPackage.COMPONENT_TYPE__VARIABLE: + getVariable().clear(); + getVariable().addAll((Collection)newValue); + return; + case tdlPackage.COMPONENT_TYPE__EXTENSION: + setExtension((Extension)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case tdlPackage.COMPONENT_TYPE__GATE_INSTANCE: + getGateInstance().clear(); + return; + case tdlPackage.COMPONENT_TYPE__TIMER: + getTimer().clear(); + return; + case tdlPackage.COMPONENT_TYPE__VARIABLE: + getVariable().clear(); + return; + case tdlPackage.COMPONENT_TYPE__EXTENSION: + setExtension((Extension)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case tdlPackage.COMPONENT_TYPE__GATE_INSTANCE: + return gateInstance != null && !gateInstance.isEmpty(); + case tdlPackage.COMPONENT_TYPE__TIMER: + return timer != null && !timer.isEmpty(); + case tdlPackage.COMPONENT_TYPE__VARIABLE: + return variable != null && !variable.isEmpty(); + case tdlPackage.COMPONENT_TYPE__EXTENSION: + return extension != null; + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public Object eInvoke(int operationID, EList arguments) throws InvocationTargetException + { + switch (operationID) + { + case tdlPackage.COMPONENT_TYPE___ALL_GATES: + return allGates(); + case tdlPackage.COMPONENT_TYPE___ALL_TIMERS: + return allTimers(); + case tdlPackage.COMPONENT_TYPE___ALL_VARIABLES: + return allVariables(); + } + return super.eInvoke(operationID, arguments); + } + +} //ComponentTypeImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/CompoundBehaviourImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/CompoundBehaviourImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..0ce9ca44f04c366d832799fb2a17116aaf0609d8 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/CompoundBehaviourImpl.java @@ -0,0 +1,40 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.etsi.mts.tdl.CompoundBehaviour; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Compound Behaviour'. + * + * + * @generated + */ +public class CompoundBehaviourImpl extends SingleCombinedBehaviourImpl implements CompoundBehaviour +{ + /** + * + * + * @generated + */ + protected CompoundBehaviourImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.COMPOUND_BEHAVIOUR; + } + +} //CompoundBehaviourImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/ConditionalBehaviourImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/ConditionalBehaviourImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..4742fb4539db21803169f96ad0b8f77d55204543 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/ConditionalBehaviourImpl.java @@ -0,0 +1,40 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.etsi.mts.tdl.ConditionalBehaviour; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Conditional Behaviour'. + * + * + * @generated + */ +public class ConditionalBehaviourImpl extends MultipleCombinedBehaviourImpl implements ConditionalBehaviour +{ + /** + * + * + * @generated + */ + protected ConditionalBehaviourImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.CONDITIONAL_BEHAVIOUR; + } + +} //ConditionalBehaviourImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/ConnectionImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/ConnectionImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..96b2710db5543c0d0546bd2a9ad4ee37f20d0d20 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/ConnectionImpl.java @@ -0,0 +1,166 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.etsi.mts.tdl.Connection; +import org.etsi.mts.tdl.GateReference; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Connection'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.impl.ConnectionImpl#getEndPoint End Point}
  • + *
+ * + * @generated + */ +public class ConnectionImpl extends ElementImpl implements Connection +{ + /** + * The cached value of the '{@link #getEndPoint() End Point}' containment reference list. + * + * + * @see #getEndPoint() + * @generated + * @ordered + */ + protected EList endPoint; + + /** + * + * + * @generated + */ + protected ConnectionImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.CONNECTION; + } + + /** + * + * + * @generated + */ + @Override + public EList getEndPoint() + { + if (endPoint == null) + { + endPoint = new EObjectContainmentEList(GateReference.class, this, tdlPackage.CONNECTION__END_POINT); + } + return endPoint; + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case tdlPackage.CONNECTION__END_POINT: + return ((InternalEList)getEndPoint()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case tdlPackage.CONNECTION__END_POINT: + return getEndPoint(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case tdlPackage.CONNECTION__END_POINT: + getEndPoint().clear(); + getEndPoint().addAll((Collection)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case tdlPackage.CONNECTION__END_POINT: + getEndPoint().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case tdlPackage.CONNECTION__END_POINT: + return endPoint != null && !endPoint.isEmpty(); + } + return super.eIsSet(featureID); + } + +} //ConnectionImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/ConstraintImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/ConstraintImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..ab4c9fc31008e1b322ef6ae3c2cf02f6acb201bb --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/ConstraintImpl.java @@ -0,0 +1,237 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.etsi.mts.tdl.Constraint; +import org.etsi.mts.tdl.ConstraintType; +import org.etsi.mts.tdl.DataUse; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Constraint'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.impl.ConstraintImpl#getType Type}
  • + *
  • {@link org.etsi.mts.tdl.impl.ConstraintImpl#getQuantifier Quantifier}
  • + *
+ * + * @generated + */ +public class ConstraintImpl extends ElementImpl implements Constraint +{ + /** + * The cached value of the '{@link #getType() Type}' reference. + * + * + * @see #getType() + * @generated + * @ordered + */ + protected ConstraintType type; + + /** + * The cached value of the '{@link #getQuantifier() Quantifier}' containment reference list. + * + * + * @see #getQuantifier() + * @generated + * @ordered + */ + protected EList quantifier; + + /** + * + * + * @generated + */ + protected ConstraintImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.CONSTRAINT; + } + + /** + * + * + * @generated + */ + @Override + public ConstraintType getType() + { + if (type != null && type.eIsProxy()) + { + InternalEObject oldType = (InternalEObject)type; + type = (ConstraintType)eResolveProxy(oldType); + if (type != oldType) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, tdlPackage.CONSTRAINT__TYPE, oldType, type)); + } + } + return type; + } + + /** + * + * + * @generated + */ + public ConstraintType basicGetType() + { + return type; + } + + /** + * + * + * @generated + */ + @Override + public void setType(ConstraintType newType) + { + ConstraintType oldType = type; + type = newType; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.CONSTRAINT__TYPE, oldType, type)); + } + + /** + * + * + * @generated + */ + @Override + public EList getQuantifier() + { + if (quantifier == null) + { + quantifier = new EObjectContainmentEList(DataUse.class, this, tdlPackage.CONSTRAINT__QUANTIFIER); + } + return quantifier; + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case tdlPackage.CONSTRAINT__QUANTIFIER: + return ((InternalEList)getQuantifier()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case tdlPackage.CONSTRAINT__TYPE: + if (resolve) return getType(); + return basicGetType(); + case tdlPackage.CONSTRAINT__QUANTIFIER: + return getQuantifier(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case tdlPackage.CONSTRAINT__TYPE: + setType((ConstraintType)newValue); + return; + case tdlPackage.CONSTRAINT__QUANTIFIER: + getQuantifier().clear(); + getQuantifier().addAll((Collection)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case tdlPackage.CONSTRAINT__TYPE: + setType((ConstraintType)null); + return; + case tdlPackage.CONSTRAINT__QUANTIFIER: + getQuantifier().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case tdlPackage.CONSTRAINT__TYPE: + return type != null; + case tdlPackage.CONSTRAINT__QUANTIFIER: + return quantifier != null && !quantifier.isEmpty(); + } + return super.eIsSet(featureID); + } + +} //ConstraintImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/ConstraintTypeImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/ConstraintTypeImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..b7fc6bdd907c7d9a31552ea8c99730b625e279ac --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/ConstraintTypeImpl.java @@ -0,0 +1,40 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.etsi.mts.tdl.ConstraintType; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Constraint Type'. + * + * + * @generated + */ +public class ConstraintTypeImpl extends PackageableElementImpl implements ConstraintType +{ + /** + * + * + * @generated + */ + protected ConstraintTypeImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.CONSTRAINT_TYPE; + } + +} //ConstraintTypeImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/DataElementMappingImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/DataElementMappingImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..fc04b9b3c484d0b9c5bcae66372fd3f014fdf6cc --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/DataElementMappingImpl.java @@ -0,0 +1,378 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.etsi.mts.tdl.DataElementMapping; +import org.etsi.mts.tdl.DataResourceMapping; +import org.etsi.mts.tdl.MappableDataElement; +import org.etsi.mts.tdl.ParameterMapping; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Data Element Mapping'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.impl.DataElementMappingImpl#getMappableDataElement Mappable Data Element}
  • + *
  • {@link org.etsi.mts.tdl.impl.DataElementMappingImpl#getElementURI Element URI}
  • + *
  • {@link org.etsi.mts.tdl.impl.DataElementMappingImpl#getDataResourceMapping Data Resource Mapping}
  • + *
  • {@link org.etsi.mts.tdl.impl.DataElementMappingImpl#getParameterMapping Parameter Mapping}
  • + *
+ * + * @generated + */ +public class DataElementMappingImpl extends PackageableElementImpl implements DataElementMapping +{ + /** + * The cached value of the '{@link #getMappableDataElement() Mappable Data Element}' reference. + * + * + * @see #getMappableDataElement() + * @generated + * @ordered + */ + protected MappableDataElement mappableDataElement; + + /** + * The default value of the '{@link #getElementURI() Element URI}' attribute. + * + * + * @see #getElementURI() + * @generated + * @ordered + */ + protected static final String ELEMENT_URI_EDEFAULT = null; + + /** + * The cached value of the '{@link #getElementURI() Element URI}' attribute. + * + * + * @see #getElementURI() + * @generated + * @ordered + */ + protected String elementURI = ELEMENT_URI_EDEFAULT; + + /** + * The cached value of the '{@link #getDataResourceMapping() Data Resource Mapping}' reference. + * + * + * @see #getDataResourceMapping() + * @generated + * @ordered + */ + protected DataResourceMapping dataResourceMapping; + + /** + * The cached value of the '{@link #getParameterMapping() Parameter Mapping}' containment reference list. + * + * + * @see #getParameterMapping() + * @generated + * @ordered + */ + protected EList parameterMapping; + + /** + * + * + * @generated + */ + protected DataElementMappingImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.DATA_ELEMENT_MAPPING; + } + + /** + * + * + * @generated + */ + @Override + public MappableDataElement getMappableDataElement() + { + if (mappableDataElement != null && mappableDataElement.eIsProxy()) + { + InternalEObject oldMappableDataElement = (InternalEObject)mappableDataElement; + mappableDataElement = (MappableDataElement)eResolveProxy(oldMappableDataElement); + if (mappableDataElement != oldMappableDataElement) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, tdlPackage.DATA_ELEMENT_MAPPING__MAPPABLE_DATA_ELEMENT, oldMappableDataElement, mappableDataElement)); + } + } + return mappableDataElement; + } + + /** + * + * + * @generated + */ + public MappableDataElement basicGetMappableDataElement() + { + return mappableDataElement; + } + + /** + * + * + * @generated + */ + @Override + public void setMappableDataElement(MappableDataElement newMappableDataElement) + { + MappableDataElement oldMappableDataElement = mappableDataElement; + mappableDataElement = newMappableDataElement; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.DATA_ELEMENT_MAPPING__MAPPABLE_DATA_ELEMENT, oldMappableDataElement, mappableDataElement)); + } + + /** + * + * + * @generated + */ + @Override + public String getElementURI() + { + return elementURI; + } + + /** + * + * + * @generated + */ + @Override + public void setElementURI(String newElementURI) + { + String oldElementURI = elementURI; + elementURI = newElementURI; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.DATA_ELEMENT_MAPPING__ELEMENT_URI, oldElementURI, elementURI)); + } + + /** + * + * + * @generated + */ + @Override + public DataResourceMapping getDataResourceMapping() + { + if (dataResourceMapping != null && dataResourceMapping.eIsProxy()) + { + InternalEObject oldDataResourceMapping = (InternalEObject)dataResourceMapping; + dataResourceMapping = (DataResourceMapping)eResolveProxy(oldDataResourceMapping); + if (dataResourceMapping != oldDataResourceMapping) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, tdlPackage.DATA_ELEMENT_MAPPING__DATA_RESOURCE_MAPPING, oldDataResourceMapping, dataResourceMapping)); + } + } + return dataResourceMapping; + } + + /** + * + * + * @generated + */ + public DataResourceMapping basicGetDataResourceMapping() + { + return dataResourceMapping; + } + + /** + * + * + * @generated + */ + @Override + public void setDataResourceMapping(DataResourceMapping newDataResourceMapping) + { + DataResourceMapping oldDataResourceMapping = dataResourceMapping; + dataResourceMapping = newDataResourceMapping; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.DATA_ELEMENT_MAPPING__DATA_RESOURCE_MAPPING, oldDataResourceMapping, dataResourceMapping)); + } + + /** + * + * + * @generated + */ + @Override + public EList getParameterMapping() + { + if (parameterMapping == null) + { + parameterMapping = new EObjectContainmentEList(ParameterMapping.class, this, tdlPackage.DATA_ELEMENT_MAPPING__PARAMETER_MAPPING); + } + return parameterMapping; + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case tdlPackage.DATA_ELEMENT_MAPPING__PARAMETER_MAPPING: + return ((InternalEList)getParameterMapping()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case tdlPackage.DATA_ELEMENT_MAPPING__MAPPABLE_DATA_ELEMENT: + if (resolve) return getMappableDataElement(); + return basicGetMappableDataElement(); + case tdlPackage.DATA_ELEMENT_MAPPING__ELEMENT_URI: + return getElementURI(); + case tdlPackage.DATA_ELEMENT_MAPPING__DATA_RESOURCE_MAPPING: + if (resolve) return getDataResourceMapping(); + return basicGetDataResourceMapping(); + case tdlPackage.DATA_ELEMENT_MAPPING__PARAMETER_MAPPING: + return getParameterMapping(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case tdlPackage.DATA_ELEMENT_MAPPING__MAPPABLE_DATA_ELEMENT: + setMappableDataElement((MappableDataElement)newValue); + return; + case tdlPackage.DATA_ELEMENT_MAPPING__ELEMENT_URI: + setElementURI((String)newValue); + return; + case tdlPackage.DATA_ELEMENT_MAPPING__DATA_RESOURCE_MAPPING: + setDataResourceMapping((DataResourceMapping)newValue); + return; + case tdlPackage.DATA_ELEMENT_MAPPING__PARAMETER_MAPPING: + getParameterMapping().clear(); + getParameterMapping().addAll((Collection)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case tdlPackage.DATA_ELEMENT_MAPPING__MAPPABLE_DATA_ELEMENT: + setMappableDataElement((MappableDataElement)null); + return; + case tdlPackage.DATA_ELEMENT_MAPPING__ELEMENT_URI: + setElementURI(ELEMENT_URI_EDEFAULT); + return; + case tdlPackage.DATA_ELEMENT_MAPPING__DATA_RESOURCE_MAPPING: + setDataResourceMapping((DataResourceMapping)null); + return; + case tdlPackage.DATA_ELEMENT_MAPPING__PARAMETER_MAPPING: + getParameterMapping().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case tdlPackage.DATA_ELEMENT_MAPPING__MAPPABLE_DATA_ELEMENT: + return mappableDataElement != null; + case tdlPackage.DATA_ELEMENT_MAPPING__ELEMENT_URI: + return ELEMENT_URI_EDEFAULT == null ? elementURI != null : !ELEMENT_URI_EDEFAULT.equals(elementURI); + case tdlPackage.DATA_ELEMENT_MAPPING__DATA_RESOURCE_MAPPING: + return dataResourceMapping != null; + case tdlPackage.DATA_ELEMENT_MAPPING__PARAMETER_MAPPING: + return parameterMapping != null && !parameterMapping.isEmpty(); + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuilder result = new StringBuilder(super.toString()); + result.append(" (elementURI: "); + result.append(elementURI); + result.append(')'); + return result.toString(); + } + +} //DataElementMappingImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/DataElementUseImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/DataElementUseImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..2ce4388b646d2c1e1f6d69996d5fd8813b028de3 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/DataElementUseImpl.java @@ -0,0 +1,379 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import java.lang.reflect.InvocationTargetException; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.common.util.WrappedException; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EOperation; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.etsi.mts.tdl.DataElementUse; +import org.etsi.mts.tdl.DataType; +import org.etsi.mts.tdl.DataUse; +import org.etsi.mts.tdl.NamedElement; +import org.etsi.mts.tdl.UnassignedMemberTreatment; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Data Element Use'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.impl.DataElementUseImpl#getUnassignedMember Unassigned Member}
  • + *
  • {@link org.etsi.mts.tdl.impl.DataElementUseImpl#getDataElement Data Element}
  • + *
  • {@link org.etsi.mts.tdl.impl.DataElementUseImpl#getItem Item}
  • + *
+ * + * @generated + */ +public class DataElementUseImpl extends DataUseImpl implements DataElementUse +{ + /** + * The default value of the '{@link #getUnassignedMember() Unassigned Member}' attribute. + * + * + * @see #getUnassignedMember() + * @generated + * @ordered + */ + protected static final UnassignedMemberTreatment UNASSIGNED_MEMBER_EDEFAULT = UnassignedMemberTreatment.UNDEFINED; + + /** + * The cached value of the '{@link #getUnassignedMember() Unassigned Member}' attribute. + * + * + * @see #getUnassignedMember() + * @generated + * @ordered + */ + protected UnassignedMemberTreatment unassignedMember = UNASSIGNED_MEMBER_EDEFAULT; + + /** + * The cached value of the '{@link #getDataElement() Data Element}' reference. + * + * + * @see #getDataElement() + * @generated + * @ordered + */ + protected NamedElement dataElement; + + /** + * The cached value of the '{@link #getItem() Item}' containment reference list. + * + * + * @see #getItem() + * @generated + * @ordered + */ + protected EList item; + + /** + * + * + * @generated + */ + protected DataElementUseImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.DATA_ELEMENT_USE; + } + + /** + * + * + * @generated + */ + @Override + public UnassignedMemberTreatment getUnassignedMember() + { + return unassignedMember; + } + + /** + * + * + * @generated + */ + @Override + public void setUnassignedMember(UnassignedMemberTreatment newUnassignedMember) + { + UnassignedMemberTreatment oldUnassignedMember = unassignedMember; + unassignedMember = newUnassignedMember == null ? UNASSIGNED_MEMBER_EDEFAULT : newUnassignedMember; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.DATA_ELEMENT_USE__UNASSIGNED_MEMBER, oldUnassignedMember, unassignedMember)); + } + + /** + * + * + * @generated + */ + @Override + public NamedElement getDataElement() + { + if (dataElement != null && dataElement.eIsProxy()) + { + InternalEObject oldDataElement = (InternalEObject)dataElement; + dataElement = (NamedElement)eResolveProxy(oldDataElement); + if (dataElement != oldDataElement) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, tdlPackage.DATA_ELEMENT_USE__DATA_ELEMENT, oldDataElement, dataElement)); + } + } + return dataElement; + } + + /** + * + * + * @generated + */ + public NamedElement basicGetDataElement() + { + return dataElement; + } + + /** + * + * + * @generated + */ + @Override + public void setDataElement(NamedElement newDataElement) + { + NamedElement oldDataElement = dataElement; + dataElement = newDataElement; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.DATA_ELEMENT_USE__DATA_ELEMENT, oldDataElement, dataElement)); + } + + /** + * + * + * @generated + */ + @Override + public EList getItem() + { + if (item == null) + { + item = new EObjectContainmentEList(DataUse.class, this, tdlPackage.DATA_ELEMENT_USE__ITEM); + } + return item; + } + + /** + * The cached invocation delegate for the '{@link #resolveDataType() Resolve Data Type}' operation. + * + * + * @see #resolveDataType() + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate RESOLVE_DATA_TYPE__EINVOCATION_DELEGATE = ((EOperation.Internal)tdlPackage.Literals.DATA_ELEMENT_USE___RESOLVE_DATA_TYPE).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @Override + public DataType resolveDataType() + { + try + { + return (DataType)RESOLVE_DATA_TYPE__EINVOCATION_DELEGATE.dynamicInvoke(this, null); + } + catch (InvocationTargetException ite) + { + throw new WrappedException(ite); + } + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case tdlPackage.DATA_ELEMENT_USE__ITEM: + return ((InternalEList)getItem()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case tdlPackage.DATA_ELEMENT_USE__UNASSIGNED_MEMBER: + return getUnassignedMember(); + case tdlPackage.DATA_ELEMENT_USE__DATA_ELEMENT: + if (resolve) return getDataElement(); + return basicGetDataElement(); + case tdlPackage.DATA_ELEMENT_USE__ITEM: + return getItem(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case tdlPackage.DATA_ELEMENT_USE__UNASSIGNED_MEMBER: + setUnassignedMember((UnassignedMemberTreatment)newValue); + return; + case tdlPackage.DATA_ELEMENT_USE__DATA_ELEMENT: + setDataElement((NamedElement)newValue); + return; + case tdlPackage.DATA_ELEMENT_USE__ITEM: + getItem().clear(); + getItem().addAll((Collection)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case tdlPackage.DATA_ELEMENT_USE__UNASSIGNED_MEMBER: + setUnassignedMember(UNASSIGNED_MEMBER_EDEFAULT); + return; + case tdlPackage.DATA_ELEMENT_USE__DATA_ELEMENT: + setDataElement((NamedElement)null); + return; + case tdlPackage.DATA_ELEMENT_USE__ITEM: + getItem().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case tdlPackage.DATA_ELEMENT_USE__UNASSIGNED_MEMBER: + return unassignedMember != UNASSIGNED_MEMBER_EDEFAULT; + case tdlPackage.DATA_ELEMENT_USE__DATA_ELEMENT: + return dataElement != null; + case tdlPackage.DATA_ELEMENT_USE__ITEM: + return item != null && !item.isEmpty(); + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public int eDerivedOperationID(int baseOperationID, Class baseClass) + { + if (baseClass == DataUse.class) + { + switch (baseOperationID) + { + case tdlPackage.DATA_USE___RESOLVE_DATA_TYPE: return tdlPackage.DATA_ELEMENT_USE___RESOLVE_DATA_TYPE; + default: return super.eDerivedOperationID(baseOperationID, baseClass); + } + } + return super.eDerivedOperationID(baseOperationID, baseClass); + } + + /** + * + * + * @generated + */ + @Override + public Object eInvoke(int operationID, EList arguments) throws InvocationTargetException + { + switch (operationID) + { + case tdlPackage.DATA_ELEMENT_USE___RESOLVE_DATA_TYPE: + return resolveDataType(); + } + return super.eInvoke(operationID, arguments); + } + + /** + * + * + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuilder result = new StringBuilder(super.toString()); + result.append(" (unassignedMember: "); + result.append(unassignedMember); + result.append(')'); + return result.toString(); + } + +} //DataElementUseImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/DataInstanceImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/DataInstanceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..cfdbfe285f6c8a8f27d83ff3e1b998d2e558287f --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/DataInstanceImpl.java @@ -0,0 +1,174 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.etsi.mts.tdl.DataInstance; +import org.etsi.mts.tdl.DataType; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Data Instance'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.impl.DataInstanceImpl#getDataType Data Type}
  • + *
+ * + * @generated + */ +public abstract class DataInstanceImpl extends MappableDataElementImpl implements DataInstance +{ + /** + * The cached value of the '{@link #getDataType() Data Type}' reference. + * + * + * @see #getDataType() + * @generated + * @ordered + */ + protected DataType dataType; + + /** + * + * + * @generated + */ + protected DataInstanceImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.DATA_INSTANCE; + } + + /** + * + * + * @generated + */ + @Override + public DataType getDataType() + { + if (dataType != null && dataType.eIsProxy()) + { + InternalEObject oldDataType = (InternalEObject)dataType; + dataType = (DataType)eResolveProxy(oldDataType); + if (dataType != oldDataType) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, tdlPackage.DATA_INSTANCE__DATA_TYPE, oldDataType, dataType)); + } + } + return dataType; + } + + /** + * + * + * @generated + */ + public DataType basicGetDataType() + { + return dataType; + } + + /** + * + * + * @generated + */ + @Override + public void setDataType(DataType newDataType) + { + DataType oldDataType = dataType; + dataType = newDataType; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.DATA_INSTANCE__DATA_TYPE, oldDataType, dataType)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case tdlPackage.DATA_INSTANCE__DATA_TYPE: + if (resolve) return getDataType(); + return basicGetDataType(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case tdlPackage.DATA_INSTANCE__DATA_TYPE: + setDataType((DataType)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case tdlPackage.DATA_INSTANCE__DATA_TYPE: + setDataType((DataType)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case tdlPackage.DATA_INSTANCE__DATA_TYPE: + return dataType != null; + } + return super.eIsSet(featureID); + } + +} //DataInstanceImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/DataInstanceUseImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/DataInstanceUseImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..c4827d9f707bd82888077af46e6e061c12a20770 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/DataInstanceUseImpl.java @@ -0,0 +1,446 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import java.lang.reflect.InvocationTargetException; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.common.util.WrappedException; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EOperation; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.etsi.mts.tdl.DataInstance; +import org.etsi.mts.tdl.DataInstanceUse; +import org.etsi.mts.tdl.DataType; +import org.etsi.mts.tdl.DataUse; +import org.etsi.mts.tdl.UnassignedMemberTreatment; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Data Instance Use'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.impl.DataInstanceUseImpl#getDataInstance Data Instance}
  • + *
  • {@link org.etsi.mts.tdl.impl.DataInstanceUseImpl#getUnassignedMember Unassigned Member}
  • + *
  • {@link org.etsi.mts.tdl.impl.DataInstanceUseImpl#getDataType Data Type}
  • + *
  • {@link org.etsi.mts.tdl.impl.DataInstanceUseImpl#getItem Item}
  • + *
+ * + * @generated + */ +public class DataInstanceUseImpl extends StaticDataUseImpl implements DataInstanceUse +{ + /** + * The cached value of the '{@link #getDataInstance() Data Instance}' reference. + * + * + * @see #getDataInstance() + * @generated + * @ordered + */ + protected DataInstance dataInstance; + + /** + * The default value of the '{@link #getUnassignedMember() Unassigned Member}' attribute. + * + * + * @see #getUnassignedMember() + * @generated + * @ordered + */ + protected static final UnassignedMemberTreatment UNASSIGNED_MEMBER_EDEFAULT = UnassignedMemberTreatment.UNDEFINED; + + /** + * The cached value of the '{@link #getUnassignedMember() Unassigned Member}' attribute. + * + * + * @see #getUnassignedMember() + * @generated + * @ordered + */ + protected UnassignedMemberTreatment unassignedMember = UNASSIGNED_MEMBER_EDEFAULT; + + /** + * The cached value of the '{@link #getDataType() Data Type}' reference. + * + * + * @see #getDataType() + * @generated + * @ordered + */ + protected DataType dataType; + + /** + * The cached value of the '{@link #getItem() Item}' containment reference list. + * + * + * @see #getItem() + * @generated + * @ordered + */ + protected EList item; + + /** + * + * + * @generated + */ + protected DataInstanceUseImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.DATA_INSTANCE_USE; + } + + /** + * + * + * @generated + */ + @Override + public DataInstance getDataInstance() + { + if (dataInstance != null && dataInstance.eIsProxy()) + { + InternalEObject oldDataInstance = (InternalEObject)dataInstance; + dataInstance = (DataInstance)eResolveProxy(oldDataInstance); + if (dataInstance != oldDataInstance) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, tdlPackage.DATA_INSTANCE_USE__DATA_INSTANCE, oldDataInstance, dataInstance)); + } + } + return dataInstance; + } + + /** + * + * + * @generated + */ + public DataInstance basicGetDataInstance() + { + return dataInstance; + } + + /** + * + * + * @generated + */ + @Override + public void setDataInstance(DataInstance newDataInstance) + { + DataInstance oldDataInstance = dataInstance; + dataInstance = newDataInstance; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.DATA_INSTANCE_USE__DATA_INSTANCE, oldDataInstance, dataInstance)); + } + + /** + * + * + * @generated + */ + @Override + public UnassignedMemberTreatment getUnassignedMember() + { + return unassignedMember; + } + + /** + * + * + * @generated + */ + @Override + public void setUnassignedMember(UnassignedMemberTreatment newUnassignedMember) + { + UnassignedMemberTreatment oldUnassignedMember = unassignedMember; + unassignedMember = newUnassignedMember == null ? UNASSIGNED_MEMBER_EDEFAULT : newUnassignedMember; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.DATA_INSTANCE_USE__UNASSIGNED_MEMBER, oldUnassignedMember, unassignedMember)); + } + + /** + * + * + * @generated + */ + @Override + public DataType getDataType() + { + if (dataType != null && dataType.eIsProxy()) + { + InternalEObject oldDataType = (InternalEObject)dataType; + dataType = (DataType)eResolveProxy(oldDataType); + if (dataType != oldDataType) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, tdlPackage.DATA_INSTANCE_USE__DATA_TYPE, oldDataType, dataType)); + } + } + return dataType; + } + + /** + * + * + * @generated + */ + public DataType basicGetDataType() + { + return dataType; + } + + /** + * + * + * @generated + */ + @Override + public void setDataType(DataType newDataType) + { + DataType oldDataType = dataType; + dataType = newDataType; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.DATA_INSTANCE_USE__DATA_TYPE, oldDataType, dataType)); + } + + /** + * + * + * @generated + */ + @Override + public EList getItem() + { + if (item == null) + { + item = new EObjectContainmentEList(DataUse.class, this, tdlPackage.DATA_INSTANCE_USE__ITEM); + } + return item; + } + + /** + * The cached invocation delegate for the '{@link #resolveDataType() Resolve Data Type}' operation. + * + * + * @see #resolveDataType() + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate RESOLVE_DATA_TYPE__EINVOCATION_DELEGATE = ((EOperation.Internal)tdlPackage.Literals.DATA_INSTANCE_USE___RESOLVE_DATA_TYPE).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @Override + public DataType resolveDataType() + { + try + { + return (DataType)RESOLVE_DATA_TYPE__EINVOCATION_DELEGATE.dynamicInvoke(this, null); + } + catch (InvocationTargetException ite) + { + throw new WrappedException(ite); + } + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case tdlPackage.DATA_INSTANCE_USE__ITEM: + return ((InternalEList)getItem()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case tdlPackage.DATA_INSTANCE_USE__DATA_INSTANCE: + if (resolve) return getDataInstance(); + return basicGetDataInstance(); + case tdlPackage.DATA_INSTANCE_USE__UNASSIGNED_MEMBER: + return getUnassignedMember(); + case tdlPackage.DATA_INSTANCE_USE__DATA_TYPE: + if (resolve) return getDataType(); + return basicGetDataType(); + case tdlPackage.DATA_INSTANCE_USE__ITEM: + return getItem(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case tdlPackage.DATA_INSTANCE_USE__DATA_INSTANCE: + setDataInstance((DataInstance)newValue); + return; + case tdlPackage.DATA_INSTANCE_USE__UNASSIGNED_MEMBER: + setUnassignedMember((UnassignedMemberTreatment)newValue); + return; + case tdlPackage.DATA_INSTANCE_USE__DATA_TYPE: + setDataType((DataType)newValue); + return; + case tdlPackage.DATA_INSTANCE_USE__ITEM: + getItem().clear(); + getItem().addAll((Collection)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case tdlPackage.DATA_INSTANCE_USE__DATA_INSTANCE: + setDataInstance((DataInstance)null); + return; + case tdlPackage.DATA_INSTANCE_USE__UNASSIGNED_MEMBER: + setUnassignedMember(UNASSIGNED_MEMBER_EDEFAULT); + return; + case tdlPackage.DATA_INSTANCE_USE__DATA_TYPE: + setDataType((DataType)null); + return; + case tdlPackage.DATA_INSTANCE_USE__ITEM: + getItem().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case tdlPackage.DATA_INSTANCE_USE__DATA_INSTANCE: + return dataInstance != null; + case tdlPackage.DATA_INSTANCE_USE__UNASSIGNED_MEMBER: + return unassignedMember != UNASSIGNED_MEMBER_EDEFAULT; + case tdlPackage.DATA_INSTANCE_USE__DATA_TYPE: + return dataType != null; + case tdlPackage.DATA_INSTANCE_USE__ITEM: + return item != null && !item.isEmpty(); + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public int eDerivedOperationID(int baseOperationID, Class baseClass) + { + if (baseClass == DataUse.class) + { + switch (baseOperationID) + { + case tdlPackage.DATA_USE___RESOLVE_DATA_TYPE: return tdlPackage.DATA_INSTANCE_USE___RESOLVE_DATA_TYPE; + default: return super.eDerivedOperationID(baseOperationID, baseClass); + } + } + return super.eDerivedOperationID(baseOperationID, baseClass); + } + + /** + * + * + * @generated + */ + @Override + public Object eInvoke(int operationID, EList arguments) throws InvocationTargetException + { + switch (operationID) + { + case tdlPackage.DATA_INSTANCE_USE___RESOLVE_DATA_TYPE: + return resolveDataType(); + } + return super.eInvoke(operationID, arguments); + } + + /** + * + * + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuilder result = new StringBuilder(super.toString()); + result.append(" (unassignedMember: "); + result.append(unassignedMember); + result.append(')'); + return result.toString(); + } + +} //DataInstanceUseImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/DataResourceMappingImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/DataResourceMappingImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..0322d595de92fdc39e3a65313b63c58adc77afb4 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/DataResourceMappingImpl.java @@ -0,0 +1,178 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.etsi.mts.tdl.DataResourceMapping; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Data Resource Mapping'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.impl.DataResourceMappingImpl#getResourceURI Resource URI}
  • + *
+ * + * @generated + */ +public class DataResourceMappingImpl extends PackageableElementImpl implements DataResourceMapping +{ + /** + * The default value of the '{@link #getResourceURI() Resource URI}' attribute. + * + * + * @see #getResourceURI() + * @generated + * @ordered + */ + protected static final String RESOURCE_URI_EDEFAULT = null; + + /** + * The cached value of the '{@link #getResourceURI() Resource URI}' attribute. + * + * + * @see #getResourceURI() + * @generated + * @ordered + */ + protected String resourceURI = RESOURCE_URI_EDEFAULT; + + /** + * + * + * @generated + */ + protected DataResourceMappingImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.DATA_RESOURCE_MAPPING; + } + + /** + * + * + * @generated + */ + @Override + public String getResourceURI() + { + return resourceURI; + } + + /** + * + * + * @generated + */ + @Override + public void setResourceURI(String newResourceURI) + { + String oldResourceURI = resourceURI; + resourceURI = newResourceURI; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.DATA_RESOURCE_MAPPING__RESOURCE_URI, oldResourceURI, resourceURI)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case tdlPackage.DATA_RESOURCE_MAPPING__RESOURCE_URI: + return getResourceURI(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case tdlPackage.DATA_RESOURCE_MAPPING__RESOURCE_URI: + setResourceURI((String)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case tdlPackage.DATA_RESOURCE_MAPPING__RESOURCE_URI: + setResourceURI(RESOURCE_URI_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case tdlPackage.DATA_RESOURCE_MAPPING__RESOURCE_URI: + return RESOURCE_URI_EDEFAULT == null ? resourceURI != null : !RESOURCE_URI_EDEFAULT.equals(resourceURI); + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuilder result = new StringBuilder(super.toString()); + result.append(" (resourceURI: "); + result.append(resourceURI); + result.append(')'); + return result.toString(); + } + +} //DataResourceMappingImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/DataTypeImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/DataTypeImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..3c211afcfcdf8a1bcc6b49e321673e83a46183f8 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/DataTypeImpl.java @@ -0,0 +1,215 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import java.lang.reflect.InvocationTargetException; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.common.util.WrappedException; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EOperation; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.etsi.mts.tdl.Constraint; +import org.etsi.mts.tdl.DataType; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Data Type'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.impl.DataTypeImpl#getConstraint Constraint}
  • + *
+ * + * @generated + */ +public abstract class DataTypeImpl extends MappableDataElementImpl implements DataType +{ + /** + * The cached value of the '{@link #getConstraint() Constraint}' containment reference list. + * + * + * @see #getConstraint() + * @generated + * @ordered + */ + protected EList constraint; + + /** + * + * + * @generated + */ + protected DataTypeImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.DATA_TYPE; + } + + /** + * + * + * @generated + */ + @Override + public EList getConstraint() + { + if (constraint == null) + { + constraint = new EObjectContainmentEList(Constraint.class, this, tdlPackage.DATA_TYPE__CONSTRAINT); + } + return constraint; + } + + /** + * The cached invocation delegate for the '{@link #allConstraints() All Constraints}' operation. + * + * + * @see #allConstraints() + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate ALL_CONSTRAINTS__EINVOCATION_DELEGATE = ((EOperation.Internal)tdlPackage.Literals.DATA_TYPE___ALL_CONSTRAINTS).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList allConstraints() + { + try + { + return (EList)ALL_CONSTRAINTS__EINVOCATION_DELEGATE.dynamicInvoke(this, null); + } + catch (InvocationTargetException ite) + { + throw new WrappedException(ite); + } + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case tdlPackage.DATA_TYPE__CONSTRAINT: + return ((InternalEList)getConstraint()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case tdlPackage.DATA_TYPE__CONSTRAINT: + return getConstraint(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case tdlPackage.DATA_TYPE__CONSTRAINT: + getConstraint().clear(); + getConstraint().addAll((Collection)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case tdlPackage.DATA_TYPE__CONSTRAINT: + getConstraint().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case tdlPackage.DATA_TYPE__CONSTRAINT: + return constraint != null && !constraint.isEmpty(); + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public Object eInvoke(int operationID, EList arguments) throws InvocationTargetException + { + switch (operationID) + { + case tdlPackage.DATA_TYPE___ALL_CONSTRAINTS: + return allConstraints(); + } + return super.eInvoke(operationID, arguments); + } + +} //DataTypeImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/DataUseImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/DataUseImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..fa8d2398d45b602506c986ab42903a9ffc9e056d --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/DataUseImpl.java @@ -0,0 +1,285 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import java.lang.reflect.InvocationTargetException; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.common.util.WrappedException; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EOperation; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.etsi.mts.tdl.DataType; +import org.etsi.mts.tdl.DataUse; +import org.etsi.mts.tdl.MemberReference; +import org.etsi.mts.tdl.ParameterBinding; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Data Use'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.impl.DataUseImpl#getArgument Argument}
  • + *
  • {@link org.etsi.mts.tdl.impl.DataUseImpl#getReduction Reduction}
  • + *
+ * + * @generated + */ +public abstract class DataUseImpl extends ElementImpl implements DataUse +{ + /** + * The cached value of the '{@link #getArgument() Argument}' containment reference list. + * + * + * @see #getArgument() + * @generated + * @ordered + */ + protected EList argument; + + /** + * The cached value of the '{@link #getReduction() Reduction}' containment reference list. + * + * + * @see #getReduction() + * @generated + * @ordered + */ + protected EList reduction; + + /** + * + * + * @generated + */ + protected DataUseImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.DATA_USE; + } + + /** + * + * + * @generated + */ + @Override + public EList getArgument() + { + if (argument == null) + { + argument = new EObjectContainmentEList(ParameterBinding.class, this, tdlPackage.DATA_USE__ARGUMENT); + } + return argument; + } + + /** + * + * + * @generated + */ + @Override + public EList getReduction() + { + if (reduction == null) + { + reduction = new EObjectContainmentEList(MemberReference.class, this, tdlPackage.DATA_USE__REDUCTION); + } + return reduction; + } + + /** + * The cached invocation delegate for the '{@link #resolveDataType() Resolve Data Type}' operation. + * + * + * @see #resolveDataType() + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate RESOLVE_DATA_TYPE__EINVOCATION_DELEGATE = ((EOperation.Internal)tdlPackage.Literals.DATA_USE___RESOLVE_DATA_TYPE).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @Override + public DataType resolveDataType() + { + try + { + return (DataType)RESOLVE_DATA_TYPE__EINVOCATION_DELEGATE.dynamicInvoke(this, null); + } + catch (InvocationTargetException ite) + { + throw new WrappedException(ite); + } + } + + /** + * The cached invocation delegate for the '{@link #isEffectivelyStatic() Is Effectively Static}' operation. + * + * + * @see #isEffectivelyStatic() + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate IS_EFFECTIVELY_STATIC__EINVOCATION_DELEGATE = ((EOperation.Internal)tdlPackage.Literals.DATA_USE___IS_EFFECTIVELY_STATIC).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @Override + public boolean isEffectivelyStatic() + { + try + { + return (Boolean)IS_EFFECTIVELY_STATIC__EINVOCATION_DELEGATE.dynamicInvoke(this, null); + } + catch (InvocationTargetException ite) + { + throw new WrappedException(ite); + } + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case tdlPackage.DATA_USE__ARGUMENT: + return ((InternalEList)getArgument()).basicRemove(otherEnd, msgs); + case tdlPackage.DATA_USE__REDUCTION: + return ((InternalEList)getReduction()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case tdlPackage.DATA_USE__ARGUMENT: + return getArgument(); + case tdlPackage.DATA_USE__REDUCTION: + return getReduction(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case tdlPackage.DATA_USE__ARGUMENT: + getArgument().clear(); + getArgument().addAll((Collection)newValue); + return; + case tdlPackage.DATA_USE__REDUCTION: + getReduction().clear(); + getReduction().addAll((Collection)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case tdlPackage.DATA_USE__ARGUMENT: + getArgument().clear(); + return; + case tdlPackage.DATA_USE__REDUCTION: + getReduction().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case tdlPackage.DATA_USE__ARGUMENT: + return argument != null && !argument.isEmpty(); + case tdlPackage.DATA_USE__REDUCTION: + return reduction != null && !reduction.isEmpty(); + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public Object eInvoke(int operationID, EList arguments) throws InvocationTargetException + { + switch (operationID) + { + case tdlPackage.DATA_USE___RESOLVE_DATA_TYPE: + return resolveDataType(); + case tdlPackage.DATA_USE___IS_EFFECTIVELY_STATIC: + return isEffectivelyStatic(); + } + return super.eInvoke(operationID, arguments); + } + +} //DataUseImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/DefaultBehaviourImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/DefaultBehaviourImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..4b9b8ac2905ab81fc5bc0757260ce5009df43769 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/DefaultBehaviourImpl.java @@ -0,0 +1,40 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.etsi.mts.tdl.DefaultBehaviour; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Default Behaviour'. + * + * + * @generated + */ +public class DefaultBehaviourImpl extends ExceptionalBehaviourImpl implements DefaultBehaviour +{ + /** + * + * + * @generated + */ + protected DefaultBehaviourImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.DEFAULT_BEHAVIOUR; + } + +} //DefaultBehaviourImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/DynamicDataUseImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/DynamicDataUseImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..44225342ec7a34076328fb217e431fc380c61228 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/DynamicDataUseImpl.java @@ -0,0 +1,40 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.etsi.mts.tdl.DynamicDataUse; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Dynamic Data Use'. + * + * + * @generated + */ +public abstract class DynamicDataUseImpl extends DataUseImpl implements DynamicDataUse +{ + /** + * + * + * @generated + */ + protected DynamicDataUseImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.DYNAMIC_DATA_USE; + } + +} //DynamicDataUseImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/ElementImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/ElementImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..7fc7e9468e41efc136a943e5f60df64f0bc13f1e --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/ElementImpl.java @@ -0,0 +1,381 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import java.lang.reflect.InvocationTargetException; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.common.util.WrappedException; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EOperation; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.EObjectImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.etsi.mts.tdl.Annotation; +import org.etsi.mts.tdl.Comment; +import org.etsi.mts.tdl.Element; +import org.etsi.mts.tdl.TestDescription; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Element'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.impl.ElementImpl#getComment Comment}
  • + *
  • {@link org.etsi.mts.tdl.impl.ElementImpl#getAnnotation Annotation}
  • + *
  • {@link org.etsi.mts.tdl.impl.ElementImpl#getName Name}
  • + *
+ * + * @generated + */ +public abstract class ElementImpl extends EObjectImpl implements Element +{ + /** + * The cached value of the '{@link #getComment() Comment}' containment reference list. + * + * + * @see #getComment() + * @generated + * @ordered + */ + protected EList comment; + + /** + * The cached value of the '{@link #getAnnotation() Annotation}' containment reference list. + * + * + * @see #getAnnotation() + * @generated + * @ordered + */ + protected EList annotation; + + /** + * The default value of the '{@link #getName() Name}' attribute. + * + * + * @see #getName() + * @generated + * @ordered + */ + protected static final String NAME_EDEFAULT = null; + + /** + * The cached value of the '{@link #getName() Name}' attribute. + * + * + * @see #getName() + * @generated + * @ordered + */ + protected String name = NAME_EDEFAULT; + + /** + * + * + * @generated + */ + protected ElementImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.ELEMENT; + } + + /** + * + * + * @generated + */ + @Override + public EList getComment() + { + if (comment == null) + { + comment = new EObjectContainmentWithInverseEList(Comment.class, this, tdlPackage.ELEMENT__COMMENT, tdlPackage.COMMENT__COMMENTED_ELEMENT); + } + return comment; + } + + /** + * + * + * @generated + */ + @Override + public EList getAnnotation() + { + if (annotation == null) + { + annotation = new EObjectContainmentWithInverseEList(Annotation.class, this, tdlPackage.ELEMENT__ANNOTATION, tdlPackage.ANNOTATION__ANNOTATED_ELEMENT); + } + return annotation; + } + + /** + * + * + * @generated + */ + @Override + public String getName() + { + return name; + } + + /** + * + * + * @generated + */ + @Override + public void setName(String newName) + { + String oldName = name; + name = newName; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.ELEMENT__NAME, oldName, name)); + } + + /** + * The cached invocation delegate for the '{@link #container() Container}' operation. + * + * + * @see #container() + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate CONTAINER__EINVOCATION_DELEGATE = ((EOperation.Internal)tdlPackage.Literals.ELEMENT___CONTAINER).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @Override + public Element container() + { + try + { + return (Element)CONTAINER__EINVOCATION_DELEGATE.dynamicInvoke(this, null); + } + catch (InvocationTargetException ite) + { + throw new WrappedException(ite); + } + } + + /** + * The cached invocation delegate for the '{@link #getParentTestDescription() Get Parent Test Description}' operation. + * + * + * @see #getParentTestDescription() + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate GET_PARENT_TEST_DESCRIPTION__EINVOCATION_DELEGATE = ((EOperation.Internal)tdlPackage.Literals.ELEMENT___GET_PARENT_TEST_DESCRIPTION).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @Override + public TestDescription getParentTestDescription() + { + try + { + return (TestDescription)GET_PARENT_TEST_DESCRIPTION__EINVOCATION_DELEGATE.dynamicInvoke(this, null); + } + catch (InvocationTargetException ite) + { + throw new WrappedException(ite); + } + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case tdlPackage.ELEMENT__COMMENT: + return ((InternalEList)(InternalEList)getComment()).basicAdd(otherEnd, msgs); + case tdlPackage.ELEMENT__ANNOTATION: + return ((InternalEList)(InternalEList)getAnnotation()).basicAdd(otherEnd, msgs); + } + return super.eInverseAdd(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case tdlPackage.ELEMENT__COMMENT: + return ((InternalEList)getComment()).basicRemove(otherEnd, msgs); + case tdlPackage.ELEMENT__ANNOTATION: + return ((InternalEList)getAnnotation()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case tdlPackage.ELEMENT__COMMENT: + return getComment(); + case tdlPackage.ELEMENT__ANNOTATION: + return getAnnotation(); + case tdlPackage.ELEMENT__NAME: + return getName(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case tdlPackage.ELEMENT__COMMENT: + getComment().clear(); + getComment().addAll((Collection)newValue); + return; + case tdlPackage.ELEMENT__ANNOTATION: + getAnnotation().clear(); + getAnnotation().addAll((Collection)newValue); + return; + case tdlPackage.ELEMENT__NAME: + setName((String)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case tdlPackage.ELEMENT__COMMENT: + getComment().clear(); + return; + case tdlPackage.ELEMENT__ANNOTATION: + getAnnotation().clear(); + return; + case tdlPackage.ELEMENT__NAME: + setName(NAME_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case tdlPackage.ELEMENT__COMMENT: + return comment != null && !comment.isEmpty(); + case tdlPackage.ELEMENT__ANNOTATION: + return annotation != null && !annotation.isEmpty(); + case tdlPackage.ELEMENT__NAME: + return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public Object eInvoke(int operationID, EList arguments) throws InvocationTargetException + { + switch (operationID) + { + case tdlPackage.ELEMENT___CONTAINER: + return container(); + case tdlPackage.ELEMENT___GET_PARENT_TEST_DESCRIPTION: + return getParentTestDescription(); + } + return super.eInvoke(operationID, arguments); + } + + /** + * + * + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuilder result = new StringBuilder(super.toString()); + result.append(" (name: "); + result.append(name); + result.append(')'); + return result.toString(); + } + +} //ElementImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/ElementImportImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/ElementImportImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..a93be675395c160a45ea3cb932469e2c3cb6f928 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/ElementImportImpl.java @@ -0,0 +1,218 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectResolvingEList; + +import org.etsi.mts.tdl.ElementImport; +import org.etsi.mts.tdl.PackageableElement; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Element Import'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.impl.ElementImportImpl#getImportedElement Imported Element}
  • + *
  • {@link org.etsi.mts.tdl.impl.ElementImportImpl#getImportedPackage Imported Package}
  • + *
+ * + * @generated + */ +public class ElementImportImpl extends ElementImpl implements ElementImport +{ + /** + * The cached value of the '{@link #getImportedElement() Imported Element}' reference list. + * + * + * @see #getImportedElement() + * @generated + * @ordered + */ + protected EList importedElement; + + /** + * The cached value of the '{@link #getImportedPackage() Imported Package}' reference. + * + * + * @see #getImportedPackage() + * @generated + * @ordered + */ + protected org.etsi.mts.tdl.Package importedPackage; + + /** + * + * + * @generated + */ + protected ElementImportImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.ELEMENT_IMPORT; + } + + /** + * + * + * @generated + */ + @Override + public EList getImportedElement() + { + if (importedElement == null) + { + importedElement = new EObjectResolvingEList(PackageableElement.class, this, tdlPackage.ELEMENT_IMPORT__IMPORTED_ELEMENT); + } + return importedElement; + } + + /** + * + * + * @generated + */ + @Override + public org.etsi.mts.tdl.Package getImportedPackage() + { + if (importedPackage != null && importedPackage.eIsProxy()) + { + InternalEObject oldImportedPackage = (InternalEObject)importedPackage; + importedPackage = (org.etsi.mts.tdl.Package)eResolveProxy(oldImportedPackage); + if (importedPackage != oldImportedPackage) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, tdlPackage.ELEMENT_IMPORT__IMPORTED_PACKAGE, oldImportedPackage, importedPackage)); + } + } + return importedPackage; + } + + /** + * + * + * @generated + */ + public org.etsi.mts.tdl.Package basicGetImportedPackage() + { + return importedPackage; + } + + /** + * + * + * @generated + */ + @Override + public void setImportedPackage(org.etsi.mts.tdl.Package newImportedPackage) + { + org.etsi.mts.tdl.Package oldImportedPackage = importedPackage; + importedPackage = newImportedPackage; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.ELEMENT_IMPORT__IMPORTED_PACKAGE, oldImportedPackage, importedPackage)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case tdlPackage.ELEMENT_IMPORT__IMPORTED_ELEMENT: + return getImportedElement(); + case tdlPackage.ELEMENT_IMPORT__IMPORTED_PACKAGE: + if (resolve) return getImportedPackage(); + return basicGetImportedPackage(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case tdlPackage.ELEMENT_IMPORT__IMPORTED_ELEMENT: + getImportedElement().clear(); + getImportedElement().addAll((Collection)newValue); + return; + case tdlPackage.ELEMENT_IMPORT__IMPORTED_PACKAGE: + setImportedPackage((org.etsi.mts.tdl.Package)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case tdlPackage.ELEMENT_IMPORT__IMPORTED_ELEMENT: + getImportedElement().clear(); + return; + case tdlPackage.ELEMENT_IMPORT__IMPORTED_PACKAGE: + setImportedPackage((org.etsi.mts.tdl.Package)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case tdlPackage.ELEMENT_IMPORT__IMPORTED_ELEMENT: + return importedElement != null && !importedElement.isEmpty(); + case tdlPackage.ELEMENT_IMPORT__IMPORTED_PACKAGE: + return importedPackage != null; + } + return super.eIsSet(featureID); + } + +} //ElementImportImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/EnumDataTypeImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/EnumDataTypeImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..8ec7295aad4a3347ee4956a6e8bf278ef036f711 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/EnumDataTypeImpl.java @@ -0,0 +1,166 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.etsi.mts.tdl.EnumDataType; +import org.etsi.mts.tdl.SimpleDataInstance; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Enum Data Type'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.impl.EnumDataTypeImpl#getValue Value}
  • + *
+ * + * @generated + */ +public class EnumDataTypeImpl extends SimpleDataTypeImpl implements EnumDataType +{ + /** + * The cached value of the '{@link #getValue() Value}' containment reference list. + * + * + * @see #getValue() + * @generated + * @ordered + */ + protected EList value; + + /** + * + * + * @generated + */ + protected EnumDataTypeImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.ENUM_DATA_TYPE; + } + + /** + * + * + * @generated + */ + @Override + public EList getValue() + { + if (value == null) + { + value = new EObjectContainmentEList(SimpleDataInstance.class, this, tdlPackage.ENUM_DATA_TYPE__VALUE); + } + return value; + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case tdlPackage.ENUM_DATA_TYPE__VALUE: + return ((InternalEList)getValue()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case tdlPackage.ENUM_DATA_TYPE__VALUE: + return getValue(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case tdlPackage.ENUM_DATA_TYPE__VALUE: + getValue().clear(); + getValue().addAll((Collection)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case tdlPackage.ENUM_DATA_TYPE__VALUE: + getValue().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case tdlPackage.ENUM_DATA_TYPE__VALUE: + return value != null && !value.isEmpty(); + } + return super.eIsSet(featureID); + } + +} //EnumDataTypeImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/ExceptionalBehaviourImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/ExceptionalBehaviourImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..c4c703c209f503ab123f6066b4b0f04c3f319dc2 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/ExceptionalBehaviourImpl.java @@ -0,0 +1,334 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import java.lang.reflect.InvocationTargetException; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.common.util.WrappedException; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EOperation; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.etsi.mts.tdl.Behaviour; +import org.etsi.mts.tdl.Block; +import org.etsi.mts.tdl.ComponentInstance; +import org.etsi.mts.tdl.ExceptionalBehaviour; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Exceptional Behaviour'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.impl.ExceptionalBehaviourImpl#getBlock Block}
  • + *
  • {@link org.etsi.mts.tdl.impl.ExceptionalBehaviourImpl#getGuardedComponent Guarded Component}
  • + *
+ * + * @generated + */ +public abstract class ExceptionalBehaviourImpl extends BehaviourImpl implements ExceptionalBehaviour +{ + /** + * The cached value of the '{@link #getBlock() Block}' containment reference. + * + * + * @see #getBlock() + * @generated + * @ordered + */ + protected Block block; + + /** + * The cached value of the '{@link #getGuardedComponent() Guarded Component}' reference. + * + * + * @see #getGuardedComponent() + * @generated + * @ordered + */ + protected ComponentInstance guardedComponent; + + /** + * + * + * @generated + */ + protected ExceptionalBehaviourImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.EXCEPTIONAL_BEHAVIOUR; + } + + /** + * + * + * @generated + */ + @Override + public Block getBlock() + { + return block; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetBlock(Block newBlock, NotificationChain msgs) + { + Block oldBlock = block; + block = newBlock; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, tdlPackage.EXCEPTIONAL_BEHAVIOUR__BLOCK, oldBlock, newBlock); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + @Override + public void setBlock(Block newBlock) + { + if (newBlock != block) + { + NotificationChain msgs = null; + if (block != null) + msgs = ((InternalEObject)block).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - tdlPackage.EXCEPTIONAL_BEHAVIOUR__BLOCK, null, msgs); + if (newBlock != null) + msgs = ((InternalEObject)newBlock).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - tdlPackage.EXCEPTIONAL_BEHAVIOUR__BLOCK, null, msgs); + msgs = basicSetBlock(newBlock, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.EXCEPTIONAL_BEHAVIOUR__BLOCK, newBlock, newBlock)); + } + + /** + * + * + * @generated + */ + @Override + public ComponentInstance getGuardedComponent() + { + if (guardedComponent != null && guardedComponent.eIsProxy()) + { + InternalEObject oldGuardedComponent = (InternalEObject)guardedComponent; + guardedComponent = (ComponentInstance)eResolveProxy(oldGuardedComponent); + if (guardedComponent != oldGuardedComponent) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, tdlPackage.EXCEPTIONAL_BEHAVIOUR__GUARDED_COMPONENT, oldGuardedComponent, guardedComponent)); + } + } + return guardedComponent; + } + + /** + * + * + * @generated + */ + public ComponentInstance basicGetGuardedComponent() + { + return guardedComponent; + } + + /** + * + * + * @generated + */ + @Override + public void setGuardedComponent(ComponentInstance newGuardedComponent) + { + ComponentInstance oldGuardedComponent = guardedComponent; + guardedComponent = newGuardedComponent; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.EXCEPTIONAL_BEHAVIOUR__GUARDED_COMPONENT, oldGuardedComponent, guardedComponent)); + } + + /** + * The cached invocation delegate for the '{@link #getParticipatingComponents() Get Participating Components}' operation. + * + * + * @see #getParticipatingComponents() + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate GET_PARTICIPATING_COMPONENTS__EINVOCATION_DELEGATE = ((EOperation.Internal)tdlPackage.Literals.EXCEPTIONAL_BEHAVIOUR___GET_PARTICIPATING_COMPONENTS).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getParticipatingComponents() + { + try + { + return (EList)GET_PARTICIPATING_COMPONENTS__EINVOCATION_DELEGATE.dynamicInvoke(this, null); + } + catch (InvocationTargetException ite) + { + throw new WrappedException(ite); + } + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case tdlPackage.EXCEPTIONAL_BEHAVIOUR__BLOCK: + return basicSetBlock(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case tdlPackage.EXCEPTIONAL_BEHAVIOUR__BLOCK: + return getBlock(); + case tdlPackage.EXCEPTIONAL_BEHAVIOUR__GUARDED_COMPONENT: + if (resolve) return getGuardedComponent(); + return basicGetGuardedComponent(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case tdlPackage.EXCEPTIONAL_BEHAVIOUR__BLOCK: + setBlock((Block)newValue); + return; + case tdlPackage.EXCEPTIONAL_BEHAVIOUR__GUARDED_COMPONENT: + setGuardedComponent((ComponentInstance)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case tdlPackage.EXCEPTIONAL_BEHAVIOUR__BLOCK: + setBlock((Block)null); + return; + case tdlPackage.EXCEPTIONAL_BEHAVIOUR__GUARDED_COMPONENT: + setGuardedComponent((ComponentInstance)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case tdlPackage.EXCEPTIONAL_BEHAVIOUR__BLOCK: + return block != null; + case tdlPackage.EXCEPTIONAL_BEHAVIOUR__GUARDED_COMPONENT: + return guardedComponent != null; + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public int eDerivedOperationID(int baseOperationID, Class baseClass) + { + if (baseClass == Behaviour.class) + { + switch (baseOperationID) + { + case tdlPackage.BEHAVIOUR___GET_PARTICIPATING_COMPONENTS: return tdlPackage.EXCEPTIONAL_BEHAVIOUR___GET_PARTICIPATING_COMPONENTS; + default: return super.eDerivedOperationID(baseOperationID, baseClass); + } + } + return super.eDerivedOperationID(baseOperationID, baseClass); + } + + /** + * + * + * @generated + */ + @Override + public Object eInvoke(int operationID, EList arguments) throws InvocationTargetException + { + switch (operationID) + { + case tdlPackage.EXCEPTIONAL_BEHAVIOUR___GET_PARTICIPATING_COMPONENTS: + return getParticipatingComponents(); + } + return super.eInvoke(operationID, arguments); + } + +} //ExceptionalBehaviourImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/ExtensionImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/ExtensionImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..7e957109741dd720caab72da5dfadaf2d8edcb3c --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/ExtensionImpl.java @@ -0,0 +1,256 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import java.lang.reflect.InvocationTargetException; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.common.util.BasicEList; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.common.util.WrappedException; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EOperation; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.etsi.mts.tdl.Extension; +import org.etsi.mts.tdl.PackageableElement; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Extension'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.impl.ExtensionImpl#getExtending Extending}
  • + *
+ * + * @generated + */ +public class ExtensionImpl extends ElementImpl implements Extension +{ + /** + * The cached value of the '{@link #getExtending() Extending}' reference. + * + * + * @see #getExtending() + * @generated + * @ordered + */ + protected PackageableElement extending; + + /** + * + * + * @generated + */ + protected ExtensionImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.EXTENSION; + } + + /** + * + * + * @generated + */ + @Override + public PackageableElement getExtending() + { + if (extending != null && extending.eIsProxy()) + { + InternalEObject oldExtending = (InternalEObject)extending; + extending = (PackageableElement)eResolveProxy(oldExtending); + if (extending != oldExtending) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, tdlPackage.EXTENSION__EXTENDING, oldExtending, extending)); + } + } + return extending; + } + + /** + * + * + * @generated + */ + public PackageableElement basicGetExtending() + { + return extending; + } + + /** + * + * + * @generated + */ + @Override + public void setExtending(PackageableElement newExtending) + { + PackageableElement oldExtending = extending; + extending = newExtending; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.EXTENSION__EXTENDING, oldExtending, extending)); + } + + /** + * The cached invocation delegate for the '{@link #transitiveExtending() Transitive Extending}' operation. + * + * + * @see #transitiveExtending() + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate TRANSITIVE_EXTENDING__EINVOCATION_DELEGATE = ((EOperation.Internal)tdlPackage.Literals.EXTENSION___TRANSITIVE_EXTENDING).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList transitiveExtending() + { + try + { + return (EList)TRANSITIVE_EXTENDING__EINVOCATION_DELEGATE.dynamicInvoke(this, null); + } + catch (InvocationTargetException ite) + { + throw new WrappedException(ite); + } + } + + /** + * The cached invocation delegate for the '{@link #isExtending(org.etsi.mts.tdl.PackageableElement) Is Extending}' operation. + * + * + * @see #isExtending(org.etsi.mts.tdl.PackageableElement) + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate IS_EXTENDING_PACKAGEABLE_ELEMENT__EINVOCATION_DELEGATE = ((EOperation.Internal)tdlPackage.Literals.EXTENSION___IS_EXTENDING__PACKAGEABLEELEMENT).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @Override + public Boolean isExtending(PackageableElement e) + { + try + { + return (Boolean)IS_EXTENDING_PACKAGEABLE_ELEMENT__EINVOCATION_DELEGATE.dynamicInvoke(this, new BasicEList.UnmodifiableEList(1, new Object[]{e})); + } + catch (InvocationTargetException ite) + { + throw new WrappedException(ite); + } + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case tdlPackage.EXTENSION__EXTENDING: + if (resolve) return getExtending(); + return basicGetExtending(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case tdlPackage.EXTENSION__EXTENDING: + setExtending((PackageableElement)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case tdlPackage.EXTENSION__EXTENDING: + setExtending((PackageableElement)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case tdlPackage.EXTENSION__EXTENDING: + return extending != null; + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public Object eInvoke(int operationID, EList arguments) throws InvocationTargetException + { + switch (operationID) + { + case tdlPackage.EXTENSION___TRANSITIVE_EXTENDING: + return transitiveExtending(); + case tdlPackage.EXTENSION___IS_EXTENDING__PACKAGEABLEELEMENT: + return isExtending((PackageableElement)arguments.get(0)); + } + return super.eInvoke(operationID, arguments); + } + +} //ExtensionImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/FormalParameterImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/FormalParameterImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..91ece4aef9beb150bd36bde6b2fa750193949c78 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/FormalParameterImpl.java @@ -0,0 +1,40 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.etsi.mts.tdl.FormalParameter; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Formal Parameter'. + * + * + * @generated + */ +public class FormalParameterImpl extends ParameterImpl implements FormalParameter +{ + /** + * + * + * @generated + */ + protected FormalParameterImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.FORMAL_PARAMETER; + } + +} //FormalParameterImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/FormalParameterUseImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/FormalParameterUseImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..1b5d0a5a1b88a9413b0098f4eb6850bf511ad317 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/FormalParameterUseImpl.java @@ -0,0 +1,245 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import java.lang.reflect.InvocationTargetException; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.common.util.WrappedException; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EOperation; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.etsi.mts.tdl.DataType; +import org.etsi.mts.tdl.DataUse; +import org.etsi.mts.tdl.FormalParameter; +import org.etsi.mts.tdl.FormalParameterUse; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Formal Parameter Use'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.impl.FormalParameterUseImpl#getParameter Parameter}
  • + *
+ * + * @generated + */ +public class FormalParameterUseImpl extends DynamicDataUseImpl implements FormalParameterUse +{ + /** + * The cached value of the '{@link #getParameter() Parameter}' reference. + * + * + * @see #getParameter() + * @generated + * @ordered + */ + protected FormalParameter parameter; + + /** + * + * + * @generated + */ + protected FormalParameterUseImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.FORMAL_PARAMETER_USE; + } + + /** + * + * + * @generated + */ + @Override + public FormalParameter getParameter() + { + if (parameter != null && parameter.eIsProxy()) + { + InternalEObject oldParameter = (InternalEObject)parameter; + parameter = (FormalParameter)eResolveProxy(oldParameter); + if (parameter != oldParameter) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, tdlPackage.FORMAL_PARAMETER_USE__PARAMETER, oldParameter, parameter)); + } + } + return parameter; + } + + /** + * + * + * @generated + */ + public FormalParameter basicGetParameter() + { + return parameter; + } + + /** + * + * + * @generated + */ + @Override + public void setParameter(FormalParameter newParameter) + { + FormalParameter oldParameter = parameter; + parameter = newParameter; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.FORMAL_PARAMETER_USE__PARAMETER, oldParameter, parameter)); + } + + /** + * The cached invocation delegate for the '{@link #resolveDataType() Resolve Data Type}' operation. + * + * + * @see #resolveDataType() + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate RESOLVE_DATA_TYPE__EINVOCATION_DELEGATE = ((EOperation.Internal)tdlPackage.Literals.FORMAL_PARAMETER_USE___RESOLVE_DATA_TYPE).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @Override + public DataType resolveDataType() + { + try + { + return (DataType)RESOLVE_DATA_TYPE__EINVOCATION_DELEGATE.dynamicInvoke(this, null); + } + catch (InvocationTargetException ite) + { + throw new WrappedException(ite); + } + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case tdlPackage.FORMAL_PARAMETER_USE__PARAMETER: + if (resolve) return getParameter(); + return basicGetParameter(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case tdlPackage.FORMAL_PARAMETER_USE__PARAMETER: + setParameter((FormalParameter)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case tdlPackage.FORMAL_PARAMETER_USE__PARAMETER: + setParameter((FormalParameter)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case tdlPackage.FORMAL_PARAMETER_USE__PARAMETER: + return parameter != null; + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public int eDerivedOperationID(int baseOperationID, Class baseClass) + { + if (baseClass == DataUse.class) + { + switch (baseOperationID) + { + case tdlPackage.DATA_USE___RESOLVE_DATA_TYPE: return tdlPackage.FORMAL_PARAMETER_USE___RESOLVE_DATA_TYPE; + default: return super.eDerivedOperationID(baseOperationID, baseClass); + } + } + return super.eDerivedOperationID(baseOperationID, baseClass); + } + + /** + * + * + * @generated + */ + @Override + public Object eInvoke(int operationID, EList arguments) throws InvocationTargetException + { + switch (operationID) + { + case tdlPackage.FORMAL_PARAMETER_USE___RESOLVE_DATA_TYPE: + return resolveDataType(); + } + return super.eInvoke(operationID, arguments); + } + +} //FormalParameterUseImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/FunctionCallImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/FunctionCallImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..eae8b11c4ed7904be4ed379812036691c5dd9fed --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/FunctionCallImpl.java @@ -0,0 +1,245 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import java.lang.reflect.InvocationTargetException; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.common.util.WrappedException; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EOperation; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.etsi.mts.tdl.DataType; +import org.etsi.mts.tdl.DataUse; +import org.etsi.mts.tdl.Function; +import org.etsi.mts.tdl.FunctionCall; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Function Call'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.impl.FunctionCallImpl#getFunction Function}
  • + *
+ * + * @generated + */ +public class FunctionCallImpl extends DynamicDataUseImpl implements FunctionCall +{ + /** + * The cached value of the '{@link #getFunction() Function}' reference. + * + * + * @see #getFunction() + * @generated + * @ordered + */ + protected Function function; + + /** + * + * + * @generated + */ + protected FunctionCallImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.FUNCTION_CALL; + } + + /** + * + * + * @generated + */ + @Override + public Function getFunction() + { + if (function != null && function.eIsProxy()) + { + InternalEObject oldFunction = (InternalEObject)function; + function = (Function)eResolveProxy(oldFunction); + if (function != oldFunction) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, tdlPackage.FUNCTION_CALL__FUNCTION, oldFunction, function)); + } + } + return function; + } + + /** + * + * + * @generated + */ + public Function basicGetFunction() + { + return function; + } + + /** + * + * + * @generated + */ + @Override + public void setFunction(Function newFunction) + { + Function oldFunction = function; + function = newFunction; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.FUNCTION_CALL__FUNCTION, oldFunction, function)); + } + + /** + * The cached invocation delegate for the '{@link #resolveDataType() Resolve Data Type}' operation. + * + * + * @see #resolveDataType() + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate RESOLVE_DATA_TYPE__EINVOCATION_DELEGATE = ((EOperation.Internal)tdlPackage.Literals.FUNCTION_CALL___RESOLVE_DATA_TYPE).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @Override + public DataType resolveDataType() + { + try + { + return (DataType)RESOLVE_DATA_TYPE__EINVOCATION_DELEGATE.dynamicInvoke(this, null); + } + catch (InvocationTargetException ite) + { + throw new WrappedException(ite); + } + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case tdlPackage.FUNCTION_CALL__FUNCTION: + if (resolve) return getFunction(); + return basicGetFunction(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case tdlPackage.FUNCTION_CALL__FUNCTION: + setFunction((Function)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case tdlPackage.FUNCTION_CALL__FUNCTION: + setFunction((Function)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case tdlPackage.FUNCTION_CALL__FUNCTION: + return function != null; + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public int eDerivedOperationID(int baseOperationID, Class baseClass) + { + if (baseClass == DataUse.class) + { + switch (baseOperationID) + { + case tdlPackage.DATA_USE___RESOLVE_DATA_TYPE: return tdlPackage.FUNCTION_CALL___RESOLVE_DATA_TYPE; + default: return super.eDerivedOperationID(baseOperationID, baseClass); + } + } + return super.eDerivedOperationID(baseOperationID, baseClass); + } + + /** + * + * + * @generated + */ + @Override + public Object eInvoke(int operationID, EList arguments) throws InvocationTargetException + { + switch (operationID) + { + case tdlPackage.FUNCTION_CALL___RESOLVE_DATA_TYPE: + return resolveDataType(); + } + return super.eInvoke(operationID, arguments); + } + +} //FunctionCallImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/FunctionImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/FunctionImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..1ae3ad34a08321efe9ddfbab69524b0ce80b1303 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/FunctionImpl.java @@ -0,0 +1,174 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.etsi.mts.tdl.DataType; +import org.etsi.mts.tdl.Function; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Function'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.impl.FunctionImpl#getReturnType Return Type}
  • + *
+ * + * @generated + */ +public class FunctionImpl extends ActionImpl implements Function +{ + /** + * The cached value of the '{@link #getReturnType() Return Type}' reference. + * + * + * @see #getReturnType() + * @generated + * @ordered + */ + protected DataType returnType; + + /** + * + * + * @generated + */ + protected FunctionImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.FUNCTION; + } + + /** + * + * + * @generated + */ + @Override + public DataType getReturnType() + { + if (returnType != null && returnType.eIsProxy()) + { + InternalEObject oldReturnType = (InternalEObject)returnType; + returnType = (DataType)eResolveProxy(oldReturnType); + if (returnType != oldReturnType) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, tdlPackage.FUNCTION__RETURN_TYPE, oldReturnType, returnType)); + } + } + return returnType; + } + + /** + * + * + * @generated + */ + public DataType basicGetReturnType() + { + return returnType; + } + + /** + * + * + * @generated + */ + @Override + public void setReturnType(DataType newReturnType) + { + DataType oldReturnType = returnType; + returnType = newReturnType; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.FUNCTION__RETURN_TYPE, oldReturnType, returnType)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case tdlPackage.FUNCTION__RETURN_TYPE: + if (resolve) return getReturnType(); + return basicGetReturnType(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case tdlPackage.FUNCTION__RETURN_TYPE: + setReturnType((DataType)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case tdlPackage.FUNCTION__RETURN_TYPE: + setReturnType((DataType)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case tdlPackage.FUNCTION__RETURN_TYPE: + return returnType != null; + } + return super.eIsSet(featureID); + } + +} //FunctionImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/GateInstanceImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/GateInstanceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..62df394f587b2a4dc05a9a349ed359502814ce29 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/GateInstanceImpl.java @@ -0,0 +1,174 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.etsi.mts.tdl.GateInstance; +import org.etsi.mts.tdl.GateType; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Gate Instance'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.impl.GateInstanceImpl#getType Type}
  • + *
+ * + * @generated + */ +public class GateInstanceImpl extends NamedElementImpl implements GateInstance +{ + /** + * The cached value of the '{@link #getType() Type}' reference. + * + * + * @see #getType() + * @generated + * @ordered + */ + protected GateType type; + + /** + * + * + * @generated + */ + protected GateInstanceImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.GATE_INSTANCE; + } + + /** + * + * + * @generated + */ + @Override + public GateType getType() + { + if (type != null && type.eIsProxy()) + { + InternalEObject oldType = (InternalEObject)type; + type = (GateType)eResolveProxy(oldType); + if (type != oldType) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, tdlPackage.GATE_INSTANCE__TYPE, oldType, type)); + } + } + return type; + } + + /** + * + * + * @generated + */ + public GateType basicGetType() + { + return type; + } + + /** + * + * + * @generated + */ + @Override + public void setType(GateType newType) + { + GateType oldType = type; + type = newType; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.GATE_INSTANCE__TYPE, oldType, type)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case tdlPackage.GATE_INSTANCE__TYPE: + if (resolve) return getType(); + return basicGetType(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case tdlPackage.GATE_INSTANCE__TYPE: + setType((GateType)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case tdlPackage.GATE_INSTANCE__TYPE: + setType((GateType)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case tdlPackage.GATE_INSTANCE__TYPE: + return type != null; + } + return super.eIsSet(featureID); + } + +} //GateInstanceImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/GateReferenceImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/GateReferenceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..9b994ebfa8eb9899948d38387beb7132a0ffd5d4 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/GateReferenceImpl.java @@ -0,0 +1,242 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.etsi.mts.tdl.ComponentInstance; +import org.etsi.mts.tdl.GateInstance; +import org.etsi.mts.tdl.GateReference; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Gate Reference'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.impl.GateReferenceImpl#getComponent Component}
  • + *
  • {@link org.etsi.mts.tdl.impl.GateReferenceImpl#getGate Gate}
  • + *
+ * + * @generated + */ +public class GateReferenceImpl extends ElementImpl implements GateReference +{ + /** + * The cached value of the '{@link #getComponent() Component}' reference. + * + * + * @see #getComponent() + * @generated + * @ordered + */ + protected ComponentInstance component; + + /** + * The cached value of the '{@link #getGate() Gate}' reference. + * + * + * @see #getGate() + * @generated + * @ordered + */ + protected GateInstance gate; + + /** + * + * + * @generated + */ + protected GateReferenceImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.GATE_REFERENCE; + } + + /** + * + * + * @generated + */ + @Override + public ComponentInstance getComponent() + { + if (component != null && component.eIsProxy()) + { + InternalEObject oldComponent = (InternalEObject)component; + component = (ComponentInstance)eResolveProxy(oldComponent); + if (component != oldComponent) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, tdlPackage.GATE_REFERENCE__COMPONENT, oldComponent, component)); + } + } + return component; + } + + /** + * + * + * @generated + */ + public ComponentInstance basicGetComponent() + { + return component; + } + + /** + * + * + * @generated + */ + @Override + public void setComponent(ComponentInstance newComponent) + { + ComponentInstance oldComponent = component; + component = newComponent; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.GATE_REFERENCE__COMPONENT, oldComponent, component)); + } + + /** + * + * + * @generated + */ + @Override + public GateInstance getGate() + { + if (gate != null && gate.eIsProxy()) + { + InternalEObject oldGate = (InternalEObject)gate; + gate = (GateInstance)eResolveProxy(oldGate); + if (gate != oldGate) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, tdlPackage.GATE_REFERENCE__GATE, oldGate, gate)); + } + } + return gate; + } + + /** + * + * + * @generated + */ + public GateInstance basicGetGate() + { + return gate; + } + + /** + * + * + * @generated + */ + @Override + public void setGate(GateInstance newGate) + { + GateInstance oldGate = gate; + gate = newGate; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.GATE_REFERENCE__GATE, oldGate, gate)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case tdlPackage.GATE_REFERENCE__COMPONENT: + if (resolve) return getComponent(); + return basicGetComponent(); + case tdlPackage.GATE_REFERENCE__GATE: + if (resolve) return getGate(); + return basicGetGate(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case tdlPackage.GATE_REFERENCE__COMPONENT: + setComponent((ComponentInstance)newValue); + return; + case tdlPackage.GATE_REFERENCE__GATE: + setGate((GateInstance)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case tdlPackage.GATE_REFERENCE__COMPONENT: + setComponent((ComponentInstance)null); + return; + case tdlPackage.GATE_REFERENCE__GATE: + setGate((GateInstance)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case tdlPackage.GATE_REFERENCE__COMPONENT: + return component != null; + case tdlPackage.GATE_REFERENCE__GATE: + return gate != null; + } + return super.eIsSet(featureID); + } + +} //GateReferenceImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/GateTypeImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/GateTypeImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..de5c8d9198946350f714762872bc714628cb1819 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/GateTypeImpl.java @@ -0,0 +1,363 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import java.lang.reflect.InvocationTargetException; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.common.util.WrappedException; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EOperation; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectResolvingEList; + +import org.etsi.mts.tdl.DataType; +import org.etsi.mts.tdl.Extension; +import org.etsi.mts.tdl.GateType; +import org.etsi.mts.tdl.GateTypeKind; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Gate Type'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.impl.GateTypeImpl#getDataType Data Type}
  • + *
  • {@link org.etsi.mts.tdl.impl.GateTypeImpl#getKind Kind}
  • + *
  • {@link org.etsi.mts.tdl.impl.GateTypeImpl#getExtension Extension}
  • + *
+ * + * @generated + */ +public class GateTypeImpl extends PackageableElementImpl implements GateType +{ + /** + * The cached value of the '{@link #getDataType() Data Type}' reference list. + * + * + * @see #getDataType() + * @generated + * @ordered + */ + protected EList dataType; + + /** + * The default value of the '{@link #getKind() Kind}' attribute. + * + * + * @see #getKind() + * @generated + * @ordered + */ + protected static final GateTypeKind KIND_EDEFAULT = GateTypeKind.MESSAGE; + + /** + * The cached value of the '{@link #getKind() Kind}' attribute. + * + * + * @see #getKind() + * @generated + * @ordered + */ + protected GateTypeKind kind = KIND_EDEFAULT; + + /** + * The cached value of the '{@link #getExtension() Extension}' containment reference. + * + * + * @see #getExtension() + * @generated + * @ordered + */ + protected Extension extension; + + /** + * + * + * @generated + */ + protected GateTypeImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.GATE_TYPE; + } + + /** + * + * + * @generated + */ + @Override + public EList getDataType() + { + if (dataType == null) + { + dataType = new EObjectResolvingEList(DataType.class, this, tdlPackage.GATE_TYPE__DATA_TYPE); + } + return dataType; + } + + /** + * + * + * @generated + */ + @Override + public GateTypeKind getKind() + { + return kind; + } + + /** + * + * + * @generated + */ + @Override + public void setKind(GateTypeKind newKind) + { + GateTypeKind oldKind = kind; + kind = newKind == null ? KIND_EDEFAULT : newKind; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.GATE_TYPE__KIND, oldKind, kind)); + } + + /** + * + * + * @generated + */ + @Override + public Extension getExtension() + { + return extension; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetExtension(Extension newExtension, NotificationChain msgs) + { + Extension oldExtension = extension; + extension = newExtension; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, tdlPackage.GATE_TYPE__EXTENSION, oldExtension, newExtension); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + @Override + public void setExtension(Extension newExtension) + { + if (newExtension != extension) + { + NotificationChain msgs = null; + if (extension != null) + msgs = ((InternalEObject)extension).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - tdlPackage.GATE_TYPE__EXTENSION, null, msgs); + if (newExtension != null) + msgs = ((InternalEObject)newExtension).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - tdlPackage.GATE_TYPE__EXTENSION, null, msgs); + msgs = basicSetExtension(newExtension, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.GATE_TYPE__EXTENSION, newExtension, newExtension)); + } + + /** + * The cached invocation delegate for the '{@link #allDataTypes() All Data Types}' operation. + * + * + * @see #allDataTypes() + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate ALL_DATA_TYPES__EINVOCATION_DELEGATE = ((EOperation.Internal)tdlPackage.Literals.GATE_TYPE___ALL_DATA_TYPES).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList allDataTypes() + { + try + { + return (EList)ALL_DATA_TYPES__EINVOCATION_DELEGATE.dynamicInvoke(this, null); + } + catch (InvocationTargetException ite) + { + throw new WrappedException(ite); + } + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case tdlPackage.GATE_TYPE__EXTENSION: + return basicSetExtension(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case tdlPackage.GATE_TYPE__DATA_TYPE: + return getDataType(); + case tdlPackage.GATE_TYPE__KIND: + return getKind(); + case tdlPackage.GATE_TYPE__EXTENSION: + return getExtension(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case tdlPackage.GATE_TYPE__DATA_TYPE: + getDataType().clear(); + getDataType().addAll((Collection)newValue); + return; + case tdlPackage.GATE_TYPE__KIND: + setKind((GateTypeKind)newValue); + return; + case tdlPackage.GATE_TYPE__EXTENSION: + setExtension((Extension)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case tdlPackage.GATE_TYPE__DATA_TYPE: + getDataType().clear(); + return; + case tdlPackage.GATE_TYPE__KIND: + setKind(KIND_EDEFAULT); + return; + case tdlPackage.GATE_TYPE__EXTENSION: + setExtension((Extension)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case tdlPackage.GATE_TYPE__DATA_TYPE: + return dataType != null && !dataType.isEmpty(); + case tdlPackage.GATE_TYPE__KIND: + return kind != KIND_EDEFAULT; + case tdlPackage.GATE_TYPE__EXTENSION: + return extension != null; + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public Object eInvoke(int operationID, EList arguments) throws InvocationTargetException + { + switch (operationID) + { + case tdlPackage.GATE_TYPE___ALL_DATA_TYPES: + return allDataTypes(); + } + return super.eInvoke(operationID, arguments); + } + + /** + * + * + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuilder result = new StringBuilder(super.toString()); + result.append(" (kind: "); + result.append(kind); + result.append(')'); + return result.toString(); + } + +} //GateTypeImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/InlineActionImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/InlineActionImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..bcc5ed23f609051608c96db246414cd0a8be72e5 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/InlineActionImpl.java @@ -0,0 +1,178 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.etsi.mts.tdl.InlineAction; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Inline Action'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.impl.InlineActionImpl#getBody Body}
  • + *
+ * + * @generated + */ +public class InlineActionImpl extends ActionBehaviourImpl implements InlineAction +{ + /** + * The default value of the '{@link #getBody() Body}' attribute. + * + * + * @see #getBody() + * @generated + * @ordered + */ + protected static final String BODY_EDEFAULT = null; + + /** + * The cached value of the '{@link #getBody() Body}' attribute. + * + * + * @see #getBody() + * @generated + * @ordered + */ + protected String body = BODY_EDEFAULT; + + /** + * + * + * @generated + */ + protected InlineActionImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.INLINE_ACTION; + } + + /** + * + * + * @generated + */ + @Override + public String getBody() + { + return body; + } + + /** + * + * + * @generated + */ + @Override + public void setBody(String newBody) + { + String oldBody = body; + body = newBody; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.INLINE_ACTION__BODY, oldBody, body)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case tdlPackage.INLINE_ACTION__BODY: + return getBody(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case tdlPackage.INLINE_ACTION__BODY: + setBody((String)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case tdlPackage.INLINE_ACTION__BODY: + setBody(BODY_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case tdlPackage.INLINE_ACTION__BODY: + return BODY_EDEFAULT == null ? body != null : !BODY_EDEFAULT.equals(body); + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuilder result = new StringBuilder(super.toString()); + result.append(" (body: "); + result.append(body); + result.append(')'); + return result.toString(); + } + +} //InlineActionImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/InteractionImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/InteractionImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..b3daddeb1eea5e78bfeaeb1e29bbf3ab2eb0e20f --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/InteractionImpl.java @@ -0,0 +1,316 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import java.lang.reflect.InvocationTargetException; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.common.util.WrappedException; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EOperation; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.etsi.mts.tdl.AtomicBehaviour; +import org.etsi.mts.tdl.Behaviour; +import org.etsi.mts.tdl.ComponentInstance; +import org.etsi.mts.tdl.GateReference; +import org.etsi.mts.tdl.Interaction; +import org.etsi.mts.tdl.Target; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Interaction'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.impl.InteractionImpl#getSourceGate Source Gate}
  • + *
  • {@link org.etsi.mts.tdl.impl.InteractionImpl#getTarget Target}
  • + *
+ * + * @generated + */ +public class InteractionImpl extends AtomicBehaviourImpl implements Interaction +{ + /** + * The cached value of the '{@link #getSourceGate() Source Gate}' reference. + * + * + * @see #getSourceGate() + * @generated + * @ordered + */ + protected GateReference sourceGate; + + /** + * The cached value of the '{@link #getTarget() Target}' containment reference list. + * + * + * @see #getTarget() + * @generated + * @ordered + */ + protected EList target; + + /** + * + * + * @generated + */ + protected InteractionImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.INTERACTION; + } + + /** + * + * + * @generated + */ + @Override + public GateReference getSourceGate() + { + if (sourceGate != null && sourceGate.eIsProxy()) + { + InternalEObject oldSourceGate = (InternalEObject)sourceGate; + sourceGate = (GateReference)eResolveProxy(oldSourceGate); + if (sourceGate != oldSourceGate) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, tdlPackage.INTERACTION__SOURCE_GATE, oldSourceGate, sourceGate)); + } + } + return sourceGate; + } + + /** + * + * + * @generated + */ + public GateReference basicGetSourceGate() + { + return sourceGate; + } + + /** + * + * + * @generated + */ + @Override + public void setSourceGate(GateReference newSourceGate) + { + GateReference oldSourceGate = sourceGate; + sourceGate = newSourceGate; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.INTERACTION__SOURCE_GATE, oldSourceGate, sourceGate)); + } + + /** + * + * + * @generated + */ + @Override + public EList getTarget() + { + if (target == null) + { + target = new EObjectContainmentEList(Target.class, this, tdlPackage.INTERACTION__TARGET); + } + return target; + } + + /** + * The cached invocation delegate for the '{@link #getParticipatingComponents() Get Participating Components}' operation. + * + * + * @see #getParticipatingComponents() + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate GET_PARTICIPATING_COMPONENTS__EINVOCATION_DELEGATE = ((EOperation.Internal)tdlPackage.Literals.INTERACTION___GET_PARTICIPATING_COMPONENTS).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getParticipatingComponents() + { + try + { + return (EList)GET_PARTICIPATING_COMPONENTS__EINVOCATION_DELEGATE.dynamicInvoke(this, null); + } + catch (InvocationTargetException ite) + { + throw new WrappedException(ite); + } + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case tdlPackage.INTERACTION__TARGET: + return ((InternalEList)getTarget()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case tdlPackage.INTERACTION__SOURCE_GATE: + if (resolve) return getSourceGate(); + return basicGetSourceGate(); + case tdlPackage.INTERACTION__TARGET: + return getTarget(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case tdlPackage.INTERACTION__SOURCE_GATE: + setSourceGate((GateReference)newValue); + return; + case tdlPackage.INTERACTION__TARGET: + getTarget().clear(); + getTarget().addAll((Collection)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case tdlPackage.INTERACTION__SOURCE_GATE: + setSourceGate((GateReference)null); + return; + case tdlPackage.INTERACTION__TARGET: + getTarget().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case tdlPackage.INTERACTION__SOURCE_GATE: + return sourceGate != null; + case tdlPackage.INTERACTION__TARGET: + return target != null && !target.isEmpty(); + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public int eDerivedOperationID(int baseOperationID, Class baseClass) + { + if (baseClass == Behaviour.class) + { + switch (baseOperationID) + { + case tdlPackage.BEHAVIOUR___GET_PARTICIPATING_COMPONENTS: return tdlPackage.INTERACTION___GET_PARTICIPATING_COMPONENTS; + default: return super.eDerivedOperationID(baseOperationID, baseClass); + } + } + if (baseClass == AtomicBehaviour.class) + { + switch (baseOperationID) + { + case tdlPackage.ATOMIC_BEHAVIOUR___GET_PARTICIPATING_COMPONENTS: return tdlPackage.INTERACTION___GET_PARTICIPATING_COMPONENTS; + default: return super.eDerivedOperationID(baseOperationID, baseClass); + } + } + return super.eDerivedOperationID(baseOperationID, baseClass); + } + + /** + * + * + * @generated + */ + @Override + public Object eInvoke(int operationID, EList arguments) throws InvocationTargetException + { + switch (operationID) + { + case tdlPackage.INTERACTION___GET_PARTICIPATING_COMPONENTS: + return getParticipatingComponents(); + } + return super.eInvoke(operationID, arguments); + } + +} //InteractionImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/InterruptBehaviourImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/InterruptBehaviourImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..6a96468f91830daac3293d1d1bf70aa482899dc5 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/InterruptBehaviourImpl.java @@ -0,0 +1,40 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.etsi.mts.tdl.InterruptBehaviour; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Interrupt Behaviour'. + * + * + * @generated + */ +public class InterruptBehaviourImpl extends ExceptionalBehaviourImpl implements InterruptBehaviour +{ + /** + * + * + * @generated + */ + protected InterruptBehaviourImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.INTERRUPT_BEHAVIOUR; + } + +} //InterruptBehaviourImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/LiteralValueUseImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/LiteralValueUseImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..b232b009b82037578335b60a15b662d90e229180 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/LiteralValueUseImpl.java @@ -0,0 +1,435 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import java.lang.reflect.InvocationTargetException; + +import java.math.BigInteger; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.common.util.WrappedException; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EOperation; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.etsi.mts.tdl.DataType; +import org.etsi.mts.tdl.DataUse; +import org.etsi.mts.tdl.LiteralValueUse; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Literal Value Use'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.impl.LiteralValueUseImpl#getValue Value}
  • + *
  • {@link org.etsi.mts.tdl.impl.LiteralValueUseImpl#getIntValue Int Value}
  • + *
  • {@link org.etsi.mts.tdl.impl.LiteralValueUseImpl#getBoolValue Bool Value}
  • + *
  • {@link org.etsi.mts.tdl.impl.LiteralValueUseImpl#getDataType Data Type}
  • + *
+ * + * @generated + */ +public class LiteralValueUseImpl extends StaticDataUseImpl implements LiteralValueUse +{ + /** + * The default value of the '{@link #getValue() Value}' attribute. + * + * + * @see #getValue() + * @generated + * @ordered + */ + protected static final String VALUE_EDEFAULT = null; + + /** + * The cached value of the '{@link #getValue() Value}' attribute. + * + * + * @see #getValue() + * @generated + * @ordered + */ + protected String value = VALUE_EDEFAULT; + + /** + * The default value of the '{@link #getIntValue() Int Value}' attribute. + * + * + * @see #getIntValue() + * @generated + * @ordered + */ + protected static final BigInteger INT_VALUE_EDEFAULT = null; + + /** + * The cached value of the '{@link #getIntValue() Int Value}' attribute. + * + * + * @see #getIntValue() + * @generated + * @ordered + */ + protected BigInteger intValue = INT_VALUE_EDEFAULT; + + /** + * The default value of the '{@link #getBoolValue() Bool Value}' attribute. + * + * + * @see #getBoolValue() + * @generated + * @ordered + */ + protected static final Boolean BOOL_VALUE_EDEFAULT = null; + + /** + * The cached value of the '{@link #getBoolValue() Bool Value}' attribute. + * + * + * @see #getBoolValue() + * @generated + * @ordered + */ + protected Boolean boolValue = BOOL_VALUE_EDEFAULT; + + /** + * The cached value of the '{@link #getDataType() Data Type}' reference. + * + * + * @see #getDataType() + * @generated + * @ordered + */ + protected DataType dataType; + + /** + * + * + * @generated + */ + protected LiteralValueUseImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.LITERAL_VALUE_USE; + } + + /** + * + * + * @generated + */ + @Override + public String getValue() + { + return value; + } + + /** + * + * + * @generated + */ + @Override + public void setValue(String newValue) + { + String oldValue = value; + value = newValue; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.LITERAL_VALUE_USE__VALUE, oldValue, value)); + } + + /** + * + * + * @generated + */ + @Override + public BigInteger getIntValue() + { + return intValue; + } + + /** + * + * + * @generated + */ + @Override + public void setIntValue(BigInteger newIntValue) + { + BigInteger oldIntValue = intValue; + intValue = newIntValue; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.LITERAL_VALUE_USE__INT_VALUE, oldIntValue, intValue)); + } + + /** + * + * + * @generated + */ + @Override + public Boolean getBoolValue() + { + return boolValue; + } + + /** + * + * + * @generated + */ + @Override + public void setBoolValue(Boolean newBoolValue) + { + Boolean oldBoolValue = boolValue; + boolValue = newBoolValue; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.LITERAL_VALUE_USE__BOOL_VALUE, oldBoolValue, boolValue)); + } + + /** + * + * + * @generated + */ + @Override + public DataType getDataType() + { + if (dataType != null && dataType.eIsProxy()) + { + InternalEObject oldDataType = (InternalEObject)dataType; + dataType = (DataType)eResolveProxy(oldDataType); + if (dataType != oldDataType) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, tdlPackage.LITERAL_VALUE_USE__DATA_TYPE, oldDataType, dataType)); + } + } + return dataType; + } + + /** + * + * + * @generated + */ + public DataType basicGetDataType() + { + return dataType; + } + + /** + * + * + * @generated + */ + @Override + public void setDataType(DataType newDataType) + { + DataType oldDataType = dataType; + dataType = newDataType; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.LITERAL_VALUE_USE__DATA_TYPE, oldDataType, dataType)); + } + + /** + * The cached invocation delegate for the '{@link #resolveDataType() Resolve Data Type}' operation. + * + * + * @see #resolveDataType() + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate RESOLVE_DATA_TYPE__EINVOCATION_DELEGATE = ((EOperation.Internal)tdlPackage.Literals.LITERAL_VALUE_USE___RESOLVE_DATA_TYPE).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @Override + public DataType resolveDataType() + { + try + { + return (DataType)RESOLVE_DATA_TYPE__EINVOCATION_DELEGATE.dynamicInvoke(this, null); + } + catch (InvocationTargetException ite) + { + throw new WrappedException(ite); + } + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case tdlPackage.LITERAL_VALUE_USE__VALUE: + return getValue(); + case tdlPackage.LITERAL_VALUE_USE__INT_VALUE: + return getIntValue(); + case tdlPackage.LITERAL_VALUE_USE__BOOL_VALUE: + return getBoolValue(); + case tdlPackage.LITERAL_VALUE_USE__DATA_TYPE: + if (resolve) return getDataType(); + return basicGetDataType(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case tdlPackage.LITERAL_VALUE_USE__VALUE: + setValue((String)newValue); + return; + case tdlPackage.LITERAL_VALUE_USE__INT_VALUE: + setIntValue((BigInteger)newValue); + return; + case tdlPackage.LITERAL_VALUE_USE__BOOL_VALUE: + setBoolValue((Boolean)newValue); + return; + case tdlPackage.LITERAL_VALUE_USE__DATA_TYPE: + setDataType((DataType)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case tdlPackage.LITERAL_VALUE_USE__VALUE: + setValue(VALUE_EDEFAULT); + return; + case tdlPackage.LITERAL_VALUE_USE__INT_VALUE: + setIntValue(INT_VALUE_EDEFAULT); + return; + case tdlPackage.LITERAL_VALUE_USE__BOOL_VALUE: + setBoolValue(BOOL_VALUE_EDEFAULT); + return; + case tdlPackage.LITERAL_VALUE_USE__DATA_TYPE: + setDataType((DataType)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case tdlPackage.LITERAL_VALUE_USE__VALUE: + return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value); + case tdlPackage.LITERAL_VALUE_USE__INT_VALUE: + return INT_VALUE_EDEFAULT == null ? intValue != null : !INT_VALUE_EDEFAULT.equals(intValue); + case tdlPackage.LITERAL_VALUE_USE__BOOL_VALUE: + return BOOL_VALUE_EDEFAULT == null ? boolValue != null : !BOOL_VALUE_EDEFAULT.equals(boolValue); + case tdlPackage.LITERAL_VALUE_USE__DATA_TYPE: + return dataType != null; + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public int eDerivedOperationID(int baseOperationID, Class baseClass) + { + if (baseClass == DataUse.class) + { + switch (baseOperationID) + { + case tdlPackage.DATA_USE___RESOLVE_DATA_TYPE: return tdlPackage.LITERAL_VALUE_USE___RESOLVE_DATA_TYPE; + default: return super.eDerivedOperationID(baseOperationID, baseClass); + } + } + return super.eDerivedOperationID(baseOperationID, baseClass); + } + + /** + * + * + * @generated + */ + @Override + public Object eInvoke(int operationID, EList arguments) throws InvocationTargetException + { + switch (operationID) + { + case tdlPackage.LITERAL_VALUE_USE___RESOLVE_DATA_TYPE: + return resolveDataType(); + } + return super.eInvoke(operationID, arguments); + } + + /** + * + * + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuilder result = new StringBuilder(super.toString()); + result.append(" (value: "); + result.append(value); + result.append(", intValue: "); + result.append(intValue); + result.append(", boolValue: "); + result.append(boolValue); + result.append(')'); + return result.toString(); + } + +} //LiteralValueUseImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/LocalExpressionImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/LocalExpressionImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..3db1568e55c16cf422bb001ee3e1eb630bbc95bf --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/LocalExpressionImpl.java @@ -0,0 +1,263 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.etsi.mts.tdl.ComponentInstance; +import org.etsi.mts.tdl.DataUse; +import org.etsi.mts.tdl.LocalExpression; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Local Expression'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.impl.LocalExpressionImpl#getExpression Expression}
  • + *
  • {@link org.etsi.mts.tdl.impl.LocalExpressionImpl#getComponentInstance Component Instance}
  • + *
+ * + * @generated + */ +public class LocalExpressionImpl extends ElementImpl implements LocalExpression +{ + /** + * The cached value of the '{@link #getExpression() Expression}' containment reference. + * + * + * @see #getExpression() + * @generated + * @ordered + */ + protected DataUse expression; + + /** + * The cached value of the '{@link #getComponentInstance() Component Instance}' reference. + * + * + * @see #getComponentInstance() + * @generated + * @ordered + */ + protected ComponentInstance componentInstance; + + /** + * + * + * @generated + */ + protected LocalExpressionImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.LOCAL_EXPRESSION; + } + + /** + * + * + * @generated + */ + @Override + public DataUse getExpression() + { + return expression; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetExpression(DataUse newExpression, NotificationChain msgs) + { + DataUse oldExpression = expression; + expression = newExpression; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, tdlPackage.LOCAL_EXPRESSION__EXPRESSION, oldExpression, newExpression); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + @Override + public void setExpression(DataUse newExpression) + { + if (newExpression != expression) + { + NotificationChain msgs = null; + if (expression != null) + msgs = ((InternalEObject)expression).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - tdlPackage.LOCAL_EXPRESSION__EXPRESSION, null, msgs); + if (newExpression != null) + msgs = ((InternalEObject)newExpression).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - tdlPackage.LOCAL_EXPRESSION__EXPRESSION, null, msgs); + msgs = basicSetExpression(newExpression, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.LOCAL_EXPRESSION__EXPRESSION, newExpression, newExpression)); + } + + /** + * + * + * @generated + */ + @Override + public ComponentInstance getComponentInstance() + { + if (componentInstance != null && componentInstance.eIsProxy()) + { + InternalEObject oldComponentInstance = (InternalEObject)componentInstance; + componentInstance = (ComponentInstance)eResolveProxy(oldComponentInstance); + if (componentInstance != oldComponentInstance) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, tdlPackage.LOCAL_EXPRESSION__COMPONENT_INSTANCE, oldComponentInstance, componentInstance)); + } + } + return componentInstance; + } + + /** + * + * + * @generated + */ + public ComponentInstance basicGetComponentInstance() + { + return componentInstance; + } + + /** + * + * + * @generated + */ + @Override + public void setComponentInstance(ComponentInstance newComponentInstance) + { + ComponentInstance oldComponentInstance = componentInstance; + componentInstance = newComponentInstance; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.LOCAL_EXPRESSION__COMPONENT_INSTANCE, oldComponentInstance, componentInstance)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case tdlPackage.LOCAL_EXPRESSION__EXPRESSION: + return basicSetExpression(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case tdlPackage.LOCAL_EXPRESSION__EXPRESSION: + return getExpression(); + case tdlPackage.LOCAL_EXPRESSION__COMPONENT_INSTANCE: + if (resolve) return getComponentInstance(); + return basicGetComponentInstance(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case tdlPackage.LOCAL_EXPRESSION__EXPRESSION: + setExpression((DataUse)newValue); + return; + case tdlPackage.LOCAL_EXPRESSION__COMPONENT_INSTANCE: + setComponentInstance((ComponentInstance)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case tdlPackage.LOCAL_EXPRESSION__EXPRESSION: + setExpression((DataUse)null); + return; + case tdlPackage.LOCAL_EXPRESSION__COMPONENT_INSTANCE: + setComponentInstance((ComponentInstance)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case tdlPackage.LOCAL_EXPRESSION__EXPRESSION: + return expression != null; + case tdlPackage.LOCAL_EXPRESSION__COMPONENT_INSTANCE: + return componentInstance != null; + } + return super.eIsSet(featureID); + } + +} //LocalExpressionImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/MappableDataElementImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/MappableDataElementImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..cd21629883e9dc504ab59a2a30c46a2af3cfd570 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/MappableDataElementImpl.java @@ -0,0 +1,40 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.etsi.mts.tdl.MappableDataElement; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Mappable Data Element'. + * + * + * @generated + */ +public abstract class MappableDataElementImpl extends PackageableElementImpl implements MappableDataElement +{ + /** + * + * + * @generated + */ + protected MappableDataElementImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.MAPPABLE_DATA_ELEMENT; + } + +} //MappableDataElementImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/MemberAssignmentImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/MemberAssignmentImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..0fcfe77e4434e8f2cd0d8fe3f90983eef3b6ee19 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/MemberAssignmentImpl.java @@ -0,0 +1,263 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.etsi.mts.tdl.DataUse; +import org.etsi.mts.tdl.Member; +import org.etsi.mts.tdl.MemberAssignment; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Member Assignment'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.impl.MemberAssignmentImpl#getMember Member}
  • + *
  • {@link org.etsi.mts.tdl.impl.MemberAssignmentImpl#getMemberSpec Member Spec}
  • + *
+ * + * @generated + */ +public class MemberAssignmentImpl extends ElementImpl implements MemberAssignment +{ + /** + * The cached value of the '{@link #getMember() Member}' reference. + * + * + * @see #getMember() + * @generated + * @ordered + */ + protected Member member; + + /** + * The cached value of the '{@link #getMemberSpec() Member Spec}' containment reference. + * + * + * @see #getMemberSpec() + * @generated + * @ordered + */ + protected DataUse memberSpec; + + /** + * + * + * @generated + */ + protected MemberAssignmentImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.MEMBER_ASSIGNMENT; + } + + /** + * + * + * @generated + */ + @Override + public Member getMember() + { + if (member != null && member.eIsProxy()) + { + InternalEObject oldMember = (InternalEObject)member; + member = (Member)eResolveProxy(oldMember); + if (member != oldMember) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, tdlPackage.MEMBER_ASSIGNMENT__MEMBER, oldMember, member)); + } + } + return member; + } + + /** + * + * + * @generated + */ + public Member basicGetMember() + { + return member; + } + + /** + * + * + * @generated + */ + @Override + public void setMember(Member newMember) + { + Member oldMember = member; + member = newMember; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.MEMBER_ASSIGNMENT__MEMBER, oldMember, member)); + } + + /** + * + * + * @generated + */ + @Override + public DataUse getMemberSpec() + { + return memberSpec; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetMemberSpec(DataUse newMemberSpec, NotificationChain msgs) + { + DataUse oldMemberSpec = memberSpec; + memberSpec = newMemberSpec; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, tdlPackage.MEMBER_ASSIGNMENT__MEMBER_SPEC, oldMemberSpec, newMemberSpec); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + @Override + public void setMemberSpec(DataUse newMemberSpec) + { + if (newMemberSpec != memberSpec) + { + NotificationChain msgs = null; + if (memberSpec != null) + msgs = ((InternalEObject)memberSpec).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - tdlPackage.MEMBER_ASSIGNMENT__MEMBER_SPEC, null, msgs); + if (newMemberSpec != null) + msgs = ((InternalEObject)newMemberSpec).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - tdlPackage.MEMBER_ASSIGNMENT__MEMBER_SPEC, null, msgs); + msgs = basicSetMemberSpec(newMemberSpec, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.MEMBER_ASSIGNMENT__MEMBER_SPEC, newMemberSpec, newMemberSpec)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case tdlPackage.MEMBER_ASSIGNMENT__MEMBER_SPEC: + return basicSetMemberSpec(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case tdlPackage.MEMBER_ASSIGNMENT__MEMBER: + if (resolve) return getMember(); + return basicGetMember(); + case tdlPackage.MEMBER_ASSIGNMENT__MEMBER_SPEC: + return getMemberSpec(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case tdlPackage.MEMBER_ASSIGNMENT__MEMBER: + setMember((Member)newValue); + return; + case tdlPackage.MEMBER_ASSIGNMENT__MEMBER_SPEC: + setMemberSpec((DataUse)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case tdlPackage.MEMBER_ASSIGNMENT__MEMBER: + setMember((Member)null); + return; + case tdlPackage.MEMBER_ASSIGNMENT__MEMBER_SPEC: + setMemberSpec((DataUse)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case tdlPackage.MEMBER_ASSIGNMENT__MEMBER: + return member != null; + case tdlPackage.MEMBER_ASSIGNMENT__MEMBER_SPEC: + return memberSpec != null; + } + return super.eIsSet(featureID); + } + +} //MemberAssignmentImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/MemberImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/MemberImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..006918931aa8107edaac75bae90e6b2c923a9ae7 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/MemberImpl.java @@ -0,0 +1,242 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.etsi.mts.tdl.Constraint; +import org.etsi.mts.tdl.Member; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Member'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.impl.MemberImpl#isIsOptional Is Optional}
  • + *
  • {@link org.etsi.mts.tdl.impl.MemberImpl#getConstraint Constraint}
  • + *
+ * + * @generated + */ +public class MemberImpl extends ParameterImpl implements Member +{ + /** + * The default value of the '{@link #isIsOptional() Is Optional}' attribute. + * + * + * @see #isIsOptional() + * @generated + * @ordered + */ + protected static final boolean IS_OPTIONAL_EDEFAULT = false; + + /** + * The cached value of the '{@link #isIsOptional() Is Optional}' attribute. + * + * + * @see #isIsOptional() + * @generated + * @ordered + */ + protected boolean isOptional = IS_OPTIONAL_EDEFAULT; + + /** + * The cached value of the '{@link #getConstraint() Constraint}' containment reference list. + * + * + * @see #getConstraint() + * @generated + * @ordered + */ + protected EList constraint; + + /** + * + * + * @generated + */ + protected MemberImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.MEMBER; + } + + /** + * + * + * @generated + */ + @Override + public boolean isIsOptional() + { + return isOptional; + } + + /** + * + * + * @generated + */ + @Override + public void setIsOptional(boolean newIsOptional) + { + boolean oldIsOptional = isOptional; + isOptional = newIsOptional; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.MEMBER__IS_OPTIONAL, oldIsOptional, isOptional)); + } + + /** + * + * + * @generated + */ + @Override + public EList getConstraint() + { + if (constraint == null) + { + constraint = new EObjectContainmentEList(Constraint.class, this, tdlPackage.MEMBER__CONSTRAINT); + } + return constraint; + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case tdlPackage.MEMBER__CONSTRAINT: + return ((InternalEList)getConstraint()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case tdlPackage.MEMBER__IS_OPTIONAL: + return isIsOptional(); + case tdlPackage.MEMBER__CONSTRAINT: + return getConstraint(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case tdlPackage.MEMBER__IS_OPTIONAL: + setIsOptional((Boolean)newValue); + return; + case tdlPackage.MEMBER__CONSTRAINT: + getConstraint().clear(); + getConstraint().addAll((Collection)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case tdlPackage.MEMBER__IS_OPTIONAL: + setIsOptional(IS_OPTIONAL_EDEFAULT); + return; + case tdlPackage.MEMBER__CONSTRAINT: + getConstraint().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case tdlPackage.MEMBER__IS_OPTIONAL: + return isOptional != IS_OPTIONAL_EDEFAULT; + case tdlPackage.MEMBER__CONSTRAINT: + return constraint != null && !constraint.isEmpty(); + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuilder result = new StringBuilder(super.toString()); + result.append(" (isOptional: "); + result.append(isOptional); + result.append(')'); + return result.toString(); + } + +} //MemberImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/MemberReferenceImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/MemberReferenceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..4424ce92151918e70008e3be78d2fcb85dfac25a --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/MemberReferenceImpl.java @@ -0,0 +1,263 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.etsi.mts.tdl.DataUse; +import org.etsi.mts.tdl.Member; +import org.etsi.mts.tdl.MemberReference; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Member Reference'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.impl.MemberReferenceImpl#getMember Member}
  • + *
  • {@link org.etsi.mts.tdl.impl.MemberReferenceImpl#getCollectionIndex Collection Index}
  • + *
+ * + * @generated + */ +public class MemberReferenceImpl extends ElementImpl implements MemberReference +{ + /** + * The cached value of the '{@link #getMember() Member}' reference. + * + * + * @see #getMember() + * @generated + * @ordered + */ + protected Member member; + + /** + * The cached value of the '{@link #getCollectionIndex() Collection Index}' containment reference. + * + * + * @see #getCollectionIndex() + * @generated + * @ordered + */ + protected DataUse collectionIndex; + + /** + * + * + * @generated + */ + protected MemberReferenceImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.MEMBER_REFERENCE; + } + + /** + * + * + * @generated + */ + @Override + public Member getMember() + { + if (member != null && member.eIsProxy()) + { + InternalEObject oldMember = (InternalEObject)member; + member = (Member)eResolveProxy(oldMember); + if (member != oldMember) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, tdlPackage.MEMBER_REFERENCE__MEMBER, oldMember, member)); + } + } + return member; + } + + /** + * + * + * @generated + */ + public Member basicGetMember() + { + return member; + } + + /** + * + * + * @generated + */ + @Override + public void setMember(Member newMember) + { + Member oldMember = member; + member = newMember; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.MEMBER_REFERENCE__MEMBER, oldMember, member)); + } + + /** + * + * + * @generated + */ + @Override + public DataUse getCollectionIndex() + { + return collectionIndex; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetCollectionIndex(DataUse newCollectionIndex, NotificationChain msgs) + { + DataUse oldCollectionIndex = collectionIndex; + collectionIndex = newCollectionIndex; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, tdlPackage.MEMBER_REFERENCE__COLLECTION_INDEX, oldCollectionIndex, newCollectionIndex); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + @Override + public void setCollectionIndex(DataUse newCollectionIndex) + { + if (newCollectionIndex != collectionIndex) + { + NotificationChain msgs = null; + if (collectionIndex != null) + msgs = ((InternalEObject)collectionIndex).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - tdlPackage.MEMBER_REFERENCE__COLLECTION_INDEX, null, msgs); + if (newCollectionIndex != null) + msgs = ((InternalEObject)newCollectionIndex).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - tdlPackage.MEMBER_REFERENCE__COLLECTION_INDEX, null, msgs); + msgs = basicSetCollectionIndex(newCollectionIndex, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.MEMBER_REFERENCE__COLLECTION_INDEX, newCollectionIndex, newCollectionIndex)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case tdlPackage.MEMBER_REFERENCE__COLLECTION_INDEX: + return basicSetCollectionIndex(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case tdlPackage.MEMBER_REFERENCE__MEMBER: + if (resolve) return getMember(); + return basicGetMember(); + case tdlPackage.MEMBER_REFERENCE__COLLECTION_INDEX: + return getCollectionIndex(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case tdlPackage.MEMBER_REFERENCE__MEMBER: + setMember((Member)newValue); + return; + case tdlPackage.MEMBER_REFERENCE__COLLECTION_INDEX: + setCollectionIndex((DataUse)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case tdlPackage.MEMBER_REFERENCE__MEMBER: + setMember((Member)null); + return; + case tdlPackage.MEMBER_REFERENCE__COLLECTION_INDEX: + setCollectionIndex((DataUse)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case tdlPackage.MEMBER_REFERENCE__MEMBER: + return member != null; + case tdlPackage.MEMBER_REFERENCE__COLLECTION_INDEX: + return collectionIndex != null; + } + return super.eIsSet(featureID); + } + +} //MemberReferenceImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/MessageImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/MessageImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..4a38283252ce144307e84b9aaa359f18f1b6b98d --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/MessageImpl.java @@ -0,0 +1,268 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.etsi.mts.tdl.DataUse; +import org.etsi.mts.tdl.Message; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Message'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.impl.MessageImpl#isIsTrigger Is Trigger}
  • + *
  • {@link org.etsi.mts.tdl.impl.MessageImpl#getArgument Argument}
  • + *
+ * + * @generated + */ +public class MessageImpl extends InteractionImpl implements Message +{ + /** + * The default value of the '{@link #isIsTrigger() Is Trigger}' attribute. + * + * + * @see #isIsTrigger() + * @generated + * @ordered + */ + protected static final boolean IS_TRIGGER_EDEFAULT = false; + + /** + * The cached value of the '{@link #isIsTrigger() Is Trigger}' attribute. + * + * + * @see #isIsTrigger() + * @generated + * @ordered + */ + protected boolean isTrigger = IS_TRIGGER_EDEFAULT; + + /** + * The cached value of the '{@link #getArgument() Argument}' containment reference. + * + * + * @see #getArgument() + * @generated + * @ordered + */ + protected DataUse argument; + + /** + * + * + * @generated + */ + protected MessageImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.MESSAGE; + } + + /** + * + * + * @generated + */ + @Override + public boolean isIsTrigger() + { + return isTrigger; + } + + /** + * + * + * @generated + */ + @Override + public void setIsTrigger(boolean newIsTrigger) + { + boolean oldIsTrigger = isTrigger; + isTrigger = newIsTrigger; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.MESSAGE__IS_TRIGGER, oldIsTrigger, isTrigger)); + } + + /** + * + * + * @generated + */ + @Override + public DataUse getArgument() + { + return argument; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetArgument(DataUse newArgument, NotificationChain msgs) + { + DataUse oldArgument = argument; + argument = newArgument; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, tdlPackage.MESSAGE__ARGUMENT, oldArgument, newArgument); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + @Override + public void setArgument(DataUse newArgument) + { + if (newArgument != argument) + { + NotificationChain msgs = null; + if (argument != null) + msgs = ((InternalEObject)argument).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - tdlPackage.MESSAGE__ARGUMENT, null, msgs); + if (newArgument != null) + msgs = ((InternalEObject)newArgument).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - tdlPackage.MESSAGE__ARGUMENT, null, msgs); + msgs = basicSetArgument(newArgument, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.MESSAGE__ARGUMENT, newArgument, newArgument)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case tdlPackage.MESSAGE__ARGUMENT: + return basicSetArgument(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case tdlPackage.MESSAGE__IS_TRIGGER: + return isIsTrigger(); + case tdlPackage.MESSAGE__ARGUMENT: + return getArgument(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case tdlPackage.MESSAGE__IS_TRIGGER: + setIsTrigger((Boolean)newValue); + return; + case tdlPackage.MESSAGE__ARGUMENT: + setArgument((DataUse)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case tdlPackage.MESSAGE__IS_TRIGGER: + setIsTrigger(IS_TRIGGER_EDEFAULT); + return; + case tdlPackage.MESSAGE__ARGUMENT: + setArgument((DataUse)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case tdlPackage.MESSAGE__IS_TRIGGER: + return isTrigger != IS_TRIGGER_EDEFAULT; + case tdlPackage.MESSAGE__ARGUMENT: + return argument != null; + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuilder result = new StringBuilder(super.toString()); + result.append(" (isTrigger: "); + result.append(isTrigger); + result.append(')'); + return result.toString(); + } + +} //MessageImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/MultipleCombinedBehaviourImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/MultipleCombinedBehaviourImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..d0bbd7f8f4fa57f50be9c61334fe3e11a1b20472 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/MultipleCombinedBehaviourImpl.java @@ -0,0 +1,236 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import java.lang.reflect.InvocationTargetException; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.common.util.WrappedException; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EOperation; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.etsi.mts.tdl.Behaviour; +import org.etsi.mts.tdl.Block; +import org.etsi.mts.tdl.ComponentInstance; +import org.etsi.mts.tdl.MultipleCombinedBehaviour; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Multiple Combined Behaviour'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.impl.MultipleCombinedBehaviourImpl#getBlock Block}
  • + *
+ * + * @generated + */ +public abstract class MultipleCombinedBehaviourImpl extends CombinedBehaviourImpl implements MultipleCombinedBehaviour +{ + /** + * The cached value of the '{@link #getBlock() Block}' containment reference list. + * + * + * @see #getBlock() + * @generated + * @ordered + */ + protected EList block; + + /** + * + * + * @generated + */ + protected MultipleCombinedBehaviourImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.MULTIPLE_COMBINED_BEHAVIOUR; + } + + /** + * + * + * @generated + */ + @Override + public EList getBlock() + { + if (block == null) + { + block = new EObjectContainmentEList(Block.class, this, tdlPackage.MULTIPLE_COMBINED_BEHAVIOUR__BLOCK); + } + return block; + } + + /** + * The cached invocation delegate for the '{@link #getParticipatingComponents() Get Participating Components}' operation. + * + * + * @see #getParticipatingComponents() + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate GET_PARTICIPATING_COMPONENTS__EINVOCATION_DELEGATE = ((EOperation.Internal)tdlPackage.Literals.MULTIPLE_COMBINED_BEHAVIOUR___GET_PARTICIPATING_COMPONENTS).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getParticipatingComponents() + { + try + { + return (EList)GET_PARTICIPATING_COMPONENTS__EINVOCATION_DELEGATE.dynamicInvoke(this, null); + } + catch (InvocationTargetException ite) + { + throw new WrappedException(ite); + } + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case tdlPackage.MULTIPLE_COMBINED_BEHAVIOUR__BLOCK: + return ((InternalEList)getBlock()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case tdlPackage.MULTIPLE_COMBINED_BEHAVIOUR__BLOCK: + return getBlock(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case tdlPackage.MULTIPLE_COMBINED_BEHAVIOUR__BLOCK: + getBlock().clear(); + getBlock().addAll((Collection)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case tdlPackage.MULTIPLE_COMBINED_BEHAVIOUR__BLOCK: + getBlock().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case tdlPackage.MULTIPLE_COMBINED_BEHAVIOUR__BLOCK: + return block != null && !block.isEmpty(); + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public int eDerivedOperationID(int baseOperationID, Class baseClass) + { + if (baseClass == Behaviour.class) + { + switch (baseOperationID) + { + case tdlPackage.BEHAVIOUR___GET_PARTICIPATING_COMPONENTS: return tdlPackage.MULTIPLE_COMBINED_BEHAVIOUR___GET_PARTICIPATING_COMPONENTS; + default: return super.eDerivedOperationID(baseOperationID, baseClass); + } + } + return super.eDerivedOperationID(baseOperationID, baseClass); + } + + /** + * + * + * @generated + */ + @Override + public Object eInvoke(int operationID, EList arguments) throws InvocationTargetException + { + switch (operationID) + { + case tdlPackage.MULTIPLE_COMBINED_BEHAVIOUR___GET_PARTICIPATING_COMPONENTS: + return getParticipatingComponents(); + } + return super.eInvoke(operationID, arguments); + } + +} //MultipleCombinedBehaviourImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/NamedElementImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/NamedElementImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..41de9af22eb0690df88c77e7c68826cf887fb325 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/NamedElementImpl.java @@ -0,0 +1,100 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; + +import org.etsi.mts.tdl.NamedElement; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Named Element'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.impl.NamedElementImpl#getQualifiedName Qualified Name}
  • + *
+ * + * @generated + */ +public abstract class NamedElementImpl extends ElementImpl implements NamedElement +{ + /** + * The cached setting delegate for the '{@link #getQualifiedName() Qualified Name}' attribute. + * + * + * @see #getQualifiedName() + * @generated + * @ordered + */ + protected EStructuralFeature.Internal.SettingDelegate QUALIFIED_NAME__ESETTING_DELEGATE = ((EStructuralFeature.Internal)tdlPackage.Literals.NAMED_ELEMENT__QUALIFIED_NAME).getSettingDelegate(); + + /** + * + * + * @generated + */ + protected NamedElementImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.NAMED_ELEMENT; + } + + /** + * + * + * @generated + */ + @Override + public String getQualifiedName() + { + return (String)QUALIFIED_NAME__ESETTING_DELEGATE.dynamicGet(this, null, 0, true, false); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case tdlPackage.NAMED_ELEMENT__QUALIFIED_NAME: + return getQualifiedName(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case tdlPackage.NAMED_ELEMENT__QUALIFIED_NAME: + return QUALIFIED_NAME__ESETTING_DELEGATE.dynamicIsSet(this, null, 0); + } + return super.eIsSet(featureID); + } + +} //NamedElementImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/OmitValueImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/OmitValueImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..0d545a691b230ae7a41a1c5d6ce3bc53a91139c8 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/OmitValueImpl.java @@ -0,0 +1,40 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.etsi.mts.tdl.OmitValue; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Omit Value'. + * + * + * @generated + */ +public class OmitValueImpl extends SpecialValueUseImpl implements OmitValue +{ + /** + * + * + * @generated + */ + protected OmitValueImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.OMIT_VALUE; + } + +} //OmitValueImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/OptionalBehaviourImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/OptionalBehaviourImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..4b1071d646073e8ae48778c08d60c8fc469a63fe --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/OptionalBehaviourImpl.java @@ -0,0 +1,40 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.etsi.mts.tdl.OptionalBehaviour; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Optional Behaviour'. + * + * + * @generated + */ +public class OptionalBehaviourImpl extends SingleCombinedBehaviourImpl implements OptionalBehaviour +{ + /** + * + * + * @generated + */ + protected OptionalBehaviourImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.OPTIONAL_BEHAVIOUR; + } + +} //OptionalBehaviourImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/PackageImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/PackageImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..7686ed484494ff9001a45c083de75fec0744de7b --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/PackageImpl.java @@ -0,0 +1,244 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.etsi.mts.tdl.ElementImport; +import org.etsi.mts.tdl.PackageableElement; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Package'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.impl.PackageImpl#getPackagedElement Packaged Element}
  • + *
  • {@link org.etsi.mts.tdl.impl.PackageImpl#getImport Import}
  • + *
  • {@link org.etsi.mts.tdl.impl.PackageImpl#getNestedPackage Nested Package}
  • + *
+ * + * @generated + */ +public class PackageImpl extends NamedElementImpl implements org.etsi.mts.tdl.Package +{ + /** + * The cached value of the '{@link #getPackagedElement() Packaged Element}' containment reference list. + * + * + * @see #getPackagedElement() + * @generated + * @ordered + */ + protected EList packagedElement; + + /** + * The cached value of the '{@link #getImport() Import}' containment reference list. + * + * + * @see #getImport() + * @generated + * @ordered + */ + protected EList import_; + + /** + * The cached value of the '{@link #getNestedPackage() Nested Package}' containment reference list. + * + * + * @see #getNestedPackage() + * @generated + * @ordered + */ + protected EList nestedPackage; + + /** + * + * + * @generated + */ + protected PackageImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.PACKAGE; + } + + /** + * + * + * @generated + */ + @Override + public EList getPackagedElement() + { + if (packagedElement == null) + { + packagedElement = new EObjectContainmentEList(PackageableElement.class, this, tdlPackage.PACKAGE__PACKAGED_ELEMENT); + } + return packagedElement; + } + + /** + * + * + * @generated + */ + @Override + public EList getImport() + { + if (import_ == null) + { + import_ = new EObjectContainmentEList(ElementImport.class, this, tdlPackage.PACKAGE__IMPORT); + } + return import_; + } + + /** + * + * + * @generated + */ + @Override + public EList getNestedPackage() + { + if (nestedPackage == null) + { + nestedPackage = new EObjectContainmentEList(org.etsi.mts.tdl.Package.class, this, tdlPackage.PACKAGE__NESTED_PACKAGE); + } + return nestedPackage; + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case tdlPackage.PACKAGE__PACKAGED_ELEMENT: + return ((InternalEList)getPackagedElement()).basicRemove(otherEnd, msgs); + case tdlPackage.PACKAGE__IMPORT: + return ((InternalEList)getImport()).basicRemove(otherEnd, msgs); + case tdlPackage.PACKAGE__NESTED_PACKAGE: + return ((InternalEList)getNestedPackage()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case tdlPackage.PACKAGE__PACKAGED_ELEMENT: + return getPackagedElement(); + case tdlPackage.PACKAGE__IMPORT: + return getImport(); + case tdlPackage.PACKAGE__NESTED_PACKAGE: + return getNestedPackage(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case tdlPackage.PACKAGE__PACKAGED_ELEMENT: + getPackagedElement().clear(); + getPackagedElement().addAll((Collection)newValue); + return; + case tdlPackage.PACKAGE__IMPORT: + getImport().clear(); + getImport().addAll((Collection)newValue); + return; + case tdlPackage.PACKAGE__NESTED_PACKAGE: + getNestedPackage().clear(); + getNestedPackage().addAll((Collection)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case tdlPackage.PACKAGE__PACKAGED_ELEMENT: + getPackagedElement().clear(); + return; + case tdlPackage.PACKAGE__IMPORT: + getImport().clear(); + return; + case tdlPackage.PACKAGE__NESTED_PACKAGE: + getNestedPackage().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case tdlPackage.PACKAGE__PACKAGED_ELEMENT: + return packagedElement != null && !packagedElement.isEmpty(); + case tdlPackage.PACKAGE__IMPORT: + return import_ != null && !import_.isEmpty(); + case tdlPackage.PACKAGE__NESTED_PACKAGE: + return nestedPackage != null && !nestedPackage.isEmpty(); + } + return super.eIsSet(featureID); + } + +} //PackageImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/PackageableElementImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/PackageableElementImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..3b96ccc2fefe0d759f9dc2b6bc9c8626cdfb3275 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/PackageableElementImpl.java @@ -0,0 +1,151 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import java.lang.reflect.InvocationTargetException; + +import org.eclipse.emf.common.util.BasicEList; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.common.util.WrappedException; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EOperation; + +import org.etsi.mts.tdl.PackageableElement; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Packageable Element'. + * + * + * @generated + */ +public abstract class PackageableElementImpl extends NamedElementImpl implements PackageableElement +{ + /** + * + * + * @generated + */ + protected PackageableElementImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.PACKAGEABLE_ELEMENT; + } + + /** + * The cached invocation delegate for the '{@link #conformsTo(java.lang.String) Conforms To}' operation. + * + * + * @see #conformsTo(java.lang.String) + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate CONFORMS_TO_STRING__EINVOCATION_DELEGATE = ((EOperation.Internal)tdlPackage.Literals.PACKAGEABLE_ELEMENT___CONFORMS_TO__STRING).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @Override + public Boolean conformsTo(String n) + { + try + { + return (Boolean)CONFORMS_TO_STRING__EINVOCATION_DELEGATE.dynamicInvoke(this, new BasicEList.UnmodifiableEList(1, new Object[]{n})); + } + catch (InvocationTargetException ite) + { + throw new WrappedException(ite); + } + } + + /** + * The cached invocation delegate for the '{@link #getElementNamed(java.lang.String) Get Element Named}' operation. + * + * + * @see #getElementNamed(java.lang.String) + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate GET_ELEMENT_NAMED_STRING__EINVOCATION_DELEGATE = ((EOperation.Internal)tdlPackage.Literals.PACKAGEABLE_ELEMENT___GET_ELEMENT_NAMED__STRING).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @Override + public PackageableElement getElementNamed(String n) + { + try + { + return (PackageableElement)GET_ELEMENT_NAMED_STRING__EINVOCATION_DELEGATE.dynamicInvoke(this, new BasicEList.UnmodifiableEList(1, new Object[]{n})); + } + catch (InvocationTargetException ite) + { + throw new WrappedException(ite); + } + } + + /** + * The cached invocation delegate for the '{@link #conformsTo(org.etsi.mts.tdl.PackageableElement) Conforms To}' operation. + * + * + * @see #conformsTo(org.etsi.mts.tdl.PackageableElement) + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate CONFORMS_TO_PACKAGEABLE_ELEMENT__EINVOCATION_DELEGATE = ((EOperation.Internal)tdlPackage.Literals.PACKAGEABLE_ELEMENT___CONFORMS_TO__PACKAGEABLEELEMENT).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @Override + public Boolean conformsTo(PackageableElement n) + { + try + { + return (Boolean)CONFORMS_TO_PACKAGEABLE_ELEMENT__EINVOCATION_DELEGATE.dynamicInvoke(this, new BasicEList.UnmodifiableEList(1, new Object[]{n})); + } + catch (InvocationTargetException ite) + { + throw new WrappedException(ite); + } + } + + /** + * + * + * @generated + */ + @Override + public Object eInvoke(int operationID, EList arguments) throws InvocationTargetException + { + switch (operationID) + { + case tdlPackage.PACKAGEABLE_ELEMENT___CONFORMS_TO__STRING: + return conformsTo((String)arguments.get(0)); + case tdlPackage.PACKAGEABLE_ELEMENT___GET_ELEMENT_NAMED__STRING: + return getElementNamed((String)arguments.get(0)); + case tdlPackage.PACKAGEABLE_ELEMENT___CONFORMS_TO__PACKAGEABLEELEMENT: + return conformsTo((PackageableElement)arguments.get(0)); + } + return super.eInvoke(operationID, arguments); + } + +} //PackageableElementImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/ParallelBehaviourImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/ParallelBehaviourImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..b435706dfd741b098e67d3ba85ba6f514e48410d --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/ParallelBehaviourImpl.java @@ -0,0 +1,40 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.etsi.mts.tdl.ParallelBehaviour; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Parallel Behaviour'. + * + * + * @generated + */ +public class ParallelBehaviourImpl extends MultipleCombinedBehaviourImpl implements ParallelBehaviour +{ + /** + * + * + * @generated + */ + protected ParallelBehaviourImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.PARALLEL_BEHAVIOUR; + } + +} //ParallelBehaviourImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/ParameterBindingImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/ParameterBindingImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..f16354426351d290c6ac7bcd86dd0388be704ca4 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/ParameterBindingImpl.java @@ -0,0 +1,263 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.etsi.mts.tdl.DataUse; +import org.etsi.mts.tdl.Parameter; +import org.etsi.mts.tdl.ParameterBinding; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Parameter Binding'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.impl.ParameterBindingImpl#getDataUse Data Use}
  • + *
  • {@link org.etsi.mts.tdl.impl.ParameterBindingImpl#getParameter Parameter}
  • + *
+ * + * @generated + */ +public class ParameterBindingImpl extends ElementImpl implements ParameterBinding +{ + /** + * The cached value of the '{@link #getDataUse() Data Use}' containment reference. + * + * + * @see #getDataUse() + * @generated + * @ordered + */ + protected DataUse dataUse; + + /** + * The cached value of the '{@link #getParameter() Parameter}' reference. + * + * + * @see #getParameter() + * @generated + * @ordered + */ + protected Parameter parameter; + + /** + * + * + * @generated + */ + protected ParameterBindingImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.PARAMETER_BINDING; + } + + /** + * + * + * @generated + */ + @Override + public DataUse getDataUse() + { + return dataUse; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetDataUse(DataUse newDataUse, NotificationChain msgs) + { + DataUse oldDataUse = dataUse; + dataUse = newDataUse; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, tdlPackage.PARAMETER_BINDING__DATA_USE, oldDataUse, newDataUse); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + @Override + public void setDataUse(DataUse newDataUse) + { + if (newDataUse != dataUse) + { + NotificationChain msgs = null; + if (dataUse != null) + msgs = ((InternalEObject)dataUse).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - tdlPackage.PARAMETER_BINDING__DATA_USE, null, msgs); + if (newDataUse != null) + msgs = ((InternalEObject)newDataUse).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - tdlPackage.PARAMETER_BINDING__DATA_USE, null, msgs); + msgs = basicSetDataUse(newDataUse, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.PARAMETER_BINDING__DATA_USE, newDataUse, newDataUse)); + } + + /** + * + * + * @generated + */ + @Override + public Parameter getParameter() + { + if (parameter != null && parameter.eIsProxy()) + { + InternalEObject oldParameter = (InternalEObject)parameter; + parameter = (Parameter)eResolveProxy(oldParameter); + if (parameter != oldParameter) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, tdlPackage.PARAMETER_BINDING__PARAMETER, oldParameter, parameter)); + } + } + return parameter; + } + + /** + * + * + * @generated + */ + public Parameter basicGetParameter() + { + return parameter; + } + + /** + * + * + * @generated + */ + @Override + public void setParameter(Parameter newParameter) + { + Parameter oldParameter = parameter; + parameter = newParameter; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.PARAMETER_BINDING__PARAMETER, oldParameter, parameter)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case tdlPackage.PARAMETER_BINDING__DATA_USE: + return basicSetDataUse(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case tdlPackage.PARAMETER_BINDING__DATA_USE: + return getDataUse(); + case tdlPackage.PARAMETER_BINDING__PARAMETER: + if (resolve) return getParameter(); + return basicGetParameter(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case tdlPackage.PARAMETER_BINDING__DATA_USE: + setDataUse((DataUse)newValue); + return; + case tdlPackage.PARAMETER_BINDING__PARAMETER: + setParameter((Parameter)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case tdlPackage.PARAMETER_BINDING__DATA_USE: + setDataUse((DataUse)null); + return; + case tdlPackage.PARAMETER_BINDING__PARAMETER: + setParameter((Parameter)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case tdlPackage.PARAMETER_BINDING__DATA_USE: + return dataUse != null; + case tdlPackage.PARAMETER_BINDING__PARAMETER: + return parameter != null; + } + return super.eIsSet(featureID); + } + +} //ParameterBindingImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/ParameterImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/ParameterImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..860f947fb91735104c408009f3f137e2489a40fe --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/ParameterImpl.java @@ -0,0 +1,174 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.etsi.mts.tdl.DataType; +import org.etsi.mts.tdl.Parameter; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Parameter'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.impl.ParameterImpl#getDataType Data Type}
  • + *
+ * + * @generated + */ +public abstract class ParameterImpl extends NamedElementImpl implements Parameter +{ + /** + * The cached value of the '{@link #getDataType() Data Type}' reference. + * + * + * @see #getDataType() + * @generated + * @ordered + */ + protected DataType dataType; + + /** + * + * + * @generated + */ + protected ParameterImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.PARAMETER; + } + + /** + * + * + * @generated + */ + @Override + public DataType getDataType() + { + if (dataType != null && dataType.eIsProxy()) + { + InternalEObject oldDataType = (InternalEObject)dataType; + dataType = (DataType)eResolveProxy(oldDataType); + if (dataType != oldDataType) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, tdlPackage.PARAMETER__DATA_TYPE, oldDataType, dataType)); + } + } + return dataType; + } + + /** + * + * + * @generated + */ + public DataType basicGetDataType() + { + return dataType; + } + + /** + * + * + * @generated + */ + @Override + public void setDataType(DataType newDataType) + { + DataType oldDataType = dataType; + dataType = newDataType; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.PARAMETER__DATA_TYPE, oldDataType, dataType)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case tdlPackage.PARAMETER__DATA_TYPE: + if (resolve) return getDataType(); + return basicGetDataType(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case tdlPackage.PARAMETER__DATA_TYPE: + setDataType((DataType)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case tdlPackage.PARAMETER__DATA_TYPE: + setDataType((DataType)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case tdlPackage.PARAMETER__DATA_TYPE: + return dataType != null; + } + return super.eIsSet(featureID); + } + +} //ParameterImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/ParameterMappingImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/ParameterMappingImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..1b5caebedd2996597d583c79411ea6c34d427f97 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/ParameterMappingImpl.java @@ -0,0 +1,247 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.etsi.mts.tdl.Parameter; +import org.etsi.mts.tdl.ParameterMapping; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Parameter Mapping'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.impl.ParameterMappingImpl#getParameterURI Parameter URI}
  • + *
  • {@link org.etsi.mts.tdl.impl.ParameterMappingImpl#getParameter Parameter}
  • + *
+ * + * @generated + */ +public class ParameterMappingImpl extends ElementImpl implements ParameterMapping +{ + /** + * The default value of the '{@link #getParameterURI() Parameter URI}' attribute. + * + * + * @see #getParameterURI() + * @generated + * @ordered + */ + protected static final String PARAMETER_URI_EDEFAULT = null; + + /** + * The cached value of the '{@link #getParameterURI() Parameter URI}' attribute. + * + * + * @see #getParameterURI() + * @generated + * @ordered + */ + protected String parameterURI = PARAMETER_URI_EDEFAULT; + + /** + * The cached value of the '{@link #getParameter() Parameter}' reference. + * + * + * @see #getParameter() + * @generated + * @ordered + */ + protected Parameter parameter; + + /** + * + * + * @generated + */ + protected ParameterMappingImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.PARAMETER_MAPPING; + } + + /** + * + * + * @generated + */ + @Override + public String getParameterURI() + { + return parameterURI; + } + + /** + * + * + * @generated + */ + @Override + public void setParameterURI(String newParameterURI) + { + String oldParameterURI = parameterURI; + parameterURI = newParameterURI; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.PARAMETER_MAPPING__PARAMETER_URI, oldParameterURI, parameterURI)); + } + + /** + * + * + * @generated + */ + @Override + public Parameter getParameter() + { + if (parameter != null && parameter.eIsProxy()) + { + InternalEObject oldParameter = (InternalEObject)parameter; + parameter = (Parameter)eResolveProxy(oldParameter); + if (parameter != oldParameter) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, tdlPackage.PARAMETER_MAPPING__PARAMETER, oldParameter, parameter)); + } + } + return parameter; + } + + /** + * + * + * @generated + */ + public Parameter basicGetParameter() + { + return parameter; + } + + /** + * + * + * @generated + */ + @Override + public void setParameter(Parameter newParameter) + { + Parameter oldParameter = parameter; + parameter = newParameter; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.PARAMETER_MAPPING__PARAMETER, oldParameter, parameter)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case tdlPackage.PARAMETER_MAPPING__PARAMETER_URI: + return getParameterURI(); + case tdlPackage.PARAMETER_MAPPING__PARAMETER: + if (resolve) return getParameter(); + return basicGetParameter(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case tdlPackage.PARAMETER_MAPPING__PARAMETER_URI: + setParameterURI((String)newValue); + return; + case tdlPackage.PARAMETER_MAPPING__PARAMETER: + setParameter((Parameter)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case tdlPackage.PARAMETER_MAPPING__PARAMETER_URI: + setParameterURI(PARAMETER_URI_EDEFAULT); + return; + case tdlPackage.PARAMETER_MAPPING__PARAMETER: + setParameter((Parameter)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case tdlPackage.PARAMETER_MAPPING__PARAMETER_URI: + return PARAMETER_URI_EDEFAULT == null ? parameterURI != null : !PARAMETER_URI_EDEFAULT.equals(parameterURI); + case tdlPackage.PARAMETER_MAPPING__PARAMETER: + return parameter != null; + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuilder result = new StringBuilder(super.toString()); + result.append(" (parameterURI: "); + result.append(parameterURI); + result.append(')'); + return result.toString(); + } + +} //ParameterMappingImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/PeriodicBehaviourImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/PeriodicBehaviourImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..d3b8472ca67a95ac714135c71a6e6d8d99326d6f --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/PeriodicBehaviourImpl.java @@ -0,0 +1,313 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import java.lang.reflect.InvocationTargetException; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.common.util.WrappedException; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EOperation; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.etsi.mts.tdl.Behaviour; +import org.etsi.mts.tdl.Block; +import org.etsi.mts.tdl.ComponentInstance; +import org.etsi.mts.tdl.LocalExpression; +import org.etsi.mts.tdl.PeriodicBehaviour; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Periodic Behaviour'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.impl.PeriodicBehaviourImpl#getBlock Block}
  • + *
  • {@link org.etsi.mts.tdl.impl.PeriodicBehaviourImpl#getPeriod Period}
  • + *
+ * + * @generated + */ +public class PeriodicBehaviourImpl extends BehaviourImpl implements PeriodicBehaviour +{ + /** + * The cached value of the '{@link #getBlock() Block}' containment reference. + * + * + * @see #getBlock() + * @generated + * @ordered + */ + protected Block block; + + /** + * The cached value of the '{@link #getPeriod() Period}' containment reference list. + * + * + * @see #getPeriod() + * @generated + * @ordered + */ + protected EList period; + + /** + * + * + * @generated + */ + protected PeriodicBehaviourImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.PERIODIC_BEHAVIOUR; + } + + /** + * + * + * @generated + */ + @Override + public Block getBlock() + { + return block; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetBlock(Block newBlock, NotificationChain msgs) + { + Block oldBlock = block; + block = newBlock; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, tdlPackage.PERIODIC_BEHAVIOUR__BLOCK, oldBlock, newBlock); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + @Override + public void setBlock(Block newBlock) + { + if (newBlock != block) + { + NotificationChain msgs = null; + if (block != null) + msgs = ((InternalEObject)block).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - tdlPackage.PERIODIC_BEHAVIOUR__BLOCK, null, msgs); + if (newBlock != null) + msgs = ((InternalEObject)newBlock).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - tdlPackage.PERIODIC_BEHAVIOUR__BLOCK, null, msgs); + msgs = basicSetBlock(newBlock, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.PERIODIC_BEHAVIOUR__BLOCK, newBlock, newBlock)); + } + + /** + * + * + * @generated + */ + @Override + public EList getPeriod() + { + if (period == null) + { + period = new EObjectContainmentEList(LocalExpression.class, this, tdlPackage.PERIODIC_BEHAVIOUR__PERIOD); + } + return period; + } + + /** + * The cached invocation delegate for the '{@link #getParticipatingComponents() Get Participating Components}' operation. + * + * + * @see #getParticipatingComponents() + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate GET_PARTICIPATING_COMPONENTS__EINVOCATION_DELEGATE = ((EOperation.Internal)tdlPackage.Literals.PERIODIC_BEHAVIOUR___GET_PARTICIPATING_COMPONENTS).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getParticipatingComponents() + { + try + { + return (EList)GET_PARTICIPATING_COMPONENTS__EINVOCATION_DELEGATE.dynamicInvoke(this, null); + } + catch (InvocationTargetException ite) + { + throw new WrappedException(ite); + } + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case tdlPackage.PERIODIC_BEHAVIOUR__BLOCK: + return basicSetBlock(null, msgs); + case tdlPackage.PERIODIC_BEHAVIOUR__PERIOD: + return ((InternalEList)getPeriod()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case tdlPackage.PERIODIC_BEHAVIOUR__BLOCK: + return getBlock(); + case tdlPackage.PERIODIC_BEHAVIOUR__PERIOD: + return getPeriod(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case tdlPackage.PERIODIC_BEHAVIOUR__BLOCK: + setBlock((Block)newValue); + return; + case tdlPackage.PERIODIC_BEHAVIOUR__PERIOD: + getPeriod().clear(); + getPeriod().addAll((Collection)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case tdlPackage.PERIODIC_BEHAVIOUR__BLOCK: + setBlock((Block)null); + return; + case tdlPackage.PERIODIC_BEHAVIOUR__PERIOD: + getPeriod().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case tdlPackage.PERIODIC_BEHAVIOUR__BLOCK: + return block != null; + case tdlPackage.PERIODIC_BEHAVIOUR__PERIOD: + return period != null && !period.isEmpty(); + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public int eDerivedOperationID(int baseOperationID, Class baseClass) + { + if (baseClass == Behaviour.class) + { + switch (baseOperationID) + { + case tdlPackage.BEHAVIOUR___GET_PARTICIPATING_COMPONENTS: return tdlPackage.PERIODIC_BEHAVIOUR___GET_PARTICIPATING_COMPONENTS; + default: return super.eDerivedOperationID(baseOperationID, baseClass); + } + } + return super.eDerivedOperationID(baseOperationID, baseClass); + } + + /** + * + * + * @generated + */ + @Override + public Object eInvoke(int operationID, EList arguments) throws InvocationTargetException + { + switch (operationID) + { + case tdlPackage.PERIODIC_BEHAVIOUR___GET_PARTICIPATING_COMPONENTS: + return getParticipatingComponents(); + } + return super.eInvoke(operationID, arguments); + } + +} //PeriodicBehaviourImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/PredefinedFunctionCallImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/PredefinedFunctionCallImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..c87fcacbb616f8cdb6c99c34f536dfbd9c3f9db1 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/PredefinedFunctionCallImpl.java @@ -0,0 +1,305 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import java.lang.reflect.InvocationTargetException; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.common.util.WrappedException; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EOperation; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.etsi.mts.tdl.DataType; +import org.etsi.mts.tdl.DataUse; +import org.etsi.mts.tdl.PredefinedFunction; +import org.etsi.mts.tdl.PredefinedFunctionCall; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Predefined Function Call'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.impl.PredefinedFunctionCallImpl#getFunction Function}
  • + *
  • {@link org.etsi.mts.tdl.impl.PredefinedFunctionCallImpl#getActualParameters Actual Parameters}
  • + *
+ * + * @generated + */ +public class PredefinedFunctionCallImpl extends DynamicDataUseImpl implements PredefinedFunctionCall +{ + /** + * The cached value of the '{@link #getFunction() Function}' reference. + * + * + * @see #getFunction() + * @generated + * @ordered + */ + protected PredefinedFunction function; + + /** + * The cached value of the '{@link #getActualParameters() Actual Parameters}' containment reference list. + * + * + * @see #getActualParameters() + * @generated + * @ordered + */ + protected EList actualParameters; + + /** + * + * + * @generated + */ + protected PredefinedFunctionCallImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.PREDEFINED_FUNCTION_CALL; + } + + /** + * + * + * @generated + */ + @Override + public PredefinedFunction getFunction() + { + if (function != null && function.eIsProxy()) + { + InternalEObject oldFunction = (InternalEObject)function; + function = (PredefinedFunction)eResolveProxy(oldFunction); + if (function != oldFunction) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, tdlPackage.PREDEFINED_FUNCTION_CALL__FUNCTION, oldFunction, function)); + } + } + return function; + } + + /** + * + * + * @generated + */ + public PredefinedFunction basicGetFunction() + { + return function; + } + + /** + * + * + * @generated + */ + @Override + public void setFunction(PredefinedFunction newFunction) + { + PredefinedFunction oldFunction = function; + function = newFunction; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.PREDEFINED_FUNCTION_CALL__FUNCTION, oldFunction, function)); + } + + /** + * + * + * @generated + */ + @Override + public EList getActualParameters() + { + if (actualParameters == null) + { + actualParameters = new EObjectContainmentEList(DataUse.class, this, tdlPackage.PREDEFINED_FUNCTION_CALL__ACTUAL_PARAMETERS); + } + return actualParameters; + } + + /** + * The cached invocation delegate for the '{@link #resolveDataType() Resolve Data Type}' operation. + * + * + * @see #resolveDataType() + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate RESOLVE_DATA_TYPE__EINVOCATION_DELEGATE = ((EOperation.Internal)tdlPackage.Literals.PREDEFINED_FUNCTION_CALL___RESOLVE_DATA_TYPE).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @Override + public DataType resolveDataType() + { + try + { + return (DataType)RESOLVE_DATA_TYPE__EINVOCATION_DELEGATE.dynamicInvoke(this, null); + } + catch (InvocationTargetException ite) + { + throw new WrappedException(ite); + } + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case tdlPackage.PREDEFINED_FUNCTION_CALL__ACTUAL_PARAMETERS: + return ((InternalEList)getActualParameters()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case tdlPackage.PREDEFINED_FUNCTION_CALL__FUNCTION: + if (resolve) return getFunction(); + return basicGetFunction(); + case tdlPackage.PREDEFINED_FUNCTION_CALL__ACTUAL_PARAMETERS: + return getActualParameters(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case tdlPackage.PREDEFINED_FUNCTION_CALL__FUNCTION: + setFunction((PredefinedFunction)newValue); + return; + case tdlPackage.PREDEFINED_FUNCTION_CALL__ACTUAL_PARAMETERS: + getActualParameters().clear(); + getActualParameters().addAll((Collection)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case tdlPackage.PREDEFINED_FUNCTION_CALL__FUNCTION: + setFunction((PredefinedFunction)null); + return; + case tdlPackage.PREDEFINED_FUNCTION_CALL__ACTUAL_PARAMETERS: + getActualParameters().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case tdlPackage.PREDEFINED_FUNCTION_CALL__FUNCTION: + return function != null; + case tdlPackage.PREDEFINED_FUNCTION_CALL__ACTUAL_PARAMETERS: + return actualParameters != null && !actualParameters.isEmpty(); + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public int eDerivedOperationID(int baseOperationID, Class baseClass) + { + if (baseClass == DataUse.class) + { + switch (baseOperationID) + { + case tdlPackage.DATA_USE___RESOLVE_DATA_TYPE: return tdlPackage.PREDEFINED_FUNCTION_CALL___RESOLVE_DATA_TYPE; + default: return super.eDerivedOperationID(baseOperationID, baseClass); + } + } + return super.eDerivedOperationID(baseOperationID, baseClass); + } + + /** + * + * + * @generated + */ + @Override + public Object eInvoke(int operationID, EList arguments) throws InvocationTargetException + { + switch (operationID) + { + case tdlPackage.PREDEFINED_FUNCTION_CALL___RESOLVE_DATA_TYPE: + return resolveDataType(); + } + return super.eInvoke(operationID, arguments); + } + +} //PredefinedFunctionCallImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/PredefinedFunctionImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/PredefinedFunctionImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..ad22cf5221104ef9f87637a430fffccc9b8e49fb --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/PredefinedFunctionImpl.java @@ -0,0 +1,174 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.etsi.mts.tdl.DataType; +import org.etsi.mts.tdl.PredefinedFunction; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Predefined Function'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.impl.PredefinedFunctionImpl#getReturnType Return Type}
  • + *
+ * + * @generated + */ +public class PredefinedFunctionImpl extends PackageableElementImpl implements PredefinedFunction +{ + /** + * The cached value of the '{@link #getReturnType() Return Type}' reference. + * + * + * @see #getReturnType() + * @generated + * @ordered + */ + protected DataType returnType; + + /** + * + * + * @generated + */ + protected PredefinedFunctionImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.PREDEFINED_FUNCTION; + } + + /** + * + * + * @generated + */ + @Override + public DataType getReturnType() + { + if (returnType != null && returnType.eIsProxy()) + { + InternalEObject oldReturnType = (InternalEObject)returnType; + returnType = (DataType)eResolveProxy(oldReturnType); + if (returnType != oldReturnType) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, tdlPackage.PREDEFINED_FUNCTION__RETURN_TYPE, oldReturnType, returnType)); + } + } + return returnType; + } + + /** + * + * + * @generated + */ + public DataType basicGetReturnType() + { + return returnType; + } + + /** + * + * + * @generated + */ + @Override + public void setReturnType(DataType newReturnType) + { + DataType oldReturnType = returnType; + returnType = newReturnType; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.PREDEFINED_FUNCTION__RETURN_TYPE, oldReturnType, returnType)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case tdlPackage.PREDEFINED_FUNCTION__RETURN_TYPE: + if (resolve) return getReturnType(); + return basicGetReturnType(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case tdlPackage.PREDEFINED_FUNCTION__RETURN_TYPE: + setReturnType((DataType)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case tdlPackage.PREDEFINED_FUNCTION__RETURN_TYPE: + setReturnType((DataType)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case tdlPackage.PREDEFINED_FUNCTION__RETURN_TYPE: + return returnType != null; + } + return super.eIsSet(featureID); + } + +} //PredefinedFunctionImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/ProcedureCallImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/ProcedureCallImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..46187798db12c21093bd738b125cf80019f9d25b --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/ProcedureCallImpl.java @@ -0,0 +1,304 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.etsi.mts.tdl.ParameterBinding; +import org.etsi.mts.tdl.ProcedureCall; +import org.etsi.mts.tdl.ProcedureSignature; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Procedure Call'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.impl.ProcedureCallImpl#getSignature Signature}
  • + *
  • {@link org.etsi.mts.tdl.impl.ProcedureCallImpl#getArgument Argument}
  • + *
  • {@link org.etsi.mts.tdl.impl.ProcedureCallImpl#getReplyTo Reply To}
  • + *
+ * + * @generated + */ +public class ProcedureCallImpl extends InteractionImpl implements ProcedureCall +{ + /** + * The cached value of the '{@link #getSignature() Signature}' reference. + * + * + * @see #getSignature() + * @generated + * @ordered + */ + protected ProcedureSignature signature; + + /** + * The cached value of the '{@link #getArgument() Argument}' containment reference list. + * + * + * @see #getArgument() + * @generated + * @ordered + */ + protected EList argument; + + /** + * The cached value of the '{@link #getReplyTo() Reply To}' reference. + * + * + * @see #getReplyTo() + * @generated + * @ordered + */ + protected ProcedureCall replyTo; + + /** + * + * + * @generated + */ + protected ProcedureCallImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.PROCEDURE_CALL; + } + + /** + * + * + * @generated + */ + @Override + public ProcedureSignature getSignature() + { + if (signature != null && signature.eIsProxy()) + { + InternalEObject oldSignature = (InternalEObject)signature; + signature = (ProcedureSignature)eResolveProxy(oldSignature); + if (signature != oldSignature) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, tdlPackage.PROCEDURE_CALL__SIGNATURE, oldSignature, signature)); + } + } + return signature; + } + + /** + * + * + * @generated + */ + public ProcedureSignature basicGetSignature() + { + return signature; + } + + /** + * + * + * @generated + */ + @Override + public void setSignature(ProcedureSignature newSignature) + { + ProcedureSignature oldSignature = signature; + signature = newSignature; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.PROCEDURE_CALL__SIGNATURE, oldSignature, signature)); + } + + /** + * + * + * @generated + */ + @Override + public EList getArgument() + { + if (argument == null) + { + argument = new EObjectContainmentEList(ParameterBinding.class, this, tdlPackage.PROCEDURE_CALL__ARGUMENT); + } + return argument; + } + + /** + * + * + * @generated + */ + @Override + public ProcedureCall getReplyTo() + { + if (replyTo != null && replyTo.eIsProxy()) + { + InternalEObject oldReplyTo = (InternalEObject)replyTo; + replyTo = (ProcedureCall)eResolveProxy(oldReplyTo); + if (replyTo != oldReplyTo) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, tdlPackage.PROCEDURE_CALL__REPLY_TO, oldReplyTo, replyTo)); + } + } + return replyTo; + } + + /** + * + * + * @generated + */ + public ProcedureCall basicGetReplyTo() + { + return replyTo; + } + + /** + * + * + * @generated + */ + @Override + public void setReplyTo(ProcedureCall newReplyTo) + { + ProcedureCall oldReplyTo = replyTo; + replyTo = newReplyTo; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.PROCEDURE_CALL__REPLY_TO, oldReplyTo, replyTo)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case tdlPackage.PROCEDURE_CALL__ARGUMENT: + return ((InternalEList)getArgument()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case tdlPackage.PROCEDURE_CALL__SIGNATURE: + if (resolve) return getSignature(); + return basicGetSignature(); + case tdlPackage.PROCEDURE_CALL__ARGUMENT: + return getArgument(); + case tdlPackage.PROCEDURE_CALL__REPLY_TO: + if (resolve) return getReplyTo(); + return basicGetReplyTo(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case tdlPackage.PROCEDURE_CALL__SIGNATURE: + setSignature((ProcedureSignature)newValue); + return; + case tdlPackage.PROCEDURE_CALL__ARGUMENT: + getArgument().clear(); + getArgument().addAll((Collection)newValue); + return; + case tdlPackage.PROCEDURE_CALL__REPLY_TO: + setReplyTo((ProcedureCall)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case tdlPackage.PROCEDURE_CALL__SIGNATURE: + setSignature((ProcedureSignature)null); + return; + case tdlPackage.PROCEDURE_CALL__ARGUMENT: + getArgument().clear(); + return; + case tdlPackage.PROCEDURE_CALL__REPLY_TO: + setReplyTo((ProcedureCall)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case tdlPackage.PROCEDURE_CALL__SIGNATURE: + return signature != null; + case tdlPackage.PROCEDURE_CALL__ARGUMENT: + return argument != null && !argument.isEmpty(); + case tdlPackage.PROCEDURE_CALL__REPLY_TO: + return replyTo != null; + } + return super.eIsSet(featureID); + } + +} //ProcedureCallImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/ProcedureParameterImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/ProcedureParameterImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..d4743bc3fc54bfb41a8bb87c593843fe49377340 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/ProcedureParameterImpl.java @@ -0,0 +1,179 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.etsi.mts.tdl.ParameterKind; +import org.etsi.mts.tdl.ProcedureParameter; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Procedure Parameter'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.impl.ProcedureParameterImpl#getKind Kind}
  • + *
+ * + * @generated + */ +public class ProcedureParameterImpl extends ParameterImpl implements ProcedureParameter +{ + /** + * The default value of the '{@link #getKind() Kind}' attribute. + * + * + * @see #getKind() + * @generated + * @ordered + */ + protected static final ParameterKind KIND_EDEFAULT = ParameterKind.IN; + + /** + * The cached value of the '{@link #getKind() Kind}' attribute. + * + * + * @see #getKind() + * @generated + * @ordered + */ + protected ParameterKind kind = KIND_EDEFAULT; + + /** + * + * + * @generated + */ + protected ProcedureParameterImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.PROCEDURE_PARAMETER; + } + + /** + * + * + * @generated + */ + @Override + public ParameterKind getKind() + { + return kind; + } + + /** + * + * + * @generated + */ + @Override + public void setKind(ParameterKind newKind) + { + ParameterKind oldKind = kind; + kind = newKind == null ? KIND_EDEFAULT : newKind; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.PROCEDURE_PARAMETER__KIND, oldKind, kind)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case tdlPackage.PROCEDURE_PARAMETER__KIND: + return getKind(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case tdlPackage.PROCEDURE_PARAMETER__KIND: + setKind((ParameterKind)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case tdlPackage.PROCEDURE_PARAMETER__KIND: + setKind(KIND_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case tdlPackage.PROCEDURE_PARAMETER__KIND: + return kind != KIND_EDEFAULT; + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuilder result = new StringBuilder(super.toString()); + result.append(" (kind: "); + result.append(kind); + result.append(')'); + return result.toString(); + } + +} //ProcedureParameterImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/ProcedureSignatureImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/ProcedureSignatureImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..9737c1d96f9d217a7437086eda9594472b9c0491 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/ProcedureSignatureImpl.java @@ -0,0 +1,166 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.etsi.mts.tdl.ProcedureParameter; +import org.etsi.mts.tdl.ProcedureSignature; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Procedure Signature'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.impl.ProcedureSignatureImpl#getParameter Parameter}
  • + *
+ * + * @generated + */ +public class ProcedureSignatureImpl extends DataTypeImpl implements ProcedureSignature +{ + /** + * The cached value of the '{@link #getParameter() Parameter}' containment reference list. + * + * + * @see #getParameter() + * @generated + * @ordered + */ + protected EList parameter; + + /** + * + * + * @generated + */ + protected ProcedureSignatureImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.PROCEDURE_SIGNATURE; + } + + /** + * + * + * @generated + */ + @Override + public EList getParameter() + { + if (parameter == null) + { + parameter = new EObjectContainmentEList(ProcedureParameter.class, this, tdlPackage.PROCEDURE_SIGNATURE__PARAMETER); + } + return parameter; + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case tdlPackage.PROCEDURE_SIGNATURE__PARAMETER: + return ((InternalEList)getParameter()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case tdlPackage.PROCEDURE_SIGNATURE__PARAMETER: + return getParameter(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case tdlPackage.PROCEDURE_SIGNATURE__PARAMETER: + getParameter().clear(); + getParameter().addAll((Collection)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case tdlPackage.PROCEDURE_SIGNATURE__PARAMETER: + getParameter().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case tdlPackage.PROCEDURE_SIGNATURE__PARAMETER: + return parameter != null && !parameter.isEmpty(); + } + return super.eIsSet(featureID); + } + +} //ProcedureSignatureImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/QuiescenceImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/QuiescenceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..b4995de2156bd41635eda11867cc0e3bd581637c --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/QuiescenceImpl.java @@ -0,0 +1,264 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import java.lang.reflect.InvocationTargetException; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.common.util.WrappedException; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EOperation; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.etsi.mts.tdl.AtomicBehaviour; +import org.etsi.mts.tdl.Behaviour; +import org.etsi.mts.tdl.ComponentInstance; +import org.etsi.mts.tdl.GateReference; +import org.etsi.mts.tdl.Quiescence; +import org.etsi.mts.tdl.TimeOperation; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Quiescence'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.impl.QuiescenceImpl#getGateReference Gate Reference}
  • + *
+ * + * @generated + */ +public class QuiescenceImpl extends TimeOperationImpl implements Quiescence +{ + /** + * The cached value of the '{@link #getGateReference() Gate Reference}' reference. + * + * + * @see #getGateReference() + * @generated + * @ordered + */ + protected GateReference gateReference; + + /** + * + * + * @generated + */ + protected QuiescenceImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.QUIESCENCE; + } + + /** + * + * + * @generated + */ + @Override + public GateReference getGateReference() + { + if (gateReference != null && gateReference.eIsProxy()) + { + InternalEObject oldGateReference = (InternalEObject)gateReference; + gateReference = (GateReference)eResolveProxy(oldGateReference); + if (gateReference != oldGateReference) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, tdlPackage.QUIESCENCE__GATE_REFERENCE, oldGateReference, gateReference)); + } + } + return gateReference; + } + + /** + * + * + * @generated + */ + public GateReference basicGetGateReference() + { + return gateReference; + } + + /** + * + * + * @generated + */ + @Override + public void setGateReference(GateReference newGateReference) + { + GateReference oldGateReference = gateReference; + gateReference = newGateReference; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.QUIESCENCE__GATE_REFERENCE, oldGateReference, gateReference)); + } + + /** + * The cached invocation delegate for the '{@link #getParticipatingComponents() Get Participating Components}' operation. + * + * + * @see #getParticipatingComponents() + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate GET_PARTICIPATING_COMPONENTS__EINVOCATION_DELEGATE = ((EOperation.Internal)tdlPackage.Literals.QUIESCENCE___GET_PARTICIPATING_COMPONENTS).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getParticipatingComponents() + { + try + { + return (EList)GET_PARTICIPATING_COMPONENTS__EINVOCATION_DELEGATE.dynamicInvoke(this, null); + } + catch (InvocationTargetException ite) + { + throw new WrappedException(ite); + } + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case tdlPackage.QUIESCENCE__GATE_REFERENCE: + if (resolve) return getGateReference(); + return basicGetGateReference(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case tdlPackage.QUIESCENCE__GATE_REFERENCE: + setGateReference((GateReference)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case tdlPackage.QUIESCENCE__GATE_REFERENCE: + setGateReference((GateReference)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case tdlPackage.QUIESCENCE__GATE_REFERENCE: + return gateReference != null; + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public int eDerivedOperationID(int baseOperationID, Class baseClass) + { + if (baseClass == Behaviour.class) + { + switch (baseOperationID) + { + case tdlPackage.BEHAVIOUR___GET_PARTICIPATING_COMPONENTS: return tdlPackage.QUIESCENCE___GET_PARTICIPATING_COMPONENTS; + default: return super.eDerivedOperationID(baseOperationID, baseClass); + } + } + if (baseClass == AtomicBehaviour.class) + { + switch (baseOperationID) + { + case tdlPackage.ATOMIC_BEHAVIOUR___GET_PARTICIPATING_COMPONENTS: return tdlPackage.QUIESCENCE___GET_PARTICIPATING_COMPONENTS; + default: return super.eDerivedOperationID(baseOperationID, baseClass); + } + } + if (baseClass == TimeOperation.class) + { + switch (baseOperationID) + { + case tdlPackage.TIME_OPERATION___GET_PARTICIPATING_COMPONENTS: return tdlPackage.QUIESCENCE___GET_PARTICIPATING_COMPONENTS; + default: return super.eDerivedOperationID(baseOperationID, baseClass); + } + } + return super.eDerivedOperationID(baseOperationID, baseClass); + } + + /** + * + * + * @generated + */ + @Override + public Object eInvoke(int operationID, EList arguments) throws InvocationTargetException + { + switch (operationID) + { + case tdlPackage.QUIESCENCE___GET_PARTICIPATING_COMPONENTS: + return getParticipatingComponents(); + } + return super.eInvoke(operationID, arguments); + } + +} //QuiescenceImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/SimpleDataInstanceImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/SimpleDataInstanceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..6349562cad23b3c26aa7b8e8fb67d391628a40d3 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/SimpleDataInstanceImpl.java @@ -0,0 +1,40 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.etsi.mts.tdl.SimpleDataInstance; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Simple Data Instance'. + * + * + * @generated + */ +public class SimpleDataInstanceImpl extends DataInstanceImpl implements SimpleDataInstance +{ + /** + * + * + * @generated + */ + protected SimpleDataInstanceImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.SIMPLE_DATA_INSTANCE; + } + +} //SimpleDataInstanceImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/SimpleDataTypeImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/SimpleDataTypeImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..3303f808f62fc38670474971cf4d7bb4a966b7e5 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/SimpleDataTypeImpl.java @@ -0,0 +1,267 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import java.lang.reflect.InvocationTargetException; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.common.util.WrappedException; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EOperation; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.etsi.mts.tdl.Constraint; +import org.etsi.mts.tdl.DataType; +import org.etsi.mts.tdl.Extension; +import org.etsi.mts.tdl.SimpleDataType; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Simple Data Type'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.impl.SimpleDataTypeImpl#getExtension Extension}
  • + *
+ * + * @generated + */ +public class SimpleDataTypeImpl extends DataTypeImpl implements SimpleDataType +{ + /** + * The cached value of the '{@link #getExtension() Extension}' containment reference. + * + * + * @see #getExtension() + * @generated + * @ordered + */ + protected Extension extension; + + /** + * + * + * @generated + */ + protected SimpleDataTypeImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.SIMPLE_DATA_TYPE; + } + + /** + * + * + * @generated + */ + @Override + public Extension getExtension() + { + return extension; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetExtension(Extension newExtension, NotificationChain msgs) + { + Extension oldExtension = extension; + extension = newExtension; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, tdlPackage.SIMPLE_DATA_TYPE__EXTENSION, oldExtension, newExtension); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + @Override + public void setExtension(Extension newExtension) + { + if (newExtension != extension) + { + NotificationChain msgs = null; + if (extension != null) + msgs = ((InternalEObject)extension).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - tdlPackage.SIMPLE_DATA_TYPE__EXTENSION, null, msgs); + if (newExtension != null) + msgs = ((InternalEObject)newExtension).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - tdlPackage.SIMPLE_DATA_TYPE__EXTENSION, null, msgs); + msgs = basicSetExtension(newExtension, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.SIMPLE_DATA_TYPE__EXTENSION, newExtension, newExtension)); + } + + /** + * The cached invocation delegate for the '{@link #allConstraints() All Constraints}' operation. + * + * + * @see #allConstraints() + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate ALL_CONSTRAINTS__EINVOCATION_DELEGATE = ((EOperation.Internal)tdlPackage.Literals.SIMPLE_DATA_TYPE___ALL_CONSTRAINTS).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList allConstraints() + { + try + { + return (EList)ALL_CONSTRAINTS__EINVOCATION_DELEGATE.dynamicInvoke(this, null); + } + catch (InvocationTargetException ite) + { + throw new WrappedException(ite); + } + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case tdlPackage.SIMPLE_DATA_TYPE__EXTENSION: + return basicSetExtension(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case tdlPackage.SIMPLE_DATA_TYPE__EXTENSION: + return getExtension(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case tdlPackage.SIMPLE_DATA_TYPE__EXTENSION: + setExtension((Extension)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case tdlPackage.SIMPLE_DATA_TYPE__EXTENSION: + setExtension((Extension)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case tdlPackage.SIMPLE_DATA_TYPE__EXTENSION: + return extension != null; + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public int eDerivedOperationID(int baseOperationID, Class baseClass) + { + if (baseClass == DataType.class) + { + switch (baseOperationID) + { + case tdlPackage.DATA_TYPE___ALL_CONSTRAINTS: return tdlPackage.SIMPLE_DATA_TYPE___ALL_CONSTRAINTS; + default: return super.eDerivedOperationID(baseOperationID, baseClass); + } + } + return super.eDerivedOperationID(baseOperationID, baseClass); + } + + /** + * + * + * @generated + */ + @Override + public Object eInvoke(int operationID, EList arguments) throws InvocationTargetException + { + switch (operationID) + { + case tdlPackage.SIMPLE_DATA_TYPE___ALL_CONSTRAINTS: + return allConstraints(); + } + return super.eInvoke(operationID, arguments); + } + +} //SimpleDataTypeImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/SingleCombinedBehaviourImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/SingleCombinedBehaviourImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..6700330a609349a635007ab5ec4a658f50d0701f --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/SingleCombinedBehaviourImpl.java @@ -0,0 +1,267 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import java.lang.reflect.InvocationTargetException; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.common.util.WrappedException; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EOperation; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.etsi.mts.tdl.Behaviour; +import org.etsi.mts.tdl.Block; +import org.etsi.mts.tdl.ComponentInstance; +import org.etsi.mts.tdl.SingleCombinedBehaviour; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Single Combined Behaviour'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.impl.SingleCombinedBehaviourImpl#getBlock Block}
  • + *
+ * + * @generated + */ +public abstract class SingleCombinedBehaviourImpl extends CombinedBehaviourImpl implements SingleCombinedBehaviour +{ + /** + * The cached value of the '{@link #getBlock() Block}' containment reference. + * + * + * @see #getBlock() + * @generated + * @ordered + */ + protected Block block; + + /** + * + * + * @generated + */ + protected SingleCombinedBehaviourImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.SINGLE_COMBINED_BEHAVIOUR; + } + + /** + * + * + * @generated + */ + @Override + public Block getBlock() + { + return block; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetBlock(Block newBlock, NotificationChain msgs) + { + Block oldBlock = block; + block = newBlock; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, tdlPackage.SINGLE_COMBINED_BEHAVIOUR__BLOCK, oldBlock, newBlock); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + @Override + public void setBlock(Block newBlock) + { + if (newBlock != block) + { + NotificationChain msgs = null; + if (block != null) + msgs = ((InternalEObject)block).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - tdlPackage.SINGLE_COMBINED_BEHAVIOUR__BLOCK, null, msgs); + if (newBlock != null) + msgs = ((InternalEObject)newBlock).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - tdlPackage.SINGLE_COMBINED_BEHAVIOUR__BLOCK, null, msgs); + msgs = basicSetBlock(newBlock, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.SINGLE_COMBINED_BEHAVIOUR__BLOCK, newBlock, newBlock)); + } + + /** + * The cached invocation delegate for the '{@link #getParticipatingComponents() Get Participating Components}' operation. + * + * + * @see #getParticipatingComponents() + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate GET_PARTICIPATING_COMPONENTS__EINVOCATION_DELEGATE = ((EOperation.Internal)tdlPackage.Literals.SINGLE_COMBINED_BEHAVIOUR___GET_PARTICIPATING_COMPONENTS).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getParticipatingComponents() + { + try + { + return (EList)GET_PARTICIPATING_COMPONENTS__EINVOCATION_DELEGATE.dynamicInvoke(this, null); + } + catch (InvocationTargetException ite) + { + throw new WrappedException(ite); + } + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case tdlPackage.SINGLE_COMBINED_BEHAVIOUR__BLOCK: + return basicSetBlock(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case tdlPackage.SINGLE_COMBINED_BEHAVIOUR__BLOCK: + return getBlock(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case tdlPackage.SINGLE_COMBINED_BEHAVIOUR__BLOCK: + setBlock((Block)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case tdlPackage.SINGLE_COMBINED_BEHAVIOUR__BLOCK: + setBlock((Block)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case tdlPackage.SINGLE_COMBINED_BEHAVIOUR__BLOCK: + return block != null; + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public int eDerivedOperationID(int baseOperationID, Class baseClass) + { + if (baseClass == Behaviour.class) + { + switch (baseOperationID) + { + case tdlPackage.BEHAVIOUR___GET_PARTICIPATING_COMPONENTS: return tdlPackage.SINGLE_COMBINED_BEHAVIOUR___GET_PARTICIPATING_COMPONENTS; + default: return super.eDerivedOperationID(baseOperationID, baseClass); + } + } + return super.eDerivedOperationID(baseOperationID, baseClass); + } + + /** + * + * + * @generated + */ + @Override + public Object eInvoke(int operationID, EList arguments) throws InvocationTargetException + { + switch (operationID) + { + case tdlPackage.SINGLE_COMBINED_BEHAVIOUR___GET_PARTICIPATING_COMPONENTS: + return getParticipatingComponents(); + } + return super.eInvoke(operationID, arguments); + } + +} //SingleCombinedBehaviourImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/SpecialValueUseImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/SpecialValueUseImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..7d706546bce0288b671f2450f11ce3b6d78ab150 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/SpecialValueUseImpl.java @@ -0,0 +1,111 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import java.lang.reflect.InvocationTargetException; + +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.common.util.WrappedException; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EOperation; + +import org.etsi.mts.tdl.DataType; +import org.etsi.mts.tdl.DataUse; +import org.etsi.mts.tdl.SpecialValueUse; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Special Value Use'. + * + * + * @generated + */ +public abstract class SpecialValueUseImpl extends StaticDataUseImpl implements SpecialValueUse +{ + /** + * + * + * @generated + */ + protected SpecialValueUseImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.SPECIAL_VALUE_USE; + } + + /** + * The cached invocation delegate for the '{@link #resolveDataType() Resolve Data Type}' operation. + * + * + * @see #resolveDataType() + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate RESOLVE_DATA_TYPE__EINVOCATION_DELEGATE = ((EOperation.Internal)tdlPackage.Literals.SPECIAL_VALUE_USE___RESOLVE_DATA_TYPE).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @Override + public DataType resolveDataType() + { + try + { + return (DataType)RESOLVE_DATA_TYPE__EINVOCATION_DELEGATE.dynamicInvoke(this, null); + } + catch (InvocationTargetException ite) + { + throw new WrappedException(ite); + } + } + + /** + * + * + * @generated + */ + @Override + public int eDerivedOperationID(int baseOperationID, Class baseClass) + { + if (baseClass == DataUse.class) + { + switch (baseOperationID) + { + case tdlPackage.DATA_USE___RESOLVE_DATA_TYPE: return tdlPackage.SPECIAL_VALUE_USE___RESOLVE_DATA_TYPE; + default: return super.eDerivedOperationID(baseOperationID, baseClass); + } + } + return super.eDerivedOperationID(baseOperationID, baseClass); + } + + /** + * + * + * @generated + */ + @Override + public Object eInvoke(int operationID, EList arguments) throws InvocationTargetException + { + switch (operationID) + { + case tdlPackage.SPECIAL_VALUE_USE___RESOLVE_DATA_TYPE: + return resolveDataType(); + } + return super.eInvoke(operationID, arguments); + } + +} //SpecialValueUseImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/StaticDataUseImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/StaticDataUseImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..ce79660de0634387effba7980b331275c6a1b9b6 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/StaticDataUseImpl.java @@ -0,0 +1,40 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.etsi.mts.tdl.StaticDataUse; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Static Data Use'. + * + * + * @generated + */ +public abstract class StaticDataUseImpl extends DataUseImpl implements StaticDataUse +{ + /** + * + * + * @generated + */ + protected StaticDataUseImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.STATIC_DATA_USE; + } + +} //StaticDataUseImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/StopImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/StopImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..3a14c9dd26eea67ebf6cea6192fa36d1293226a7 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/StopImpl.java @@ -0,0 +1,40 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.etsi.mts.tdl.Stop; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Stop'. + * + * + * @generated + */ +public class StopImpl extends AtomicBehaviourImpl implements Stop +{ + /** + * + * + * @generated + */ + protected StopImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.STOP; + } + +} //StopImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/StructuredDataInstanceImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/StructuredDataInstanceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..891c97f0c6b671dd19c7e1a9561e6b6432cb1103 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/StructuredDataInstanceImpl.java @@ -0,0 +1,243 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.etsi.mts.tdl.MemberAssignment; +import org.etsi.mts.tdl.StructuredDataInstance; +import org.etsi.mts.tdl.UnassignedMemberTreatment; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Structured Data Instance'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.impl.StructuredDataInstanceImpl#getMemberAssignment Member Assignment}
  • + *
  • {@link org.etsi.mts.tdl.impl.StructuredDataInstanceImpl#getUnassignedMember Unassigned Member}
  • + *
+ * + * @generated + */ +public class StructuredDataInstanceImpl extends DataInstanceImpl implements StructuredDataInstance +{ + /** + * The cached value of the '{@link #getMemberAssignment() Member Assignment}' containment reference list. + * + * + * @see #getMemberAssignment() + * @generated + * @ordered + */ + protected EList memberAssignment; + + /** + * The default value of the '{@link #getUnassignedMember() Unassigned Member}' attribute. + * + * + * @see #getUnassignedMember() + * @generated + * @ordered + */ + protected static final UnassignedMemberTreatment UNASSIGNED_MEMBER_EDEFAULT = UnassignedMemberTreatment.UNDEFINED; + + /** + * The cached value of the '{@link #getUnassignedMember() Unassigned Member}' attribute. + * + * + * @see #getUnassignedMember() + * @generated + * @ordered + */ + protected UnassignedMemberTreatment unassignedMember = UNASSIGNED_MEMBER_EDEFAULT; + + /** + * + * + * @generated + */ + protected StructuredDataInstanceImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.STRUCTURED_DATA_INSTANCE; + } + + /** + * + * + * @generated + */ + @Override + public EList getMemberAssignment() + { + if (memberAssignment == null) + { + memberAssignment = new EObjectContainmentEList(MemberAssignment.class, this, tdlPackage.STRUCTURED_DATA_INSTANCE__MEMBER_ASSIGNMENT); + } + return memberAssignment; + } + + /** + * + * + * @generated + */ + @Override + public UnassignedMemberTreatment getUnassignedMember() + { + return unassignedMember; + } + + /** + * + * + * @generated + */ + @Override + public void setUnassignedMember(UnassignedMemberTreatment newUnassignedMember) + { + UnassignedMemberTreatment oldUnassignedMember = unassignedMember; + unassignedMember = newUnassignedMember == null ? UNASSIGNED_MEMBER_EDEFAULT : newUnassignedMember; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.STRUCTURED_DATA_INSTANCE__UNASSIGNED_MEMBER, oldUnassignedMember, unassignedMember)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case tdlPackage.STRUCTURED_DATA_INSTANCE__MEMBER_ASSIGNMENT: + return ((InternalEList)getMemberAssignment()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case tdlPackage.STRUCTURED_DATA_INSTANCE__MEMBER_ASSIGNMENT: + return getMemberAssignment(); + case tdlPackage.STRUCTURED_DATA_INSTANCE__UNASSIGNED_MEMBER: + return getUnassignedMember(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case tdlPackage.STRUCTURED_DATA_INSTANCE__MEMBER_ASSIGNMENT: + getMemberAssignment().clear(); + getMemberAssignment().addAll((Collection)newValue); + return; + case tdlPackage.STRUCTURED_DATA_INSTANCE__UNASSIGNED_MEMBER: + setUnassignedMember((UnassignedMemberTreatment)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case tdlPackage.STRUCTURED_DATA_INSTANCE__MEMBER_ASSIGNMENT: + getMemberAssignment().clear(); + return; + case tdlPackage.STRUCTURED_DATA_INSTANCE__UNASSIGNED_MEMBER: + setUnassignedMember(UNASSIGNED_MEMBER_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case tdlPackage.STRUCTURED_DATA_INSTANCE__MEMBER_ASSIGNMENT: + return memberAssignment != null && !memberAssignment.isEmpty(); + case tdlPackage.STRUCTURED_DATA_INSTANCE__UNASSIGNED_MEMBER: + return unassignedMember != UNASSIGNED_MEMBER_EDEFAULT; + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuilder result = new StringBuilder(super.toString()); + result.append(" (unassignedMember: "); + result.append(unassignedMember); + result.append(')'); + return result.toString(); + } + +} //StructuredDataInstanceImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/StructuredDataTypeImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/StructuredDataTypeImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..97bf22cbe89140d9ad6744150e259f4a0e6bb057 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/StructuredDataTypeImpl.java @@ -0,0 +1,307 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import java.lang.reflect.InvocationTargetException; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.common.util.WrappedException; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EOperation; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.etsi.mts.tdl.Constraint; +import org.etsi.mts.tdl.DataType; +import org.etsi.mts.tdl.Extension; +import org.etsi.mts.tdl.Member; +import org.etsi.mts.tdl.StructuredDataType; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Structured Data Type'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.impl.StructuredDataTypeImpl#getExtension Extension}
  • + *
  • {@link org.etsi.mts.tdl.impl.StructuredDataTypeImpl#getMember Member}
  • + *
+ * + * @generated + */ +public class StructuredDataTypeImpl extends DataTypeImpl implements StructuredDataType +{ + /** + * The cached value of the '{@link #getExtension() Extension}' containment reference list. + * + * + * @see #getExtension() + * @generated + * @ordered + */ + protected EList extension; + + /** + * The cached value of the '{@link #getMember() Member}' containment reference list. + * + * + * @see #getMember() + * @generated + * @ordered + */ + protected EList member; + + /** + * + * + * @generated + */ + protected StructuredDataTypeImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.STRUCTURED_DATA_TYPE; + } + + /** + * + * + * @generated + */ + @Override + public EList getExtension() + { + if (extension == null) + { + extension = new EObjectContainmentEList(Extension.class, this, tdlPackage.STRUCTURED_DATA_TYPE__EXTENSION); + } + return extension; + } + + /** + * + * + * @generated + */ + @Override + public EList getMember() + { + if (member == null) + { + member = new EObjectContainmentEList(Member.class, this, tdlPackage.STRUCTURED_DATA_TYPE__MEMBER); + } + return member; + } + + /** + * The cached invocation delegate for the '{@link #allMembers() All Members}' operation. + * + * + * @see #allMembers() + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate ALL_MEMBERS__EINVOCATION_DELEGATE = ((EOperation.Internal)tdlPackage.Literals.STRUCTURED_DATA_TYPE___ALL_MEMBERS).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList allMembers() + { + try + { + return (EList)ALL_MEMBERS__EINVOCATION_DELEGATE.dynamicInvoke(this, null); + } + catch (InvocationTargetException ite) + { + throw new WrappedException(ite); + } + } + + /** + * The cached invocation delegate for the '{@link #allConstraints() All Constraints}' operation. + * + * + * @see #allConstraints() + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate ALL_CONSTRAINTS__EINVOCATION_DELEGATE = ((EOperation.Internal)tdlPackage.Literals.STRUCTURED_DATA_TYPE___ALL_CONSTRAINTS).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList allConstraints() + { + try + { + return (EList)ALL_CONSTRAINTS__EINVOCATION_DELEGATE.dynamicInvoke(this, null); + } + catch (InvocationTargetException ite) + { + throw new WrappedException(ite); + } + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case tdlPackage.STRUCTURED_DATA_TYPE__EXTENSION: + return ((InternalEList)getExtension()).basicRemove(otherEnd, msgs); + case tdlPackage.STRUCTURED_DATA_TYPE__MEMBER: + return ((InternalEList)getMember()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case tdlPackage.STRUCTURED_DATA_TYPE__EXTENSION: + return getExtension(); + case tdlPackage.STRUCTURED_DATA_TYPE__MEMBER: + return getMember(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case tdlPackage.STRUCTURED_DATA_TYPE__EXTENSION: + getExtension().clear(); + getExtension().addAll((Collection)newValue); + return; + case tdlPackage.STRUCTURED_DATA_TYPE__MEMBER: + getMember().clear(); + getMember().addAll((Collection)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case tdlPackage.STRUCTURED_DATA_TYPE__EXTENSION: + getExtension().clear(); + return; + case tdlPackage.STRUCTURED_DATA_TYPE__MEMBER: + getMember().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case tdlPackage.STRUCTURED_DATA_TYPE__EXTENSION: + return extension != null && !extension.isEmpty(); + case tdlPackage.STRUCTURED_DATA_TYPE__MEMBER: + return member != null && !member.isEmpty(); + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public int eDerivedOperationID(int baseOperationID, Class baseClass) + { + if (baseClass == DataType.class) + { + switch (baseOperationID) + { + case tdlPackage.DATA_TYPE___ALL_CONSTRAINTS: return tdlPackage.STRUCTURED_DATA_TYPE___ALL_CONSTRAINTS; + default: return super.eDerivedOperationID(baseOperationID, baseClass); + } + } + return super.eDerivedOperationID(baseOperationID, baseClass); + } + + /** + * + * + * @generated + */ + @Override + public Object eInvoke(int operationID, EList arguments) throws InvocationTargetException + { + switch (operationID) + { + case tdlPackage.STRUCTURED_DATA_TYPE___ALL_MEMBERS: + return allMembers(); + case tdlPackage.STRUCTURED_DATA_TYPE___ALL_CONSTRAINTS: + return allConstraints(); + } + return super.eInvoke(operationID, arguments); + } + +} //StructuredDataTypeImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/TargetImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/TargetImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..cc8e475b4e5fdad71a0e5395b8cdf710beaefe8e --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/TargetImpl.java @@ -0,0 +1,237 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.etsi.mts.tdl.GateReference; +import org.etsi.mts.tdl.Target; +import org.etsi.mts.tdl.ValueAssignment; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Target'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.impl.TargetImpl#getTargetGate Target Gate}
  • + *
  • {@link org.etsi.mts.tdl.impl.TargetImpl#getValueAssignment Value Assignment}
  • + *
+ * + * @generated + */ +public class TargetImpl extends ElementImpl implements Target +{ + /** + * The cached value of the '{@link #getTargetGate() Target Gate}' reference. + * + * + * @see #getTargetGate() + * @generated + * @ordered + */ + protected GateReference targetGate; + + /** + * The cached value of the '{@link #getValueAssignment() Value Assignment}' containment reference list. + * + * + * @see #getValueAssignment() + * @generated + * @ordered + */ + protected EList valueAssignment; + + /** + * + * + * @generated + */ + protected TargetImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.TARGET; + } + + /** + * + * + * @generated + */ + @Override + public GateReference getTargetGate() + { + if (targetGate != null && targetGate.eIsProxy()) + { + InternalEObject oldTargetGate = (InternalEObject)targetGate; + targetGate = (GateReference)eResolveProxy(oldTargetGate); + if (targetGate != oldTargetGate) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, tdlPackage.TARGET__TARGET_GATE, oldTargetGate, targetGate)); + } + } + return targetGate; + } + + /** + * + * + * @generated + */ + public GateReference basicGetTargetGate() + { + return targetGate; + } + + /** + * + * + * @generated + */ + @Override + public void setTargetGate(GateReference newTargetGate) + { + GateReference oldTargetGate = targetGate; + targetGate = newTargetGate; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.TARGET__TARGET_GATE, oldTargetGate, targetGate)); + } + + /** + * + * + * @generated + */ + @Override + public EList getValueAssignment() + { + if (valueAssignment == null) + { + valueAssignment = new EObjectContainmentEList(ValueAssignment.class, this, tdlPackage.TARGET__VALUE_ASSIGNMENT); + } + return valueAssignment; + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case tdlPackage.TARGET__VALUE_ASSIGNMENT: + return ((InternalEList)getValueAssignment()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case tdlPackage.TARGET__TARGET_GATE: + if (resolve) return getTargetGate(); + return basicGetTargetGate(); + case tdlPackage.TARGET__VALUE_ASSIGNMENT: + return getValueAssignment(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case tdlPackage.TARGET__TARGET_GATE: + setTargetGate((GateReference)newValue); + return; + case tdlPackage.TARGET__VALUE_ASSIGNMENT: + getValueAssignment().clear(); + getValueAssignment().addAll((Collection)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case tdlPackage.TARGET__TARGET_GATE: + setTargetGate((GateReference)null); + return; + case tdlPackage.TARGET__VALUE_ASSIGNMENT: + getValueAssignment().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case tdlPackage.TARGET__TARGET_GATE: + return targetGate != null; + case tdlPackage.TARGET__VALUE_ASSIGNMENT: + return valueAssignment != null && !valueAssignment.isEmpty(); + } + return super.eIsSet(featureID); + } + +} //TargetImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/TestConfigurationImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/TestConfigurationImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..63c04bc7a54bd7271a0fe6dd963a6fde2b8e615f --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/TestConfigurationImpl.java @@ -0,0 +1,257 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import java.lang.reflect.InvocationTargetException; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.BasicEList; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.common.util.WrappedException; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EOperation; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.etsi.mts.tdl.ComponentInstance; +import org.etsi.mts.tdl.ComponentInstanceBinding; +import org.etsi.mts.tdl.Connection; +import org.etsi.mts.tdl.TestConfiguration; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Test Configuration'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.impl.TestConfigurationImpl#getComponentInstance Component Instance}
  • + *
  • {@link org.etsi.mts.tdl.impl.TestConfigurationImpl#getConnection Connection}
  • + *
+ * + * @generated + */ +public class TestConfigurationImpl extends PackageableElementImpl implements TestConfiguration +{ + /** + * The cached value of the '{@link #getComponentInstance() Component Instance}' containment reference list. + * + * + * @see #getComponentInstance() + * @generated + * @ordered + */ + protected EList componentInstance; + + /** + * The cached value of the '{@link #getConnection() Connection}' containment reference list. + * + * + * @see #getConnection() + * @generated + * @ordered + */ + protected EList connection; + + /** + * + * + * @generated + */ + protected TestConfigurationImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.TEST_CONFIGURATION; + } + + /** + * + * + * @generated + */ + @Override + public EList getComponentInstance() + { + if (componentInstance == null) + { + componentInstance = new EObjectContainmentEList(ComponentInstance.class, this, tdlPackage.TEST_CONFIGURATION__COMPONENT_INSTANCE); + } + return componentInstance; + } + + /** + * + * + * @generated + */ + @Override + public EList getConnection() + { + if (connection == null) + { + connection = new EObjectContainmentEList(Connection.class, this, tdlPackage.TEST_CONFIGURATION__CONNECTION); + } + return connection; + } + + /** + * The cached invocation delegate for the '{@link #compatibleWith(org.etsi.mts.tdl.TestConfiguration, org.eclipse.emf.common.util.EList) Compatible With}' operation. + * + * + * @see #compatibleWith(org.etsi.mts.tdl.TestConfiguration, org.eclipse.emf.common.util.EList) + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate COMPATIBLE_WITH_TEST_CONFIGURATION_ELIST__EINVOCATION_DELEGATE = ((EOperation.Internal)tdlPackage.Literals.TEST_CONFIGURATION___COMPATIBLE_WITH__TESTCONFIGURATION_ELIST).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @Override + public boolean compatibleWith(TestConfiguration tc, EList cb) + { + try + { + return (Boolean)COMPATIBLE_WITH_TEST_CONFIGURATION_ELIST__EINVOCATION_DELEGATE.dynamicInvoke(this, new BasicEList.UnmodifiableEList(2, new Object[]{tc, cb})); + } + catch (InvocationTargetException ite) + { + throw new WrappedException(ite); + } + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case tdlPackage.TEST_CONFIGURATION__COMPONENT_INSTANCE: + return ((InternalEList)getComponentInstance()).basicRemove(otherEnd, msgs); + case tdlPackage.TEST_CONFIGURATION__CONNECTION: + return ((InternalEList)getConnection()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case tdlPackage.TEST_CONFIGURATION__COMPONENT_INSTANCE: + return getComponentInstance(); + case tdlPackage.TEST_CONFIGURATION__CONNECTION: + return getConnection(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case tdlPackage.TEST_CONFIGURATION__COMPONENT_INSTANCE: + getComponentInstance().clear(); + getComponentInstance().addAll((Collection)newValue); + return; + case tdlPackage.TEST_CONFIGURATION__CONNECTION: + getConnection().clear(); + getConnection().addAll((Collection)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case tdlPackage.TEST_CONFIGURATION__COMPONENT_INSTANCE: + getComponentInstance().clear(); + return; + case tdlPackage.TEST_CONFIGURATION__CONNECTION: + getConnection().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case tdlPackage.TEST_CONFIGURATION__COMPONENT_INSTANCE: + return componentInstance != null && !componentInstance.isEmpty(); + case tdlPackage.TEST_CONFIGURATION__CONNECTION: + return connection != null && !connection.isEmpty(); + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + @SuppressWarnings("unchecked") + public Object eInvoke(int operationID, EList arguments) throws InvocationTargetException + { + switch (operationID) + { + case tdlPackage.TEST_CONFIGURATION___COMPATIBLE_WITH__TESTCONFIGURATION_ELIST: + return compatibleWith((TestConfiguration)arguments.get(0), (EList)arguments.get(1)); + } + return super.eInvoke(operationID, arguments); + } + +} //TestConfigurationImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/TestDescriptionImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/TestDescriptionImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..1290fc89dfd211c9b9aa114cfd0b47d83a1e3c83 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/TestDescriptionImpl.java @@ -0,0 +1,423 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.EObjectResolvingEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.etsi.mts.tdl.BehaviourDescription; +import org.etsi.mts.tdl.FormalParameter; +import org.etsi.mts.tdl.TestConfiguration; +import org.etsi.mts.tdl.TestDescription; +import org.etsi.mts.tdl.TestObjective; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Test Description'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.impl.TestDescriptionImpl#getTestConfiguration Test Configuration}
  • + *
  • {@link org.etsi.mts.tdl.impl.TestDescriptionImpl#getFormalParameter Formal Parameter}
  • + *
  • {@link org.etsi.mts.tdl.impl.TestDescriptionImpl#getBehaviourDescription Behaviour Description}
  • + *
  • {@link org.etsi.mts.tdl.impl.TestDescriptionImpl#getTestObjective Test Objective}
  • + *
  • {@link org.etsi.mts.tdl.impl.TestDescriptionImpl#isIsLocallyOrdered Is Locally Ordered}
  • + *
+ * + * @generated + */ +public class TestDescriptionImpl extends PackageableElementImpl implements TestDescription +{ + /** + * The cached value of the '{@link #getTestConfiguration() Test Configuration}' reference. + * + * + * @see #getTestConfiguration() + * @generated + * @ordered + */ + protected TestConfiguration testConfiguration; + + /** + * The cached value of the '{@link #getFormalParameter() Formal Parameter}' containment reference list. + * + * + * @see #getFormalParameter() + * @generated + * @ordered + */ + protected EList formalParameter; + + /** + * The cached value of the '{@link #getBehaviourDescription() Behaviour Description}' containment reference. + * + * + * @see #getBehaviourDescription() + * @generated + * @ordered + */ + protected BehaviourDescription behaviourDescription; + + /** + * The cached value of the '{@link #getTestObjective() Test Objective}' reference list. + * + * + * @see #getTestObjective() + * @generated + * @ordered + */ + protected EList testObjective; + + /** + * The default value of the '{@link #isIsLocallyOrdered() Is Locally Ordered}' attribute. + * + * + * @see #isIsLocallyOrdered() + * @generated + * @ordered + */ + protected static final boolean IS_LOCALLY_ORDERED_EDEFAULT = false; + + /** + * The cached value of the '{@link #isIsLocallyOrdered() Is Locally Ordered}' attribute. + * + * + * @see #isIsLocallyOrdered() + * @generated + * @ordered + */ + protected boolean isLocallyOrdered = IS_LOCALLY_ORDERED_EDEFAULT; + + /** + * + * + * @generated + */ + protected TestDescriptionImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.TEST_DESCRIPTION; + } + + /** + * + * + * @generated + */ + @Override + public TestConfiguration getTestConfiguration() + { + if (testConfiguration != null && testConfiguration.eIsProxy()) + { + InternalEObject oldTestConfiguration = (InternalEObject)testConfiguration; + testConfiguration = (TestConfiguration)eResolveProxy(oldTestConfiguration); + if (testConfiguration != oldTestConfiguration) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, tdlPackage.TEST_DESCRIPTION__TEST_CONFIGURATION, oldTestConfiguration, testConfiguration)); + } + } + return testConfiguration; + } + + /** + * + * + * @generated + */ + public TestConfiguration basicGetTestConfiguration() + { + return testConfiguration; + } + + /** + * + * + * @generated + */ + @Override + public void setTestConfiguration(TestConfiguration newTestConfiguration) + { + TestConfiguration oldTestConfiguration = testConfiguration; + testConfiguration = newTestConfiguration; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.TEST_DESCRIPTION__TEST_CONFIGURATION, oldTestConfiguration, testConfiguration)); + } + + /** + * + * + * @generated + */ + @Override + public EList getFormalParameter() + { + if (formalParameter == null) + { + formalParameter = new EObjectContainmentEList(FormalParameter.class, this, tdlPackage.TEST_DESCRIPTION__FORMAL_PARAMETER); + } + return formalParameter; + } + + /** + * + * + * @generated + */ + @Override + public BehaviourDescription getBehaviourDescription() + { + return behaviourDescription; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetBehaviourDescription(BehaviourDescription newBehaviourDescription, NotificationChain msgs) + { + BehaviourDescription oldBehaviourDescription = behaviourDescription; + behaviourDescription = newBehaviourDescription; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, tdlPackage.TEST_DESCRIPTION__BEHAVIOUR_DESCRIPTION, oldBehaviourDescription, newBehaviourDescription); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + @Override + public void setBehaviourDescription(BehaviourDescription newBehaviourDescription) + { + if (newBehaviourDescription != behaviourDescription) + { + NotificationChain msgs = null; + if (behaviourDescription != null) + msgs = ((InternalEObject)behaviourDescription).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - tdlPackage.TEST_DESCRIPTION__BEHAVIOUR_DESCRIPTION, null, msgs); + if (newBehaviourDescription != null) + msgs = ((InternalEObject)newBehaviourDescription).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - tdlPackage.TEST_DESCRIPTION__BEHAVIOUR_DESCRIPTION, null, msgs); + msgs = basicSetBehaviourDescription(newBehaviourDescription, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.TEST_DESCRIPTION__BEHAVIOUR_DESCRIPTION, newBehaviourDescription, newBehaviourDescription)); + } + + /** + * + * + * @generated + */ + @Override + public EList getTestObjective() + { + if (testObjective == null) + { + testObjective = new EObjectResolvingEList(TestObjective.class, this, tdlPackage.TEST_DESCRIPTION__TEST_OBJECTIVE); + } + return testObjective; + } + + /** + * + * + * @generated + */ + @Override + public boolean isIsLocallyOrdered() + { + return isLocallyOrdered; + } + + /** + * + * + * @generated + */ + @Override + public void setIsLocallyOrdered(boolean newIsLocallyOrdered) + { + boolean oldIsLocallyOrdered = isLocallyOrdered; + isLocallyOrdered = newIsLocallyOrdered; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.TEST_DESCRIPTION__IS_LOCALLY_ORDERED, oldIsLocallyOrdered, isLocallyOrdered)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case tdlPackage.TEST_DESCRIPTION__FORMAL_PARAMETER: + return ((InternalEList)getFormalParameter()).basicRemove(otherEnd, msgs); + case tdlPackage.TEST_DESCRIPTION__BEHAVIOUR_DESCRIPTION: + return basicSetBehaviourDescription(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case tdlPackage.TEST_DESCRIPTION__TEST_CONFIGURATION: + if (resolve) return getTestConfiguration(); + return basicGetTestConfiguration(); + case tdlPackage.TEST_DESCRIPTION__FORMAL_PARAMETER: + return getFormalParameter(); + case tdlPackage.TEST_DESCRIPTION__BEHAVIOUR_DESCRIPTION: + return getBehaviourDescription(); + case tdlPackage.TEST_DESCRIPTION__TEST_OBJECTIVE: + return getTestObjective(); + case tdlPackage.TEST_DESCRIPTION__IS_LOCALLY_ORDERED: + return isIsLocallyOrdered(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case tdlPackage.TEST_DESCRIPTION__TEST_CONFIGURATION: + setTestConfiguration((TestConfiguration)newValue); + return; + case tdlPackage.TEST_DESCRIPTION__FORMAL_PARAMETER: + getFormalParameter().clear(); + getFormalParameter().addAll((Collection)newValue); + return; + case tdlPackage.TEST_DESCRIPTION__BEHAVIOUR_DESCRIPTION: + setBehaviourDescription((BehaviourDescription)newValue); + return; + case tdlPackage.TEST_DESCRIPTION__TEST_OBJECTIVE: + getTestObjective().clear(); + getTestObjective().addAll((Collection)newValue); + return; + case tdlPackage.TEST_DESCRIPTION__IS_LOCALLY_ORDERED: + setIsLocallyOrdered((Boolean)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case tdlPackage.TEST_DESCRIPTION__TEST_CONFIGURATION: + setTestConfiguration((TestConfiguration)null); + return; + case tdlPackage.TEST_DESCRIPTION__FORMAL_PARAMETER: + getFormalParameter().clear(); + return; + case tdlPackage.TEST_DESCRIPTION__BEHAVIOUR_DESCRIPTION: + setBehaviourDescription((BehaviourDescription)null); + return; + case tdlPackage.TEST_DESCRIPTION__TEST_OBJECTIVE: + getTestObjective().clear(); + return; + case tdlPackage.TEST_DESCRIPTION__IS_LOCALLY_ORDERED: + setIsLocallyOrdered(IS_LOCALLY_ORDERED_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case tdlPackage.TEST_DESCRIPTION__TEST_CONFIGURATION: + return testConfiguration != null; + case tdlPackage.TEST_DESCRIPTION__FORMAL_PARAMETER: + return formalParameter != null && !formalParameter.isEmpty(); + case tdlPackage.TEST_DESCRIPTION__BEHAVIOUR_DESCRIPTION: + return behaviourDescription != null; + case tdlPackage.TEST_DESCRIPTION__TEST_OBJECTIVE: + return testObjective != null && !testObjective.isEmpty(); + case tdlPackage.TEST_DESCRIPTION__IS_LOCALLY_ORDERED: + return isLocallyOrdered != IS_LOCALLY_ORDERED_EDEFAULT; + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuilder result = new StringBuilder(super.toString()); + result.append(" (isLocallyOrdered: "); + result.append(isLocallyOrdered); + result.append(')'); + return result.toString(); + } + +} //TestDescriptionImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/TestDescriptionReferenceImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/TestDescriptionReferenceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..df35bddec9b59ad8bbad0445e28af040f1733959 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/TestDescriptionReferenceImpl.java @@ -0,0 +1,356 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import java.lang.reflect.InvocationTargetException; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.common.util.WrappedException; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EOperation; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.etsi.mts.tdl.AtomicBehaviour; +import org.etsi.mts.tdl.Behaviour; +import org.etsi.mts.tdl.ComponentInstance; +import org.etsi.mts.tdl.ComponentInstanceBinding; +import org.etsi.mts.tdl.ParameterBinding; +import org.etsi.mts.tdl.TestDescription; +import org.etsi.mts.tdl.TestDescriptionReference; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Test Description Reference'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.impl.TestDescriptionReferenceImpl#getTestDescription Test Description}
  • + *
  • {@link org.etsi.mts.tdl.impl.TestDescriptionReferenceImpl#getComponentInstanceBinding Component Instance Binding}
  • + *
  • {@link org.etsi.mts.tdl.impl.TestDescriptionReferenceImpl#getArgument Argument}
  • + *
+ * + * @generated + */ +public class TestDescriptionReferenceImpl extends AtomicBehaviourImpl implements TestDescriptionReference +{ + /** + * The cached value of the '{@link #getTestDescription() Test Description}' reference. + * + * + * @see #getTestDescription() + * @generated + * @ordered + */ + protected TestDescription testDescription; + + /** + * The cached value of the '{@link #getComponentInstanceBinding() Component Instance Binding}' containment reference list. + * + * + * @see #getComponentInstanceBinding() + * @generated + * @ordered + */ + protected EList componentInstanceBinding; + + /** + * The cached value of the '{@link #getArgument() Argument}' containment reference list. + * + * + * @see #getArgument() + * @generated + * @ordered + */ + protected EList argument; + + /** + * + * + * @generated + */ + protected TestDescriptionReferenceImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.TEST_DESCRIPTION_REFERENCE; + } + + /** + * + * + * @generated + */ + @Override + public TestDescription getTestDescription() + { + if (testDescription != null && testDescription.eIsProxy()) + { + InternalEObject oldTestDescription = (InternalEObject)testDescription; + testDescription = (TestDescription)eResolveProxy(oldTestDescription); + if (testDescription != oldTestDescription) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, tdlPackage.TEST_DESCRIPTION_REFERENCE__TEST_DESCRIPTION, oldTestDescription, testDescription)); + } + } + return testDescription; + } + + /** + * + * + * @generated + */ + public TestDescription basicGetTestDescription() + { + return testDescription; + } + + /** + * + * + * @generated + */ + @Override + public void setTestDescription(TestDescription newTestDescription) + { + TestDescription oldTestDescription = testDescription; + testDescription = newTestDescription; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.TEST_DESCRIPTION_REFERENCE__TEST_DESCRIPTION, oldTestDescription, testDescription)); + } + + /** + * + * + * @generated + */ + @Override + public EList getComponentInstanceBinding() + { + if (componentInstanceBinding == null) + { + componentInstanceBinding = new EObjectContainmentEList(ComponentInstanceBinding.class, this, tdlPackage.TEST_DESCRIPTION_REFERENCE__COMPONENT_INSTANCE_BINDING); + } + return componentInstanceBinding; + } + + /** + * + * + * @generated + */ + @Override + public EList getArgument() + { + if (argument == null) + { + argument = new EObjectContainmentEList(ParameterBinding.class, this, tdlPackage.TEST_DESCRIPTION_REFERENCE__ARGUMENT); + } + return argument; + } + + /** + * The cached invocation delegate for the '{@link #getParticipatingComponents() Get Participating Components}' operation. + * + * + * @see #getParticipatingComponents() + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate GET_PARTICIPATING_COMPONENTS__EINVOCATION_DELEGATE = ((EOperation.Internal)tdlPackage.Literals.TEST_DESCRIPTION_REFERENCE___GET_PARTICIPATING_COMPONENTS).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getParticipatingComponents() + { + try + { + return (EList)GET_PARTICIPATING_COMPONENTS__EINVOCATION_DELEGATE.dynamicInvoke(this, null); + } + catch (InvocationTargetException ite) + { + throw new WrappedException(ite); + } + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case tdlPackage.TEST_DESCRIPTION_REFERENCE__COMPONENT_INSTANCE_BINDING: + return ((InternalEList)getComponentInstanceBinding()).basicRemove(otherEnd, msgs); + case tdlPackage.TEST_DESCRIPTION_REFERENCE__ARGUMENT: + return ((InternalEList)getArgument()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case tdlPackage.TEST_DESCRIPTION_REFERENCE__TEST_DESCRIPTION: + if (resolve) return getTestDescription(); + return basicGetTestDescription(); + case tdlPackage.TEST_DESCRIPTION_REFERENCE__COMPONENT_INSTANCE_BINDING: + return getComponentInstanceBinding(); + case tdlPackage.TEST_DESCRIPTION_REFERENCE__ARGUMENT: + return getArgument(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case tdlPackage.TEST_DESCRIPTION_REFERENCE__TEST_DESCRIPTION: + setTestDescription((TestDescription)newValue); + return; + case tdlPackage.TEST_DESCRIPTION_REFERENCE__COMPONENT_INSTANCE_BINDING: + getComponentInstanceBinding().clear(); + getComponentInstanceBinding().addAll((Collection)newValue); + return; + case tdlPackage.TEST_DESCRIPTION_REFERENCE__ARGUMENT: + getArgument().clear(); + getArgument().addAll((Collection)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case tdlPackage.TEST_DESCRIPTION_REFERENCE__TEST_DESCRIPTION: + setTestDescription((TestDescription)null); + return; + case tdlPackage.TEST_DESCRIPTION_REFERENCE__COMPONENT_INSTANCE_BINDING: + getComponentInstanceBinding().clear(); + return; + case tdlPackage.TEST_DESCRIPTION_REFERENCE__ARGUMENT: + getArgument().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case tdlPackage.TEST_DESCRIPTION_REFERENCE__TEST_DESCRIPTION: + return testDescription != null; + case tdlPackage.TEST_DESCRIPTION_REFERENCE__COMPONENT_INSTANCE_BINDING: + return componentInstanceBinding != null && !componentInstanceBinding.isEmpty(); + case tdlPackage.TEST_DESCRIPTION_REFERENCE__ARGUMENT: + return argument != null && !argument.isEmpty(); + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public int eDerivedOperationID(int baseOperationID, Class baseClass) + { + if (baseClass == Behaviour.class) + { + switch (baseOperationID) + { + case tdlPackage.BEHAVIOUR___GET_PARTICIPATING_COMPONENTS: return tdlPackage.TEST_DESCRIPTION_REFERENCE___GET_PARTICIPATING_COMPONENTS; + default: return super.eDerivedOperationID(baseOperationID, baseClass); + } + } + if (baseClass == AtomicBehaviour.class) + { + switch (baseOperationID) + { + case tdlPackage.ATOMIC_BEHAVIOUR___GET_PARTICIPATING_COMPONENTS: return tdlPackage.TEST_DESCRIPTION_REFERENCE___GET_PARTICIPATING_COMPONENTS; + default: return super.eDerivedOperationID(baseOperationID, baseClass); + } + } + return super.eDerivedOperationID(baseOperationID, baseClass); + } + + /** + * + * + * @generated + */ + @Override + public Object eInvoke(int operationID, EList arguments) throws InvocationTargetException + { + switch (operationID) + { + case tdlPackage.TEST_DESCRIPTION_REFERENCE___GET_PARTICIPATING_COMPONENTS: + return getParticipatingComponents(); + } + return super.eInvoke(operationID, arguments); + } + +} //TestDescriptionReferenceImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/TestObjectiveImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/TestObjectiveImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..39065b539eec6ac1b8fe70cd3c14e862cff604f1 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/TestObjectiveImpl.java @@ -0,0 +1,224 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EDataTypeEList; + +import org.etsi.mts.tdl.TestObjective; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Test Objective'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.impl.TestObjectiveImpl#getObjectiveURI Objective URI}
  • + *
  • {@link org.etsi.mts.tdl.impl.TestObjectiveImpl#getDescription Description}
  • + *
+ * + * @generated + */ +public class TestObjectiveImpl extends PackageableElementImpl implements TestObjective +{ + /** + * The cached value of the '{@link #getObjectiveURI() Objective URI}' attribute list. + * + * + * @see #getObjectiveURI() + * @generated + * @ordered + */ + protected EList objectiveURI; + + /** + * The default value of the '{@link #getDescription() Description}' attribute. + * + * + * @see #getDescription() + * @generated + * @ordered + */ + protected static final String DESCRIPTION_EDEFAULT = null; + + /** + * The cached value of the '{@link #getDescription() Description}' attribute. + * + * + * @see #getDescription() + * @generated + * @ordered + */ + protected String description = DESCRIPTION_EDEFAULT; + + /** + * + * + * @generated + */ + protected TestObjectiveImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.TEST_OBJECTIVE; + } + + /** + * + * + * @generated + */ + @Override + public EList getObjectiveURI() + { + if (objectiveURI == null) + { + objectiveURI = new EDataTypeEList(String.class, this, tdlPackage.TEST_OBJECTIVE__OBJECTIVE_URI); + } + return objectiveURI; + } + + /** + * + * + * @generated + */ + @Override + public String getDescription() + { + return description; + } + + /** + * + * + * @generated + */ + @Override + public void setDescription(String newDescription) + { + String oldDescription = description; + description = newDescription; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.TEST_OBJECTIVE__DESCRIPTION, oldDescription, description)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case tdlPackage.TEST_OBJECTIVE__OBJECTIVE_URI: + return getObjectiveURI(); + case tdlPackage.TEST_OBJECTIVE__DESCRIPTION: + return getDescription(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case tdlPackage.TEST_OBJECTIVE__OBJECTIVE_URI: + getObjectiveURI().clear(); + getObjectiveURI().addAll((Collection)newValue); + return; + case tdlPackage.TEST_OBJECTIVE__DESCRIPTION: + setDescription((String)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case tdlPackage.TEST_OBJECTIVE__OBJECTIVE_URI: + getObjectiveURI().clear(); + return; + case tdlPackage.TEST_OBJECTIVE__DESCRIPTION: + setDescription(DESCRIPTION_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case tdlPackage.TEST_OBJECTIVE__OBJECTIVE_URI: + return objectiveURI != null && !objectiveURI.isEmpty(); + case tdlPackage.TEST_OBJECTIVE__DESCRIPTION: + return DESCRIPTION_EDEFAULT == null ? description != null : !DESCRIPTION_EDEFAULT.equals(description); + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuilder result = new StringBuilder(super.toString()); + result.append(" (objectiveURI: "); + result.append(objectiveURI); + result.append(", description: "); + result.append(description); + result.append(')'); + return result.toString(); + } + +} //TestObjectiveImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/TimeConstraintImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/TimeConstraintImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..fd080e5ebf5c8c50d57ec4a0848d1dc276b9a8f0 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/TimeConstraintImpl.java @@ -0,0 +1,195 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.etsi.mts.tdl.DataUse; +import org.etsi.mts.tdl.TimeConstraint; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Time Constraint'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.impl.TimeConstraintImpl#getTimeConstraintExpression Time Constraint Expression}
  • + *
+ * + * @generated + */ +public class TimeConstraintImpl extends ElementImpl implements TimeConstraint +{ + /** + * The cached value of the '{@link #getTimeConstraintExpression() Time Constraint Expression}' containment reference. + * + * + * @see #getTimeConstraintExpression() + * @generated + * @ordered + */ + protected DataUse timeConstraintExpression; + + /** + * + * + * @generated + */ + protected TimeConstraintImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.TIME_CONSTRAINT; + } + + /** + * + * + * @generated + */ + @Override + public DataUse getTimeConstraintExpression() + { + return timeConstraintExpression; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetTimeConstraintExpression(DataUse newTimeConstraintExpression, NotificationChain msgs) + { + DataUse oldTimeConstraintExpression = timeConstraintExpression; + timeConstraintExpression = newTimeConstraintExpression; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, tdlPackage.TIME_CONSTRAINT__TIME_CONSTRAINT_EXPRESSION, oldTimeConstraintExpression, newTimeConstraintExpression); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + @Override + public void setTimeConstraintExpression(DataUse newTimeConstraintExpression) + { + if (newTimeConstraintExpression != timeConstraintExpression) + { + NotificationChain msgs = null; + if (timeConstraintExpression != null) + msgs = ((InternalEObject)timeConstraintExpression).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - tdlPackage.TIME_CONSTRAINT__TIME_CONSTRAINT_EXPRESSION, null, msgs); + if (newTimeConstraintExpression != null) + msgs = ((InternalEObject)newTimeConstraintExpression).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - tdlPackage.TIME_CONSTRAINT__TIME_CONSTRAINT_EXPRESSION, null, msgs); + msgs = basicSetTimeConstraintExpression(newTimeConstraintExpression, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.TIME_CONSTRAINT__TIME_CONSTRAINT_EXPRESSION, newTimeConstraintExpression, newTimeConstraintExpression)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case tdlPackage.TIME_CONSTRAINT__TIME_CONSTRAINT_EXPRESSION: + return basicSetTimeConstraintExpression(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case tdlPackage.TIME_CONSTRAINT__TIME_CONSTRAINT_EXPRESSION: + return getTimeConstraintExpression(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case tdlPackage.TIME_CONSTRAINT__TIME_CONSTRAINT_EXPRESSION: + setTimeConstraintExpression((DataUse)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case tdlPackage.TIME_CONSTRAINT__TIME_CONSTRAINT_EXPRESSION: + setTimeConstraintExpression((DataUse)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case tdlPackage.TIME_CONSTRAINT__TIME_CONSTRAINT_EXPRESSION: + return timeConstraintExpression != null; + } + return super.eIsSet(featureID); + } + +} //TimeConstraintImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/TimeImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/TimeImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..5bcaf424865f4a7b9476aebdd1a5a3bfed7d9756 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/TimeImpl.java @@ -0,0 +1,40 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.etsi.mts.tdl.Time; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Time'. + * + * + * @generated + */ +public class TimeImpl extends SimpleDataTypeImpl implements Time +{ + /** + * + * + * @generated + */ + protected TimeImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.TIME; + } + +} //TimeImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/TimeLabelImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/TimeLabelImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..f72210f1c7dc98c188784e171e7a82702ec0477d --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/TimeLabelImpl.java @@ -0,0 +1,40 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.etsi.mts.tdl.TimeLabel; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Time Label'. + * + * + * @generated + */ +public class TimeLabelImpl extends NamedElementImpl implements TimeLabel +{ + /** + * + * + * @generated + */ + protected TimeLabelImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.TIME_LABEL; + } + +} //TimeLabelImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/TimeLabelUseImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/TimeLabelUseImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..0645626246faa71e855ddf6ed62632d390e840f2 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/TimeLabelUseImpl.java @@ -0,0 +1,319 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import java.lang.reflect.InvocationTargetException; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.common.util.WrappedException; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EOperation; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.etsi.mts.tdl.DataType; +import org.etsi.mts.tdl.DataUse; +import org.etsi.mts.tdl.TimeLabel; +import org.etsi.mts.tdl.TimeLabelUse; +import org.etsi.mts.tdl.TimeLabelUseKind; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Time Label Use'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.impl.TimeLabelUseImpl#getTimeLabel Time Label}
  • + *
  • {@link org.etsi.mts.tdl.impl.TimeLabelUseImpl#getKind Kind}
  • + *
+ * + * @generated + */ +public class TimeLabelUseImpl extends DynamicDataUseImpl implements TimeLabelUse +{ + /** + * The cached value of the '{@link #getTimeLabel() Time Label}' reference. + * + * + * @see #getTimeLabel() + * @generated + * @ordered + */ + protected TimeLabel timeLabel; + + /** + * The default value of the '{@link #getKind() Kind}' attribute. + * + * + * @see #getKind() + * @generated + * @ordered + */ + protected static final TimeLabelUseKind KIND_EDEFAULT = TimeLabelUseKind.LAST; + + /** + * The cached value of the '{@link #getKind() Kind}' attribute. + * + * + * @see #getKind() + * @generated + * @ordered + */ + protected TimeLabelUseKind kind = KIND_EDEFAULT; + + /** + * + * + * @generated + */ + protected TimeLabelUseImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.TIME_LABEL_USE; + } + + /** + * + * + * @generated + */ + @Override + public TimeLabel getTimeLabel() + { + if (timeLabel != null && timeLabel.eIsProxy()) + { + InternalEObject oldTimeLabel = (InternalEObject)timeLabel; + timeLabel = (TimeLabel)eResolveProxy(oldTimeLabel); + if (timeLabel != oldTimeLabel) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, tdlPackage.TIME_LABEL_USE__TIME_LABEL, oldTimeLabel, timeLabel)); + } + } + return timeLabel; + } + + /** + * + * + * @generated + */ + public TimeLabel basicGetTimeLabel() + { + return timeLabel; + } + + /** + * + * + * @generated + */ + @Override + public void setTimeLabel(TimeLabel newTimeLabel) + { + TimeLabel oldTimeLabel = timeLabel; + timeLabel = newTimeLabel; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.TIME_LABEL_USE__TIME_LABEL, oldTimeLabel, timeLabel)); + } + + /** + * + * + * @generated + */ + @Override + public TimeLabelUseKind getKind() + { + return kind; + } + + /** + * + * + * @generated + */ + @Override + public void setKind(TimeLabelUseKind newKind) + { + TimeLabelUseKind oldKind = kind; + kind = newKind == null ? KIND_EDEFAULT : newKind; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.TIME_LABEL_USE__KIND, oldKind, kind)); + } + + /** + * The cached invocation delegate for the '{@link #resolveDataType() Resolve Data Type}' operation. + * + * + * @see #resolveDataType() + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate RESOLVE_DATA_TYPE__EINVOCATION_DELEGATE = ((EOperation.Internal)tdlPackage.Literals.TIME_LABEL_USE___RESOLVE_DATA_TYPE).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @Override + public DataType resolveDataType() + { + try + { + return (DataType)RESOLVE_DATA_TYPE__EINVOCATION_DELEGATE.dynamicInvoke(this, null); + } + catch (InvocationTargetException ite) + { + throw new WrappedException(ite); + } + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case tdlPackage.TIME_LABEL_USE__TIME_LABEL: + if (resolve) return getTimeLabel(); + return basicGetTimeLabel(); + case tdlPackage.TIME_LABEL_USE__KIND: + return getKind(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case tdlPackage.TIME_LABEL_USE__TIME_LABEL: + setTimeLabel((TimeLabel)newValue); + return; + case tdlPackage.TIME_LABEL_USE__KIND: + setKind((TimeLabelUseKind)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case tdlPackage.TIME_LABEL_USE__TIME_LABEL: + setTimeLabel((TimeLabel)null); + return; + case tdlPackage.TIME_LABEL_USE__KIND: + setKind(KIND_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case tdlPackage.TIME_LABEL_USE__TIME_LABEL: + return timeLabel != null; + case tdlPackage.TIME_LABEL_USE__KIND: + return kind != KIND_EDEFAULT; + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public int eDerivedOperationID(int baseOperationID, Class baseClass) + { + if (baseClass == DataUse.class) + { + switch (baseOperationID) + { + case tdlPackage.DATA_USE___RESOLVE_DATA_TYPE: return tdlPackage.TIME_LABEL_USE___RESOLVE_DATA_TYPE; + default: return super.eDerivedOperationID(baseOperationID, baseClass); + } + } + return super.eDerivedOperationID(baseOperationID, baseClass); + } + + /** + * + * + * @generated + */ + @Override + public Object eInvoke(int operationID, EList arguments) throws InvocationTargetException + { + switch (operationID) + { + case tdlPackage.TIME_LABEL_USE___RESOLVE_DATA_TYPE: + return resolveDataType(); + } + return super.eInvoke(operationID, arguments); + } + + /** + * + * + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuilder result = new StringBuilder(super.toString()); + result.append(" (kind: "); + result.append(kind); + result.append(')'); + return result.toString(); + } + +} //TimeLabelUseImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/TimeOperationImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/TimeOperationImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..463b226149ea17bb428bfcad20851f1b0603be22 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/TimeOperationImpl.java @@ -0,0 +1,343 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import java.lang.reflect.InvocationTargetException; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.common.util.WrappedException; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EOperation; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.etsi.mts.tdl.AtomicBehaviour; +import org.etsi.mts.tdl.Behaviour; +import org.etsi.mts.tdl.ComponentInstance; +import org.etsi.mts.tdl.DataUse; +import org.etsi.mts.tdl.TimeOperation; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Time Operation'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.impl.TimeOperationImpl#getComponentInstance Component Instance}
  • + *
  • {@link org.etsi.mts.tdl.impl.TimeOperationImpl#getPeriod Period}
  • + *
+ * + * @generated + */ +public abstract class TimeOperationImpl extends AtomicBehaviourImpl implements TimeOperation +{ + /** + * The cached value of the '{@link #getComponentInstance() Component Instance}' reference. + * + * + * @see #getComponentInstance() + * @generated + * @ordered + */ + protected ComponentInstance componentInstance; + + /** + * The cached value of the '{@link #getPeriod() Period}' containment reference. + * + * + * @see #getPeriod() + * @generated + * @ordered + */ + protected DataUse period; + + /** + * + * + * @generated + */ + protected TimeOperationImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.TIME_OPERATION; + } + + /** + * + * + * @generated + */ + @Override + public ComponentInstance getComponentInstance() + { + if (componentInstance != null && componentInstance.eIsProxy()) + { + InternalEObject oldComponentInstance = (InternalEObject)componentInstance; + componentInstance = (ComponentInstance)eResolveProxy(oldComponentInstance); + if (componentInstance != oldComponentInstance) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, tdlPackage.TIME_OPERATION__COMPONENT_INSTANCE, oldComponentInstance, componentInstance)); + } + } + return componentInstance; + } + + /** + * + * + * @generated + */ + public ComponentInstance basicGetComponentInstance() + { + return componentInstance; + } + + /** + * + * + * @generated + */ + @Override + public void setComponentInstance(ComponentInstance newComponentInstance) + { + ComponentInstance oldComponentInstance = componentInstance; + componentInstance = newComponentInstance; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.TIME_OPERATION__COMPONENT_INSTANCE, oldComponentInstance, componentInstance)); + } + + /** + * + * + * @generated + */ + @Override + public DataUse getPeriod() + { + return period; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetPeriod(DataUse newPeriod, NotificationChain msgs) + { + DataUse oldPeriod = period; + period = newPeriod; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, tdlPackage.TIME_OPERATION__PERIOD, oldPeriod, newPeriod); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + @Override + public void setPeriod(DataUse newPeriod) + { + if (newPeriod != period) + { + NotificationChain msgs = null; + if (period != null) + msgs = ((InternalEObject)period).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - tdlPackage.TIME_OPERATION__PERIOD, null, msgs); + if (newPeriod != null) + msgs = ((InternalEObject)newPeriod).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - tdlPackage.TIME_OPERATION__PERIOD, null, msgs); + msgs = basicSetPeriod(newPeriod, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.TIME_OPERATION__PERIOD, newPeriod, newPeriod)); + } + + /** + * The cached invocation delegate for the '{@link #getParticipatingComponents() Get Participating Components}' operation. + * + * + * @see #getParticipatingComponents() + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate GET_PARTICIPATING_COMPONENTS__EINVOCATION_DELEGATE = ((EOperation.Internal)tdlPackage.Literals.TIME_OPERATION___GET_PARTICIPATING_COMPONENTS).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getParticipatingComponents() + { + try + { + return (EList)GET_PARTICIPATING_COMPONENTS__EINVOCATION_DELEGATE.dynamicInvoke(this, null); + } + catch (InvocationTargetException ite) + { + throw new WrappedException(ite); + } + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case tdlPackage.TIME_OPERATION__PERIOD: + return basicSetPeriod(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case tdlPackage.TIME_OPERATION__COMPONENT_INSTANCE: + if (resolve) return getComponentInstance(); + return basicGetComponentInstance(); + case tdlPackage.TIME_OPERATION__PERIOD: + return getPeriod(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case tdlPackage.TIME_OPERATION__COMPONENT_INSTANCE: + setComponentInstance((ComponentInstance)newValue); + return; + case tdlPackage.TIME_OPERATION__PERIOD: + setPeriod((DataUse)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case tdlPackage.TIME_OPERATION__COMPONENT_INSTANCE: + setComponentInstance((ComponentInstance)null); + return; + case tdlPackage.TIME_OPERATION__PERIOD: + setPeriod((DataUse)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case tdlPackage.TIME_OPERATION__COMPONENT_INSTANCE: + return componentInstance != null; + case tdlPackage.TIME_OPERATION__PERIOD: + return period != null; + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public int eDerivedOperationID(int baseOperationID, Class baseClass) + { + if (baseClass == Behaviour.class) + { + switch (baseOperationID) + { + case tdlPackage.BEHAVIOUR___GET_PARTICIPATING_COMPONENTS: return tdlPackage.TIME_OPERATION___GET_PARTICIPATING_COMPONENTS; + default: return super.eDerivedOperationID(baseOperationID, baseClass); + } + } + if (baseClass == AtomicBehaviour.class) + { + switch (baseOperationID) + { + case tdlPackage.ATOMIC_BEHAVIOUR___GET_PARTICIPATING_COMPONENTS: return tdlPackage.TIME_OPERATION___GET_PARTICIPATING_COMPONENTS; + default: return super.eDerivedOperationID(baseOperationID, baseClass); + } + } + return super.eDerivedOperationID(baseOperationID, baseClass); + } + + /** + * + * + * @generated + */ + @Override + public Object eInvoke(int operationID, EList arguments) throws InvocationTargetException + { + switch (operationID) + { + case tdlPackage.TIME_OPERATION___GET_PARTICIPATING_COMPONENTS: + return getParticipatingComponents(); + } + return super.eInvoke(operationID, arguments); + } + +} //TimeOperationImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/TimeOutImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/TimeOutImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..46931d843b0985f6a65345b18ee651dab4d73c46 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/TimeOutImpl.java @@ -0,0 +1,40 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.etsi.mts.tdl.TimeOut; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Time Out'. + * + * + * @generated + */ +public class TimeOutImpl extends TimerOperationImpl implements TimeOut +{ + /** + * + * + * @generated + */ + protected TimeOutImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.TIME_OUT; + } + +} //TimeOutImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/TimerImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/TimerImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..d5907ac7d651942c4662a6ad62f1f31212c665a2 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/TimerImpl.java @@ -0,0 +1,40 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.etsi.mts.tdl.Timer; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Timer'. + * + * + * @generated + */ +public class TimerImpl extends NamedElementImpl implements Timer +{ + /** + * + * + * @generated + */ + protected TimerImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.TIMER; + } + +} //TimerImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/TimerOperationImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/TimerOperationImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..5a7fc4020c4781dcb0f97e662aa4cb76123a9eb9 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/TimerOperationImpl.java @@ -0,0 +1,322 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import java.lang.reflect.InvocationTargetException; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.common.util.WrappedException; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EOperation; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.etsi.mts.tdl.AtomicBehaviour; +import org.etsi.mts.tdl.Behaviour; +import org.etsi.mts.tdl.ComponentInstance; +import org.etsi.mts.tdl.Timer; +import org.etsi.mts.tdl.TimerOperation; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Timer Operation'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.impl.TimerOperationImpl#getTimer Timer}
  • + *
  • {@link org.etsi.mts.tdl.impl.TimerOperationImpl#getComponentInstance Component Instance}
  • + *
+ * + * @generated + */ +public abstract class TimerOperationImpl extends AtomicBehaviourImpl implements TimerOperation +{ + /** + * The cached value of the '{@link #getTimer() Timer}' reference. + * + * + * @see #getTimer() + * @generated + * @ordered + */ + protected Timer timer; + + /** + * The cached value of the '{@link #getComponentInstance() Component Instance}' reference. + * + * + * @see #getComponentInstance() + * @generated + * @ordered + */ + protected ComponentInstance componentInstance; + + /** + * + * + * @generated + */ + protected TimerOperationImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.TIMER_OPERATION; + } + + /** + * + * + * @generated + */ + @Override + public Timer getTimer() + { + if (timer != null && timer.eIsProxy()) + { + InternalEObject oldTimer = (InternalEObject)timer; + timer = (Timer)eResolveProxy(oldTimer); + if (timer != oldTimer) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, tdlPackage.TIMER_OPERATION__TIMER, oldTimer, timer)); + } + } + return timer; + } + + /** + * + * + * @generated + */ + public Timer basicGetTimer() + { + return timer; + } + + /** + * + * + * @generated + */ + @Override + public void setTimer(Timer newTimer) + { + Timer oldTimer = timer; + timer = newTimer; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.TIMER_OPERATION__TIMER, oldTimer, timer)); + } + + /** + * + * + * @generated + */ + @Override + public ComponentInstance getComponentInstance() + { + if (componentInstance != null && componentInstance.eIsProxy()) + { + InternalEObject oldComponentInstance = (InternalEObject)componentInstance; + componentInstance = (ComponentInstance)eResolveProxy(oldComponentInstance); + if (componentInstance != oldComponentInstance) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, tdlPackage.TIMER_OPERATION__COMPONENT_INSTANCE, oldComponentInstance, componentInstance)); + } + } + return componentInstance; + } + + /** + * + * + * @generated + */ + public ComponentInstance basicGetComponentInstance() + { + return componentInstance; + } + + /** + * + * + * @generated + */ + @Override + public void setComponentInstance(ComponentInstance newComponentInstance) + { + ComponentInstance oldComponentInstance = componentInstance; + componentInstance = newComponentInstance; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.TIMER_OPERATION__COMPONENT_INSTANCE, oldComponentInstance, componentInstance)); + } + + /** + * The cached invocation delegate for the '{@link #getParticipatingComponents() Get Participating Components}' operation. + * + * + * @see #getParticipatingComponents() + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate GET_PARTICIPATING_COMPONENTS__EINVOCATION_DELEGATE = ((EOperation.Internal)tdlPackage.Literals.TIMER_OPERATION___GET_PARTICIPATING_COMPONENTS).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getParticipatingComponents() + { + try + { + return (EList)GET_PARTICIPATING_COMPONENTS__EINVOCATION_DELEGATE.dynamicInvoke(this, null); + } + catch (InvocationTargetException ite) + { + throw new WrappedException(ite); + } + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case tdlPackage.TIMER_OPERATION__TIMER: + if (resolve) return getTimer(); + return basicGetTimer(); + case tdlPackage.TIMER_OPERATION__COMPONENT_INSTANCE: + if (resolve) return getComponentInstance(); + return basicGetComponentInstance(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case tdlPackage.TIMER_OPERATION__TIMER: + setTimer((Timer)newValue); + return; + case tdlPackage.TIMER_OPERATION__COMPONENT_INSTANCE: + setComponentInstance((ComponentInstance)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case tdlPackage.TIMER_OPERATION__TIMER: + setTimer((Timer)null); + return; + case tdlPackage.TIMER_OPERATION__COMPONENT_INSTANCE: + setComponentInstance((ComponentInstance)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case tdlPackage.TIMER_OPERATION__TIMER: + return timer != null; + case tdlPackage.TIMER_OPERATION__COMPONENT_INSTANCE: + return componentInstance != null; + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public int eDerivedOperationID(int baseOperationID, Class baseClass) + { + if (baseClass == Behaviour.class) + { + switch (baseOperationID) + { + case tdlPackage.BEHAVIOUR___GET_PARTICIPATING_COMPONENTS: return tdlPackage.TIMER_OPERATION___GET_PARTICIPATING_COMPONENTS; + default: return super.eDerivedOperationID(baseOperationID, baseClass); + } + } + if (baseClass == AtomicBehaviour.class) + { + switch (baseOperationID) + { + case tdlPackage.ATOMIC_BEHAVIOUR___GET_PARTICIPATING_COMPONENTS: return tdlPackage.TIMER_OPERATION___GET_PARTICIPATING_COMPONENTS; + default: return super.eDerivedOperationID(baseOperationID, baseClass); + } + } + return super.eDerivedOperationID(baseOperationID, baseClass); + } + + /** + * + * + * @generated + */ + @Override + public Object eInvoke(int operationID, EList arguments) throws InvocationTargetException + { + switch (operationID) + { + case tdlPackage.TIMER_OPERATION___GET_PARTICIPATING_COMPONENTS: + return getParticipatingComponents(); + } + return super.eInvoke(operationID, arguments); + } + +} //TimerOperationImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/TimerStartImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/TimerStartImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..e0cb4485f24105fca16fe9b017f106d14497752f --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/TimerStartImpl.java @@ -0,0 +1,195 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.etsi.mts.tdl.DataUse; +import org.etsi.mts.tdl.TimerStart; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Timer Start'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.impl.TimerStartImpl#getPeriod Period}
  • + *
+ * + * @generated + */ +public class TimerStartImpl extends TimerOperationImpl implements TimerStart +{ + /** + * The cached value of the '{@link #getPeriod() Period}' containment reference. + * + * + * @see #getPeriod() + * @generated + * @ordered + */ + protected DataUse period; + + /** + * + * + * @generated + */ + protected TimerStartImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.TIMER_START; + } + + /** + * + * + * @generated + */ + @Override + public DataUse getPeriod() + { + return period; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetPeriod(DataUse newPeriod, NotificationChain msgs) + { + DataUse oldPeriod = period; + period = newPeriod; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, tdlPackage.TIMER_START__PERIOD, oldPeriod, newPeriod); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + @Override + public void setPeriod(DataUse newPeriod) + { + if (newPeriod != period) + { + NotificationChain msgs = null; + if (period != null) + msgs = ((InternalEObject)period).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - tdlPackage.TIMER_START__PERIOD, null, msgs); + if (newPeriod != null) + msgs = ((InternalEObject)newPeriod).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - tdlPackage.TIMER_START__PERIOD, null, msgs); + msgs = basicSetPeriod(newPeriod, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.TIMER_START__PERIOD, newPeriod, newPeriod)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case tdlPackage.TIMER_START__PERIOD: + return basicSetPeriod(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case tdlPackage.TIMER_START__PERIOD: + return getPeriod(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case tdlPackage.TIMER_START__PERIOD: + setPeriod((DataUse)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case tdlPackage.TIMER_START__PERIOD: + setPeriod((DataUse)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case tdlPackage.TIMER_START__PERIOD: + return period != null; + } + return super.eIsSet(featureID); + } + +} //TimerStartImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/TimerStopImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/TimerStopImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..efb35571aeaf3339983db73b1e1fc017eafd6a14 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/TimerStopImpl.java @@ -0,0 +1,40 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.etsi.mts.tdl.TimerStop; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Timer Stop'. + * + * + * @generated + */ +public class TimerStopImpl extends TimerOperationImpl implements TimerStop +{ + /** + * + * + * @generated + */ + protected TimerStopImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.TIMER_STOP; + } + +} //TimerStopImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/UnboundedLoopBehaviourImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/UnboundedLoopBehaviourImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..778986278d2d805d5c0e9eefe03a75a6958d0a17 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/UnboundedLoopBehaviourImpl.java @@ -0,0 +1,40 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.etsi.mts.tdl.UnboundedLoopBehaviour; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Unbounded Loop Behaviour'. + * + * + * @generated + */ +public class UnboundedLoopBehaviourImpl extends SingleCombinedBehaviourImpl implements UnboundedLoopBehaviour +{ + /** + * + * + * @generated + */ + protected UnboundedLoopBehaviourImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.UNBOUNDED_LOOP_BEHAVIOUR; + } + +} //UnboundedLoopBehaviourImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/ValueAssignmentImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/ValueAssignmentImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..d2b2ee554d37264a33cec208a60b9a0f1d363208 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/ValueAssignmentImpl.java @@ -0,0 +1,242 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.etsi.mts.tdl.Parameter; +import org.etsi.mts.tdl.ValueAssignment; +import org.etsi.mts.tdl.Variable; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Value Assignment'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.impl.ValueAssignmentImpl#getVariable Variable}
  • + *
  • {@link org.etsi.mts.tdl.impl.ValueAssignmentImpl#getParameter Parameter}
  • + *
+ * + * @generated + */ +public class ValueAssignmentImpl extends ElementImpl implements ValueAssignment +{ + /** + * The cached value of the '{@link #getVariable() Variable}' reference. + * + * + * @see #getVariable() + * @generated + * @ordered + */ + protected Variable variable; + + /** + * The cached value of the '{@link #getParameter() Parameter}' reference. + * + * + * @see #getParameter() + * @generated + * @ordered + */ + protected Parameter parameter; + + /** + * + * + * @generated + */ + protected ValueAssignmentImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.VALUE_ASSIGNMENT; + } + + /** + * + * + * @generated + */ + @Override + public Variable getVariable() + { + if (variable != null && variable.eIsProxy()) + { + InternalEObject oldVariable = (InternalEObject)variable; + variable = (Variable)eResolveProxy(oldVariable); + if (variable != oldVariable) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, tdlPackage.VALUE_ASSIGNMENT__VARIABLE, oldVariable, variable)); + } + } + return variable; + } + + /** + * + * + * @generated + */ + public Variable basicGetVariable() + { + return variable; + } + + /** + * + * + * @generated + */ + @Override + public void setVariable(Variable newVariable) + { + Variable oldVariable = variable; + variable = newVariable; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.VALUE_ASSIGNMENT__VARIABLE, oldVariable, variable)); + } + + /** + * + * + * @generated + */ + @Override + public Parameter getParameter() + { + if (parameter != null && parameter.eIsProxy()) + { + InternalEObject oldParameter = (InternalEObject)parameter; + parameter = (Parameter)eResolveProxy(oldParameter); + if (parameter != oldParameter) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, tdlPackage.VALUE_ASSIGNMENT__PARAMETER, oldParameter, parameter)); + } + } + return parameter; + } + + /** + * + * + * @generated + */ + public Parameter basicGetParameter() + { + return parameter; + } + + /** + * + * + * @generated + */ + @Override + public void setParameter(Parameter newParameter) + { + Parameter oldParameter = parameter; + parameter = newParameter; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.VALUE_ASSIGNMENT__PARAMETER, oldParameter, parameter)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case tdlPackage.VALUE_ASSIGNMENT__VARIABLE: + if (resolve) return getVariable(); + return basicGetVariable(); + case tdlPackage.VALUE_ASSIGNMENT__PARAMETER: + if (resolve) return getParameter(); + return basicGetParameter(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case tdlPackage.VALUE_ASSIGNMENT__VARIABLE: + setVariable((Variable)newValue); + return; + case tdlPackage.VALUE_ASSIGNMENT__PARAMETER: + setParameter((Parameter)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case tdlPackage.VALUE_ASSIGNMENT__VARIABLE: + setVariable((Variable)null); + return; + case tdlPackage.VALUE_ASSIGNMENT__PARAMETER: + setParameter((Parameter)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case tdlPackage.VALUE_ASSIGNMENT__VARIABLE: + return variable != null; + case tdlPackage.VALUE_ASSIGNMENT__PARAMETER: + return parameter != null; + } + return super.eIsSet(featureID); + } + +} //ValueAssignmentImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/VariableImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/VariableImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..3958059b7aa27a756721b968ce6044bc672b50f8 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/VariableImpl.java @@ -0,0 +1,174 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.etsi.mts.tdl.DataType; +import org.etsi.mts.tdl.Variable; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Variable'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.impl.VariableImpl#getDataType Data Type}
  • + *
+ * + * @generated + */ +public class VariableImpl extends NamedElementImpl implements Variable +{ + /** + * The cached value of the '{@link #getDataType() Data Type}' reference. + * + * + * @see #getDataType() + * @generated + * @ordered + */ + protected DataType dataType; + + /** + * + * + * @generated + */ + protected VariableImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.VARIABLE; + } + + /** + * + * + * @generated + */ + @Override + public DataType getDataType() + { + if (dataType != null && dataType.eIsProxy()) + { + InternalEObject oldDataType = (InternalEObject)dataType; + dataType = (DataType)eResolveProxy(oldDataType); + if (dataType != oldDataType) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, tdlPackage.VARIABLE__DATA_TYPE, oldDataType, dataType)); + } + } + return dataType; + } + + /** + * + * + * @generated + */ + public DataType basicGetDataType() + { + return dataType; + } + + /** + * + * + * @generated + */ + @Override + public void setDataType(DataType newDataType) + { + DataType oldDataType = dataType; + dataType = newDataType; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.VARIABLE__DATA_TYPE, oldDataType, dataType)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case tdlPackage.VARIABLE__DATA_TYPE: + if (resolve) return getDataType(); + return basicGetDataType(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case tdlPackage.VARIABLE__DATA_TYPE: + setDataType((DataType)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case tdlPackage.VARIABLE__DATA_TYPE: + setDataType((DataType)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case tdlPackage.VARIABLE__DATA_TYPE: + return dataType != null; + } + return super.eIsSet(featureID); + } + +} //VariableImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/VariableUseImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/VariableUseImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..8399783187dc88ed4b44b43953aea87897258ea8 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/VariableUseImpl.java @@ -0,0 +1,313 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import java.lang.reflect.InvocationTargetException; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.common.util.WrappedException; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EOperation; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.etsi.mts.tdl.ComponentInstance; +import org.etsi.mts.tdl.DataType; +import org.etsi.mts.tdl.DataUse; +import org.etsi.mts.tdl.Variable; +import org.etsi.mts.tdl.VariableUse; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Variable Use'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.impl.VariableUseImpl#getComponentInstance Component Instance}
  • + *
  • {@link org.etsi.mts.tdl.impl.VariableUseImpl#getVariable Variable}
  • + *
+ * + * @generated + */ +public class VariableUseImpl extends DynamicDataUseImpl implements VariableUse +{ + /** + * The cached value of the '{@link #getComponentInstance() Component Instance}' reference. + * + * + * @see #getComponentInstance() + * @generated + * @ordered + */ + protected ComponentInstance componentInstance; + + /** + * The cached value of the '{@link #getVariable() Variable}' reference. + * + * + * @see #getVariable() + * @generated + * @ordered + */ + protected Variable variable; + + /** + * + * + * @generated + */ + protected VariableUseImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.VARIABLE_USE; + } + + /** + * + * + * @generated + */ + @Override + public ComponentInstance getComponentInstance() + { + if (componentInstance != null && componentInstance.eIsProxy()) + { + InternalEObject oldComponentInstance = (InternalEObject)componentInstance; + componentInstance = (ComponentInstance)eResolveProxy(oldComponentInstance); + if (componentInstance != oldComponentInstance) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, tdlPackage.VARIABLE_USE__COMPONENT_INSTANCE, oldComponentInstance, componentInstance)); + } + } + return componentInstance; + } + + /** + * + * + * @generated + */ + public ComponentInstance basicGetComponentInstance() + { + return componentInstance; + } + + /** + * + * + * @generated + */ + @Override + public void setComponentInstance(ComponentInstance newComponentInstance) + { + ComponentInstance oldComponentInstance = componentInstance; + componentInstance = newComponentInstance; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.VARIABLE_USE__COMPONENT_INSTANCE, oldComponentInstance, componentInstance)); + } + + /** + * + * + * @generated + */ + @Override + public Variable getVariable() + { + if (variable != null && variable.eIsProxy()) + { + InternalEObject oldVariable = (InternalEObject)variable; + variable = (Variable)eResolveProxy(oldVariable); + if (variable != oldVariable) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, tdlPackage.VARIABLE_USE__VARIABLE, oldVariable, variable)); + } + } + return variable; + } + + /** + * + * + * @generated + */ + public Variable basicGetVariable() + { + return variable; + } + + /** + * + * + * @generated + */ + @Override + public void setVariable(Variable newVariable) + { + Variable oldVariable = variable; + variable = newVariable; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.VARIABLE_USE__VARIABLE, oldVariable, variable)); + } + + /** + * The cached invocation delegate for the '{@link #resolveDataType() Resolve Data Type}' operation. + * + * + * @see #resolveDataType() + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate RESOLVE_DATA_TYPE__EINVOCATION_DELEGATE = ((EOperation.Internal)tdlPackage.Literals.VARIABLE_USE___RESOLVE_DATA_TYPE).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @Override + public DataType resolveDataType() + { + try + { + return (DataType)RESOLVE_DATA_TYPE__EINVOCATION_DELEGATE.dynamicInvoke(this, null); + } + catch (InvocationTargetException ite) + { + throw new WrappedException(ite); + } + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case tdlPackage.VARIABLE_USE__COMPONENT_INSTANCE: + if (resolve) return getComponentInstance(); + return basicGetComponentInstance(); + case tdlPackage.VARIABLE_USE__VARIABLE: + if (resolve) return getVariable(); + return basicGetVariable(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case tdlPackage.VARIABLE_USE__COMPONENT_INSTANCE: + setComponentInstance((ComponentInstance)newValue); + return; + case tdlPackage.VARIABLE_USE__VARIABLE: + setVariable((Variable)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case tdlPackage.VARIABLE_USE__COMPONENT_INSTANCE: + setComponentInstance((ComponentInstance)null); + return; + case tdlPackage.VARIABLE_USE__VARIABLE: + setVariable((Variable)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case tdlPackage.VARIABLE_USE__COMPONENT_INSTANCE: + return componentInstance != null; + case tdlPackage.VARIABLE_USE__VARIABLE: + return variable != null; + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public int eDerivedOperationID(int baseOperationID, Class baseClass) + { + if (baseClass == DataUse.class) + { + switch (baseOperationID) + { + case tdlPackage.DATA_USE___RESOLVE_DATA_TYPE: return tdlPackage.VARIABLE_USE___RESOLVE_DATA_TYPE; + default: return super.eDerivedOperationID(baseOperationID, baseClass); + } + } + return super.eDerivedOperationID(baseOperationID, baseClass); + } + + /** + * + * + * @generated + */ + @Override + public Object eInvoke(int operationID, EList arguments) throws InvocationTargetException + { + switch (operationID) + { + case tdlPackage.VARIABLE_USE___RESOLVE_DATA_TYPE: + return resolveDataType(); + } + return super.eInvoke(operationID, arguments); + } + +} //VariableUseImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/VerdictAssignmentImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/VerdictAssignmentImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..2721eed36f908952851702272a660f0d59d58efb --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/VerdictAssignmentImpl.java @@ -0,0 +1,195 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.etsi.mts.tdl.DataUse; +import org.etsi.mts.tdl.VerdictAssignment; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Verdict Assignment'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.impl.VerdictAssignmentImpl#getVerdict Verdict}
  • + *
+ * + * @generated + */ +public class VerdictAssignmentImpl extends AtomicBehaviourImpl implements VerdictAssignment +{ + /** + * The cached value of the '{@link #getVerdict() Verdict}' containment reference. + * + * + * @see #getVerdict() + * @generated + * @ordered + */ + protected DataUse verdict; + + /** + * + * + * @generated + */ + protected VerdictAssignmentImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.VERDICT_ASSIGNMENT; + } + + /** + * + * + * @generated + */ + @Override + public DataUse getVerdict() + { + return verdict; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetVerdict(DataUse newVerdict, NotificationChain msgs) + { + DataUse oldVerdict = verdict; + verdict = newVerdict; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, tdlPackage.VERDICT_ASSIGNMENT__VERDICT, oldVerdict, newVerdict); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + @Override + public void setVerdict(DataUse newVerdict) + { + if (newVerdict != verdict) + { + NotificationChain msgs = null; + if (verdict != null) + msgs = ((InternalEObject)verdict).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - tdlPackage.VERDICT_ASSIGNMENT__VERDICT, null, msgs); + if (newVerdict != null) + msgs = ((InternalEObject)newVerdict).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - tdlPackage.VERDICT_ASSIGNMENT__VERDICT, null, msgs); + msgs = basicSetVerdict(newVerdict, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, tdlPackage.VERDICT_ASSIGNMENT__VERDICT, newVerdict, newVerdict)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case tdlPackage.VERDICT_ASSIGNMENT__VERDICT: + return basicSetVerdict(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case tdlPackage.VERDICT_ASSIGNMENT__VERDICT: + return getVerdict(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case tdlPackage.VERDICT_ASSIGNMENT__VERDICT: + setVerdict((DataUse)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case tdlPackage.VERDICT_ASSIGNMENT__VERDICT: + setVerdict((DataUse)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case tdlPackage.VERDICT_ASSIGNMENT__VERDICT: + return verdict != null; + } + return super.eIsSet(featureID); + } + +} //VerdictAssignmentImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/WaitImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/WaitImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..b58a7e8e5c2276f06124333d1f3fd6e831990d7c --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/WaitImpl.java @@ -0,0 +1,40 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.etsi.mts.tdl.Wait; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model object 'Wait'. + * + * + * @generated + */ +public class WaitImpl extends TimeOperationImpl implements Wait +{ + /** + * + * + * @generated + */ + protected WaitImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return tdlPackage.Literals.WAIT; + } + +} //WaitImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/tdlFactoryImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/tdlFactoryImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..b3256e2febcaa8bab28f578671428d20159febd9 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/tdlFactoryImpl.java @@ -0,0 +1,1451 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EDataType; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EPackage; + +import org.eclipse.emf.ecore.impl.EFactoryImpl; + +import org.eclipse.emf.ecore.plugin.EcorePlugin; + +import org.etsi.mts.tdl.Action; +import org.etsi.mts.tdl.ActionReference; +import org.etsi.mts.tdl.AlternativeBehaviour; +import org.etsi.mts.tdl.Annotation; +import org.etsi.mts.tdl.AnnotationType; +import org.etsi.mts.tdl.AnyValue; +import org.etsi.mts.tdl.AnyValueOrOmit; +import org.etsi.mts.tdl.Assertion; +import org.etsi.mts.tdl.Assignment; +import org.etsi.mts.tdl.BehaviourDescription; +import org.etsi.mts.tdl.Block; +import org.etsi.mts.tdl.BoundedLoopBehaviour; +import org.etsi.mts.tdl.Break; +import org.etsi.mts.tdl.CollectionDataInstance; +import org.etsi.mts.tdl.CollectionDataType; +import org.etsi.mts.tdl.Comment; +import org.etsi.mts.tdl.ComponentInstance; +import org.etsi.mts.tdl.ComponentInstanceBinding; +import org.etsi.mts.tdl.ComponentInstanceRole; +import org.etsi.mts.tdl.ComponentType; +import org.etsi.mts.tdl.CompoundBehaviour; +import org.etsi.mts.tdl.ConditionalBehaviour; +import org.etsi.mts.tdl.Connection; +import org.etsi.mts.tdl.Constraint; +import org.etsi.mts.tdl.ConstraintType; +import org.etsi.mts.tdl.DataElementMapping; +import org.etsi.mts.tdl.DataElementUse; +import org.etsi.mts.tdl.DataInstanceUse; +import org.etsi.mts.tdl.DataResourceMapping; +import org.etsi.mts.tdl.DefaultBehaviour; +import org.etsi.mts.tdl.ElementImport; +import org.etsi.mts.tdl.EnumDataType; +import org.etsi.mts.tdl.Extension; +import org.etsi.mts.tdl.FormalParameter; +import org.etsi.mts.tdl.FormalParameterUse; +import org.etsi.mts.tdl.Function; +import org.etsi.mts.tdl.FunctionCall; +import org.etsi.mts.tdl.GateInstance; +import org.etsi.mts.tdl.GateReference; +import org.etsi.mts.tdl.GateType; +import org.etsi.mts.tdl.GateTypeKind; +import org.etsi.mts.tdl.InlineAction; +import org.etsi.mts.tdl.Interaction; +import org.etsi.mts.tdl.InterruptBehaviour; +import org.etsi.mts.tdl.LiteralValueUse; +import org.etsi.mts.tdl.LocalExpression; +import org.etsi.mts.tdl.Member; +import org.etsi.mts.tdl.MemberAssignment; +import org.etsi.mts.tdl.MemberReference; +import org.etsi.mts.tdl.Message; +import org.etsi.mts.tdl.OmitValue; +import org.etsi.mts.tdl.OptionalBehaviour; +import org.etsi.mts.tdl.ParallelBehaviour; +import org.etsi.mts.tdl.ParameterBinding; +import org.etsi.mts.tdl.ParameterKind; +import org.etsi.mts.tdl.ParameterMapping; +import org.etsi.mts.tdl.PeriodicBehaviour; +import org.etsi.mts.tdl.PredefinedFunction; +import org.etsi.mts.tdl.PredefinedFunctionCall; +import org.etsi.mts.tdl.ProcedureCall; +import org.etsi.mts.tdl.ProcedureParameter; +import org.etsi.mts.tdl.ProcedureSignature; +import org.etsi.mts.tdl.Quiescence; +import org.etsi.mts.tdl.SimpleDataInstance; +import org.etsi.mts.tdl.SimpleDataType; +import org.etsi.mts.tdl.Stop; +import org.etsi.mts.tdl.StructuredDataInstance; +import org.etsi.mts.tdl.StructuredDataType; +import org.etsi.mts.tdl.Target; +import org.etsi.mts.tdl.TestConfiguration; +import org.etsi.mts.tdl.TestDescription; +import org.etsi.mts.tdl.TestDescriptionReference; +import org.etsi.mts.tdl.TestObjective; +import org.etsi.mts.tdl.Time; +import org.etsi.mts.tdl.TimeConstraint; +import org.etsi.mts.tdl.TimeLabel; +import org.etsi.mts.tdl.TimeLabelUse; +import org.etsi.mts.tdl.TimeLabelUseKind; +import org.etsi.mts.tdl.TimeOut; +import org.etsi.mts.tdl.Timer; +import org.etsi.mts.tdl.TimerStart; +import org.etsi.mts.tdl.TimerStop; +import org.etsi.mts.tdl.UnassignedMemberTreatment; +import org.etsi.mts.tdl.UnboundedLoopBehaviour; +import org.etsi.mts.tdl.ValueAssignment; +import org.etsi.mts.tdl.Variable; +import org.etsi.mts.tdl.VariableUse; +import org.etsi.mts.tdl.VerdictAssignment; +import org.etsi.mts.tdl.Wait; +import org.etsi.mts.tdl.tdlFactory; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model Factory. + * + * @generated + */ +public class tdlFactoryImpl extends EFactoryImpl implements tdlFactory +{ + /** + * Creates the default factory implementation. + * + * + * @generated + */ + public static tdlFactory init() + { + try + { + tdlFactory thetdlFactory = (tdlFactory)EPackage.Registry.INSTANCE.getEFactory(tdlPackage.eNS_URI); + if (thetdlFactory != null) + { + return thetdlFactory; + } + } + catch (Exception exception) + { + EcorePlugin.INSTANCE.log(exception); + } + return new tdlFactoryImpl(); + } + + /** + * Creates an instance of the factory. + * + * + * @generated + */ + public tdlFactoryImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + public EObject create(EClass eClass) + { + switch (eClass.getClassifierID()) + { + case tdlPackage.COMMENT: return createComment(); + case tdlPackage.ANNOTATION: return createAnnotation(); + case tdlPackage.ANNOTATION_TYPE: return createAnnotationType(); + case tdlPackage.PACKAGE: return createPackage(); + case tdlPackage.ELEMENT_IMPORT: return createElementImport(); + case tdlPackage.TEST_OBJECTIVE: return createTestObjective(); + case tdlPackage.DATA_RESOURCE_MAPPING: return createDataResourceMapping(); + case tdlPackage.DATA_ELEMENT_MAPPING: return createDataElementMapping(); + case tdlPackage.PARAMETER_MAPPING: return createParameterMapping(); + case tdlPackage.SIMPLE_DATA_TYPE: return createSimpleDataType(); + case tdlPackage.SIMPLE_DATA_INSTANCE: return createSimpleDataInstance(); + case tdlPackage.STRUCTURED_DATA_TYPE: return createStructuredDataType(); + case tdlPackage.MEMBER: return createMember(); + case tdlPackage.STRUCTURED_DATA_INSTANCE: return createStructuredDataInstance(); + case tdlPackage.MEMBER_ASSIGNMENT: return createMemberAssignment(); + case tdlPackage.PARAMETER_BINDING: return createParameterBinding(); + case tdlPackage.ACTION: return createAction(); + case tdlPackage.FORMAL_PARAMETER: return createFormalParameter(); + case tdlPackage.FUNCTION: return createFunction(); + case tdlPackage.FORMAL_PARAMETER_USE: return createFormalParameterUse(); + case tdlPackage.VARIABLE: return createVariable(); + case tdlPackage.FUNCTION_CALL: return createFunctionCall(); + case tdlPackage.VARIABLE_USE: return createVariableUse(); + case tdlPackage.COMPONENT_INSTANCE: return createComponentInstance(); + case tdlPackage.COMPONENT_TYPE: return createComponentType(); + case tdlPackage.GATE_INSTANCE: return createGateInstance(); + case tdlPackage.GATE_TYPE: return createGateType(); + case tdlPackage.TIMER: return createTimer(); + case tdlPackage.OMIT_VALUE: return createOmitValue(); + case tdlPackage.ANY_VALUE: return createAnyValue(); + case tdlPackage.ANY_VALUE_OR_OMIT: return createAnyValueOrOmit(); + case tdlPackage.DATA_INSTANCE_USE: return createDataInstanceUse(); + case tdlPackage.TIME: return createTime(); + case tdlPackage.TIME_LABEL: return createTimeLabel(); + case tdlPackage.TIME_CONSTRAINT: return createTimeConstraint(); + case tdlPackage.TIMER_START: return createTimerStart(); + case tdlPackage.TIMER_STOP: return createTimerStop(); + case tdlPackage.TIME_OUT: return createTimeOut(); + case tdlPackage.WAIT: return createWait(); + case tdlPackage.QUIESCENCE: return createQuiescence(); + case tdlPackage.GATE_REFERENCE: return createGateReference(); + case tdlPackage.TIME_LABEL_USE: return createTimeLabelUse(); + case tdlPackage.TEST_CONFIGURATION: return createTestConfiguration(); + case tdlPackage.CONNECTION: return createConnection(); + case tdlPackage.TEST_DESCRIPTION: return createTestDescription(); + case tdlPackage.BEHAVIOUR_DESCRIPTION: return createBehaviourDescription(); + case tdlPackage.BLOCK: return createBlock(); + case tdlPackage.PERIODIC_BEHAVIOUR: return createPeriodicBehaviour(); + case tdlPackage.ALTERNATIVE_BEHAVIOUR: return createAlternativeBehaviour(); + case tdlPackage.PARALLEL_BEHAVIOUR: return createParallelBehaviour(); + case tdlPackage.BOUNDED_LOOP_BEHAVIOUR: return createBoundedLoopBehaviour(); + case tdlPackage.OPTIONAL_BEHAVIOUR: return createOptionalBehaviour(); + case tdlPackage.UNBOUNDED_LOOP_BEHAVIOUR: return createUnboundedLoopBehaviour(); + case tdlPackage.CONDITIONAL_BEHAVIOUR: return createConditionalBehaviour(); + case tdlPackage.COMPOUND_BEHAVIOUR: return createCompoundBehaviour(); + case tdlPackage.DEFAULT_BEHAVIOUR: return createDefaultBehaviour(); + case tdlPackage.INTERRUPT_BEHAVIOUR: return createInterruptBehaviour(); + case tdlPackage.TARGET: return createTarget(); + case tdlPackage.VERDICT_ASSIGNMENT: return createVerdictAssignment(); + case tdlPackage.ASSERTION: return createAssertion(); + case tdlPackage.STOP: return createStop(); + case tdlPackage.BREAK: return createBreak(); + case tdlPackage.ASSIGNMENT: return createAssignment(); + case tdlPackage.INLINE_ACTION: return createInlineAction(); + case tdlPackage.ACTION_REFERENCE: return createActionReference(); + case tdlPackage.TEST_DESCRIPTION_REFERENCE: return createTestDescriptionReference(); + case tdlPackage.COMPONENT_INSTANCE_BINDING: return createComponentInstanceBinding(); + case tdlPackage.INTERACTION: return createInteraction(); + case tdlPackage.MESSAGE: return createMessage(); + case tdlPackage.PREDEFINED_FUNCTION: return createPredefinedFunction(); + case tdlPackage.MEMBER_REFERENCE: return createMemberReference(); + case tdlPackage.PREDEFINED_FUNCTION_CALL: return createPredefinedFunctionCall(); + case tdlPackage.LOCAL_EXPRESSION: return createLocalExpression(); + case tdlPackage.VALUE_ASSIGNMENT: return createValueAssignment(); + case tdlPackage.PROCEDURE_CALL: return createProcedureCall(); + case tdlPackage.PROCEDURE_SIGNATURE: return createProcedureSignature(); + case tdlPackage.PROCEDURE_PARAMETER: return createProcedureParameter(); + case tdlPackage.COLLECTION_DATA_TYPE: return createCollectionDataType(); + case tdlPackage.COLLECTION_DATA_INSTANCE: return createCollectionDataInstance(); + case tdlPackage.EXTENSION: return createExtension(); + case tdlPackage.LITERAL_VALUE_USE: return createLiteralValueUse(); + case tdlPackage.CONSTRAINT_TYPE: return createConstraintType(); + case tdlPackage.CONSTRAINT: return createConstraint(); + case tdlPackage.ENUM_DATA_TYPE: return createEnumDataType(); + case tdlPackage.DATA_ELEMENT_USE: return createDataElementUse(); + default: + throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); + } + } + + /** + * + * + * @generated + */ + @Override + public Object createFromString(EDataType eDataType, String initialValue) + { + switch (eDataType.getClassifierID()) + { + case tdlPackage.UNASSIGNED_MEMBER_TREATMENT: + return createUnassignedMemberTreatmentFromString(eDataType, initialValue); + case tdlPackage.COMPONENT_INSTANCE_ROLE: + return createComponentInstanceRoleFromString(eDataType, initialValue); + case tdlPackage.GATE_TYPE_KIND: + return createGateTypeKindFromString(eDataType, initialValue); + case tdlPackage.TIME_LABEL_USE_KIND: + return createTimeLabelUseKindFromString(eDataType, initialValue); + case tdlPackage.PARAMETER_KIND: + return createParameterKindFromString(eDataType, initialValue); + default: + throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier"); + } + } + + /** + * + * + * @generated + */ + @Override + public String convertToString(EDataType eDataType, Object instanceValue) + { + switch (eDataType.getClassifierID()) + { + case tdlPackage.UNASSIGNED_MEMBER_TREATMENT: + return convertUnassignedMemberTreatmentToString(eDataType, instanceValue); + case tdlPackage.COMPONENT_INSTANCE_ROLE: + return convertComponentInstanceRoleToString(eDataType, instanceValue); + case tdlPackage.GATE_TYPE_KIND: + return convertGateTypeKindToString(eDataType, instanceValue); + case tdlPackage.TIME_LABEL_USE_KIND: + return convertTimeLabelUseKindToString(eDataType, instanceValue); + case tdlPackage.PARAMETER_KIND: + return convertParameterKindToString(eDataType, instanceValue); + default: + throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier"); + } + } + + /** + * + * + * @generated + */ + @Override + public Comment createComment() + { + CommentImpl comment = new CommentImpl(); + return comment; + } + + /** + * + * + * @generated + */ + @Override + public Annotation createAnnotation() + { + AnnotationImpl annotation = new AnnotationImpl(); + return annotation; + } + + /** + * + * + * @generated + */ + @Override + public AnnotationType createAnnotationType() + { + AnnotationTypeImpl annotationType = new AnnotationTypeImpl(); + return annotationType; + } + + /** + * + * + * @generated + */ + @Override + public org.etsi.mts.tdl.Package createPackage() + { + PackageImpl package_ = new PackageImpl(); + return package_; + } + + /** + * + * + * @generated + */ + @Override + public ElementImport createElementImport() + { + ElementImportImpl elementImport = new ElementImportImpl(); + return elementImport; + } + + /** + * + * + * @generated + */ + @Override + public TestObjective createTestObjective() + { + TestObjectiveImpl testObjective = new TestObjectiveImpl(); + return testObjective; + } + + /** + * + * + * @generated + */ + @Override + public DataResourceMapping createDataResourceMapping() + { + DataResourceMappingImpl dataResourceMapping = new DataResourceMappingImpl(); + return dataResourceMapping; + } + + /** + * + * + * @generated + */ + @Override + public DataElementMapping createDataElementMapping() + { + DataElementMappingImpl dataElementMapping = new DataElementMappingImpl(); + return dataElementMapping; + } + + /** + * + * + * @generated + */ + @Override + public ParameterMapping createParameterMapping() + { + ParameterMappingImpl parameterMapping = new ParameterMappingImpl(); + return parameterMapping; + } + + /** + * + * + * @generated + */ + @Override + public SimpleDataType createSimpleDataType() + { + SimpleDataTypeImpl simpleDataType = new SimpleDataTypeImpl(); + return simpleDataType; + } + + /** + * + * + * @generated + */ + @Override + public SimpleDataInstance createSimpleDataInstance() + { + SimpleDataInstanceImpl simpleDataInstance = new SimpleDataInstanceImpl(); + return simpleDataInstance; + } + + /** + * + * + * @generated + */ + @Override + public StructuredDataType createStructuredDataType() + { + StructuredDataTypeImpl structuredDataType = new StructuredDataTypeImpl(); + return structuredDataType; + } + + /** + * + * + * @generated + */ + @Override + public Member createMember() + { + MemberImpl member = new MemberImpl(); + return member; + } + + /** + * + * + * @generated + */ + @Override + public StructuredDataInstance createStructuredDataInstance() + { + StructuredDataInstanceImpl structuredDataInstance = new StructuredDataInstanceImpl(); + return structuredDataInstance; + } + + /** + * + * + * @generated + */ + @Override + public MemberAssignment createMemberAssignment() + { + MemberAssignmentImpl memberAssignment = new MemberAssignmentImpl(); + return memberAssignment; + } + + /** + * + * + * @generated + */ + @Override + public ParameterBinding createParameterBinding() + { + ParameterBindingImpl parameterBinding = new ParameterBindingImpl(); + return parameterBinding; + } + + /** + * + * + * @generated + */ + @Override + public Action createAction() + { + ActionImpl action = new ActionImpl(); + return action; + } + + /** + * + * + * @generated + */ + @Override + public FormalParameter createFormalParameter() + { + FormalParameterImpl formalParameter = new FormalParameterImpl(); + return formalParameter; + } + + /** + * + * + * @generated + */ + @Override + public Function createFunction() + { + FunctionImpl function = new FunctionImpl(); + return function; + } + + /** + * + * + * @generated + */ + @Override + public FormalParameterUse createFormalParameterUse() + { + FormalParameterUseImpl formalParameterUse = new FormalParameterUseImpl(); + return formalParameterUse; + } + + /** + * + * + * @generated + */ + @Override + public Variable createVariable() + { + VariableImpl variable = new VariableImpl(); + return variable; + } + + /** + * + * + * @generated + */ + @Override + public FunctionCall createFunctionCall() + { + FunctionCallImpl functionCall = new FunctionCallImpl(); + return functionCall; + } + + /** + * + * + * @generated + */ + @Override + public VariableUse createVariableUse() + { + VariableUseImpl variableUse = new VariableUseImpl(); + return variableUse; + } + + /** + * + * + * @generated + */ + @Override + public ComponentInstance createComponentInstance() + { + ComponentInstanceImpl componentInstance = new ComponentInstanceImpl(); + return componentInstance; + } + + /** + * + * + * @generated + */ + @Override + public ComponentType createComponentType() + { + ComponentTypeImpl componentType = new ComponentTypeImpl(); + return componentType; + } + + /** + * + * + * @generated + */ + @Override + public GateInstance createGateInstance() + { + GateInstanceImpl gateInstance = new GateInstanceImpl(); + return gateInstance; + } + + /** + * + * + * @generated + */ + @Override + public GateType createGateType() + { + GateTypeImpl gateType = new GateTypeImpl(); + return gateType; + } + + /** + * + * + * @generated + */ + @Override + public Timer createTimer() + { + TimerImpl timer = new TimerImpl(); + return timer; + } + + /** + * + * + * @generated + */ + @Override + public OmitValue createOmitValue() + { + OmitValueImpl omitValue = new OmitValueImpl(); + return omitValue; + } + + /** + * + * + * @generated + */ + @Override + public AnyValue createAnyValue() + { + AnyValueImpl anyValue = new AnyValueImpl(); + return anyValue; + } + + /** + * + * + * @generated + */ + @Override + public AnyValueOrOmit createAnyValueOrOmit() + { + AnyValueOrOmitImpl anyValueOrOmit = new AnyValueOrOmitImpl(); + return anyValueOrOmit; + } + + /** + * + * + * @generated + */ + @Override + public DataInstanceUse createDataInstanceUse() + { + DataInstanceUseImpl dataInstanceUse = new DataInstanceUseImpl(); + return dataInstanceUse; + } + + /** + * + * + * @generated + */ + @Override + public Time createTime() + { + TimeImpl time = new TimeImpl(); + return time; + } + + /** + * + * + * @generated + */ + @Override + public TimeLabel createTimeLabel() + { + TimeLabelImpl timeLabel = new TimeLabelImpl(); + return timeLabel; + } + + /** + * + * + * @generated + */ + @Override + public TimeConstraint createTimeConstraint() + { + TimeConstraintImpl timeConstraint = new TimeConstraintImpl(); + return timeConstraint; + } + + /** + * + * + * @generated + */ + @Override + public TimerStart createTimerStart() + { + TimerStartImpl timerStart = new TimerStartImpl(); + return timerStart; + } + + /** + * + * + * @generated + */ + @Override + public TimerStop createTimerStop() + { + TimerStopImpl timerStop = new TimerStopImpl(); + return timerStop; + } + + /** + * + * + * @generated + */ + @Override + public TimeOut createTimeOut() + { + TimeOutImpl timeOut = new TimeOutImpl(); + return timeOut; + } + + /** + * + * + * @generated + */ + @Override + public Wait createWait() + { + WaitImpl wait = new WaitImpl(); + return wait; + } + + /** + * + * + * @generated + */ + @Override + public Quiescence createQuiescence() + { + QuiescenceImpl quiescence = new QuiescenceImpl(); + return quiescence; + } + + /** + * + * + * @generated + */ + @Override + public GateReference createGateReference() + { + GateReferenceImpl gateReference = new GateReferenceImpl(); + return gateReference; + } + + /** + * + * + * @generated + */ + @Override + public TimeLabelUse createTimeLabelUse() + { + TimeLabelUseImpl timeLabelUse = new TimeLabelUseImpl(); + return timeLabelUse; + } + + /** + * + * + * @generated + */ + @Override + public TestConfiguration createTestConfiguration() + { + TestConfigurationImpl testConfiguration = new TestConfigurationImpl(); + return testConfiguration; + } + + /** + * + * + * @generated + */ + @Override + public Connection createConnection() + { + ConnectionImpl connection = new ConnectionImpl(); + return connection; + } + + /** + * + * + * @generated + */ + @Override + public TestDescription createTestDescription() + { + TestDescriptionImpl testDescription = new TestDescriptionImpl(); + return testDescription; + } + + /** + * + * + * @generated + */ + @Override + public BehaviourDescription createBehaviourDescription() + { + BehaviourDescriptionImpl behaviourDescription = new BehaviourDescriptionImpl(); + return behaviourDescription; + } + + /** + * + * + * @generated + */ + @Override + public Block createBlock() + { + BlockImpl block = new BlockImpl(); + return block; + } + + /** + * + * + * @generated + */ + @Override + public PeriodicBehaviour createPeriodicBehaviour() + { + PeriodicBehaviourImpl periodicBehaviour = new PeriodicBehaviourImpl(); + return periodicBehaviour; + } + + /** + * + * + * @generated + */ + @Override + public AlternativeBehaviour createAlternativeBehaviour() + { + AlternativeBehaviourImpl alternativeBehaviour = new AlternativeBehaviourImpl(); + return alternativeBehaviour; + } + + /** + * + * + * @generated + */ + @Override + public ParallelBehaviour createParallelBehaviour() + { + ParallelBehaviourImpl parallelBehaviour = new ParallelBehaviourImpl(); + return parallelBehaviour; + } + + /** + * + * + * @generated + */ + @Override + public BoundedLoopBehaviour createBoundedLoopBehaviour() + { + BoundedLoopBehaviourImpl boundedLoopBehaviour = new BoundedLoopBehaviourImpl(); + return boundedLoopBehaviour; + } + + /** + * + * + * @generated + */ + @Override + public OptionalBehaviour createOptionalBehaviour() + { + OptionalBehaviourImpl optionalBehaviour = new OptionalBehaviourImpl(); + return optionalBehaviour; + } + + /** + * + * + * @generated + */ + @Override + public UnboundedLoopBehaviour createUnboundedLoopBehaviour() + { + UnboundedLoopBehaviourImpl unboundedLoopBehaviour = new UnboundedLoopBehaviourImpl(); + return unboundedLoopBehaviour; + } + + /** + * + * + * @generated + */ + @Override + public ConditionalBehaviour createConditionalBehaviour() + { + ConditionalBehaviourImpl conditionalBehaviour = new ConditionalBehaviourImpl(); + return conditionalBehaviour; + } + + /** + * + * + * @generated + */ + @Override + public CompoundBehaviour createCompoundBehaviour() + { + CompoundBehaviourImpl compoundBehaviour = new CompoundBehaviourImpl(); + return compoundBehaviour; + } + + /** + * + * + * @generated + */ + @Override + public DefaultBehaviour createDefaultBehaviour() + { + DefaultBehaviourImpl defaultBehaviour = new DefaultBehaviourImpl(); + return defaultBehaviour; + } + + /** + * + * + * @generated + */ + @Override + public InterruptBehaviour createInterruptBehaviour() + { + InterruptBehaviourImpl interruptBehaviour = new InterruptBehaviourImpl(); + return interruptBehaviour; + } + + /** + * + * + * @generated + */ + @Override + public Target createTarget() + { + TargetImpl target = new TargetImpl(); + return target; + } + + /** + * + * + * @generated + */ + @Override + public VerdictAssignment createVerdictAssignment() + { + VerdictAssignmentImpl verdictAssignment = new VerdictAssignmentImpl(); + return verdictAssignment; + } + + /** + * + * + * @generated + */ + @Override + public Assertion createAssertion() + { + AssertionImpl assertion = new AssertionImpl(); + return assertion; + } + + /** + * + * + * @generated + */ + @Override + public Stop createStop() + { + StopImpl stop = new StopImpl(); + return stop; + } + + /** + * + * + * @generated + */ + @Override + public Break createBreak() + { + BreakImpl break_ = new BreakImpl(); + return break_; + } + + /** + * + * + * @generated + */ + @Override + public Assignment createAssignment() + { + AssignmentImpl assignment = new AssignmentImpl(); + return assignment; + } + + /** + * + * + * @generated + */ + @Override + public InlineAction createInlineAction() + { + InlineActionImpl inlineAction = new InlineActionImpl(); + return inlineAction; + } + + /** + * + * + * @generated + */ + @Override + public ActionReference createActionReference() + { + ActionReferenceImpl actionReference = new ActionReferenceImpl(); + return actionReference; + } + + /** + * + * + * @generated + */ + @Override + public TestDescriptionReference createTestDescriptionReference() + { + TestDescriptionReferenceImpl testDescriptionReference = new TestDescriptionReferenceImpl(); + return testDescriptionReference; + } + + /** + * + * + * @generated + */ + @Override + public ComponentInstanceBinding createComponentInstanceBinding() + { + ComponentInstanceBindingImpl componentInstanceBinding = new ComponentInstanceBindingImpl(); + return componentInstanceBinding; + } + + /** + * + * + * @generated + */ + @Override + public Interaction createInteraction() + { + InteractionImpl interaction = new InteractionImpl(); + return interaction; + } + + /** + * + * + * @generated + */ + @Override + public Message createMessage() + { + MessageImpl message = new MessageImpl(); + return message; + } + + /** + * + * + * @generated + */ + @Override + public PredefinedFunction createPredefinedFunction() + { + PredefinedFunctionImpl predefinedFunction = new PredefinedFunctionImpl(); + return predefinedFunction; + } + + /** + * + * + * @generated + */ + @Override + public MemberReference createMemberReference() + { + MemberReferenceImpl memberReference = new MemberReferenceImpl(); + return memberReference; + } + + /** + * + * + * @generated + */ + @Override + public PredefinedFunctionCall createPredefinedFunctionCall() + { + PredefinedFunctionCallImpl predefinedFunctionCall = new PredefinedFunctionCallImpl(); + return predefinedFunctionCall; + } + + /** + * + * + * @generated + */ + @Override + public LocalExpression createLocalExpression() + { + LocalExpressionImpl localExpression = new LocalExpressionImpl(); + return localExpression; + } + + /** + * + * + * @generated + */ + @Override + public ValueAssignment createValueAssignment() + { + ValueAssignmentImpl valueAssignment = new ValueAssignmentImpl(); + return valueAssignment; + } + + /** + * + * + * @generated + */ + @Override + public ProcedureCall createProcedureCall() + { + ProcedureCallImpl procedureCall = new ProcedureCallImpl(); + return procedureCall; + } + + /** + * + * + * @generated + */ + @Override + public ProcedureSignature createProcedureSignature() + { + ProcedureSignatureImpl procedureSignature = new ProcedureSignatureImpl(); + return procedureSignature; + } + + /** + * + * + * @generated + */ + @Override + public ProcedureParameter createProcedureParameter() + { + ProcedureParameterImpl procedureParameter = new ProcedureParameterImpl(); + return procedureParameter; + } + + /** + * + * + * @generated + */ + @Override + public CollectionDataType createCollectionDataType() + { + CollectionDataTypeImpl collectionDataType = new CollectionDataTypeImpl(); + return collectionDataType; + } + + /** + * + * + * @generated + */ + @Override + public CollectionDataInstance createCollectionDataInstance() + { + CollectionDataInstanceImpl collectionDataInstance = new CollectionDataInstanceImpl(); + return collectionDataInstance; + } + + /** + * + * + * @generated + */ + @Override + public Extension createExtension() + { + ExtensionImpl extension = new ExtensionImpl(); + return extension; + } + + /** + * + * + * @generated + */ + @Override + public LiteralValueUse createLiteralValueUse() + { + LiteralValueUseImpl literalValueUse = new LiteralValueUseImpl(); + return literalValueUse; + } + + /** + * + * + * @generated + */ + @Override + public ConstraintType createConstraintType() + { + ConstraintTypeImpl constraintType = new ConstraintTypeImpl(); + return constraintType; + } + + /** + * + * + * @generated + */ + @Override + public Constraint createConstraint() + { + ConstraintImpl constraint = new ConstraintImpl(); + return constraint; + } + + /** + * + * + * @generated + */ + @Override + public EnumDataType createEnumDataType() + { + EnumDataTypeImpl enumDataType = new EnumDataTypeImpl(); + return enumDataType; + } + + /** + * + * + * @generated + */ + @Override + public DataElementUse createDataElementUse() + { + DataElementUseImpl dataElementUse = new DataElementUseImpl(); + return dataElementUse; + } + + /** + * + * + * @generated + */ + public UnassignedMemberTreatment createUnassignedMemberTreatmentFromString(EDataType eDataType, String initialValue) + { + UnassignedMemberTreatment result = UnassignedMemberTreatment.get(initialValue); + if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); + return result; + } + + /** + * + * + * @generated + */ + public String convertUnassignedMemberTreatmentToString(EDataType eDataType, Object instanceValue) + { + return instanceValue == null ? null : instanceValue.toString(); + } + + /** + * + * + * @generated + */ + public ComponentInstanceRole createComponentInstanceRoleFromString(EDataType eDataType, String initialValue) + { + ComponentInstanceRole result = ComponentInstanceRole.get(initialValue); + if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); + return result; + } + + /** + * + * + * @generated + */ + public String convertComponentInstanceRoleToString(EDataType eDataType, Object instanceValue) + { + return instanceValue == null ? null : instanceValue.toString(); + } + + /** + * + * + * @generated + */ + public GateTypeKind createGateTypeKindFromString(EDataType eDataType, String initialValue) + { + GateTypeKind result = GateTypeKind.get(initialValue); + if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); + return result; + } + + /** + * + * + * @generated + */ + public String convertGateTypeKindToString(EDataType eDataType, Object instanceValue) + { + return instanceValue == null ? null : instanceValue.toString(); + } + + /** + * + * + * @generated + */ + public TimeLabelUseKind createTimeLabelUseKindFromString(EDataType eDataType, String initialValue) + { + TimeLabelUseKind result = TimeLabelUseKind.get(initialValue); + if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); + return result; + } + + /** + * + * + * @generated + */ + public String convertTimeLabelUseKindToString(EDataType eDataType, Object instanceValue) + { + return instanceValue == null ? null : instanceValue.toString(); + } + + /** + * + * + * @generated + */ + public ParameterKind createParameterKindFromString(EDataType eDataType, String initialValue) + { + ParameterKind result = ParameterKind.get(initialValue); + if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); + return result; + } + + /** + * + * + * @generated + */ + public String convertParameterKindToString(EDataType eDataType, Object instanceValue) + { + return instanceValue == null ? null : instanceValue.toString(); + } + + /** + * + * + * @generated + */ + @Override + public tdlPackage gettdlPackage() + { + return (tdlPackage)getEPackage(); + } + + /** + * + * + * @deprecated + * @generated + */ + @Deprecated + public static tdlPackage getPackage() + { + return tdlPackage.eINSTANCE; + } + +} //tdlFactoryImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/tdlPackageImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/tdlPackageImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..8db1b70afb4808fb4e92863428a1228642b14f4c --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/impl/tdlPackageImpl.java @@ -0,0 +1,5928 @@ +/** + */ +package org.etsi.mts.tdl.impl; + +import org.eclipse.emf.ecore.EAttribute; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EEnum; +import org.eclipse.emf.ecore.EOperation; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.EReference; + +import org.eclipse.emf.ecore.impl.EPackageImpl; + +import org.etsi.mts.tdl.Action; +import org.etsi.mts.tdl.ActionBehaviour; +import org.etsi.mts.tdl.ActionReference; +import org.etsi.mts.tdl.AlternativeBehaviour; +import org.etsi.mts.tdl.Annotation; +import org.etsi.mts.tdl.AnnotationType; +import org.etsi.mts.tdl.AnyValue; +import org.etsi.mts.tdl.AnyValueOrOmit; +import org.etsi.mts.tdl.Assertion; +import org.etsi.mts.tdl.Assignment; +import org.etsi.mts.tdl.AtomicBehaviour; +import org.etsi.mts.tdl.Behaviour; +import org.etsi.mts.tdl.BehaviourDescription; +import org.etsi.mts.tdl.Block; +import org.etsi.mts.tdl.BoundedLoopBehaviour; +import org.etsi.mts.tdl.Break; +import org.etsi.mts.tdl.CollectionDataInstance; +import org.etsi.mts.tdl.CollectionDataType; +import org.etsi.mts.tdl.CombinedBehaviour; +import org.etsi.mts.tdl.Comment; +import org.etsi.mts.tdl.ComponentInstance; +import org.etsi.mts.tdl.ComponentInstanceBinding; +import org.etsi.mts.tdl.ComponentInstanceRole; +import org.etsi.mts.tdl.ComponentType; +import org.etsi.mts.tdl.CompoundBehaviour; +import org.etsi.mts.tdl.ConditionalBehaviour; +import org.etsi.mts.tdl.Connection; +import org.etsi.mts.tdl.Constraint; +import org.etsi.mts.tdl.ConstraintType; +import org.etsi.mts.tdl.DataElementMapping; +import org.etsi.mts.tdl.DataElementUse; +import org.etsi.mts.tdl.DataInstance; +import org.etsi.mts.tdl.DataInstanceUse; +import org.etsi.mts.tdl.DataResourceMapping; +import org.etsi.mts.tdl.DataType; +import org.etsi.mts.tdl.DataUse; +import org.etsi.mts.tdl.DefaultBehaviour; +import org.etsi.mts.tdl.DynamicDataUse; +import org.etsi.mts.tdl.Element; +import org.etsi.mts.tdl.ElementImport; +import org.etsi.mts.tdl.EnumDataType; +import org.etsi.mts.tdl.ExceptionalBehaviour; +import org.etsi.mts.tdl.Extension; +import org.etsi.mts.tdl.FormalParameter; +import org.etsi.mts.tdl.FormalParameterUse; +import org.etsi.mts.tdl.Function; +import org.etsi.mts.tdl.FunctionCall; +import org.etsi.mts.tdl.GateInstance; +import org.etsi.mts.tdl.GateReference; +import org.etsi.mts.tdl.GateType; +import org.etsi.mts.tdl.GateTypeKind; +import org.etsi.mts.tdl.InlineAction; +import org.etsi.mts.tdl.Interaction; +import org.etsi.mts.tdl.InterruptBehaviour; +import org.etsi.mts.tdl.LiteralValueUse; +import org.etsi.mts.tdl.LocalExpression; +import org.etsi.mts.tdl.MappableDataElement; +import org.etsi.mts.tdl.Member; +import org.etsi.mts.tdl.MemberAssignment; +import org.etsi.mts.tdl.MemberReference; +import org.etsi.mts.tdl.Message; +import org.etsi.mts.tdl.MultipleCombinedBehaviour; +import org.etsi.mts.tdl.NamedElement; +import org.etsi.mts.tdl.OmitValue; +import org.etsi.mts.tdl.OptionalBehaviour; +import org.etsi.mts.tdl.PackageableElement; +import org.etsi.mts.tdl.ParallelBehaviour; +import org.etsi.mts.tdl.Parameter; +import org.etsi.mts.tdl.ParameterBinding; +import org.etsi.mts.tdl.ParameterKind; +import org.etsi.mts.tdl.ParameterMapping; +import org.etsi.mts.tdl.PeriodicBehaviour; +import org.etsi.mts.tdl.PredefinedFunction; +import org.etsi.mts.tdl.PredefinedFunctionCall; +import org.etsi.mts.tdl.ProcedureCall; +import org.etsi.mts.tdl.ProcedureParameter; +import org.etsi.mts.tdl.ProcedureSignature; +import org.etsi.mts.tdl.Quiescence; +import org.etsi.mts.tdl.SimpleDataInstance; +import org.etsi.mts.tdl.SimpleDataType; +import org.etsi.mts.tdl.SingleCombinedBehaviour; +import org.etsi.mts.tdl.SpecialValueUse; +import org.etsi.mts.tdl.StaticDataUse; +import org.etsi.mts.tdl.Stop; +import org.etsi.mts.tdl.StructuredDataInstance; +import org.etsi.mts.tdl.StructuredDataType; +import org.etsi.mts.tdl.Target; +import org.etsi.mts.tdl.TestConfiguration; +import org.etsi.mts.tdl.TestDescription; +import org.etsi.mts.tdl.TestDescriptionReference; +import org.etsi.mts.tdl.TestObjective; +import org.etsi.mts.tdl.Time; +import org.etsi.mts.tdl.TimeConstraint; +import org.etsi.mts.tdl.TimeLabel; +import org.etsi.mts.tdl.TimeLabelUse; +import org.etsi.mts.tdl.TimeLabelUseKind; +import org.etsi.mts.tdl.TimeOperation; +import org.etsi.mts.tdl.TimeOut; +import org.etsi.mts.tdl.Timer; +import org.etsi.mts.tdl.TimerOperation; +import org.etsi.mts.tdl.TimerStart; +import org.etsi.mts.tdl.TimerStop; +import org.etsi.mts.tdl.UnassignedMemberTreatment; +import org.etsi.mts.tdl.UnboundedLoopBehaviour; +import org.etsi.mts.tdl.ValueAssignment; +import org.etsi.mts.tdl.Variable; +import org.etsi.mts.tdl.VariableUse; +import org.etsi.mts.tdl.VerdictAssignment; +import org.etsi.mts.tdl.Wait; + +import org.etsi.mts.tdl.extendedconfigurations.ExtendedConfigurationsPackage; + +import org.etsi.mts.tdl.extendedconfigurations.impl.ExtendedConfigurationsPackageImpl; + +import org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage; + +import org.etsi.mts.tdl.structuredobjectives.impl.StructuredObjectivesPackageImpl; + +import org.etsi.mts.tdl.tdlFactory; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model Package. + * + * @generated + */ +public class tdlPackageImpl extends EPackageImpl implements tdlPackage +{ + /** + * + * + * @generated + */ + private EClass elementEClass = null; + + /** + * + * + * @generated + */ + private EClass commentEClass = null; + + /** + * + * + * @generated + */ + private EClass annotationEClass = null; + + /** + * + * + * @generated + */ + private EClass annotationTypeEClass = null; + + /** + * + * + * @generated + */ + private EClass packageableElementEClass = null; + + /** + * + * + * @generated + */ + private EClass namedElementEClass = null; + + /** + * + * + * @generated + */ + private EClass packageEClass = null; + + /** + * + * + * @generated + */ + private EClass elementImportEClass = null; + + /** + * + * + * @generated + */ + private EClass testObjectiveEClass = null; + + /** + * + * + * @generated + */ + private EClass dataInstanceEClass = null; + + /** + * + * + * @generated + */ + private EClass mappableDataElementEClass = null; + + /** + * + * + * @generated + */ + private EClass dataTypeEClass = null; + + /** + * + * + * @generated + */ + private EClass dataResourceMappingEClass = null; + + /** + * + * + * @generated + */ + private EClass dataElementMappingEClass = null; + + /** + * + * + * @generated + */ + private EClass parameterMappingEClass = null; + + /** + * + * + * @generated + */ + private EClass parameterEClass = null; + + /** + * + * + * @generated + */ + private EClass simpleDataTypeEClass = null; + + /** + * + * + * @generated + */ + private EClass simpleDataInstanceEClass = null; + + /** + * + * + * @generated + */ + private EClass structuredDataTypeEClass = null; + + /** + * + * + * @generated + */ + private EClass memberEClass = null; + + /** + * + * + * @generated + */ + private EClass structuredDataInstanceEClass = null; + + /** + * + * + * @generated + */ + private EClass memberAssignmentEClass = null; + + /** + * + * + * @generated + */ + private EClass staticDataUseEClass = null; + + /** + * + * + * @generated + */ + private EClass dataUseEClass = null; + + /** + * + * + * @generated + */ + private EClass parameterBindingEClass = null; + + /** + * + * + * @generated + */ + private EClass actionEClass = null; + + /** + * + * + * @generated + */ + private EClass formalParameterEClass = null; + + /** + * + * + * @generated + */ + private EClass functionEClass = null; + + /** + * + * + * @generated + */ + private EClass formalParameterUseEClass = null; + + /** + * + * + * @generated + */ + private EClass dynamicDataUseEClass = null; + + /** + * + * + * @generated + */ + private EClass variableEClass = null; + + /** + * + * + * @generated + */ + private EClass functionCallEClass = null; + + /** + * + * + * @generated + */ + private EClass variableUseEClass = null; + + /** + * + * + * @generated + */ + private EClass componentInstanceEClass = null; + + /** + * + * + * @generated + */ + private EClass componentTypeEClass = null; + + /** + * + * + * @generated + */ + private EClass gateInstanceEClass = null; + + /** + * + * + * @generated + */ + private EClass gateTypeEClass = null; + + /** + * + * + * @generated + */ + private EClass timerEClass = null; + + /** + * + * + * @generated + */ + private EClass omitValueEClass = null; + + /** + * + * + * @generated + */ + private EClass specialValueUseEClass = null; + + /** + * + * + * @generated + */ + private EClass anyValueEClass = null; + + /** + * + * + * @generated + */ + private EClass anyValueOrOmitEClass = null; + + /** + * + * + * @generated + */ + private EClass dataInstanceUseEClass = null; + + /** + * + * + * @generated + */ + private EClass timeEClass = null; + + /** + * + * + * @generated + */ + private EClass timeLabelEClass = null; + + /** + * + * + * @generated + */ + private EClass timerOperationEClass = null; + + /** + * + * + * @generated + */ + private EClass atomicBehaviourEClass = null; + + /** + * + * + * @generated + */ + private EClass behaviourEClass = null; + + /** + * + * + * @generated + */ + private EClass timeConstraintEClass = null; + + /** + * + * + * @generated + */ + private EClass timerStartEClass = null; + + /** + * + * + * @generated + */ + private EClass timerStopEClass = null; + + /** + * + * + * @generated + */ + private EClass timeOutEClass = null; + + /** + * + * + * @generated + */ + private EClass timeOperationEClass = null; + + /** + * + * + * @generated + */ + private EClass waitEClass = null; + + /** + * + * + * @generated + */ + private EClass quiescenceEClass = null; + + /** + * + * + * @generated + */ + private EClass gateReferenceEClass = null; + + /** + * + * + * @generated + */ + private EClass timeLabelUseEClass = null; + + /** + * + * + * @generated + */ + private EClass testConfigurationEClass = null; + + /** + * + * + * @generated + */ + private EClass connectionEClass = null; + + /** + * + * + * @generated + */ + private EClass testDescriptionEClass = null; + + /** + * + * + * @generated + */ + private EClass behaviourDescriptionEClass = null; + + /** + * + * + * @generated + */ + private EClass blockEClass = null; + + /** + * + * + * @generated + */ + private EClass combinedBehaviourEClass = null; + + /** + * + * + * @generated + */ + private EClass periodicBehaviourEClass = null; + + /** + * + * + * @generated + */ + private EClass exceptionalBehaviourEClass = null; + + /** + * + * + * @generated + */ + private EClass alternativeBehaviourEClass = null; + + /** + * + * + * @generated + */ + private EClass multipleCombinedBehaviourEClass = null; + + /** + * + * + * @generated + */ + private EClass parallelBehaviourEClass = null; + + /** + * + * + * @generated + */ + private EClass boundedLoopBehaviourEClass = null; + + /** + * + * + * @generated + */ + private EClass singleCombinedBehaviourEClass = null; + + /** + * + * + * @generated + */ + private EClass optionalBehaviourEClass = null; + + /** + * + * + * @generated + */ + private EClass unboundedLoopBehaviourEClass = null; + + /** + * + * + * @generated + */ + private EClass conditionalBehaviourEClass = null; + + /** + * + * + * @generated + */ + private EClass compoundBehaviourEClass = null; + + /** + * + * + * @generated + */ + private EClass defaultBehaviourEClass = null; + + /** + * + * + * @generated + */ + private EClass interruptBehaviourEClass = null; + + /** + * + * + * @generated + */ + private EClass targetEClass = null; + + /** + * + * + * @generated + */ + private EClass verdictAssignmentEClass = null; + + /** + * + * + * @generated + */ + private EClass assertionEClass = null; + + /** + * + * + * @generated + */ + private EClass stopEClass = null; + + /** + * + * + * @generated + */ + private EClass breakEClass = null; + + /** + * + * + * @generated + */ + private EClass assignmentEClass = null; + + /** + * + * + * @generated + */ + private EClass actionBehaviourEClass = null; + + /** + * + * + * @generated + */ + private EClass inlineActionEClass = null; + + /** + * + * + * @generated + */ + private EClass actionReferenceEClass = null; + + /** + * + * + * @generated + */ + private EClass testDescriptionReferenceEClass = null; + + /** + * + * + * @generated + */ + private EClass componentInstanceBindingEClass = null; + + /** + * + * + * @generated + */ + private EClass interactionEClass = null; + + /** + * + * + * @generated + */ + private EClass messageEClass = null; + + /** + * + * + * @generated + */ + private EClass predefinedFunctionEClass = null; + + /** + * + * + * @generated + */ + private EClass memberReferenceEClass = null; + + /** + * + * + * @generated + */ + private EClass predefinedFunctionCallEClass = null; + + /** + * + * + * @generated + */ + private EClass localExpressionEClass = null; + + /** + * + * + * @generated + */ + private EClass valueAssignmentEClass = null; + + /** + * + * + * @generated + */ + private EClass procedureCallEClass = null; + + /** + * + * + * @generated + */ + private EClass procedureSignatureEClass = null; + + /** + * + * + * @generated + */ + private EClass procedureParameterEClass = null; + + /** + * + * + * @generated + */ + private EClass collectionDataTypeEClass = null; + + /** + * + * + * @generated + */ + private EClass collectionDataInstanceEClass = null; + + /** + * + * + * @generated + */ + private EClass extensionEClass = null; + + /** + * + * + * @generated + */ + private EClass literalValueUseEClass = null; + + /** + * + * + * @generated + */ + private EClass constraintTypeEClass = null; + + /** + * + * + * @generated + */ + private EClass constraintEClass = null; + + /** + * + * + * @generated + */ + private EClass enumDataTypeEClass = null; + + /** + * + * + * @generated + */ + private EClass dataElementUseEClass = null; + + /** + * + * + * @generated + */ + private EEnum unassignedMemberTreatmentEEnum = null; + + /** + * + * + * @generated + */ + private EEnum componentInstanceRoleEEnum = null; + + /** + * + * + * @generated + */ + private EEnum gateTypeKindEEnum = null; + + /** + * + * + * @generated + */ + private EEnum timeLabelUseKindEEnum = null; + + /** + * + * + * @generated + */ + private EEnum parameterKindEEnum = null; + + /** + * Creates an instance of the model Package, registered with + * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package + * package URI value. + *

Note: the correct way to create the package is via the static + * factory method {@link #init init()}, which also performs + * initialization of the package, or returns the registered package, + * if one already exists. + * + * + * @see org.eclipse.emf.ecore.EPackage.Registry + * @see org.etsi.mts.tdl.tdlPackage#eNS_URI + * @see #init() + * @generated + */ + private tdlPackageImpl() + { + super(eNS_URI, tdlFactory.eINSTANCE); + } + /** + * + * + * @generated + */ + private static boolean isInited = false; + + /** + * Creates, registers, and initializes the Package for this model, and for any others upon which it depends. + * + *

This method is used to initialize {@link tdlPackage#eINSTANCE} when that field is accessed. + * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package. + * + * + * @see #eNS_URI + * @see #createPackageContents() + * @see #initializePackageContents() + * @generated + */ + public static tdlPackage init() + { + if (isInited) return (tdlPackage)EPackage.Registry.INSTANCE.getEPackage(tdlPackage.eNS_URI); + + // Obtain or create and register package + Object registeredtdlPackage = EPackage.Registry.INSTANCE.get(eNS_URI); + tdlPackageImpl thetdlPackage = registeredtdlPackage instanceof tdlPackageImpl ? (tdlPackageImpl)registeredtdlPackage : new tdlPackageImpl(); + + isInited = true; + + // Obtain or create and register interdependencies + Object registeredPackage = EPackage.Registry.INSTANCE.getEPackage(ExtendedConfigurationsPackage.eNS_URI); + ExtendedConfigurationsPackageImpl theExtendedConfigurationsPackage = (ExtendedConfigurationsPackageImpl)(registeredPackage instanceof ExtendedConfigurationsPackageImpl ? registeredPackage : ExtendedConfigurationsPackage.eINSTANCE); + registeredPackage = EPackage.Registry.INSTANCE.getEPackage(StructuredObjectivesPackage.eNS_URI); + StructuredObjectivesPackageImpl theStructuredObjectivesPackage = (StructuredObjectivesPackageImpl)(registeredPackage instanceof StructuredObjectivesPackageImpl ? registeredPackage : StructuredObjectivesPackage.eINSTANCE); + + // Create package meta-data objects + thetdlPackage.createPackageContents(); + theExtendedConfigurationsPackage.createPackageContents(); + theStructuredObjectivesPackage.createPackageContents(); + + // Initialize created meta-data + thetdlPackage.initializePackageContents(); + theExtendedConfigurationsPackage.initializePackageContents(); + theStructuredObjectivesPackage.initializePackageContents(); + + // Mark meta-data to indicate it can't be changed + thetdlPackage.freeze(); + + // Update the registry and return the package + EPackage.Registry.INSTANCE.put(tdlPackage.eNS_URI, thetdlPackage); + return thetdlPackage; + } + + /** + * + * + * @generated + */ + @Override + public EClass getElement() + { + return elementEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getElement_Comment() + { + return (EReference)elementEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getElement_Annotation() + { + return (EReference)elementEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getElement_Name() + { + return (EAttribute)elementEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getElement__Container() + { + return elementEClass.getEOperations().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getElement__GetParentTestDescription() + { + return elementEClass.getEOperations().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EClass getComment() + { + return commentEClass; + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getComment_Body() + { + return (EAttribute)commentEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getComment_CommentedElement() + { + return (EReference)commentEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EClass getAnnotation() + { + return annotationEClass; + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getAnnotation_Value() + { + return (EAttribute)annotationEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getAnnotation_Key() + { + return (EReference)annotationEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EReference getAnnotation_AnnotatedElement() + { + return (EReference)annotationEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + @Override + public EClass getAnnotationType() + { + return annotationTypeEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getAnnotationType_Extension() + { + return (EReference)annotationTypeEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getPackageableElement() + { + return packageableElementEClass; + } + + /** + * + * + * @generated + */ + @Override + public EOperation getPackageableElement__ConformsTo__String() + { + return packageableElementEClass.getEOperations().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getPackageableElement__GetElementNamed__String() + { + return packageableElementEClass.getEOperations().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getPackageableElement__ConformsTo__PackageableElement() + { + return packageableElementEClass.getEOperations().get(2); + } + + /** + * + * + * @generated + */ + @Override + public EClass getNamedElement() + { + return namedElementEClass; + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getNamedElement_QualifiedName() + { + return (EAttribute)namedElementEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getPackage() + { + return packageEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getPackage_PackagedElement() + { + return (EReference)packageEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getPackage_Import() + { + return (EReference)packageEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EReference getPackage_NestedPackage() + { + return (EReference)packageEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + @Override + public EClass getElementImport() + { + return elementImportEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getElementImport_ImportedElement() + { + return (EReference)elementImportEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getElementImport_ImportedPackage() + { + return (EReference)elementImportEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EClass getTestObjective() + { + return testObjectiveEClass; + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getTestObjective_ObjectiveURI() + { + return (EAttribute)testObjectiveEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getTestObjective_Description() + { + return (EAttribute)testObjectiveEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EClass getDataInstance() + { + return dataInstanceEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getDataInstance_DataType() + { + return (EReference)dataInstanceEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getMappableDataElement() + { + return mappableDataElementEClass; + } + + /** + * + * + * @generated + */ + @Override + public EClass getDataType() + { + return dataTypeEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getDataType_Constraint() + { + return (EReference)dataTypeEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getDataType__AllConstraints() + { + return dataTypeEClass.getEOperations().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getDataResourceMapping() + { + return dataResourceMappingEClass; + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getDataResourceMapping_ResourceURI() + { + return (EAttribute)dataResourceMappingEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getDataElementMapping() + { + return dataElementMappingEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getDataElementMapping_MappableDataElement() + { + return (EReference)dataElementMappingEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getDataElementMapping_ElementURI() + { + return (EAttribute)dataElementMappingEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EReference getDataElementMapping_DataResourceMapping() + { + return (EReference)dataElementMappingEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + @Override + public EReference getDataElementMapping_ParameterMapping() + { + return (EReference)dataElementMappingEClass.getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + @Override + public EClass getParameterMapping() + { + return parameterMappingEClass; + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getParameterMapping_ParameterURI() + { + return (EAttribute)parameterMappingEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getParameterMapping_Parameter() + { + return (EReference)parameterMappingEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EClass getParameter() + { + return parameterEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getParameter_DataType() + { + return (EReference)parameterEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getSimpleDataType() + { + return simpleDataTypeEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getSimpleDataType_Extension() + { + return (EReference)simpleDataTypeEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getSimpleDataType__AllConstraints() + { + return simpleDataTypeEClass.getEOperations().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getSimpleDataInstance() + { + return simpleDataInstanceEClass; + } + + /** + * + * + * @generated + */ + @Override + public EClass getStructuredDataType() + { + return structuredDataTypeEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getStructuredDataType_Extension() + { + return (EReference)structuredDataTypeEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getStructuredDataType_Member() + { + return (EReference)structuredDataTypeEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getStructuredDataType__AllMembers() + { + return structuredDataTypeEClass.getEOperations().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getStructuredDataType__AllConstraints() + { + return structuredDataTypeEClass.getEOperations().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EClass getMember() + { + return memberEClass; + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getMember_IsOptional() + { + return (EAttribute)memberEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getMember_Constraint() + { + return (EReference)memberEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EClass getStructuredDataInstance() + { + return structuredDataInstanceEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getStructuredDataInstance_MemberAssignment() + { + return (EReference)structuredDataInstanceEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getStructuredDataInstance_UnassignedMember() + { + return (EAttribute)structuredDataInstanceEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EClass getMemberAssignment() + { + return memberAssignmentEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getMemberAssignment_Member() + { + return (EReference)memberAssignmentEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getMemberAssignment_MemberSpec() + { + return (EReference)memberAssignmentEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EClass getStaticDataUse() + { + return staticDataUseEClass; + } + + /** + * + * + * @generated + */ + @Override + public EClass getDataUse() + { + return dataUseEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getDataUse_Argument() + { + return (EReference)dataUseEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getDataUse_Reduction() + { + return (EReference)dataUseEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getDataUse__ResolveDataType() + { + return dataUseEClass.getEOperations().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getDataUse__IsEffectivelyStatic() + { + return dataUseEClass.getEOperations().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EClass getParameterBinding() + { + return parameterBindingEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getParameterBinding_DataUse() + { + return (EReference)parameterBindingEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getParameterBinding_Parameter() + { + return (EReference)parameterBindingEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EClass getAction() + { + return actionEClass; + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getAction_Body() + { + return (EAttribute)actionEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getAction_FormalParameter() + { + return (EReference)actionEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EClass getFormalParameter() + { + return formalParameterEClass; + } + + /** + * + * + * @generated + */ + @Override + public EClass getFunction() + { + return functionEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getFunction_ReturnType() + { + return (EReference)functionEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getFormalParameterUse() + { + return formalParameterUseEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getFormalParameterUse_Parameter() + { + return (EReference)formalParameterUseEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getFormalParameterUse__ResolveDataType() + { + return formalParameterUseEClass.getEOperations().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getDynamicDataUse() + { + return dynamicDataUseEClass; + } + + /** + * + * + * @generated + */ + @Override + public EClass getVariable() + { + return variableEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getVariable_DataType() + { + return (EReference)variableEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getFunctionCall() + { + return functionCallEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getFunctionCall_Function() + { + return (EReference)functionCallEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getFunctionCall__ResolveDataType() + { + return functionCallEClass.getEOperations().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getVariableUse() + { + return variableUseEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getVariableUse_ComponentInstance() + { + return (EReference)variableUseEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getVariableUse_Variable() + { + return (EReference)variableUseEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getVariableUse__ResolveDataType() + { + return variableUseEClass.getEOperations().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getComponentInstance() + { + return componentInstanceEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getComponentInstance_Type() + { + return (EReference)componentInstanceEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getComponentInstance_Role() + { + return (EAttribute)componentInstanceEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EClass getComponentType() + { + return componentTypeEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getComponentType_GateInstance() + { + return (EReference)componentTypeEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getComponentType_Timer() + { + return (EReference)componentTypeEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EReference getComponentType_Variable() + { + return (EReference)componentTypeEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + @Override + public EReference getComponentType_Extension() + { + return (EReference)componentTypeEClass.getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getComponentType__AllGates() + { + return componentTypeEClass.getEOperations().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getComponentType__AllTimers() + { + return componentTypeEClass.getEOperations().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getComponentType__AllVariables() + { + return componentTypeEClass.getEOperations().get(2); + } + + /** + * + * + * @generated + */ + @Override + public EClass getGateInstance() + { + return gateInstanceEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getGateInstance_Type() + { + return (EReference)gateInstanceEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getGateType() + { + return gateTypeEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getGateType_DataType() + { + return (EReference)gateTypeEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getGateType_Kind() + { + return (EAttribute)gateTypeEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EReference getGateType_Extension() + { + return (EReference)gateTypeEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getGateType__AllDataTypes() + { + return gateTypeEClass.getEOperations().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getTimer() + { + return timerEClass; + } + + /** + * + * + * @generated + */ + @Override + public EClass getOmitValue() + { + return omitValueEClass; + } + + /** + * + * + * @generated + */ + @Override + public EClass getSpecialValueUse() + { + return specialValueUseEClass; + } + + /** + * + * + * @generated + */ + @Override + public EOperation getSpecialValueUse__ResolveDataType() + { + return specialValueUseEClass.getEOperations().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getAnyValue() + { + return anyValueEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getAnyValue_DataType() + { + return (EReference)anyValueEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getAnyValue__ResolveDataType() + { + return anyValueEClass.getEOperations().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getAnyValueOrOmit() + { + return anyValueOrOmitEClass; + } + + /** + * + * + * @generated + */ + @Override + public EClass getDataInstanceUse() + { + return dataInstanceUseEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getDataInstanceUse_DataInstance() + { + return (EReference)dataInstanceUseEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getDataInstanceUse_UnassignedMember() + { + return (EAttribute)dataInstanceUseEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EReference getDataInstanceUse_DataType() + { + return (EReference)dataInstanceUseEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + @Override + public EReference getDataInstanceUse_Item() + { + return (EReference)dataInstanceUseEClass.getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getDataInstanceUse__ResolveDataType() + { + return dataInstanceUseEClass.getEOperations().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getTime() + { + return timeEClass; + } + + /** + * + * + * @generated + */ + @Override + public EClass getTimeLabel() + { + return timeLabelEClass; + } + + /** + * + * + * @generated + */ + @Override + public EClass getTimerOperation() + { + return timerOperationEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getTimerOperation_Timer() + { + return (EReference)timerOperationEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getTimerOperation_ComponentInstance() + { + return (EReference)timerOperationEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getTimerOperation__GetParticipatingComponents() + { + return timerOperationEClass.getEOperations().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getAtomicBehaviour() + { + return atomicBehaviourEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getAtomicBehaviour_TimeConstraint() + { + return (EReference)atomicBehaviourEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getAtomicBehaviour_TimeLabel() + { + return (EReference)atomicBehaviourEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getAtomicBehaviour__GetParticipatingComponents() + { + return atomicBehaviourEClass.getEOperations().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getBehaviour() + { + return behaviourEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getBehaviour_TestObjective() + { + return (EReference)behaviourEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getBehaviour__IsTesterInputEvent() + { + return behaviourEClass.getEOperations().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getBehaviour__GetParticipatingComponents() + { + return behaviourEClass.getEOperations().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EClass getTimeConstraint() + { + return timeConstraintEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getTimeConstraint_TimeConstraintExpression() + { + return (EReference)timeConstraintEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getTimerStart() + { + return timerStartEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getTimerStart_Period() + { + return (EReference)timerStartEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getTimerStop() + { + return timerStopEClass; + } + + /** + * + * + * @generated + */ + @Override + public EClass getTimeOut() + { + return timeOutEClass; + } + + /** + * + * + * @generated + */ + @Override + public EClass getTimeOperation() + { + return timeOperationEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getTimeOperation_ComponentInstance() + { + return (EReference)timeOperationEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getTimeOperation_Period() + { + return (EReference)timeOperationEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getTimeOperation__GetParticipatingComponents() + { + return timeOperationEClass.getEOperations().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getWait() + { + return waitEClass; + } + + /** + * + * + * @generated + */ + @Override + public EClass getQuiescence() + { + return quiescenceEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getQuiescence_GateReference() + { + return (EReference)quiescenceEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getQuiescence__GetParticipatingComponents() + { + return quiescenceEClass.getEOperations().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getGateReference() + { + return gateReferenceEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getGateReference_Component() + { + return (EReference)gateReferenceEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getGateReference_Gate() + { + return (EReference)gateReferenceEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EClass getTimeLabelUse() + { + return timeLabelUseEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getTimeLabelUse_TimeLabel() + { + return (EReference)timeLabelUseEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getTimeLabelUse_Kind() + { + return (EAttribute)timeLabelUseEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getTimeLabelUse__ResolveDataType() + { + return timeLabelUseEClass.getEOperations().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getTestConfiguration() + { + return testConfigurationEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getTestConfiguration_ComponentInstance() + { + return (EReference)testConfigurationEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getTestConfiguration_Connection() + { + return (EReference)testConfigurationEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getTestConfiguration__CompatibleWith__TestConfiguration_EList() + { + return testConfigurationEClass.getEOperations().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getConnection() + { + return connectionEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getConnection_EndPoint() + { + return (EReference)connectionEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getTestDescription() + { + return testDescriptionEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getTestDescription_TestConfiguration() + { + return (EReference)testDescriptionEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getTestDescription_FormalParameter() + { + return (EReference)testDescriptionEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EReference getTestDescription_BehaviourDescription() + { + return (EReference)testDescriptionEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + @Override + public EReference getTestDescription_TestObjective() + { + return (EReference)testDescriptionEClass.getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getTestDescription_IsLocallyOrdered() + { + return (EAttribute)testDescriptionEClass.getEStructuralFeatures().get(4); + } + + /** + * + * + * @generated + */ + @Override + public EClass getBehaviourDescription() + { + return behaviourDescriptionEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getBehaviourDescription_Behaviour() + { + return (EReference)behaviourDescriptionEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getBlock() + { + return blockEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getBlock_Behaviour() + { + return (EReference)blockEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getBlock_Guard() + { + return (EReference)blockEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getBlock__GetParticipatingComponents() + { + return blockEClass.getEOperations().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getBlock__GetParticipatingComponentsExcluding__Behaviour() + { + return blockEClass.getEOperations().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EClass getCombinedBehaviour() + { + return combinedBehaviourEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getCombinedBehaviour_Periodic() + { + return (EReference)combinedBehaviourEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getCombinedBehaviour_Exceptional() + { + return (EReference)combinedBehaviourEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EClass getPeriodicBehaviour() + { + return periodicBehaviourEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getPeriodicBehaviour_Block() + { + return (EReference)periodicBehaviourEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getPeriodicBehaviour_Period() + { + return (EReference)periodicBehaviourEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getPeriodicBehaviour__GetParticipatingComponents() + { + return periodicBehaviourEClass.getEOperations().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getExceptionalBehaviour() + { + return exceptionalBehaviourEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getExceptionalBehaviour_Block() + { + return (EReference)exceptionalBehaviourEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getExceptionalBehaviour_GuardedComponent() + { + return (EReference)exceptionalBehaviourEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getExceptionalBehaviour__GetParticipatingComponents() + { + return exceptionalBehaviourEClass.getEOperations().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getAlternativeBehaviour() + { + return alternativeBehaviourEClass; + } + + /** + * + * + * @generated + */ + @Override + public EClass getMultipleCombinedBehaviour() + { + return multipleCombinedBehaviourEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getMultipleCombinedBehaviour_Block() + { + return (EReference)multipleCombinedBehaviourEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getMultipleCombinedBehaviour__GetParticipatingComponents() + { + return multipleCombinedBehaviourEClass.getEOperations().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getParallelBehaviour() + { + return parallelBehaviourEClass; + } + + /** + * + * + * @generated + */ + @Override + public EClass getBoundedLoopBehaviour() + { + return boundedLoopBehaviourEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getBoundedLoopBehaviour_NumIteration() + { + return (EReference)boundedLoopBehaviourEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getSingleCombinedBehaviour() + { + return singleCombinedBehaviourEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getSingleCombinedBehaviour_Block() + { + return (EReference)singleCombinedBehaviourEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getSingleCombinedBehaviour__GetParticipatingComponents() + { + return singleCombinedBehaviourEClass.getEOperations().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getOptionalBehaviour() + { + return optionalBehaviourEClass; + } + + /** + * + * + * @generated + */ + @Override + public EClass getUnboundedLoopBehaviour() + { + return unboundedLoopBehaviourEClass; + } + + /** + * + * + * @generated + */ + @Override + public EClass getConditionalBehaviour() + { + return conditionalBehaviourEClass; + } + + /** + * + * + * @generated + */ + @Override + public EClass getCompoundBehaviour() + { + return compoundBehaviourEClass; + } + + /** + * + * + * @generated + */ + @Override + public EClass getDefaultBehaviour() + { + return defaultBehaviourEClass; + } + + /** + * + * + * @generated + */ + @Override + public EClass getInterruptBehaviour() + { + return interruptBehaviourEClass; + } + + /** + * + * + * @generated + */ + @Override + public EClass getTarget() + { + return targetEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getTarget_TargetGate() + { + return (EReference)targetEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getTarget_ValueAssignment() + { + return (EReference)targetEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EClass getVerdictAssignment() + { + return verdictAssignmentEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getVerdictAssignment_Verdict() + { + return (EReference)verdictAssignmentEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getAssertion() + { + return assertionEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getAssertion_Otherwise() + { + return (EReference)assertionEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getAssertion_Condition() + { + return (EReference)assertionEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EClass getStop() + { + return stopEClass; + } + + /** + * + * + * @generated + */ + @Override + public EClass getBreak() + { + return breakEClass; + } + + /** + * + * + * @generated + */ + @Override + public EClass getAssignment() + { + return assignmentEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getAssignment_Variable() + { + return (EReference)assignmentEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getAssignment_Expression() + { + return (EReference)assignmentEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getAssignment__GetParticipatingComponents() + { + return assignmentEClass.getEOperations().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getActionBehaviour() + { + return actionBehaviourEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getActionBehaviour_ComponentInstance() + { + return (EReference)actionBehaviourEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getActionBehaviour__GetParticipatingComponents() + { + return actionBehaviourEClass.getEOperations().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getInlineAction() + { + return inlineActionEClass; + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getInlineAction_Body() + { + return (EAttribute)inlineActionEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getActionReference() + { + return actionReferenceEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getActionReference_Action() + { + return (EReference)actionReferenceEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getActionReference_Argument() + { + return (EReference)actionReferenceEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EClass getTestDescriptionReference() + { + return testDescriptionReferenceEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getTestDescriptionReference_TestDescription() + { + return (EReference)testDescriptionReferenceEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getTestDescriptionReference_ComponentInstanceBinding() + { + return (EReference)testDescriptionReferenceEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EReference getTestDescriptionReference_Argument() + { + return (EReference)testDescriptionReferenceEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getTestDescriptionReference__GetParticipatingComponents() + { + return testDescriptionReferenceEClass.getEOperations().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getComponentInstanceBinding() + { + return componentInstanceBindingEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getComponentInstanceBinding_FormalComponent() + { + return (EReference)componentInstanceBindingEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getComponentInstanceBinding_ActualComponent() + { + return (EReference)componentInstanceBindingEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EClass getInteraction() + { + return interactionEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getInteraction_SourceGate() + { + return (EReference)interactionEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getInteraction_Target() + { + return (EReference)interactionEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getInteraction__GetParticipatingComponents() + { + return interactionEClass.getEOperations().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getMessage() + { + return messageEClass; + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getMessage_IsTrigger() + { + return (EAttribute)messageEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getMessage_Argument() + { + return (EReference)messageEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EClass getPredefinedFunction() + { + return predefinedFunctionEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getPredefinedFunction_ReturnType() + { + return (EReference)predefinedFunctionEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getMemberReference() + { + return memberReferenceEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getMemberReference_Member() + { + return (EReference)memberReferenceEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getMemberReference_CollectionIndex() + { + return (EReference)memberReferenceEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EClass getPredefinedFunctionCall() + { + return predefinedFunctionCallEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getPredefinedFunctionCall_Function() + { + return (EReference)predefinedFunctionCallEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getPredefinedFunctionCall_ActualParameters() + { + return (EReference)predefinedFunctionCallEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getPredefinedFunctionCall__ResolveDataType() + { + return predefinedFunctionCallEClass.getEOperations().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getLocalExpression() + { + return localExpressionEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getLocalExpression_Expression() + { + return (EReference)localExpressionEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getLocalExpression_ComponentInstance() + { + return (EReference)localExpressionEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EClass getValueAssignment() + { + return valueAssignmentEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getValueAssignment_Variable() + { + return (EReference)valueAssignmentEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getValueAssignment_Parameter() + { + return (EReference)valueAssignmentEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EClass getProcedureCall() + { + return procedureCallEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getProcedureCall_Signature() + { + return (EReference)procedureCallEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getProcedureCall_Argument() + { + return (EReference)procedureCallEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EReference getProcedureCall_ReplyTo() + { + return (EReference)procedureCallEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + @Override + public EClass getProcedureSignature() + { + return procedureSignatureEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getProcedureSignature_Parameter() + { + return (EReference)procedureSignatureEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getProcedureParameter() + { + return procedureParameterEClass; + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getProcedureParameter_Kind() + { + return (EAttribute)procedureParameterEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getCollectionDataType() + { + return collectionDataTypeEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getCollectionDataType_ItemType() + { + return (EReference)collectionDataTypeEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getCollectionDataInstance() + { + return collectionDataInstanceEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getCollectionDataInstance_Item() + { + return (EReference)collectionDataInstanceEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getCollectionDataInstance_UnassignedMember() + { + return (EAttribute)collectionDataInstanceEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EClass getExtension() + { + return extensionEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getExtension_Extending() + { + return (EReference)extensionEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getExtension__TransitiveExtending() + { + return extensionEClass.getEOperations().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getExtension__IsExtending__PackageableElement() + { + return extensionEClass.getEOperations().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EClass getLiteralValueUse() + { + return literalValueUseEClass; + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getLiteralValueUse_Value() + { + return (EAttribute)literalValueUseEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getLiteralValueUse_IntValue() + { + return (EAttribute)literalValueUseEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getLiteralValueUse_BoolValue() + { + return (EAttribute)literalValueUseEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + @Override + public EReference getLiteralValueUse_DataType() + { + return (EReference)literalValueUseEClass.getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getLiteralValueUse__ResolveDataType() + { + return literalValueUseEClass.getEOperations().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getConstraintType() + { + return constraintTypeEClass; + } + + /** + * + * + * @generated + */ + @Override + public EClass getConstraint() + { + return constraintEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getConstraint_Type() + { + return (EReference)constraintEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getConstraint_Quantifier() + { + return (EReference)constraintEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EClass getEnumDataType() + { + return enumDataTypeEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getEnumDataType_Value() + { + return (EReference)enumDataTypeEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getDataElementUse() + { + return dataElementUseEClass; + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getDataElementUse_UnassignedMember() + { + return (EAttribute)dataElementUseEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getDataElementUse_DataElement() + { + return (EReference)dataElementUseEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EReference getDataElementUse_Item() + { + return (EReference)dataElementUseEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getDataElementUse__ResolveDataType() + { + return dataElementUseEClass.getEOperations().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EEnum getUnassignedMemberTreatment() + { + return unassignedMemberTreatmentEEnum; + } + + /** + * + * + * @generated + */ + @Override + public EEnum getComponentInstanceRole() + { + return componentInstanceRoleEEnum; + } + + /** + * + * + * @generated + */ + @Override + public EEnum getGateTypeKind() + { + return gateTypeKindEEnum; + } + + /** + * + * + * @generated + */ + @Override + public EEnum getTimeLabelUseKind() + { + return timeLabelUseKindEEnum; + } + + /** + * + * + * @generated + */ + @Override + public EEnum getParameterKind() + { + return parameterKindEEnum; + } + + /** + * + * + * @generated + */ + @Override + public tdlFactory gettdlFactory() + { + return (tdlFactory)getEFactoryInstance(); + } + + /** + * + * + * @generated + */ + private boolean isCreated = false; + + /** + * Creates the meta-model objects for the package. This method is + * guarded to have no affect on any invocation but its first. + * + * + * @generated + */ + public void createPackageContents() + { + if (isCreated) return; + isCreated = true; + + // Create classes and their features + elementEClass = createEClass(ELEMENT); + createEReference(elementEClass, ELEMENT__COMMENT); + createEReference(elementEClass, ELEMENT__ANNOTATION); + createEAttribute(elementEClass, ELEMENT__NAME); + createEOperation(elementEClass, ELEMENT___CONTAINER); + createEOperation(elementEClass, ELEMENT___GET_PARENT_TEST_DESCRIPTION); + + commentEClass = createEClass(COMMENT); + createEAttribute(commentEClass, COMMENT__BODY); + createEReference(commentEClass, COMMENT__COMMENTED_ELEMENT); + + annotationEClass = createEClass(ANNOTATION); + createEAttribute(annotationEClass, ANNOTATION__VALUE); + createEReference(annotationEClass, ANNOTATION__KEY); + createEReference(annotationEClass, ANNOTATION__ANNOTATED_ELEMENT); + + annotationTypeEClass = createEClass(ANNOTATION_TYPE); + createEReference(annotationTypeEClass, ANNOTATION_TYPE__EXTENSION); + + packageableElementEClass = createEClass(PACKAGEABLE_ELEMENT); + createEOperation(packageableElementEClass, PACKAGEABLE_ELEMENT___CONFORMS_TO__STRING); + createEOperation(packageableElementEClass, PACKAGEABLE_ELEMENT___GET_ELEMENT_NAMED__STRING); + createEOperation(packageableElementEClass, PACKAGEABLE_ELEMENT___CONFORMS_TO__PACKAGEABLEELEMENT); + + namedElementEClass = createEClass(NAMED_ELEMENT); + createEAttribute(namedElementEClass, NAMED_ELEMENT__QUALIFIED_NAME); + + packageEClass = createEClass(PACKAGE); + createEReference(packageEClass, PACKAGE__PACKAGED_ELEMENT); + createEReference(packageEClass, PACKAGE__IMPORT); + createEReference(packageEClass, PACKAGE__NESTED_PACKAGE); + + elementImportEClass = createEClass(ELEMENT_IMPORT); + createEReference(elementImportEClass, ELEMENT_IMPORT__IMPORTED_ELEMENT); + createEReference(elementImportEClass, ELEMENT_IMPORT__IMPORTED_PACKAGE); + + testObjectiveEClass = createEClass(TEST_OBJECTIVE); + createEAttribute(testObjectiveEClass, TEST_OBJECTIVE__OBJECTIVE_URI); + createEAttribute(testObjectiveEClass, TEST_OBJECTIVE__DESCRIPTION); + + dataInstanceEClass = createEClass(DATA_INSTANCE); + createEReference(dataInstanceEClass, DATA_INSTANCE__DATA_TYPE); + + mappableDataElementEClass = createEClass(MAPPABLE_DATA_ELEMENT); + + dataTypeEClass = createEClass(DATA_TYPE); + createEReference(dataTypeEClass, DATA_TYPE__CONSTRAINT); + createEOperation(dataTypeEClass, DATA_TYPE___ALL_CONSTRAINTS); + + dataResourceMappingEClass = createEClass(DATA_RESOURCE_MAPPING); + createEAttribute(dataResourceMappingEClass, DATA_RESOURCE_MAPPING__RESOURCE_URI); + + dataElementMappingEClass = createEClass(DATA_ELEMENT_MAPPING); + createEReference(dataElementMappingEClass, DATA_ELEMENT_MAPPING__MAPPABLE_DATA_ELEMENT); + createEAttribute(dataElementMappingEClass, DATA_ELEMENT_MAPPING__ELEMENT_URI); + createEReference(dataElementMappingEClass, DATA_ELEMENT_MAPPING__DATA_RESOURCE_MAPPING); + createEReference(dataElementMappingEClass, DATA_ELEMENT_MAPPING__PARAMETER_MAPPING); + + parameterMappingEClass = createEClass(PARAMETER_MAPPING); + createEAttribute(parameterMappingEClass, PARAMETER_MAPPING__PARAMETER_URI); + createEReference(parameterMappingEClass, PARAMETER_MAPPING__PARAMETER); + + parameterEClass = createEClass(PARAMETER); + createEReference(parameterEClass, PARAMETER__DATA_TYPE); + + simpleDataTypeEClass = createEClass(SIMPLE_DATA_TYPE); + createEReference(simpleDataTypeEClass, SIMPLE_DATA_TYPE__EXTENSION); + createEOperation(simpleDataTypeEClass, SIMPLE_DATA_TYPE___ALL_CONSTRAINTS); + + simpleDataInstanceEClass = createEClass(SIMPLE_DATA_INSTANCE); + + structuredDataTypeEClass = createEClass(STRUCTURED_DATA_TYPE); + createEReference(structuredDataTypeEClass, STRUCTURED_DATA_TYPE__EXTENSION); + createEReference(structuredDataTypeEClass, STRUCTURED_DATA_TYPE__MEMBER); + createEOperation(structuredDataTypeEClass, STRUCTURED_DATA_TYPE___ALL_MEMBERS); + createEOperation(structuredDataTypeEClass, STRUCTURED_DATA_TYPE___ALL_CONSTRAINTS); + + memberEClass = createEClass(MEMBER); + createEAttribute(memberEClass, MEMBER__IS_OPTIONAL); + createEReference(memberEClass, MEMBER__CONSTRAINT); + + structuredDataInstanceEClass = createEClass(STRUCTURED_DATA_INSTANCE); + createEReference(structuredDataInstanceEClass, STRUCTURED_DATA_INSTANCE__MEMBER_ASSIGNMENT); + createEAttribute(structuredDataInstanceEClass, STRUCTURED_DATA_INSTANCE__UNASSIGNED_MEMBER); + + memberAssignmentEClass = createEClass(MEMBER_ASSIGNMENT); + createEReference(memberAssignmentEClass, MEMBER_ASSIGNMENT__MEMBER); + createEReference(memberAssignmentEClass, MEMBER_ASSIGNMENT__MEMBER_SPEC); + + staticDataUseEClass = createEClass(STATIC_DATA_USE); + + dataUseEClass = createEClass(DATA_USE); + createEReference(dataUseEClass, DATA_USE__ARGUMENT); + createEReference(dataUseEClass, DATA_USE__REDUCTION); + createEOperation(dataUseEClass, DATA_USE___RESOLVE_DATA_TYPE); + createEOperation(dataUseEClass, DATA_USE___IS_EFFECTIVELY_STATIC); + + parameterBindingEClass = createEClass(PARAMETER_BINDING); + createEReference(parameterBindingEClass, PARAMETER_BINDING__DATA_USE); + createEReference(parameterBindingEClass, PARAMETER_BINDING__PARAMETER); + + actionEClass = createEClass(ACTION); + createEAttribute(actionEClass, ACTION__BODY); + createEReference(actionEClass, ACTION__FORMAL_PARAMETER); + + formalParameterEClass = createEClass(FORMAL_PARAMETER); + + functionEClass = createEClass(FUNCTION); + createEReference(functionEClass, FUNCTION__RETURN_TYPE); + + formalParameterUseEClass = createEClass(FORMAL_PARAMETER_USE); + createEReference(formalParameterUseEClass, FORMAL_PARAMETER_USE__PARAMETER); + createEOperation(formalParameterUseEClass, FORMAL_PARAMETER_USE___RESOLVE_DATA_TYPE); + + dynamicDataUseEClass = createEClass(DYNAMIC_DATA_USE); + + variableEClass = createEClass(VARIABLE); + createEReference(variableEClass, VARIABLE__DATA_TYPE); + + functionCallEClass = createEClass(FUNCTION_CALL); + createEReference(functionCallEClass, FUNCTION_CALL__FUNCTION); + createEOperation(functionCallEClass, FUNCTION_CALL___RESOLVE_DATA_TYPE); + + variableUseEClass = createEClass(VARIABLE_USE); + createEReference(variableUseEClass, VARIABLE_USE__COMPONENT_INSTANCE); + createEReference(variableUseEClass, VARIABLE_USE__VARIABLE); + createEOperation(variableUseEClass, VARIABLE_USE___RESOLVE_DATA_TYPE); + + componentInstanceEClass = createEClass(COMPONENT_INSTANCE); + createEReference(componentInstanceEClass, COMPONENT_INSTANCE__TYPE); + createEAttribute(componentInstanceEClass, COMPONENT_INSTANCE__ROLE); + + componentTypeEClass = createEClass(COMPONENT_TYPE); + createEReference(componentTypeEClass, COMPONENT_TYPE__GATE_INSTANCE); + createEReference(componentTypeEClass, COMPONENT_TYPE__TIMER); + createEReference(componentTypeEClass, COMPONENT_TYPE__VARIABLE); + createEReference(componentTypeEClass, COMPONENT_TYPE__EXTENSION); + createEOperation(componentTypeEClass, COMPONENT_TYPE___ALL_GATES); + createEOperation(componentTypeEClass, COMPONENT_TYPE___ALL_TIMERS); + createEOperation(componentTypeEClass, COMPONENT_TYPE___ALL_VARIABLES); + + gateInstanceEClass = createEClass(GATE_INSTANCE); + createEReference(gateInstanceEClass, GATE_INSTANCE__TYPE); + + gateTypeEClass = createEClass(GATE_TYPE); + createEReference(gateTypeEClass, GATE_TYPE__DATA_TYPE); + createEAttribute(gateTypeEClass, GATE_TYPE__KIND); + createEReference(gateTypeEClass, GATE_TYPE__EXTENSION); + createEOperation(gateTypeEClass, GATE_TYPE___ALL_DATA_TYPES); + + timerEClass = createEClass(TIMER); + + omitValueEClass = createEClass(OMIT_VALUE); + + specialValueUseEClass = createEClass(SPECIAL_VALUE_USE); + createEOperation(specialValueUseEClass, SPECIAL_VALUE_USE___RESOLVE_DATA_TYPE); + + anyValueEClass = createEClass(ANY_VALUE); + createEReference(anyValueEClass, ANY_VALUE__DATA_TYPE); + createEOperation(anyValueEClass, ANY_VALUE___RESOLVE_DATA_TYPE); + + anyValueOrOmitEClass = createEClass(ANY_VALUE_OR_OMIT); + + dataInstanceUseEClass = createEClass(DATA_INSTANCE_USE); + createEReference(dataInstanceUseEClass, DATA_INSTANCE_USE__DATA_INSTANCE); + createEAttribute(dataInstanceUseEClass, DATA_INSTANCE_USE__UNASSIGNED_MEMBER); + createEReference(dataInstanceUseEClass, DATA_INSTANCE_USE__DATA_TYPE); + createEReference(dataInstanceUseEClass, DATA_INSTANCE_USE__ITEM); + createEOperation(dataInstanceUseEClass, DATA_INSTANCE_USE___RESOLVE_DATA_TYPE); + + timeEClass = createEClass(TIME); + + timeLabelEClass = createEClass(TIME_LABEL); + + timerOperationEClass = createEClass(TIMER_OPERATION); + createEReference(timerOperationEClass, TIMER_OPERATION__TIMER); + createEReference(timerOperationEClass, TIMER_OPERATION__COMPONENT_INSTANCE); + createEOperation(timerOperationEClass, TIMER_OPERATION___GET_PARTICIPATING_COMPONENTS); + + atomicBehaviourEClass = createEClass(ATOMIC_BEHAVIOUR); + createEReference(atomicBehaviourEClass, ATOMIC_BEHAVIOUR__TIME_CONSTRAINT); + createEReference(atomicBehaviourEClass, ATOMIC_BEHAVIOUR__TIME_LABEL); + createEOperation(atomicBehaviourEClass, ATOMIC_BEHAVIOUR___GET_PARTICIPATING_COMPONENTS); + + behaviourEClass = createEClass(BEHAVIOUR); + createEReference(behaviourEClass, BEHAVIOUR__TEST_OBJECTIVE); + createEOperation(behaviourEClass, BEHAVIOUR___IS_TESTER_INPUT_EVENT); + createEOperation(behaviourEClass, BEHAVIOUR___GET_PARTICIPATING_COMPONENTS); + + timeConstraintEClass = createEClass(TIME_CONSTRAINT); + createEReference(timeConstraintEClass, TIME_CONSTRAINT__TIME_CONSTRAINT_EXPRESSION); + + timerStartEClass = createEClass(TIMER_START); + createEReference(timerStartEClass, TIMER_START__PERIOD); + + timerStopEClass = createEClass(TIMER_STOP); + + timeOutEClass = createEClass(TIME_OUT); + + timeOperationEClass = createEClass(TIME_OPERATION); + createEReference(timeOperationEClass, TIME_OPERATION__COMPONENT_INSTANCE); + createEReference(timeOperationEClass, TIME_OPERATION__PERIOD); + createEOperation(timeOperationEClass, TIME_OPERATION___GET_PARTICIPATING_COMPONENTS); + + waitEClass = createEClass(WAIT); + + quiescenceEClass = createEClass(QUIESCENCE); + createEReference(quiescenceEClass, QUIESCENCE__GATE_REFERENCE); + createEOperation(quiescenceEClass, QUIESCENCE___GET_PARTICIPATING_COMPONENTS); + + gateReferenceEClass = createEClass(GATE_REFERENCE); + createEReference(gateReferenceEClass, GATE_REFERENCE__COMPONENT); + createEReference(gateReferenceEClass, GATE_REFERENCE__GATE); + + timeLabelUseEClass = createEClass(TIME_LABEL_USE); + createEReference(timeLabelUseEClass, TIME_LABEL_USE__TIME_LABEL); + createEAttribute(timeLabelUseEClass, TIME_LABEL_USE__KIND); + createEOperation(timeLabelUseEClass, TIME_LABEL_USE___RESOLVE_DATA_TYPE); + + testConfigurationEClass = createEClass(TEST_CONFIGURATION); + createEReference(testConfigurationEClass, TEST_CONFIGURATION__COMPONENT_INSTANCE); + createEReference(testConfigurationEClass, TEST_CONFIGURATION__CONNECTION); + createEOperation(testConfigurationEClass, TEST_CONFIGURATION___COMPATIBLE_WITH__TESTCONFIGURATION_ELIST); + + connectionEClass = createEClass(CONNECTION); + createEReference(connectionEClass, CONNECTION__END_POINT); + + testDescriptionEClass = createEClass(TEST_DESCRIPTION); + createEReference(testDescriptionEClass, TEST_DESCRIPTION__TEST_CONFIGURATION); + createEReference(testDescriptionEClass, TEST_DESCRIPTION__FORMAL_PARAMETER); + createEReference(testDescriptionEClass, TEST_DESCRIPTION__BEHAVIOUR_DESCRIPTION); + createEReference(testDescriptionEClass, TEST_DESCRIPTION__TEST_OBJECTIVE); + createEAttribute(testDescriptionEClass, TEST_DESCRIPTION__IS_LOCALLY_ORDERED); + + behaviourDescriptionEClass = createEClass(BEHAVIOUR_DESCRIPTION); + createEReference(behaviourDescriptionEClass, BEHAVIOUR_DESCRIPTION__BEHAVIOUR); + + blockEClass = createEClass(BLOCK); + createEReference(blockEClass, BLOCK__BEHAVIOUR); + createEReference(blockEClass, BLOCK__GUARD); + createEOperation(blockEClass, BLOCK___GET_PARTICIPATING_COMPONENTS); + createEOperation(blockEClass, BLOCK___GET_PARTICIPATING_COMPONENTS_EXCLUDING__BEHAVIOUR); + + combinedBehaviourEClass = createEClass(COMBINED_BEHAVIOUR); + createEReference(combinedBehaviourEClass, COMBINED_BEHAVIOUR__PERIODIC); + createEReference(combinedBehaviourEClass, COMBINED_BEHAVIOUR__EXCEPTIONAL); + + periodicBehaviourEClass = createEClass(PERIODIC_BEHAVIOUR); + createEReference(periodicBehaviourEClass, PERIODIC_BEHAVIOUR__BLOCK); + createEReference(periodicBehaviourEClass, PERIODIC_BEHAVIOUR__PERIOD); + createEOperation(periodicBehaviourEClass, PERIODIC_BEHAVIOUR___GET_PARTICIPATING_COMPONENTS); + + exceptionalBehaviourEClass = createEClass(EXCEPTIONAL_BEHAVIOUR); + createEReference(exceptionalBehaviourEClass, EXCEPTIONAL_BEHAVIOUR__BLOCK); + createEReference(exceptionalBehaviourEClass, EXCEPTIONAL_BEHAVIOUR__GUARDED_COMPONENT); + createEOperation(exceptionalBehaviourEClass, EXCEPTIONAL_BEHAVIOUR___GET_PARTICIPATING_COMPONENTS); + + alternativeBehaviourEClass = createEClass(ALTERNATIVE_BEHAVIOUR); + + multipleCombinedBehaviourEClass = createEClass(MULTIPLE_COMBINED_BEHAVIOUR); + createEReference(multipleCombinedBehaviourEClass, MULTIPLE_COMBINED_BEHAVIOUR__BLOCK); + createEOperation(multipleCombinedBehaviourEClass, MULTIPLE_COMBINED_BEHAVIOUR___GET_PARTICIPATING_COMPONENTS); + + parallelBehaviourEClass = createEClass(PARALLEL_BEHAVIOUR); + + boundedLoopBehaviourEClass = createEClass(BOUNDED_LOOP_BEHAVIOUR); + createEReference(boundedLoopBehaviourEClass, BOUNDED_LOOP_BEHAVIOUR__NUM_ITERATION); + + singleCombinedBehaviourEClass = createEClass(SINGLE_COMBINED_BEHAVIOUR); + createEReference(singleCombinedBehaviourEClass, SINGLE_COMBINED_BEHAVIOUR__BLOCK); + createEOperation(singleCombinedBehaviourEClass, SINGLE_COMBINED_BEHAVIOUR___GET_PARTICIPATING_COMPONENTS); + + optionalBehaviourEClass = createEClass(OPTIONAL_BEHAVIOUR); + + unboundedLoopBehaviourEClass = createEClass(UNBOUNDED_LOOP_BEHAVIOUR); + + conditionalBehaviourEClass = createEClass(CONDITIONAL_BEHAVIOUR); + + compoundBehaviourEClass = createEClass(COMPOUND_BEHAVIOUR); + + defaultBehaviourEClass = createEClass(DEFAULT_BEHAVIOUR); + + interruptBehaviourEClass = createEClass(INTERRUPT_BEHAVIOUR); + + targetEClass = createEClass(TARGET); + createEReference(targetEClass, TARGET__TARGET_GATE); + createEReference(targetEClass, TARGET__VALUE_ASSIGNMENT); + + verdictAssignmentEClass = createEClass(VERDICT_ASSIGNMENT); + createEReference(verdictAssignmentEClass, VERDICT_ASSIGNMENT__VERDICT); + + assertionEClass = createEClass(ASSERTION); + createEReference(assertionEClass, ASSERTION__OTHERWISE); + createEReference(assertionEClass, ASSERTION__CONDITION); + + stopEClass = createEClass(STOP); + + breakEClass = createEClass(BREAK); + + assignmentEClass = createEClass(ASSIGNMENT); + createEReference(assignmentEClass, ASSIGNMENT__VARIABLE); + createEReference(assignmentEClass, ASSIGNMENT__EXPRESSION); + createEOperation(assignmentEClass, ASSIGNMENT___GET_PARTICIPATING_COMPONENTS); + + actionBehaviourEClass = createEClass(ACTION_BEHAVIOUR); + createEReference(actionBehaviourEClass, ACTION_BEHAVIOUR__COMPONENT_INSTANCE); + createEOperation(actionBehaviourEClass, ACTION_BEHAVIOUR___GET_PARTICIPATING_COMPONENTS); + + inlineActionEClass = createEClass(INLINE_ACTION); + createEAttribute(inlineActionEClass, INLINE_ACTION__BODY); + + actionReferenceEClass = createEClass(ACTION_REFERENCE); + createEReference(actionReferenceEClass, ACTION_REFERENCE__ACTION); + createEReference(actionReferenceEClass, ACTION_REFERENCE__ARGUMENT); + + testDescriptionReferenceEClass = createEClass(TEST_DESCRIPTION_REFERENCE); + createEReference(testDescriptionReferenceEClass, TEST_DESCRIPTION_REFERENCE__TEST_DESCRIPTION); + createEReference(testDescriptionReferenceEClass, TEST_DESCRIPTION_REFERENCE__COMPONENT_INSTANCE_BINDING); + createEReference(testDescriptionReferenceEClass, TEST_DESCRIPTION_REFERENCE__ARGUMENT); + createEOperation(testDescriptionReferenceEClass, TEST_DESCRIPTION_REFERENCE___GET_PARTICIPATING_COMPONENTS); + + componentInstanceBindingEClass = createEClass(COMPONENT_INSTANCE_BINDING); + createEReference(componentInstanceBindingEClass, COMPONENT_INSTANCE_BINDING__FORMAL_COMPONENT); + createEReference(componentInstanceBindingEClass, COMPONENT_INSTANCE_BINDING__ACTUAL_COMPONENT); + + interactionEClass = createEClass(INTERACTION); + createEReference(interactionEClass, INTERACTION__SOURCE_GATE); + createEReference(interactionEClass, INTERACTION__TARGET); + createEOperation(interactionEClass, INTERACTION___GET_PARTICIPATING_COMPONENTS); + + messageEClass = createEClass(MESSAGE); + createEAttribute(messageEClass, MESSAGE__IS_TRIGGER); + createEReference(messageEClass, MESSAGE__ARGUMENT); + + predefinedFunctionEClass = createEClass(PREDEFINED_FUNCTION); + createEReference(predefinedFunctionEClass, PREDEFINED_FUNCTION__RETURN_TYPE); + + memberReferenceEClass = createEClass(MEMBER_REFERENCE); + createEReference(memberReferenceEClass, MEMBER_REFERENCE__MEMBER); + createEReference(memberReferenceEClass, MEMBER_REFERENCE__COLLECTION_INDEX); + + predefinedFunctionCallEClass = createEClass(PREDEFINED_FUNCTION_CALL); + createEReference(predefinedFunctionCallEClass, PREDEFINED_FUNCTION_CALL__FUNCTION); + createEReference(predefinedFunctionCallEClass, PREDEFINED_FUNCTION_CALL__ACTUAL_PARAMETERS); + createEOperation(predefinedFunctionCallEClass, PREDEFINED_FUNCTION_CALL___RESOLVE_DATA_TYPE); + + localExpressionEClass = createEClass(LOCAL_EXPRESSION); + createEReference(localExpressionEClass, LOCAL_EXPRESSION__EXPRESSION); + createEReference(localExpressionEClass, LOCAL_EXPRESSION__COMPONENT_INSTANCE); + + valueAssignmentEClass = createEClass(VALUE_ASSIGNMENT); + createEReference(valueAssignmentEClass, VALUE_ASSIGNMENT__VARIABLE); + createEReference(valueAssignmentEClass, VALUE_ASSIGNMENT__PARAMETER); + + procedureCallEClass = createEClass(PROCEDURE_CALL); + createEReference(procedureCallEClass, PROCEDURE_CALL__SIGNATURE); + createEReference(procedureCallEClass, PROCEDURE_CALL__ARGUMENT); + createEReference(procedureCallEClass, PROCEDURE_CALL__REPLY_TO); + + procedureSignatureEClass = createEClass(PROCEDURE_SIGNATURE); + createEReference(procedureSignatureEClass, PROCEDURE_SIGNATURE__PARAMETER); + + procedureParameterEClass = createEClass(PROCEDURE_PARAMETER); + createEAttribute(procedureParameterEClass, PROCEDURE_PARAMETER__KIND); + + collectionDataTypeEClass = createEClass(COLLECTION_DATA_TYPE); + createEReference(collectionDataTypeEClass, COLLECTION_DATA_TYPE__ITEM_TYPE); + + collectionDataInstanceEClass = createEClass(COLLECTION_DATA_INSTANCE); + createEReference(collectionDataInstanceEClass, COLLECTION_DATA_INSTANCE__ITEM); + createEAttribute(collectionDataInstanceEClass, COLLECTION_DATA_INSTANCE__UNASSIGNED_MEMBER); + + extensionEClass = createEClass(EXTENSION); + createEReference(extensionEClass, EXTENSION__EXTENDING); + createEOperation(extensionEClass, EXTENSION___TRANSITIVE_EXTENDING); + createEOperation(extensionEClass, EXTENSION___IS_EXTENDING__PACKAGEABLEELEMENT); + + literalValueUseEClass = createEClass(LITERAL_VALUE_USE); + createEAttribute(literalValueUseEClass, LITERAL_VALUE_USE__VALUE); + createEAttribute(literalValueUseEClass, LITERAL_VALUE_USE__INT_VALUE); + createEAttribute(literalValueUseEClass, LITERAL_VALUE_USE__BOOL_VALUE); + createEReference(literalValueUseEClass, LITERAL_VALUE_USE__DATA_TYPE); + createEOperation(literalValueUseEClass, LITERAL_VALUE_USE___RESOLVE_DATA_TYPE); + + constraintTypeEClass = createEClass(CONSTRAINT_TYPE); + + constraintEClass = createEClass(CONSTRAINT); + createEReference(constraintEClass, CONSTRAINT__TYPE); + createEReference(constraintEClass, CONSTRAINT__QUANTIFIER); + + enumDataTypeEClass = createEClass(ENUM_DATA_TYPE); + createEReference(enumDataTypeEClass, ENUM_DATA_TYPE__VALUE); + + dataElementUseEClass = createEClass(DATA_ELEMENT_USE); + createEAttribute(dataElementUseEClass, DATA_ELEMENT_USE__UNASSIGNED_MEMBER); + createEReference(dataElementUseEClass, DATA_ELEMENT_USE__DATA_ELEMENT); + createEReference(dataElementUseEClass, DATA_ELEMENT_USE__ITEM); + createEOperation(dataElementUseEClass, DATA_ELEMENT_USE___RESOLVE_DATA_TYPE); + + // Create enums + unassignedMemberTreatmentEEnum = createEEnum(UNASSIGNED_MEMBER_TREATMENT); + componentInstanceRoleEEnum = createEEnum(COMPONENT_INSTANCE_ROLE); + gateTypeKindEEnum = createEEnum(GATE_TYPE_KIND); + timeLabelUseKindEEnum = createEEnum(TIME_LABEL_USE_KIND); + parameterKindEEnum = createEEnum(PARAMETER_KIND); + } + + /** + * + * + * @generated + */ + private boolean isInitialized = false; + + /** + * Complete the initialization of the package and its meta-model. This + * method is guarded to have no affect on any invocation but its first. + * + * + * @generated + */ + public void initializePackageContents() + { + if (isInitialized) return; + isInitialized = true; + + // Initialize package + setName(eNAME); + setNsPrefix(eNS_PREFIX); + setNsURI(eNS_URI); + + // Create type parameters + + // Set bounds for type parameters + + // Add supertypes to classes + commentEClass.getESuperTypes().add(this.getElement()); + annotationEClass.getESuperTypes().add(this.getElement()); + annotationTypeEClass.getESuperTypes().add(this.getPackageableElement()); + packageableElementEClass.getESuperTypes().add(this.getNamedElement()); + namedElementEClass.getESuperTypes().add(this.getElement()); + packageEClass.getESuperTypes().add(this.getNamedElement()); + elementImportEClass.getESuperTypes().add(this.getElement()); + testObjectiveEClass.getESuperTypes().add(this.getPackageableElement()); + dataInstanceEClass.getESuperTypes().add(this.getMappableDataElement()); + mappableDataElementEClass.getESuperTypes().add(this.getPackageableElement()); + dataTypeEClass.getESuperTypes().add(this.getMappableDataElement()); + dataResourceMappingEClass.getESuperTypes().add(this.getPackageableElement()); + dataElementMappingEClass.getESuperTypes().add(this.getPackageableElement()); + parameterMappingEClass.getESuperTypes().add(this.getElement()); + parameterEClass.getESuperTypes().add(this.getNamedElement()); + simpleDataTypeEClass.getESuperTypes().add(this.getDataType()); + simpleDataInstanceEClass.getESuperTypes().add(this.getDataInstance()); + structuredDataTypeEClass.getESuperTypes().add(this.getDataType()); + memberEClass.getESuperTypes().add(this.getParameter()); + structuredDataInstanceEClass.getESuperTypes().add(this.getDataInstance()); + memberAssignmentEClass.getESuperTypes().add(this.getElement()); + staticDataUseEClass.getESuperTypes().add(this.getDataUse()); + dataUseEClass.getESuperTypes().add(this.getElement()); + parameterBindingEClass.getESuperTypes().add(this.getElement()); + actionEClass.getESuperTypes().add(this.getMappableDataElement()); + formalParameterEClass.getESuperTypes().add(this.getParameter()); + functionEClass.getESuperTypes().add(this.getAction()); + formalParameterUseEClass.getESuperTypes().add(this.getDynamicDataUse()); + dynamicDataUseEClass.getESuperTypes().add(this.getDataUse()); + variableEClass.getESuperTypes().add(this.getNamedElement()); + functionCallEClass.getESuperTypes().add(this.getDynamicDataUse()); + variableUseEClass.getESuperTypes().add(this.getDynamicDataUse()); + componentInstanceEClass.getESuperTypes().add(this.getNamedElement()); + componentTypeEClass.getESuperTypes().add(this.getPackageableElement()); + gateInstanceEClass.getESuperTypes().add(this.getNamedElement()); + gateTypeEClass.getESuperTypes().add(this.getPackageableElement()); + timerEClass.getESuperTypes().add(this.getNamedElement()); + omitValueEClass.getESuperTypes().add(this.getSpecialValueUse()); + specialValueUseEClass.getESuperTypes().add(this.getStaticDataUse()); + anyValueEClass.getESuperTypes().add(this.getSpecialValueUse()); + anyValueOrOmitEClass.getESuperTypes().add(this.getSpecialValueUse()); + dataInstanceUseEClass.getESuperTypes().add(this.getStaticDataUse()); + timeEClass.getESuperTypes().add(this.getSimpleDataType()); + timeLabelEClass.getESuperTypes().add(this.getNamedElement()); + timerOperationEClass.getESuperTypes().add(this.getAtomicBehaviour()); + atomicBehaviourEClass.getESuperTypes().add(this.getBehaviour()); + behaviourEClass.getESuperTypes().add(this.getElement()); + timeConstraintEClass.getESuperTypes().add(this.getElement()); + timerStartEClass.getESuperTypes().add(this.getTimerOperation()); + timerStopEClass.getESuperTypes().add(this.getTimerOperation()); + timeOutEClass.getESuperTypes().add(this.getTimerOperation()); + timeOperationEClass.getESuperTypes().add(this.getAtomicBehaviour()); + waitEClass.getESuperTypes().add(this.getTimeOperation()); + quiescenceEClass.getESuperTypes().add(this.getTimeOperation()); + gateReferenceEClass.getESuperTypes().add(this.getElement()); + timeLabelUseEClass.getESuperTypes().add(this.getDynamicDataUse()); + testConfigurationEClass.getESuperTypes().add(this.getPackageableElement()); + connectionEClass.getESuperTypes().add(this.getElement()); + testDescriptionEClass.getESuperTypes().add(this.getPackageableElement()); + behaviourDescriptionEClass.getESuperTypes().add(this.getElement()); + blockEClass.getESuperTypes().add(this.getElement()); + combinedBehaviourEClass.getESuperTypes().add(this.getBehaviour()); + periodicBehaviourEClass.getESuperTypes().add(this.getBehaviour()); + exceptionalBehaviourEClass.getESuperTypes().add(this.getBehaviour()); + alternativeBehaviourEClass.getESuperTypes().add(this.getMultipleCombinedBehaviour()); + multipleCombinedBehaviourEClass.getESuperTypes().add(this.getCombinedBehaviour()); + parallelBehaviourEClass.getESuperTypes().add(this.getMultipleCombinedBehaviour()); + boundedLoopBehaviourEClass.getESuperTypes().add(this.getSingleCombinedBehaviour()); + singleCombinedBehaviourEClass.getESuperTypes().add(this.getCombinedBehaviour()); + optionalBehaviourEClass.getESuperTypes().add(this.getSingleCombinedBehaviour()); + unboundedLoopBehaviourEClass.getESuperTypes().add(this.getSingleCombinedBehaviour()); + conditionalBehaviourEClass.getESuperTypes().add(this.getMultipleCombinedBehaviour()); + compoundBehaviourEClass.getESuperTypes().add(this.getSingleCombinedBehaviour()); + defaultBehaviourEClass.getESuperTypes().add(this.getExceptionalBehaviour()); + interruptBehaviourEClass.getESuperTypes().add(this.getExceptionalBehaviour()); + targetEClass.getESuperTypes().add(this.getElement()); + verdictAssignmentEClass.getESuperTypes().add(this.getAtomicBehaviour()); + assertionEClass.getESuperTypes().add(this.getActionBehaviour()); + stopEClass.getESuperTypes().add(this.getAtomicBehaviour()); + breakEClass.getESuperTypes().add(this.getAtomicBehaviour()); + assignmentEClass.getESuperTypes().add(this.getAtomicBehaviour()); + actionBehaviourEClass.getESuperTypes().add(this.getAtomicBehaviour()); + inlineActionEClass.getESuperTypes().add(this.getActionBehaviour()); + actionReferenceEClass.getESuperTypes().add(this.getActionBehaviour()); + testDescriptionReferenceEClass.getESuperTypes().add(this.getAtomicBehaviour()); + componentInstanceBindingEClass.getESuperTypes().add(this.getElement()); + interactionEClass.getESuperTypes().add(this.getAtomicBehaviour()); + messageEClass.getESuperTypes().add(this.getInteraction()); + predefinedFunctionEClass.getESuperTypes().add(this.getPackageableElement()); + memberReferenceEClass.getESuperTypes().add(this.getElement()); + predefinedFunctionCallEClass.getESuperTypes().add(this.getDynamicDataUse()); + localExpressionEClass.getESuperTypes().add(this.getElement()); + valueAssignmentEClass.getESuperTypes().add(this.getElement()); + procedureCallEClass.getESuperTypes().add(this.getInteraction()); + procedureSignatureEClass.getESuperTypes().add(this.getDataType()); + procedureParameterEClass.getESuperTypes().add(this.getParameter()); + collectionDataTypeEClass.getESuperTypes().add(this.getDataType()); + collectionDataInstanceEClass.getESuperTypes().add(this.getDataInstance()); + extensionEClass.getESuperTypes().add(this.getElement()); + literalValueUseEClass.getESuperTypes().add(this.getStaticDataUse()); + constraintTypeEClass.getESuperTypes().add(this.getPackageableElement()); + constraintEClass.getESuperTypes().add(this.getElement()); + enumDataTypeEClass.getESuperTypes().add(this.getSimpleDataType()); + dataElementUseEClass.getESuperTypes().add(this.getDataUse()); + + // Initialize classes, features, and operations; add parameters + initEClass(elementEClass, Element.class, "Element", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getElement_Comment(), this.getComment(), this.getComment_CommentedElement(), "comment", null, 0, -1, Element.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getElement_Annotation(), this.getAnnotation(), this.getAnnotation_AnnotatedElement(), "annotation", null, 0, -1, Element.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getElement_Name(), ecorePackage.getEString(), "name", null, 0, 1, Element.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEOperation(getElement__Container(), this.getElement(), "container", 0, 1, IS_UNIQUE, IS_ORDERED); + + initEOperation(getElement__GetParentTestDescription(), this.getTestDescription(), "getParentTestDescription", 0, 1, IS_UNIQUE, IS_ORDERED); + + initEClass(commentEClass, Comment.class, "Comment", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getComment_Body(), ecorePackage.getEString(), "body", null, 1, 1, Comment.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getComment_CommentedElement(), this.getElement(), this.getElement_Comment(), "commentedElement", null, 1, 1, Comment.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(annotationEClass, Annotation.class, "Annotation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getAnnotation_Value(), ecorePackage.getEString(), "value", null, 0, 1, Annotation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getAnnotation_Key(), this.getAnnotationType(), null, "key", null, 1, 1, Annotation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getAnnotation_AnnotatedElement(), this.getElement(), this.getElement_Annotation(), "annotatedElement", null, 1, 1, Annotation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(annotationTypeEClass, AnnotationType.class, "AnnotationType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getAnnotationType_Extension(), this.getExtension(), null, "extension", null, 0, 1, AnnotationType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(packageableElementEClass, PackageableElement.class, "PackageableElement", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + EOperation op = initEOperation(getPackageableElement__ConformsTo__String(), ecorePackage.getEBooleanObject(), "conformsTo", 0, 1, IS_UNIQUE, IS_ORDERED); + addEParameter(op, ecorePackage.getEString(), "n", 0, 1, IS_UNIQUE, IS_ORDERED); + + op = initEOperation(getPackageableElement__GetElementNamed__String(), this.getPackageableElement(), "getElementNamed", 0, 1, IS_UNIQUE, IS_ORDERED); + addEParameter(op, ecorePackage.getEString(), "n", 0, 1, IS_UNIQUE, IS_ORDERED); + + op = initEOperation(getPackageableElement__ConformsTo__PackageableElement(), ecorePackage.getEBooleanObject(), "conformsTo", 0, 1, IS_UNIQUE, IS_ORDERED); + addEParameter(op, this.getPackageableElement(), "n", 0, 1, IS_UNIQUE, IS_ORDERED); + + initEClass(namedElementEClass, NamedElement.class, "NamedElement", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getNamedElement_QualifiedName(), ecorePackage.getEString(), "qualifiedName", null, 1, 1, NamedElement.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + + initEClass(packageEClass, org.etsi.mts.tdl.Package.class, "Package", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getPackage_PackagedElement(), this.getPackageableElement(), null, "packagedElement", null, 0, -1, org.etsi.mts.tdl.Package.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + initEReference(getPackage_Import(), this.getElementImport(), null, "import", null, 0, -1, org.etsi.mts.tdl.Package.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + initEReference(getPackage_NestedPackage(), this.getPackage(), null, "nestedPackage", null, 0, -1, org.etsi.mts.tdl.Package.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + + initEClass(elementImportEClass, ElementImport.class, "ElementImport", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getElementImport_ImportedElement(), this.getPackageableElement(), null, "importedElement", null, 0, -1, ElementImport.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + initEReference(getElementImport_ImportedPackage(), this.getPackage(), null, "importedPackage", null, 1, 1, ElementImport.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(testObjectiveEClass, TestObjective.class, "TestObjective", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getTestObjective_ObjectiveURI(), ecorePackage.getEString(), "objectiveURI", null, 0, -1, TestObjective.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + initEAttribute(getTestObjective_Description(), ecorePackage.getEString(), "description", null, 0, 1, TestObjective.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(dataInstanceEClass, DataInstance.class, "DataInstance", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getDataInstance_DataType(), this.getDataType(), null, "dataType", null, 1, 1, DataInstance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(mappableDataElementEClass, MappableDataElement.class, "MappableDataElement", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(dataTypeEClass, DataType.class, "DataType", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getDataType_Constraint(), this.getConstraint(), null, "constraint", null, 0, -1, DataType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEOperation(getDataType__AllConstraints(), this.getConstraint(), "allConstraints", 0, -1, IS_UNIQUE, IS_ORDERED); + + initEClass(dataResourceMappingEClass, DataResourceMapping.class, "DataResourceMapping", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getDataResourceMapping_ResourceURI(), ecorePackage.getEString(), "resourceURI", null, 0, 1, DataResourceMapping.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(dataElementMappingEClass, DataElementMapping.class, "DataElementMapping", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getDataElementMapping_MappableDataElement(), this.getMappableDataElement(), null, "mappableDataElement", null, 1, 1, DataElementMapping.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getDataElementMapping_ElementURI(), ecorePackage.getEString(), "elementURI", null, 0, 1, DataElementMapping.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getDataElementMapping_DataResourceMapping(), this.getDataResourceMapping(), null, "dataResourceMapping", null, 1, 1, DataElementMapping.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getDataElementMapping_ParameterMapping(), this.getParameterMapping(), null, "parameterMapping", null, 0, -1, DataElementMapping.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + + initEClass(parameterMappingEClass, ParameterMapping.class, "ParameterMapping", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getParameterMapping_ParameterURI(), ecorePackage.getEString(), "parameterURI", null, 0, 1, ParameterMapping.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getParameterMapping_Parameter(), this.getParameter(), null, "parameter", null, 1, 1, ParameterMapping.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(parameterEClass, Parameter.class, "Parameter", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getParameter_DataType(), this.getDataType(), null, "dataType", null, 1, 1, Parameter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(simpleDataTypeEClass, SimpleDataType.class, "SimpleDataType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getSimpleDataType_Extension(), this.getExtension(), null, "extension", null, 0, 1, SimpleDataType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEOperation(getSimpleDataType__AllConstraints(), this.getConstraint(), "allConstraints", 0, -1, IS_UNIQUE, IS_ORDERED); + + initEClass(simpleDataInstanceEClass, SimpleDataInstance.class, "SimpleDataInstance", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(structuredDataTypeEClass, StructuredDataType.class, "StructuredDataType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getStructuredDataType_Extension(), this.getExtension(), null, "extension", null, 0, -1, StructuredDataType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getStructuredDataType_Member(), this.getMember(), null, "member", null, 0, -1, StructuredDataType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEOperation(getStructuredDataType__AllMembers(), this.getMember(), "allMembers", 0, -1, IS_UNIQUE, IS_ORDERED); + + initEOperation(getStructuredDataType__AllConstraints(), this.getConstraint(), "allConstraints", 0, -1, IS_UNIQUE, IS_ORDERED); + + initEClass(memberEClass, Member.class, "Member", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getMember_IsOptional(), ecorePackage.getEBoolean(), "isOptional", "false", 1, 1, Member.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getMember_Constraint(), this.getConstraint(), null, "constraint", null, 0, -1, Member.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(structuredDataInstanceEClass, StructuredDataInstance.class, "StructuredDataInstance", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getStructuredDataInstance_MemberAssignment(), this.getMemberAssignment(), null, "memberAssignment", null, 0, -1, StructuredDataInstance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getStructuredDataInstance_UnassignedMember(), this.getUnassignedMemberTreatment(), "unassignedMember", null, 0, 1, StructuredDataInstance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(memberAssignmentEClass, MemberAssignment.class, "MemberAssignment", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getMemberAssignment_Member(), this.getMember(), null, "member", null, 1, 1, MemberAssignment.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getMemberAssignment_MemberSpec(), this.getDataUse(), null, "memberSpec", null, 1, 1, MemberAssignment.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(staticDataUseEClass, StaticDataUse.class, "StaticDataUse", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(dataUseEClass, DataUse.class, "DataUse", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getDataUse_Argument(), this.getParameterBinding(), null, "argument", null, 0, -1, DataUse.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getDataUse_Reduction(), this.getMemberReference(), null, "reduction", null, 0, -1, DataUse.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEOperation(getDataUse__ResolveDataType(), this.getDataType(), "resolveDataType", 0, 1, IS_UNIQUE, IS_ORDERED); + + initEOperation(getDataUse__IsEffectivelyStatic(), ecorePackage.getEBoolean(), "isEffectivelyStatic", 1, 1, IS_UNIQUE, IS_ORDERED); + + initEClass(parameterBindingEClass, ParameterBinding.class, "ParameterBinding", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getParameterBinding_DataUse(), this.getDataUse(), null, "dataUse", null, 1, 1, ParameterBinding.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getParameterBinding_Parameter(), this.getParameter(), null, "parameter", null, 1, 1, ParameterBinding.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(actionEClass, Action.class, "Action", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getAction_Body(), ecorePackage.getEString(), "body", null, 0, 1, Action.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getAction_FormalParameter(), this.getFormalParameter(), null, "formalParameter", null, 0, -1, Action.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(formalParameterEClass, FormalParameter.class, "FormalParameter", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(functionEClass, Function.class, "Function", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getFunction_ReturnType(), this.getDataType(), null, "returnType", null, 1, 1, Function.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(formalParameterUseEClass, FormalParameterUse.class, "FormalParameterUse", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getFormalParameterUse_Parameter(), this.getFormalParameter(), null, "parameter", null, 1, 1, FormalParameterUse.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEOperation(getFormalParameterUse__ResolveDataType(), this.getDataType(), "resolveDataType", 0, 1, IS_UNIQUE, IS_ORDERED); + + initEClass(dynamicDataUseEClass, DynamicDataUse.class, "DynamicDataUse", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(variableEClass, Variable.class, "Variable", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getVariable_DataType(), this.getDataType(), null, "dataType", null, 1, 1, Variable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(functionCallEClass, FunctionCall.class, "FunctionCall", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getFunctionCall_Function(), this.getFunction(), null, "function", null, 1, 1, FunctionCall.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEOperation(getFunctionCall__ResolveDataType(), this.getDataType(), "resolveDataType", 0, 1, IS_UNIQUE, IS_ORDERED); + + initEClass(variableUseEClass, VariableUse.class, "VariableUse", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getVariableUse_ComponentInstance(), this.getComponentInstance(), null, "componentInstance", null, 1, 1, VariableUse.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getVariableUse_Variable(), this.getVariable(), null, "variable", null, 1, 1, VariableUse.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEOperation(getVariableUse__ResolveDataType(), this.getDataType(), "resolveDataType", 0, 1, IS_UNIQUE, IS_ORDERED); + + initEClass(componentInstanceEClass, ComponentInstance.class, "ComponentInstance", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getComponentInstance_Type(), this.getComponentType(), null, "type", null, 1, 1, ComponentInstance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getComponentInstance_Role(), this.getComponentInstanceRole(), "role", null, 1, 1, ComponentInstance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(componentTypeEClass, ComponentType.class, "ComponentType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getComponentType_GateInstance(), this.getGateInstance(), null, "gateInstance", null, 1, -1, ComponentType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getComponentType_Timer(), this.getTimer(), null, "timer", null, 0, -1, ComponentType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getComponentType_Variable(), this.getVariable(), null, "variable", null, 0, -1, ComponentType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getComponentType_Extension(), this.getExtension(), null, "extension", null, 0, 1, ComponentType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEOperation(getComponentType__AllGates(), this.getGateInstance(), "allGates", 0, -1, IS_UNIQUE, IS_ORDERED); + + initEOperation(getComponentType__AllTimers(), this.getTimer(), "allTimers", 0, -1, IS_UNIQUE, IS_ORDERED); + + initEOperation(getComponentType__AllVariables(), this.getVariable(), "allVariables", 0, -1, IS_UNIQUE, IS_ORDERED); + + initEClass(gateInstanceEClass, GateInstance.class, "GateInstance", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getGateInstance_Type(), this.getGateType(), null, "type", null, 1, 1, GateInstance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(gateTypeEClass, GateType.class, "GateType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getGateType_DataType(), this.getDataType(), null, "dataType", null, 1, -1, GateType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getGateType_Kind(), this.getGateTypeKind(), "kind", "Message", 1, 1, GateType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getGateType_Extension(), this.getExtension(), null, "extension", null, 0, 1, GateType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEOperation(getGateType__AllDataTypes(), this.getDataType(), "allDataTypes", 0, -1, IS_UNIQUE, IS_ORDERED); + + initEClass(timerEClass, Timer.class, "Timer", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(omitValueEClass, OmitValue.class, "OmitValue", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(specialValueUseEClass, SpecialValueUse.class, "SpecialValueUse", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEOperation(getSpecialValueUse__ResolveDataType(), this.getDataType(), "resolveDataType", 0, 1, IS_UNIQUE, IS_ORDERED); + + initEClass(anyValueEClass, AnyValue.class, "AnyValue", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getAnyValue_DataType(), this.getDataType(), null, "dataType", null, 0, 1, AnyValue.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEOperation(getAnyValue__ResolveDataType(), this.getDataType(), "resolveDataType", 0, 1, IS_UNIQUE, IS_ORDERED); + + initEClass(anyValueOrOmitEClass, AnyValueOrOmit.class, "AnyValueOrOmit", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(dataInstanceUseEClass, DataInstanceUse.class, "DataInstanceUse", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getDataInstanceUse_DataInstance(), this.getDataInstance(), null, "dataInstance", null, 0, 1, DataInstanceUse.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getDataInstanceUse_UnassignedMember(), this.getUnassignedMemberTreatment(), "unassignedMember", null, 0, 1, DataInstanceUse.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getDataInstanceUse_DataType(), this.getDataType(), null, "dataType", null, 0, 1, DataInstanceUse.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getDataInstanceUse_Item(), this.getDataUse(), null, "item", null, 0, -1, DataInstanceUse.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEOperation(getDataInstanceUse__ResolveDataType(), this.getDataType(), "resolveDataType", 0, 1, IS_UNIQUE, IS_ORDERED); + + initEClass(timeEClass, Time.class, "Time", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(timeLabelEClass, TimeLabel.class, "TimeLabel", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(timerOperationEClass, TimerOperation.class, "TimerOperation", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getTimerOperation_Timer(), this.getTimer(), null, "timer", null, 1, 1, TimerOperation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getTimerOperation_ComponentInstance(), this.getComponentInstance(), null, "componentInstance", null, 1, 1, TimerOperation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEOperation(getTimerOperation__GetParticipatingComponents(), this.getComponentInstance(), "getParticipatingComponents", 0, -1, IS_UNIQUE, IS_ORDERED); + + initEClass(atomicBehaviourEClass, AtomicBehaviour.class, "AtomicBehaviour", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getAtomicBehaviour_TimeConstraint(), this.getTimeConstraint(), null, "timeConstraint", null, 0, -1, AtomicBehaviour.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + initEReference(getAtomicBehaviour_TimeLabel(), this.getTimeLabel(), null, "timeLabel", null, 0, 1, AtomicBehaviour.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEOperation(getAtomicBehaviour__GetParticipatingComponents(), this.getComponentInstance(), "getParticipatingComponents", 0, -1, IS_UNIQUE, IS_ORDERED); + + initEClass(behaviourEClass, Behaviour.class, "Behaviour", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getBehaviour_TestObjective(), this.getTestObjective(), null, "testObjective", null, 0, -1, Behaviour.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + + initEOperation(getBehaviour__IsTesterInputEvent(), ecorePackage.getEBooleanObject(), "isTesterInputEvent", 0, 1, IS_UNIQUE, IS_ORDERED); + + initEOperation(getBehaviour__GetParticipatingComponents(), this.getComponentInstance(), "getParticipatingComponents", 0, -1, IS_UNIQUE, IS_ORDERED); + + initEClass(timeConstraintEClass, TimeConstraint.class, "TimeConstraint", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getTimeConstraint_TimeConstraintExpression(), this.getDataUse(), null, "timeConstraintExpression", null, 1, 1, TimeConstraint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(timerStartEClass, TimerStart.class, "TimerStart", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getTimerStart_Period(), this.getDataUse(), null, "period", null, 1, 1, TimerStart.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(timerStopEClass, TimerStop.class, "TimerStop", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(timeOutEClass, TimeOut.class, "TimeOut", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(timeOperationEClass, TimeOperation.class, "TimeOperation", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getTimeOperation_ComponentInstance(), this.getComponentInstance(), null, "componentInstance", null, 0, 1, TimeOperation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getTimeOperation_Period(), this.getDataUse(), null, "period", null, 1, 1, TimeOperation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEOperation(getTimeOperation__GetParticipatingComponents(), this.getComponentInstance(), "getParticipatingComponents", 0, -1, IS_UNIQUE, IS_ORDERED); + + initEClass(waitEClass, Wait.class, "Wait", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(quiescenceEClass, Quiescence.class, "Quiescence", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getQuiescence_GateReference(), this.getGateReference(), null, "gateReference", null, 0, 1, Quiescence.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEOperation(getQuiescence__GetParticipatingComponents(), this.getComponentInstance(), "getParticipatingComponents", 0, -1, IS_UNIQUE, IS_ORDERED); + + initEClass(gateReferenceEClass, GateReference.class, "GateReference", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getGateReference_Component(), this.getComponentInstance(), null, "component", null, 1, 1, GateReference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getGateReference_Gate(), this.getGateInstance(), null, "gate", null, 1, 1, GateReference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(timeLabelUseEClass, TimeLabelUse.class, "TimeLabelUse", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getTimeLabelUse_TimeLabel(), this.getTimeLabel(), null, "timeLabel", null, 1, 1, TimeLabelUse.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getTimeLabelUse_Kind(), this.getTimeLabelUseKind(), "kind", "Last", 1, 1, TimeLabelUse.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEOperation(getTimeLabelUse__ResolveDataType(), this.getDataType(), "resolveDataType", 0, 1, IS_UNIQUE, IS_ORDERED); + + initEClass(testConfigurationEClass, TestConfiguration.class, "TestConfiguration", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getTestConfiguration_ComponentInstance(), this.getComponentInstance(), null, "componentInstance", null, 2, -1, TestConfiguration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + initEReference(getTestConfiguration_Connection(), this.getConnection(), null, "connection", null, 1, -1, TestConfiguration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + + op = initEOperation(getTestConfiguration__CompatibleWith__TestConfiguration_EList(), ecorePackage.getEBoolean(), "compatibleWith", 1, 1, IS_UNIQUE, IS_ORDERED); + addEParameter(op, this.getTestConfiguration(), "tc", 1, 1, IS_UNIQUE, IS_ORDERED); + addEParameter(op, this.getComponentInstanceBinding(), "cb", 0, -1, IS_UNIQUE, !IS_ORDERED); + + initEClass(connectionEClass, Connection.class, "Connection", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getConnection_EndPoint(), this.getGateReference(), null, "endPoint", null, 2, 2, Connection.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + + initEClass(testDescriptionEClass, TestDescription.class, "TestDescription", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getTestDescription_TestConfiguration(), this.getTestConfiguration(), null, "testConfiguration", null, 1, 1, TestDescription.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getTestDescription_FormalParameter(), this.getFormalParameter(), null, "formalParameter", null, 0, -1, TestDescription.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getTestDescription_BehaviourDescription(), this.getBehaviourDescription(), null, "behaviourDescription", null, 0, 1, TestDescription.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getTestDescription_TestObjective(), this.getTestObjective(), null, "testObjective", null, 0, -1, TestDescription.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + initEAttribute(getTestDescription_IsLocallyOrdered(), ecorePackage.getEBoolean(), "isLocallyOrdered", "false", 1, 1, TestDescription.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(behaviourDescriptionEClass, BehaviourDescription.class, "BehaviourDescription", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getBehaviourDescription_Behaviour(), this.getBehaviour(), null, "behaviour", null, 1, 1, BehaviourDescription.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(blockEClass, Block.class, "Block", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getBlock_Behaviour(), this.getBehaviour(), null, "behaviour", null, 1, -1, Block.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getBlock_Guard(), this.getLocalExpression(), null, "guard", null, 0, -1, Block.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEOperation(getBlock__GetParticipatingComponents(), this.getComponentInstance(), "getParticipatingComponents", 0, -1, IS_UNIQUE, IS_ORDERED); + + op = initEOperation(getBlock__GetParticipatingComponentsExcluding__Behaviour(), this.getComponentInstance(), "getParticipatingComponentsExcluding", 0, -1, IS_UNIQUE, IS_ORDERED); + addEParameter(op, this.getBehaviour(), "excluded", 0, 1, IS_UNIQUE, IS_ORDERED); + + initEClass(combinedBehaviourEClass, CombinedBehaviour.class, "CombinedBehaviour", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getCombinedBehaviour_Periodic(), this.getPeriodicBehaviour(), null, "periodic", null, 0, -1, CombinedBehaviour.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getCombinedBehaviour_Exceptional(), this.getExceptionalBehaviour(), null, "exceptional", null, 0, -1, CombinedBehaviour.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(periodicBehaviourEClass, PeriodicBehaviour.class, "PeriodicBehaviour", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getPeriodicBehaviour_Block(), this.getBlock(), null, "block", null, 1, 1, PeriodicBehaviour.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getPeriodicBehaviour_Period(), this.getLocalExpression(), null, "period", null, 1, -1, PeriodicBehaviour.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEOperation(getPeriodicBehaviour__GetParticipatingComponents(), this.getComponentInstance(), "getParticipatingComponents", 0, -1, IS_UNIQUE, IS_ORDERED); + + initEClass(exceptionalBehaviourEClass, ExceptionalBehaviour.class, "ExceptionalBehaviour", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getExceptionalBehaviour_Block(), this.getBlock(), null, "block", null, 1, 1, ExceptionalBehaviour.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getExceptionalBehaviour_GuardedComponent(), this.getComponentInstance(), null, "guardedComponent", null, 0, 1, ExceptionalBehaviour.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEOperation(getExceptionalBehaviour__GetParticipatingComponents(), this.getComponentInstance(), "getParticipatingComponents", 0, -1, IS_UNIQUE, IS_ORDERED); + + initEClass(alternativeBehaviourEClass, AlternativeBehaviour.class, "AlternativeBehaviour", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(multipleCombinedBehaviourEClass, MultipleCombinedBehaviour.class, "MultipleCombinedBehaviour", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getMultipleCombinedBehaviour_Block(), this.getBlock(), null, "block", null, 1, -1, MultipleCombinedBehaviour.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEOperation(getMultipleCombinedBehaviour__GetParticipatingComponents(), this.getComponentInstance(), "getParticipatingComponents", 0, -1, IS_UNIQUE, IS_ORDERED); + + initEClass(parallelBehaviourEClass, ParallelBehaviour.class, "ParallelBehaviour", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(boundedLoopBehaviourEClass, BoundedLoopBehaviour.class, "BoundedLoopBehaviour", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getBoundedLoopBehaviour_NumIteration(), this.getLocalExpression(), null, "numIteration", null, 1, -1, BoundedLoopBehaviour.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(singleCombinedBehaviourEClass, SingleCombinedBehaviour.class, "SingleCombinedBehaviour", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getSingleCombinedBehaviour_Block(), this.getBlock(), null, "block", null, 1, 1, SingleCombinedBehaviour.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEOperation(getSingleCombinedBehaviour__GetParticipatingComponents(), this.getComponentInstance(), "getParticipatingComponents", 0, -1, IS_UNIQUE, IS_ORDERED); + + initEClass(optionalBehaviourEClass, OptionalBehaviour.class, "OptionalBehaviour", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(unboundedLoopBehaviourEClass, UnboundedLoopBehaviour.class, "UnboundedLoopBehaviour", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(conditionalBehaviourEClass, ConditionalBehaviour.class, "ConditionalBehaviour", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(compoundBehaviourEClass, CompoundBehaviour.class, "CompoundBehaviour", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(defaultBehaviourEClass, DefaultBehaviour.class, "DefaultBehaviour", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(interruptBehaviourEClass, InterruptBehaviour.class, "InterruptBehaviour", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(targetEClass, Target.class, "Target", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getTarget_TargetGate(), this.getGateReference(), null, "targetGate", null, 1, 1, Target.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getTarget_ValueAssignment(), this.getValueAssignment(), null, "valueAssignment", null, 0, -1, Target.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(verdictAssignmentEClass, VerdictAssignment.class, "VerdictAssignment", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getVerdictAssignment_Verdict(), this.getDataUse(), null, "verdict", null, 1, 1, VerdictAssignment.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(assertionEClass, Assertion.class, "Assertion", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getAssertion_Otherwise(), this.getDataUse(), null, "otherwise", null, 0, 1, Assertion.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getAssertion_Condition(), this.getDataUse(), null, "condition", null, 1, 1, Assertion.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(stopEClass, Stop.class, "Stop", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(breakEClass, Break.class, "Break", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(assignmentEClass, Assignment.class, "Assignment", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getAssignment_Variable(), this.getVariableUse(), null, "variable", null, 1, 1, Assignment.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getAssignment_Expression(), this.getDataUse(), null, "expression", null, 1, 1, Assignment.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEOperation(getAssignment__GetParticipatingComponents(), this.getComponentInstance(), "getParticipatingComponents", 0, -1, IS_UNIQUE, IS_ORDERED); + + initEClass(actionBehaviourEClass, ActionBehaviour.class, "ActionBehaviour", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getActionBehaviour_ComponentInstance(), this.getComponentInstance(), null, "componentInstance", null, 0, 1, ActionBehaviour.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEOperation(getActionBehaviour__GetParticipatingComponents(), this.getComponentInstance(), "getParticipatingComponents", 0, -1, IS_UNIQUE, IS_ORDERED); + + initEClass(inlineActionEClass, InlineAction.class, "InlineAction", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getInlineAction_Body(), ecorePackage.getEString(), "body", null, 1, 1, InlineAction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(actionReferenceEClass, ActionReference.class, "ActionReference", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getActionReference_Action(), this.getAction(), null, "action", null, 1, 1, ActionReference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getActionReference_Argument(), this.getParameterBinding(), null, "argument", null, 0, -1, ActionReference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(testDescriptionReferenceEClass, TestDescriptionReference.class, "TestDescriptionReference", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getTestDescriptionReference_TestDescription(), this.getTestDescription(), null, "testDescription", null, 1, 1, TestDescriptionReference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getTestDescriptionReference_ComponentInstanceBinding(), this.getComponentInstanceBinding(), null, "componentInstanceBinding", null, 0, -1, TestDescriptionReference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + initEReference(getTestDescriptionReference_Argument(), this.getParameterBinding(), null, "argument", null, 0, -1, TestDescriptionReference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEOperation(getTestDescriptionReference__GetParticipatingComponents(), this.getComponentInstance(), "getParticipatingComponents", 0, -1, IS_UNIQUE, IS_ORDERED); + + initEClass(componentInstanceBindingEClass, ComponentInstanceBinding.class, "ComponentInstanceBinding", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getComponentInstanceBinding_FormalComponent(), this.getComponentInstance(), null, "formalComponent", null, 1, 1, ComponentInstanceBinding.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getComponentInstanceBinding_ActualComponent(), this.getComponentInstance(), null, "actualComponent", null, 1, 1, ComponentInstanceBinding.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(interactionEClass, Interaction.class, "Interaction", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getInteraction_SourceGate(), this.getGateReference(), null, "sourceGate", null, 1, 1, Interaction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getInteraction_Target(), this.getTarget(), null, "target", null, 1, -1, Interaction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + + initEOperation(getInteraction__GetParticipatingComponents(), this.getComponentInstance(), "getParticipatingComponents", 0, -1, IS_UNIQUE, IS_ORDERED); + + initEClass(messageEClass, Message.class, "Message", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getMessage_IsTrigger(), ecorePackage.getEBoolean(), "isTrigger", "false", 1, 1, Message.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getMessage_Argument(), this.getDataUse(), null, "argument", null, 1, 1, Message.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(predefinedFunctionEClass, PredefinedFunction.class, "PredefinedFunction", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getPredefinedFunction_ReturnType(), this.getDataType(), null, "returnType", null, 0, 1, PredefinedFunction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(memberReferenceEClass, MemberReference.class, "MemberReference", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getMemberReference_Member(), this.getMember(), null, "member", null, 0, 1, MemberReference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getMemberReference_CollectionIndex(), this.getDataUse(), null, "collectionIndex", null, 0, 1, MemberReference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(predefinedFunctionCallEClass, PredefinedFunctionCall.class, "PredefinedFunctionCall", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getPredefinedFunctionCall_Function(), this.getPredefinedFunction(), null, "function", null, 1, 1, PredefinedFunctionCall.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getPredefinedFunctionCall_ActualParameters(), this.getDataUse(), null, "actualParameters", null, 0, -1, PredefinedFunctionCall.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEOperation(getPredefinedFunctionCall__ResolveDataType(), this.getDataType(), "resolveDataType", 0, 1, IS_UNIQUE, IS_ORDERED); + + initEClass(localExpressionEClass, LocalExpression.class, "LocalExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getLocalExpression_Expression(), this.getDataUse(), null, "expression", null, 1, 1, LocalExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getLocalExpression_ComponentInstance(), this.getComponentInstance(), null, "componentInstance", null, 0, 1, LocalExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(valueAssignmentEClass, ValueAssignment.class, "ValueAssignment", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getValueAssignment_Variable(), this.getVariable(), null, "variable", null, 1, 1, ValueAssignment.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getValueAssignment_Parameter(), this.getParameter(), null, "parameter", null, 0, 1, ValueAssignment.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(procedureCallEClass, ProcedureCall.class, "ProcedureCall", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getProcedureCall_Signature(), this.getProcedureSignature(), null, "signature", null, 1, 1, ProcedureCall.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getProcedureCall_Argument(), this.getParameterBinding(), null, "argument", null, 1, -1, ProcedureCall.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getProcedureCall_ReplyTo(), this.getProcedureCall(), null, "replyTo", null, 0, 1, ProcedureCall.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(procedureSignatureEClass, ProcedureSignature.class, "ProcedureSignature", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getProcedureSignature_Parameter(), this.getProcedureParameter(), null, "parameter", null, 1, -1, ProcedureSignature.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(procedureParameterEClass, ProcedureParameter.class, "ProcedureParameter", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getProcedureParameter_Kind(), this.getParameterKind(), "kind", null, 1, 1, ProcedureParameter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(collectionDataTypeEClass, CollectionDataType.class, "CollectionDataType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getCollectionDataType_ItemType(), this.getDataType(), null, "itemType", null, 1, 1, CollectionDataType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(collectionDataInstanceEClass, CollectionDataInstance.class, "CollectionDataInstance", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getCollectionDataInstance_Item(), this.getDataUse(), null, "item", null, 0, -1, CollectionDataInstance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getCollectionDataInstance_UnassignedMember(), this.getUnassignedMemberTreatment(), "unassignedMember", null, 0, 1, CollectionDataInstance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(extensionEClass, Extension.class, "Extension", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getExtension_Extending(), this.getPackageableElement(), null, "extending", null, 1, 1, Extension.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEOperation(getExtension__TransitiveExtending(), this.getExtension(), "transitiveExtending", 0, -1, IS_UNIQUE, IS_ORDERED); + + op = initEOperation(getExtension__IsExtending__PackageableElement(), ecorePackage.getEBooleanObject(), "isExtending", 0, 1, IS_UNIQUE, IS_ORDERED); + addEParameter(op, this.getPackageableElement(), "e", 0, 1, IS_UNIQUE, IS_ORDERED); + + initEClass(literalValueUseEClass, LiteralValueUse.class, "LiteralValueUse", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getLiteralValueUse_Value(), ecorePackage.getEString(), "value", null, 0, 1, LiteralValueUse.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getLiteralValueUse_IntValue(), ecorePackage.getEBigInteger(), "intValue", null, 0, 1, LiteralValueUse.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getLiteralValueUse_BoolValue(), ecorePackage.getEBooleanObject(), "boolValue", null, 0, 1, LiteralValueUse.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getLiteralValueUse_DataType(), this.getDataType(), null, "dataType", null, 0, 1, LiteralValueUse.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEOperation(getLiteralValueUse__ResolveDataType(), this.getDataType(), "resolveDataType", 0, 1, IS_UNIQUE, IS_ORDERED); + + initEClass(constraintTypeEClass, ConstraintType.class, "ConstraintType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(constraintEClass, Constraint.class, "Constraint", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getConstraint_Type(), this.getConstraintType(), null, "type", null, 1, 1, Constraint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getConstraint_Quantifier(), this.getDataUse(), null, "quantifier", null, 0, -1, Constraint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(enumDataTypeEClass, EnumDataType.class, "EnumDataType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getEnumDataType_Value(), this.getSimpleDataInstance(), null, "value", null, 0, -1, EnumDataType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(dataElementUseEClass, DataElementUse.class, "DataElementUse", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getDataElementUse_UnassignedMember(), this.getUnassignedMemberTreatment(), "unassignedMember", null, 0, 1, DataElementUse.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getDataElementUse_DataElement(), this.getNamedElement(), null, "dataElement", null, 0, 1, DataElementUse.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getDataElementUse_Item(), this.getDataUse(), null, "item", null, 0, -1, DataElementUse.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEOperation(getDataElementUse__ResolveDataType(), this.getDataType(), "resolveDataType", 0, 1, IS_UNIQUE, IS_ORDERED); + + // Initialize enums and add enum literals + initEEnum(unassignedMemberTreatmentEEnum, UnassignedMemberTreatment.class, "UnassignedMemberTreatment"); + addEEnumLiteral(unassignedMemberTreatmentEEnum, UnassignedMemberTreatment.UNDEFINED); + addEEnumLiteral(unassignedMemberTreatmentEEnum, UnassignedMemberTreatment.ANY_VALUE); + addEEnumLiteral(unassignedMemberTreatmentEEnum, UnassignedMemberTreatment.ANY_VALUE_OR_OMIT); + + initEEnum(componentInstanceRoleEEnum, ComponentInstanceRole.class, "ComponentInstanceRole"); + addEEnumLiteral(componentInstanceRoleEEnum, ComponentInstanceRole.SUT); + addEEnumLiteral(componentInstanceRoleEEnum, ComponentInstanceRole.TESTER); + + initEEnum(gateTypeKindEEnum, GateTypeKind.class, "GateTypeKind"); + addEEnumLiteral(gateTypeKindEEnum, GateTypeKind.MESSAGE); + addEEnumLiteral(gateTypeKindEEnum, GateTypeKind.PROCEDURE); + + initEEnum(timeLabelUseKindEEnum, TimeLabelUseKind.class, "TimeLabelUseKind"); + addEEnumLiteral(timeLabelUseKindEEnum, TimeLabelUseKind.LAST); + addEEnumLiteral(timeLabelUseKindEEnum, TimeLabelUseKind.PREVIOUS); + addEEnumLiteral(timeLabelUseKindEEnum, TimeLabelUseKind.FIRST); + + initEEnum(parameterKindEEnum, ParameterKind.class, "ParameterKind"); + addEEnumLiteral(parameterKindEEnum, ParameterKind.IN); + addEEnumLiteral(parameterKindEEnum, ParameterKind.OUT); + addEEnumLiteral(parameterKindEEnum, ParameterKind.EXCEPTION); + + // Create resource + createResource(eNS_URI); + + // Create annotations + // http://www.eclipse.org/emf/2002/Ecore + createEcoreAnnotations(); + // http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot + createPivotAnnotations(); + // http://www.eclipse.org/OCL/Collection + createCollectionAnnotations(); + } + + /** + * Initializes the annotations for http://www.eclipse.org/emf/2002/Ecore. + * + * + * @generated + */ + protected void createEcoreAnnotations() + { + String source = "http://www.eclipse.org/emf/2002/Ecore"; + addAnnotation + (this, + source, + new String[] + { + "invocationDelegates", "http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot", + "settingDelegates", "http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot", + "validationDelegates", "http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot" + }); + } + + /** + * Initializes the annotations for http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot. + * + * + * @generated + */ + protected void createPivotAnnotations() + { + String source = "http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot"; + addAnnotation + (getElement__Container(), + source, + new String[] + { + "body", "\n if (not self.oclContainer().oclIsUndefined()) then\n self.oclContainer().oclAsType(Element)\n else \n null\n endif" + }); + addAnnotation + (getElement__GetParentTestDescription(), + source, + new String[] + { + "body", " \n if (not self.container().oclIsUndefined()) then\n if (self.container().oclIsKindOf(TestDescription)) then\n self.container().oclAsType(TestDescription)\n else\n self.container().getParentTestDescription()\n endif\n else \n null\n endif" + }); + addAnnotation + (getPackageableElement__ConformsTo__String(), + source, + new String[] + { + "body", " \n if (self.getElementNamed(n).oclIsUndefined()) then\n false\n else\n self.conformsTo(self.getElementNamed(n)) \n endif\n " + }); + addAnnotation + (getPackageableElement__GetElementNamed__String(), + source, + new String[] + { + "body", "\n self.oclType().allInstances()->select(e | e.name = n)->asOrderedSet()->first()\n " + }); + addAnnotation + (getPackageableElement__ConformsTo__PackageableElement(), + source, + new String[] + { + "body", "\n if (self = n) then\n true\n else\n if (self.oclIsKindOf(AnnotationType) and not self.oclAsType(AnnotationType).extension.oclIsUndefined()) then\n self.oclAsType(AnnotationType).extension.isExtending(n)\n else\n if (self.oclIsKindOf(ComponentType) and not self.oclAsType(ComponentType).extension.oclIsUndefined()) then\n self.oclAsType(ComponentType).extension.isExtending(n)\n else\n if (self.oclIsKindOf(GateType) and not self.oclAsType(GateType).extension.oclIsUndefined()) then\n self.oclAsType(GateType).extension.isExtending(n)\n else\n if (self.oclIsKindOf(StructuredDataType)) then\n self.oclAsType(StructuredDataType).extension->exists(ex | ex.isExtending(n))\n else\n if (self.oclIsKindOf(SimpleDataType) and not self.oclAsType(SimpleDataType).extension.oclIsUndefined()) then\n self.oclAsType(SimpleDataType).extension.isExtending(n)\n else\n false\n endif\n endif\n endif\n endif\n endif\n endif\n " + }); + addAnnotation + (getNamedElement_QualifiedName(), + source, + new String[] + { + "derivation", "\n if (self.name.oclIsUndefined()) then\n \'\'\n else\n if (not self.oclContainer().oclIsUndefined()) then\n if (self.oclContainer().oclIsKindOf(NamedElement)) then\n self.oclContainer().oclAsType(NamedElement).qualifiedName + \'::\' + self.name\n else\n self.oclContainer().oclAsType(ocl::OclElement)->closure(oclContainer())\n ->select(c | c.oclIsKindOf(NamedElement))\n ->asOrderedSet()\n ->first().oclAsType(NamedElement).qualifiedName + \'::\' + self.name\n endif\n else\n self.name\n endif\n endif" + }); + addAnnotation + (getDataType__AllConstraints(), + source, + new String[] + { + "body", "\n self.constraint\n " + }); + addAnnotation + (getSimpleDataType__AllConstraints(), + source, + new String[] + { + "body", "\n if (not self.extension.oclIsUndefined()) then\n self.extension.extending.oclAsType(SimpleDataType).allConstraints()->union(self.constraint)->asOrderedSet()\n else \n self.constraint\n endif\n " + }); + addAnnotation + (getStructuredDataType__AllMembers(), + source, + new String[] + { + "body", "\n if (not self.extension->isEmpty()) then\n self.extension->collect(e | e.extending.oclAsType(StructuredDataType).allMembers())->union(self.member)->asOrderedSet()\n else \n self.member\n endif\n " + }); + addAnnotation + (getStructuredDataType__AllConstraints(), + source, + new String[] + { + "body", "\n if (not self.extension->isEmpty()) then\n self.extension->collect(e | e.extending.oclAsType(StructuredDataType).allConstraints())->union(self.constraint)->asOrderedSet()\n else \n self.constraint\n endif\n " + }); + addAnnotation + (getDataUse__ResolveDataType(), + source, + new String[] + { + "body", "null" + }); + addAnnotation + (getDataUse__IsEffectivelyStatic(), + source, + new String[] + { + "body", "\n (self.oclIsKindOf(StaticDataUse)\n or (self.oclIsKindOf(DataElementUse) and \n (self.oclAsType(DataElementUse).dataElement.oclIsUndefined()\n or self.oclAsType(DataElementUse).dataElement.oclIsKindOf(DataInstance)\n or self.oclAsType(DataElementUse).dataElement.oclIsKindOf(DataType)\n )\n )\n )\n and self.argument->forAll(a | a.dataUse.isEffectivelyStatic())\n " + }); + addAnnotation + (getFormalParameterUse__ResolveDataType(), + source, + new String[] + { + "body", "self.parameter.dataType" + }); + addAnnotation + (getFunctionCall__ResolveDataType(), + source, + new String[] + { + "body", "self.function.returnType" + }); + addAnnotation + (getVariableUse__ResolveDataType(), + source, + new String[] + { + "body", "self.variable.dataType" + }); + addAnnotation + (getComponentType__AllGates(), + source, + new String[] + { + "body", "\n if (not self.extension.oclIsUndefined()) then\n self.extension.extending.oclAsType(ComponentType).allGates()->union(self.gateInstance)->asOrderedSet()\n else \n self.gateInstance\n endif\n " + }); + addAnnotation + (getComponentType__AllTimers(), + source, + new String[] + { + "body", "\n if (not self.extension.oclIsUndefined()) then\n self.extension.extending.oclAsType(ComponentType).allTimers()->union(self.timer)->asOrderedSet()\n else \n self.timer\n endif\n " + }); + addAnnotation + (getComponentType__AllVariables(), + source, + new String[] + { + "body", "\n if (not self.extension.oclIsUndefined()) then\n self.extension.extending.oclAsType(ComponentType).allVariables()->union(self.variable)->asOrderedSet()\n else \n self.variable\n endif\n " + }); + addAnnotation + (getGateType__AllDataTypes(), + source, + new String[] + { + "body", "\n if (not self.extension.oclIsUndefined()) then\n self.extension.extending.oclAsType(GateType).allDataTypes()->union(self.dataType)->asOrderedSet()\n else \n self.dataType\n endif\n " + }); + addAnnotation + (getSpecialValueUse__ResolveDataType(), + source, + new String[] + { + "body", "\n if (self.container().oclIsTypeOf(MemberAssignment)) then\n self.container().oclAsType(MemberAssignment).member.dataType\n else \n if (self.container().oclIsTypeOf(ParameterBinding)) then\n self.container().oclAsType(ParameterBinding).parameter.dataType\n else \n if (self.container().oclIsTypeOf(Interaction) and \n self.oclIsTypeOf(AnyValue)) then\n self.oclAsType(AnyValue).dataType\n else\n null\n endif\n endif\n endif\n " + }); + addAnnotation + (getAnyValue__ResolveDataType(), + source, + new String[] + { + "body", "\n if (not self.dataType.oclIsUndefined()) then\n self.dataType\n else \n if (self.container().oclIsTypeOf(MemberAssignment)) then\n self.container().oclAsType(MemberAssignment).member.dataType\n else \n if (self.container().oclIsTypeOf(ParameterBinding)) then\n self.container().oclAsType(ParameterBinding).parameter.dataType\n else\n if (self.container().oclIsTypeOf(CollectionDataInstance)) then\n self.container().oclAsType(CollectionDataInstance).dataType.oclAsType(CollectionDataType).itemType\n else\n if (self.container().oclIsTypeOf(DataElementUse)) then\n self.container().oclAsType(DataElementUse).resolveDataType().oclAsType(CollectionDataType).itemType\n else\n if (self.container().oclIsTypeOf(DataInstanceUse)) then\n self.container().oclAsType(DataInstanceUse).resolveDataType().oclAsType(CollectionDataType).itemType\n else\n null\n endif\n endif\n endif\n endif\n endif\n endif\n " + }); + addAnnotation + (getDataInstanceUse__ResolveDataType(), + source, + new String[] + { + "body", "\n if (not self.dataInstance.oclIsUndefined()) then\n self.dataInstance.dataType\n else \n if (not self.dataType.oclIsUndefined()) then\n self.dataType\n else \n if (self.container().oclIsTypeOf(MemberAssignment)) then\n self.container().oclAsType(MemberAssignment).member.dataType\n else \n if (self.container().oclIsTypeOf(ParameterBinding)) then\n self.container().oclAsType(ParameterBinding).parameter.dataType\n else\n if (self.container().oclIsTypeOf(CollectionDataInstance)) then\n self.container().oclAsType(CollectionDataInstance).dataType.oclAsType(CollectionDataType).itemType\n else\n if (self.container().oclIsTypeOf(DataElementUse)) then\n self.container().oclAsType(DataElementUse).resolveDataType().oclAsType(CollectionDataType).itemType\n else\n if (self.container().oclIsTypeOf(DataInstanceUse)) then\n self.container().oclAsType(DataInstanceUse).resolveDataType().oclAsType(CollectionDataType).itemType\n else\n null\n endif\n endif\n endif\n endif\n endif\n endif\n endif\n " + }); + addAnnotation + (getTimerOperation__GetParticipatingComponents(), + source, + new String[] + { + "body", "\n if self.getParentTestDescription()->exists(td | td.isLocallyOrdered) then\n OrderedSet { self.componentInstance }\n else\n self.getParentTestDescription().testConfiguration.componentInstance->asOrderedSet()\n endif\n " + }); + addAnnotation + (getAtomicBehaviour__GetParticipatingComponents(), + source, + new String[] + { + "body", "\n if self.getParentTestDescription()->exists(td | td.isLocallyOrdered) and self.container().oclIsKindOf(Block) then\n self.container().oclAsType(Block).getParticipatingComponentsExcluding(self)->asOrderedSet()\n else\n self.getParentTestDescription().testConfiguration.componentInstance->asOrderedSet()\n endif\n " + }); + addAnnotation + (getBehaviour__IsTesterInputEvent(), + source, + new String[] + { + "body", "\n if (self.oclIsKindOf(TimeOut) or \n self.oclIsKindOf(Quiescence) or\n (self.oclIsKindOf(Interaction) and\n self.oclAsType(Interaction).sourceGate.component.role = ComponentInstanceRole::SUT and\n self.oclAsType(Interaction).target->exists(t | t.targetGate.component.role = ComponentInstanceRole::Tester)\n )\n ) then\n true\n else\n false\n endif" + }); + addAnnotation + (getBehaviour__GetParticipatingComponents(), + source, + new String[] + { + "body", "\n if self.getParentTestDescription()->exists(td | td.isLocallyOrdered) then\n OrderedSet{}\n else\n self.getParentTestDescription().testConfiguration.componentInstance->asOrderedSet()\n endif\n " + }); + addAnnotation + (getTimeOperation__GetParticipatingComponents(), + source, + new String[] + { + "body", "\n if self.getParentTestDescription()->exists(td | td.isLocallyOrdered) and self.container().oclIsKindOf(Block) then (\n if not self.componentInstance.oclIsUndefined() then\n OrderedSet { self.componentInstance }\n else\n self.container().oclAsType(Block).getParticipatingComponentsExcluding(self)->asOrderedSet()\n endif\n ) else\n self.getParentTestDescription().testConfiguration.componentInstance->asOrderedSet()\n endif\n " + }); + addAnnotation + (getQuiescence__GetParticipatingComponents(), + source, + new String[] + { + "body", "\n if self.getParentTestDescription()->exists(td | td.isLocallyOrdered) and self.container().oclIsKindOf(Block) then (\n if not self.componentInstance.oclIsUndefined() or not self.gateReference.oclIsUndefined() then\n self.componentInstance->including(self.gateReference.component)->asOrderedSet()\n else\n self.container().oclAsType(Block).getParticipatingComponentsExcluding(self)->asOrderedSet()\n endif\n ) else\n self.getParentTestDescription().testConfiguration.componentInstance->asOrderedSet()\n endif\n " + }); + addAnnotation + (getTimeLabelUse__ResolveDataType(), + source, + new String[] + { + "body", "Time.allInstances()->asOrderedSet()->first()" + }); + addAnnotation + (getTestConfiguration__CompatibleWith__TestConfiguration_EList(), + source, + new String[] + { + "body", "self.componentInstance->forAll(c | cb->exists(formalComponent = c)) and\nself.connection->forAll(c1 | tc.connection->exists(c2 |\n\tc1.endPoint->reject(ep1 | c2.endPoint->exists(ep2 |\n\t\tcb->any(formalComponent = ep1.component).actualComponent = ep2.component and ep1.gate = ep2.gate\n\t))->isEmpty()\n))" + }); + addAnnotation + (getBlock__GetParticipatingComponents(), + source, + new String[] + { + "body", "\n if self.getParentTestDescription()->exists(td | td.isLocallyOrdered) then\n self.behaviour.getParticipatingComponents()->asOrderedSet()\n else\n self.getParentTestDescription().testConfiguration.componentInstance->asOrderedSet()\n endif\n " + }); + addAnnotation + (getBlock__GetParticipatingComponentsExcluding__Behaviour(), + source, + new String[] + { + "body", "\n if self.getParentTestDescription()->exists(td | td.isLocallyOrdered) then\n self.behaviour->excluding(excluded).getParticipatingComponents()->asOrderedSet()\n else\n self.getParentTestDescription().testConfiguration.componentInstance->asOrderedSet()\n endif\n " + }); + addAnnotation + (getPeriodicBehaviour__GetParticipatingComponents(), + source, + new String[] + { + "body", "\n if self.getParentTestDescription()->exists(td | td.isLocallyOrdered) then\n self.block.getParticipatingComponents()->asOrderedSet()\n else\n self.getParentTestDescription().testConfiguration.componentInstance->asOrderedSet()\n endif\n " + }); + addAnnotation + (getExceptionalBehaviour__GetParticipatingComponents(), + source, + new String[] + { + "body", "\n if self.getParentTestDescription()->exists(td | td.isLocallyOrdered) then\n self.block.getParticipatingComponents()->asOrderedSet()\n else\n self.getParentTestDescription().testConfiguration.componentInstance->asOrderedSet()\n endif\n " + }); + addAnnotation + (getMultipleCombinedBehaviour__GetParticipatingComponents(), + source, + new String[] + { + "body", "\n if self.getParentTestDescription()->exists(td | td.isLocallyOrdered) then\n self.periodic.getParticipatingComponents()\n ->union(self.exceptional.getParticipatingComponents())\n ->union(self.block.getParticipatingComponents())->asOrderedSet()\n else\n self.getParentTestDescription().testConfiguration.componentInstance->asOrderedSet()\n endif\n " + }); + addAnnotation + (getSingleCombinedBehaviour__GetParticipatingComponents(), + source, + new String[] + { + "body", "\n if self.getParentTestDescription()->exists(td | td.isLocallyOrdered) then\n self.periodic.getParticipatingComponents()\n ->union(self.exceptional.getParticipatingComponents())\n ->union(self.block.getParticipatingComponents())->asOrderedSet()\n else\n self.getParentTestDescription().testConfiguration.componentInstance->asOrderedSet()\n endif\n " + }); + addAnnotation + (getAssignment__GetParticipatingComponents(), + source, + new String[] + { + "body", "\n if self.getParentTestDescription()->exists(td | td.isLocallyOrdered) and self.container().oclIsKindOf(Block) then (\n if not self.variable.componentInstance.oclIsUndefined() then\n OrderedSet { self.variable.componentInstance }\n else\n self.container().oclAsType(Block).getParticipatingComponentsExcluding(self)->asOrderedSet()\n endif\n ) else\n self.getParentTestDescription().testConfiguration.componentInstance->asOrderedSet()\n endif\n " + }); + addAnnotation + (getActionBehaviour__GetParticipatingComponents(), + source, + new String[] + { + "body", "\n if self.getParentTestDescription()->exists(td | td.isLocallyOrdered) and self.container().oclIsKindOf(Block) then (\n if not self.componentInstance.oclIsUndefined() then\n OrderedSet { self.componentInstance }\n else\n self.container().oclAsType(Block).getParticipatingComponentsExcluding(self)->asOrderedSet()\n endif\n ) else\n self.getParentTestDescription().testConfiguration.componentInstance->asOrderedSet()\n endif\n " + }); + addAnnotation + (getTestDescriptionReference__GetParticipatingComponents(), + source, + new String[] + { + "body", "\n if self.getParentTestDescription()->exists(td | td.isLocallyOrdered) and not self.componentInstanceBinding->isEmpty() then\n self.componentInstanceBinding.actualComponent->asOrderedSet()\n else\n self.getParentTestDescription().testConfiguration.componentInstance->asOrderedSet()\n endif\n " + }); + addAnnotation + (getInteraction__GetParticipatingComponents(), + source, + new String[] + { + "body", "\n if self.getParentTestDescription()->exists(td | td.isLocallyOrdered) then\n self.target\n ->collect(targetGate.component)\n ->including(sourceGate.component)\n ->asOrderedSet()\n else\n self.getParentTestDescription().testConfiguration.componentInstance->asOrderedSet()\n endif\n " + }); + addAnnotation + (getPredefinedFunctionCall__ResolveDataType(), + source, + new String[] + { + "body", "self.function.returnType" + }); + addAnnotation + (getExtension__TransitiveExtending(), + source, + new String[] + { + "body", "\n if (self.extending.oclIsKindOf(AnnotationType)) then\n OrderedSet { self.extending.oclAsType(AnnotationType).extension }\n else\n if (self.extending.oclIsKindOf(ComponentType)) then\n OrderedSet { self.extending.oclAsType(ComponentType).extension }\n else\n if (self.extending.oclIsKindOf(GateType)) then\n OrderedSet { self.extending.oclAsType(GateType).extension }\n else\n if (self.extending.oclIsKindOf(StructuredDataType)) then\n self.extending.oclAsType(StructuredDataType).extension\n else\n if (self.extending.oclIsKindOf(SimpleDataType)) then\n OrderedSet { self.extending.oclAsType(SimpleDataType).extension }\n else\n OrderedSet { }\n endif\n endif\n endif\n endif\n endif\n " + }); + addAnnotation + (getExtension__IsExtending__PackageableElement(), + source, + new String[] + { + "body", "\n if (self.extending = e) then\n true\n else\n if (self->closure(transitiveExtending())->includes(e)) then\n true\n else\n false\n endif \n endif\n " + }); + addAnnotation + (getLiteralValueUse__ResolveDataType(), + source, + new String[] + { + "body", "\n if (not self.dataType.oclIsUndefined()) then\n self.dataType\n else \n if (self.container().oclIsTypeOf(MemberAssignment)) then\n self.container().oclAsType(MemberAssignment).member.dataType\n else \n if (self.container().oclIsTypeOf(ParameterBinding)) then\n self.container().oclAsType(ParameterBinding).parameter.dataType\n else\n if (not self.intValue.oclIsUndefined()) then\n SimpleDataType.allInstances()->select(t | t.name = \'Integer\')->asOrderedSet()->first()\n else\n if (not self.boolValue.oclIsUndefined()) then\n SimpleDataType.allInstances()->select(t | t.name = \'Boolean\')->asOrderedSet()->first()\n else \n SimpleDataType.allInstances()->select(t | t.name = \'String\')->asOrderedSet()->first()\n endif\n endif\n endif\n endif\n endif\n " + }); + addAnnotation + (getDataElementUse__ResolveDataType(), + source, + new String[] + { + "body", "\n if (not self.dataElement.oclIsUndefined()) then\n if (self.dataElement.oclIsKindOf(DataType)) then\n self.dataElement.oclAsType(DataType)\n else\n if (self.dataElement.oclIsKindOf(DataInstance)) then\n self.dataElement.oclAsType(DataInstance).dataType\n else \n if (self.dataElement.oclIsTypeOf(FormalParameter)) then\n self.dataElement.oclAsType(FormalParameter).dataType\n else \n if (self.dataElement.oclIsTypeOf(Function)) then\n self.dataElement.oclAsType(Function).returnType\n else\n null\n endif\n endif \n endif\n endif\n else \n if (self.container().oclIsTypeOf(MemberAssignment)) then\n self.container().oclAsType(MemberAssignment).member.dataType\n else \n if (self.container().oclIsTypeOf(ParameterBinding)) then\n self.container().oclAsType(ParameterBinding).parameter.dataType\n else\n if (self.container().oclIsTypeOf(CollectionDataInstance)) then\n self.container().oclAsType(CollectionDataInstance).dataType.oclAsType(CollectionDataType).itemType\n else\n if (self.container().oclIsTypeOf(DataElementUse)) then\n self.container().oclAsType(DataElementUse).resolveDataType().oclAsType(CollectionDataType).itemType\n else\n if (self.container().oclIsTypeOf(DataInstanceUse)) then\n self.container().oclAsType(DataInstanceUse).resolveDataType().oclAsType(CollectionDataType).itemType\n else\n null\n endif\n endif\n endif\n endif\n endif\n endif\n " + }); + } + + /** + * Initializes the annotations for http://www.eclipse.org/OCL/Collection. + * + * + * @generated + */ + protected void createCollectionAnnotations() + { + String source = "http://www.eclipse.org/OCL/Collection"; + addAnnotation + (getDataType__AllConstraints(), + source, + new String[] + { + "nullFree", "false" + }); + addAnnotation + (getDataType_Constraint(), + source, + new String[] + { + "nullFree", "false" + }); + addAnnotation + (getSimpleDataType__AllConstraints(), + source, + new String[] + { + "nullFree", "false" + }); + addAnnotation + (getStructuredDataType__AllMembers(), + source, + new String[] + { + "nullFree", "false" + }); + addAnnotation + (getStructuredDataType__AllConstraints(), + source, + new String[] + { + "nullFree", "false" + }); + addAnnotation + (getStructuredDataType_Extension(), + source, + new String[] + { + "nullFree", "false" + }); + addAnnotation + (getMember_Constraint(), + source, + new String[] + { + "nullFree", "false" + }); + addAnnotation + (getComponentType__AllGates(), + source, + new String[] + { + "nullFree", "false" + }); + addAnnotation + (getComponentType__AllTimers(), + source, + new String[] + { + "nullFree", "false" + }); + addAnnotation + (getComponentType__AllVariables(), + source, + new String[] + { + "nullFree", "false" + }); + addAnnotation + (getGateType__AllDataTypes(), + source, + new String[] + { + "nullFree", "false" + }); + addAnnotation + (getDataInstanceUse_Item(), + source, + new String[] + { + "nullFree", "false" + }); + addAnnotation + (getTimerOperation__GetParticipatingComponents(), + source, + new String[] + { + "nullFree", "false" + }); + addAnnotation + (getAtomicBehaviour__GetParticipatingComponents(), + source, + new String[] + { + "nullFree", "false" + }); + addAnnotation + (getBehaviour__GetParticipatingComponents(), + source, + new String[] + { + "nullFree", "false" + }); + addAnnotation + (getTimeOperation__GetParticipatingComponents(), + source, + new String[] + { + "nullFree", "false" + }); + addAnnotation + (getQuiescence__GetParticipatingComponents(), + source, + new String[] + { + "nullFree", "false" + }); + addAnnotation + (getBlock__GetParticipatingComponents(), + source, + new String[] + { + "nullFree", "false" + }); + addAnnotation + (getBlock__GetParticipatingComponentsExcluding__Behaviour(), + source, + new String[] + { + "nullFree", "false" + }); + addAnnotation + (getPeriodicBehaviour__GetParticipatingComponents(), + source, + new String[] + { + "nullFree", "false" + }); + addAnnotation + (getExceptionalBehaviour__GetParticipatingComponents(), + source, + new String[] + { + "nullFree", "false" + }); + addAnnotation + (getMultipleCombinedBehaviour__GetParticipatingComponents(), + source, + new String[] + { + "nullFree", "false" + }); + addAnnotation + (getSingleCombinedBehaviour__GetParticipatingComponents(), + source, + new String[] + { + "nullFree", "false" + }); + addAnnotation + (getTarget_ValueAssignment(), + source, + new String[] + { + "nullFree", "false" + }); + addAnnotation + (getAssignment__GetParticipatingComponents(), + source, + new String[] + { + "nullFree", "false" + }); + addAnnotation + (getActionBehaviour__GetParticipatingComponents(), + source, + new String[] + { + "nullFree", "false" + }); + addAnnotation + (getTestDescriptionReference__GetParticipatingComponents(), + source, + new String[] + { + "nullFree", "false" + }); + addAnnotation + (getInteraction__GetParticipatingComponents(), + source, + new String[] + { + "nullFree", "false" + }); + addAnnotation + (getProcedureCall_Argument(), + source, + new String[] + { + "nullFree", "false" + }); + addAnnotation + (getProcedureSignature_Parameter(), + source, + new String[] + { + "nullFree", "false" + }); + addAnnotation + (getCollectionDataInstance_Item(), + source, + new String[] + { + "nullFree", "false" + }); + addAnnotation + (getExtension__TransitiveExtending(), + source, + new String[] + { + "nullFree", "false" + }); + addAnnotation + (getConstraint_Quantifier(), + source, + new String[] + { + "nullFree", "false" + }); + addAnnotation + (getDataElementUse_Item(), + source, + new String[] + { + "nullFree", "false" + }); + } + +} //tdlPackageImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/Content.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/Content.java new file mode 100644 index 0000000000000000000000000000000000000000..3edcf5ea178fa3332a4f95c6de94d9d579c3ea03 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/Content.java @@ -0,0 +1,85 @@ +/** + */ +package org.etsi.mts.tdl.structuredobjectives; + +import org.eclipse.emf.common.util.EList; + +import org.etsi.mts.tdl.Member; + +/** + * + * A representation of the model object 'Content'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.structuredobjectives.Content#getValue Value}
  • + *
  • {@link org.etsi.mts.tdl.structuredobjectives.Content#getContent Content}
  • + *
  • {@link org.etsi.mts.tdl.structuredobjectives.Content#getMember Member}
  • + *
+ * + * @see org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage#getContent() + * @model + * @generated + */ +public interface Content extends Element +{ + /** + * Returns the value of the 'Value' containment reference. + * + * + * @return the value of the 'Value' containment reference. + * @see #setValue(Value) + * @see org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage#getContent_Value() + * @model containment="true" + * @generated + */ + Value getValue(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.structuredobjectives.Content#getValue Value}' containment reference. + * + * + * @param value the new value of the 'Value' containment reference. + * @see #getValue() + * @generated + */ + void setValue(Value value); + + /** + * Returns the value of the 'Content' containment reference list. + * The list contents are of type {@link org.etsi.mts.tdl.structuredobjectives.Content}. + * + * + * @return the value of the 'Content' containment reference list. + * @see org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage#getContent_Content() + * @model containment="true" ordered="false" + * @generated + */ + EList getContent(); + + /** + * Returns the value of the 'Member' reference. + * + * + * @return the value of the 'Member' reference. + * @see #setMember(Member) + * @see org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage#getContent_Member() + * @model + * @generated + */ + Member getMember(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.structuredobjectives.Content#getMember Member}' reference. + * + * + * @param value the new value of the 'Member' reference. + * @see #getMember() + * @generated + */ + void setMember(Member value); + +} // Content diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/ContentReference.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/ContentReference.java new file mode 100644 index 0000000000000000000000000000000000000000..d0412c0e1629fd9f19190d61681f9e82d18f9cf4 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/ContentReference.java @@ -0,0 +1,46 @@ +/** + */ +package org.etsi.mts.tdl.structuredobjectives; + + +/** + * + * A representation of the model object 'Content Reference'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.structuredobjectives.ContentReference#getContent Content}
  • + *
+ * + * @see org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage#getContentReference() + * @model + * @generated + */ +public interface ContentReference extends Value, Element +{ + /** + * Returns the value of the 'Content' reference. + * + * + * @return the value of the 'Content' reference. + * @see #setContent(Content) + * @see org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage#getContentReference_Content() + * @model required="true" + * @generated + */ + Content getContent(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.structuredobjectives.ContentReference#getContent Content}' reference. + * + * + * @param value the new value of the 'Content' reference. + * @see #getContent() + * @generated + */ + void setContent(Content value); + +} // ContentReference diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/DataReference.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/DataReference.java new file mode 100644 index 0000000000000000000000000000000000000000..84ac72366389c35a6468afe0b9fedc26140e9693 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/DataReference.java @@ -0,0 +1,47 @@ +/** + */ +package org.etsi.mts.tdl.structuredobjectives; + +import org.etsi.mts.tdl.StaticDataUse; + +/** + * + * A representation of the model object 'Data Reference'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.structuredobjectives.DataReference#getContent Content}
  • + *
+ * + * @see org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage#getDataReference() + * @model + * @generated + */ +public interface DataReference extends Value, Element +{ + /** + * Returns the value of the 'Content' containment reference. + * + * + * @return the value of the 'Content' containment reference. + * @see #setContent(StaticDataUse) + * @see org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage#getDataReference_Content() + * @model containment="true" required="true" + * @generated + */ + StaticDataUse getContent(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.structuredobjectives.DataReference#getContent Content}' containment reference. + * + * + * @param value the new value of the 'Content' containment reference. + * @see #getContent() + * @generated + */ + void setContent(StaticDataUse value); + +} // DataReference diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/Element.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/Element.java new file mode 100644 index 0000000000000000000000000000000000000000..8b49cc6d3e8ac43f2bbd18e7d7d27955a10a4815 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/Element.java @@ -0,0 +1,48 @@ +/** + */ +package org.etsi.mts.tdl.structuredobjectives; + +import org.eclipse.emf.common.util.EList; + +import org.etsi.mts.tdl.Comment; + +/** + * + * A representation of the model object 'Element'. + * + * + * + * @see org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage#getElement() + * @model + * @generated + */ +public interface Element extends org.etsi.mts.tdl.Element +{ + /** + * + * + * @model kind="operation" + * annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot body=' \n if (not self.container().oclIsUndefined()) then\n if (self.container().oclIsKindOf(StructuredTestObjective)) then\n self.container().oclAsType(StructuredTestObjective)\n else\n self.container().oclAsType(Element).getTestObjective()\n endif\n else \n null\n endif'" + * @generated + */ + StructuredTestObjective getTestObjective(); + + /** + * + * + * @model required="true" + * annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot body='self->closure(oclContents())->includes(object)'" + * @generated + */ + boolean contains(Element object); + + /** + * + * + * @model kind="operation" ordered="false" + * annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot body='self->closure(oclContents())->select(e | \n\te.oclIsKindOf(tdl::Comment) and not e.oclAsType(tdl::Comment).name.oclIsUndefined()\n).oclAsType(tdl::Comment)->asSet()'" + * @generated + */ + EList getNotes(); + +} // Element diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/Entity.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/Entity.java new file mode 100644 index 0000000000000000000000000000000000000000..c5cd78e9a80c8661bb229cff16eefb7787dd6ec1 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/Entity.java @@ -0,0 +1,19 @@ +/** + */ +package org.etsi.mts.tdl.structuredobjectives; + +import org.etsi.mts.tdl.PackageableElement; + +/** + * + * A representation of the model object 'Entity'. + * + * + * + * @see org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage#getEntity() + * @model + * @generated + */ +public interface Entity extends PackageableElement, Element +{ +} // Entity diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/EntityBinding.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/EntityBinding.java new file mode 100644 index 0000000000000000000000000000000000000000..5cc3fa0afe602dcd865d2fdc36050f20b1ce0c5c --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/EntityBinding.java @@ -0,0 +1,69 @@ +/** + */ +package org.etsi.mts.tdl.structuredobjectives; + + +/** + * + * A representation of the model object 'Entity Binding'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.structuredobjectives.EntityBinding#getTemplateEntity Template Entity}
  • + *
  • {@link org.etsi.mts.tdl.structuredobjectives.EntityBinding#getOccurrenceEntity Occurrence Entity}
  • + *
+ * + * @see org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage#getEntityBinding() + * @model + * @generated + */ +public interface EntityBinding extends Element +{ + /** + * Returns the value of the 'Template Entity' containment reference. + * + * + * @return the value of the 'Template Entity' containment reference. + * @see #setTemplateEntity(EntityReference) + * @see org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage#getEntityBinding_TemplateEntity() + * @model containment="true" required="true" + * @generated + */ + EntityReference getTemplateEntity(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.structuredobjectives.EntityBinding#getTemplateEntity Template Entity}' containment reference. + * + * + * @param value the new value of the 'Template Entity' containment reference. + * @see #getTemplateEntity() + * @generated + */ + void setTemplateEntity(EntityReference value); + + /** + * Returns the value of the 'Occurrence Entity' containment reference. + * + * + * @return the value of the 'Occurrence Entity' containment reference. + * @see #setOccurrenceEntity(EntityReference) + * @see org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage#getEntityBinding_OccurrenceEntity() + * @model containment="true" required="true" + * @generated + */ + EntityReference getOccurrenceEntity(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.structuredobjectives.EntityBinding#getOccurrenceEntity Occurrence Entity}' containment reference. + * + * + * @param value the new value of the 'Occurrence Entity' containment reference. + * @see #getOccurrenceEntity() + * @generated + */ + void setOccurrenceEntity(EntityReference value); + +} // EntityBinding diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/EntityReference.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/EntityReference.java new file mode 100644 index 0000000000000000000000000000000000000000..5e4345cd300a47575e4c25c7dd4f2835134fea4f --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/EntityReference.java @@ -0,0 +1,70 @@ +/** + */ +package org.etsi.mts.tdl.structuredobjectives; + +import org.etsi.mts.tdl.ComponentInstance; + +/** + * + * A representation of the model object 'Entity Reference'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.structuredobjectives.EntityReference#getEntity Entity}
  • + *
  • {@link org.etsi.mts.tdl.structuredobjectives.EntityReference#getComponent Component}
  • + *
+ * + * @see org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage#getEntityReference() + * @model + * @generated + */ +public interface EntityReference extends Element +{ + /** + * Returns the value of the 'Entity' reference. + * + * + * @return the value of the 'Entity' reference. + * @see #setEntity(Entity) + * @see org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage#getEntityReference_Entity() + * @model + * @generated + */ + Entity getEntity(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.structuredobjectives.EntityReference#getEntity Entity}' reference. + * + * + * @param value the new value of the 'Entity' reference. + * @see #getEntity() + * @generated + */ + void setEntity(Entity value); + + /** + * Returns the value of the 'Component' reference. + * + * + * @return the value of the 'Component' reference. + * @see #setComponent(ComponentInstance) + * @see org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage#getEntityReference_Component() + * @model + * @generated + */ + ComponentInstance getComponent(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.structuredobjectives.EntityReference#getComponent Component}' reference. + * + * + * @param value the new value of the 'Component' reference. + * @see #getComponent() + * @generated + */ + void setComponent(ComponentInstance value); + +} // EntityReference diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/Event.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/Event.java new file mode 100644 index 0000000000000000000000000000000000000000..955db4bc043a609f5a980183c48297f7fafb6445 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/Event.java @@ -0,0 +1,19 @@ +/** + */ +package org.etsi.mts.tdl.structuredobjectives; + +import org.etsi.mts.tdl.PackageableElement; + +/** + * + * A representation of the model object 'Event'. + * + * + * + * @see org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage#getEvent() + * @model + * @generated + */ +public interface Event extends PackageableElement, Element +{ +} // Event diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/EventArgument.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/EventArgument.java new file mode 100644 index 0000000000000000000000000000000000000000..aabe3fd31c1236d6e6bcaea2912130f8003ec011 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/EventArgument.java @@ -0,0 +1,18 @@ +/** + */ +package org.etsi.mts.tdl.structuredobjectives; + + +/** + * + * A representation of the model object 'Event Argument'. + * + * + * + * @see org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage#getEventArgument() + * @model + * @generated + */ +public interface EventArgument extends Element +{ +} // EventArgument diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/EventOccurrence.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/EventOccurrence.java new file mode 100644 index 0000000000000000000000000000000000000000..a1885e9ef7485d3ab86aae10d3ba5abde180f6db --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/EventOccurrence.java @@ -0,0 +1,63 @@ +/** + */ +package org.etsi.mts.tdl.structuredobjectives; + +import org.eclipse.emf.common.util.EList; + +import org.etsi.mts.tdl.TimeConstraint; +import org.etsi.mts.tdl.TimeLabel; + +/** + * + * A representation of the model object 'Event Occurrence'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.structuredobjectives.EventOccurrence#getTimeConstraint Time Constraint}
  • + *
  • {@link org.etsi.mts.tdl.structuredobjectives.EventOccurrence#getTimeLabel Time Label}
  • + *
+ * + * @see org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage#getEventOccurrence() + * @model + * @generated + */ +public interface EventOccurrence extends Element +{ + /** + * Returns the value of the 'Time Constraint' containment reference list. + * The list contents are of type {@link org.etsi.mts.tdl.TimeConstraint}. + * + * + * @return the value of the 'Time Constraint' containment reference list. + * @see org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage#getEventOccurrence_TimeConstraint() + * @model containment="true" + * @generated + */ + EList getTimeConstraint(); + + /** + * Returns the value of the 'Time Label' containment reference. + * + * + * @return the value of the 'Time Label' containment reference. + * @see #setTimeLabel(TimeLabel) + * @see org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage#getEventOccurrence_TimeLabel() + * @model containment="true" + * @generated + */ + TimeLabel getTimeLabel(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.structuredobjectives.EventOccurrence#getTimeLabel Time Label}' containment reference. + * + * + * @param value the new value of the 'Time Label' containment reference. + * @see #getTimeLabel() + * @generated + */ + void setTimeLabel(TimeLabel value); + +} // EventOccurrence diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/EventOccurrenceSpecification.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/EventOccurrenceSpecification.java new file mode 100644 index 0000000000000000000000000000000000000000..306af5e647364cfa8d20a9a89e81aa0e41235a0e --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/EventOccurrenceSpecification.java @@ -0,0 +1,106 @@ +/** + */ +package org.etsi.mts.tdl.structuredobjectives; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Event Occurrence Specification'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.structuredobjectives.EventOccurrenceSpecification#getEntityReference Entity Reference}
  • + *
  • {@link org.etsi.mts.tdl.structuredobjectives.EventOccurrenceSpecification#getEventReference Event Reference}
  • + *
  • {@link org.etsi.mts.tdl.structuredobjectives.EventOccurrenceSpecification#getOppositeEntityReference Opposite Entity Reference}
  • + *
  • {@link org.etsi.mts.tdl.structuredobjectives.EventOccurrenceSpecification#getEventArgument Event Argument}
  • + *
+ * + * @see org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage#getEventOccurrenceSpecification() + * @model + * @generated + */ +public interface EventOccurrenceSpecification extends EventOccurrence, Element +{ + /** + * Returns the value of the 'Entity Reference' containment reference. + * + * + * @return the value of the 'Entity Reference' containment reference. + * @see #setEntityReference(EntityReference) + * @see org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage#getEventOccurrenceSpecification_EntityReference() + * @model containment="true" + * @generated + */ + EntityReference getEntityReference(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.structuredobjectives.EventOccurrenceSpecification#getEntityReference Entity Reference}' containment reference. + * + * + * @param value the new value of the 'Entity Reference' containment reference. + * @see #getEntityReference() + * @generated + */ + void setEntityReference(EntityReference value); + + /** + * Returns the value of the 'Event Reference' containment reference. + * + * + * @return the value of the 'Event Reference' containment reference. + * @see #setEventReference(EventReference) + * @see org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage#getEventOccurrenceSpecification_EventReference() + * @model containment="true" required="true" + * @generated + */ + EventReference getEventReference(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.structuredobjectives.EventOccurrenceSpecification#getEventReference Event Reference}' containment reference. + * + * + * @param value the new value of the 'Event Reference' containment reference. + * @see #getEventReference() + * @generated + */ + void setEventReference(EventReference value); + + /** + * Returns the value of the 'Opposite Entity Reference' containment reference list. + * The list contents are of type {@link org.etsi.mts.tdl.structuredobjectives.EntityReference}. + * + * + * @return the value of the 'Opposite Entity Reference' containment reference list. + * @see org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage#getEventOccurrenceSpecification_OppositeEntityReference() + * @model containment="true" + * @generated + */ + EList getOppositeEntityReference(); + + /** + * Returns the value of the 'Event Argument' containment reference. + * + * + * @return the value of the 'Event Argument' containment reference. + * @see #setEventArgument(Value) + * @see org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage#getEventOccurrenceSpecification_EventArgument() + * @model containment="true" + * @generated + */ + Value getEventArgument(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.structuredobjectives.EventOccurrenceSpecification#getEventArgument Event Argument}' containment reference. + * + * + * @param value the new value of the 'Event Argument' containment reference. + * @see #getEventArgument() + * @generated + */ + void setEventArgument(Value value); + +} // EventOccurrenceSpecification diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/EventReference.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/EventReference.java new file mode 100644 index 0000000000000000000000000000000000000000..d20efa0260e6a139a57628715536b8b4a9d9b31f --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/EventReference.java @@ -0,0 +1,46 @@ +/** + */ +package org.etsi.mts.tdl.structuredobjectives; + + +/** + * + * A representation of the model object 'Event Reference'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.structuredobjectives.EventReference#getEvent Event}
  • + *
+ * + * @see org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage#getEventReference() + * @model + * @generated + */ +public interface EventReference extends Element +{ + /** + * Returns the value of the 'Event' reference. + * + * + * @return the value of the 'Event' reference. + * @see #setEvent(Event) + * @see org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage#getEventReference_Event() + * @model required="true" + * @generated + */ + Event getEvent(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.structuredobjectives.EventReference#getEvent Event}' reference. + * + * + * @param value the new value of the 'Event' reference. + * @see #getEvent() + * @generated + */ + void setEvent(Event value); + +} // EventReference diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/EventSequence.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/EventSequence.java new file mode 100644 index 0000000000000000000000000000000000000000..c9429f5753ef5bd8b8c024048bf04206ff87dbe4 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/EventSequence.java @@ -0,0 +1,37 @@ +/** + */ +package org.etsi.mts.tdl.structuredobjectives; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Event Sequence'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.structuredobjectives.EventSequence#getEvents Events}
  • + *
+ * + * @see org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage#getEventSequence() + * @model + * @generated + */ +public interface EventSequence extends Element +{ + /** + * Returns the value of the 'Events' containment reference list. + * The list contents are of type {@link org.etsi.mts.tdl.structuredobjectives.EventOccurrence}. + * + * + * @return the value of the 'Events' containment reference list. + * @see org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage#getEventSequence_Events() + * @model containment="true" + * @generated + */ + EList getEvents(); + +} // EventSequence diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/EventSpecificationTemplate.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/EventSpecificationTemplate.java new file mode 100644 index 0000000000000000000000000000000000000000..5242fd9d9730931b84752e15419d17e19d06734b --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/EventSpecificationTemplate.java @@ -0,0 +1,47 @@ +/** + */ +package org.etsi.mts.tdl.structuredobjectives; + +import org.etsi.mts.tdl.PackageableElement; + +/** + * + * A representation of the model object 'Event Specification Template'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.structuredobjectives.EventSpecificationTemplate#getEventSpecification Event Specification}
  • + *
+ * + * @see org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage#getEventSpecificationTemplate() + * @model + * @generated + */ +public interface EventSpecificationTemplate extends PackageableElement, Element +{ + /** + * Returns the value of the 'Event Specification' containment reference. + * + * + * @return the value of the 'Event Specification' containment reference. + * @see #setEventSpecification(EventOccurrenceSpecification) + * @see org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage#getEventSpecificationTemplate_EventSpecification() + * @model containment="true" required="true" + * @generated + */ + EventOccurrenceSpecification getEventSpecification(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.structuredobjectives.EventSpecificationTemplate#getEventSpecification Event Specification}' containment reference. + * + * + * @param value the new value of the 'Event Specification' containment reference. + * @see #getEventSpecification() + * @generated + */ + void setEventSpecification(EventOccurrenceSpecification value); + +} // EventSpecificationTemplate diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/EventTemplateOccurrence.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/EventTemplateOccurrence.java new file mode 100644 index 0000000000000000000000000000000000000000..a7078d6a1471363122fbf3f602c533781af93bca --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/EventTemplateOccurrence.java @@ -0,0 +1,83 @@ +/** + */ +package org.etsi.mts.tdl.structuredobjectives; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Event Template Occurrence'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.structuredobjectives.EventTemplateOccurrence#getEventTemplate Event Template}
  • + *
  • {@link org.etsi.mts.tdl.structuredobjectives.EventTemplateOccurrence#getEntityBinding Entity Binding}
  • + *
  • {@link org.etsi.mts.tdl.structuredobjectives.EventTemplateOccurrence#getOccurrenceArgument Occurrence Argument}
  • + *
+ * + * @see org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage#getEventTemplateOccurrence() + * @model + * @generated + */ +public interface EventTemplateOccurrence extends EventOccurrence, Element +{ + /** + * Returns the value of the 'Event Template' reference. + * + * + * @return the value of the 'Event Template' reference. + * @see #setEventTemplate(EventSpecificationTemplate) + * @see org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage#getEventTemplateOccurrence_EventTemplate() + * @model required="true" + * @generated + */ + EventSpecificationTemplate getEventTemplate(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.structuredobjectives.EventTemplateOccurrence#getEventTemplate Event Template}' reference. + * + * + * @param value the new value of the 'Event Template' reference. + * @see #getEventTemplate() + * @generated + */ + void setEventTemplate(EventSpecificationTemplate value); + + /** + * Returns the value of the 'Entity Binding' containment reference list. + * The list contents are of type {@link org.etsi.mts.tdl.structuredobjectives.EntityBinding}. + * + * + * @return the value of the 'Entity Binding' containment reference list. + * @see org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage#getEventTemplateOccurrence_EntityBinding() + * @model containment="true" ordered="false" + * @generated + */ + EList getEntityBinding(); + + /** + * Returns the value of the 'Occurrence Argument' containment reference. + * + * + * @return the value of the 'Occurrence Argument' containment reference. + * @see #setOccurrenceArgument(Value) + * @see org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage#getEventTemplateOccurrence_OccurrenceArgument() + * @model containment="true" + * @generated + */ + Value getOccurrenceArgument(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.structuredobjectives.EventTemplateOccurrence#getOccurrenceArgument Occurrence Argument}' containment reference. + * + * + * @param value the new value of the 'Occurrence Argument' containment reference. + * @see #getOccurrenceArgument() + * @generated + */ + void setOccurrenceArgument(Value value); + +} // EventTemplateOccurrence diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/ExpectedBehaviour.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/ExpectedBehaviour.java new file mode 100644 index 0000000000000000000000000000000000000000..523afaeef36d6b32186351dd77b398015b9312ee --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/ExpectedBehaviour.java @@ -0,0 +1,69 @@ +/** + */ +package org.etsi.mts.tdl.structuredobjectives; + + +/** + * + * A representation of the model object 'Expected Behaviour'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.structuredobjectives.ExpectedBehaviour#getWhenClause When Clause}
  • + *
  • {@link org.etsi.mts.tdl.structuredobjectives.ExpectedBehaviour#getThenClause Then Clause}
  • + *
+ * + * @see org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage#getExpectedBehaviour() + * @model + * @generated + */ +public interface ExpectedBehaviour extends Element +{ + /** + * Returns the value of the 'When Clause' containment reference. + * + * + * @return the value of the 'When Clause' containment reference. + * @see #setWhenClause(EventSequence) + * @see org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage#getExpectedBehaviour_WhenClause() + * @model containment="true" + * @generated + */ + EventSequence getWhenClause(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.structuredobjectives.ExpectedBehaviour#getWhenClause When Clause}' containment reference. + * + * + * @param value the new value of the 'When Clause' containment reference. + * @see #getWhenClause() + * @generated + */ + void setWhenClause(EventSequence value); + + /** + * Returns the value of the 'Then Clause' containment reference. + * + * + * @return the value of the 'Then Clause' containment reference. + * @see #setThenClause(EventSequence) + * @see org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage#getExpectedBehaviour_ThenClause() + * @model containment="true" required="true" + * @generated + */ + EventSequence getThenClause(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.structuredobjectives.ExpectedBehaviour#getThenClause Then Clause}' containment reference. + * + * + * @param value the new value of the 'Then Clause' containment reference. + * @see #getThenClause() + * @generated + */ + void setThenClause(EventSequence value); + +} // ExpectedBehaviour diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/FinalConditions.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/FinalConditions.java new file mode 100644 index 0000000000000000000000000000000000000000..d780894d970c16a4295e2fe225ace5826d74cd76 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/FinalConditions.java @@ -0,0 +1,46 @@ +/** + */ +package org.etsi.mts.tdl.structuredobjectives; + + +/** + * + * A representation of the model object 'Final Conditions'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.structuredobjectives.FinalConditions#getConditions Conditions}
  • + *
+ * + * @see org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage#getFinalConditions() + * @model + * @generated + */ +public interface FinalConditions extends Element +{ + /** + * Returns the value of the 'Conditions' containment reference. + * + * + * @return the value of the 'Conditions' containment reference. + * @see #setConditions(EventSequence) + * @see org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage#getFinalConditions_Conditions() + * @model containment="true" required="true" + * @generated + */ + EventSequence getConditions(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.structuredobjectives.FinalConditions#getConditions Conditions}' containment reference. + * + * + * @param value the new value of the 'Conditions' containment reference. + * @see #getConditions() + * @generated + */ + void setConditions(EventSequence value); + +} // FinalConditions diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/InitialConditions.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/InitialConditions.java new file mode 100644 index 0000000000000000000000000000000000000000..2fed12d1198894081d86e96f50397f67b6413916 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/InitialConditions.java @@ -0,0 +1,46 @@ +/** + */ +package org.etsi.mts.tdl.structuredobjectives; + + +/** + * + * A representation of the model object 'Initial Conditions'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.structuredobjectives.InitialConditions#getConditions Conditions}
  • + *
+ * + * @see org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage#getInitialConditions() + * @model + * @generated + */ +public interface InitialConditions extends Element +{ + /** + * Returns the value of the 'Conditions' containment reference. + * + * + * @return the value of the 'Conditions' containment reference. + * @see #setConditions(EventSequence) + * @see org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage#getInitialConditions_Conditions() + * @model containment="true" required="true" + * @generated + */ + EventSequence getConditions(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.structuredobjectives.InitialConditions#getConditions Conditions}' containment reference. + * + * + * @param value the new value of the 'Conditions' containment reference. + * @see #getConditions() + * @generated + */ + void setConditions(EventSequence value); + +} // InitialConditions diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/LiteralValue.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/LiteralValue.java new file mode 100644 index 0000000000000000000000000000000000000000..caee4d2aacd1b25fb5e2464f3b6242e07ea678af --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/LiteralValue.java @@ -0,0 +1,62 @@ +/** + */ +package org.etsi.mts.tdl.structuredobjectives; + +import org.eclipse.emf.common.util.EList; + +import org.etsi.mts.tdl.DataType; + +/** + * + * A representation of the model object 'Literal Value'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.structuredobjectives.LiteralValue#getContent Content}
  • + *
  • {@link org.etsi.mts.tdl.structuredobjectives.LiteralValue#getDataType Data Type}
  • + *
+ * + * @see org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage#getLiteralValue() + * @model + * @generated + */ +public interface LiteralValue extends Value, Element +{ + /** + * Returns the value of the 'Content' containment reference list. + * The list contents are of type {@link org.etsi.mts.tdl.structuredobjectives.Content}. + * + * + * @return the value of the 'Content' containment reference list. + * @see org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage#getLiteralValue_Content() + * @model containment="true" ordered="false" + * @generated + */ + EList getContent(); + + /** + * Returns the value of the 'Data Type' reference. + * + * + * @return the value of the 'Data Type' reference. + * @see #setDataType(DataType) + * @see org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage#getLiteralValue_DataType() + * @model + * @generated + */ + DataType getDataType(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.structuredobjectives.LiteralValue#getDataType Data Type}' reference. + * + * + * @param value the new value of the 'Data Type' reference. + * @see #getDataType() + * @generated + */ + void setDataType(DataType value); + +} // LiteralValue diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/LiteralValueReference.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/LiteralValueReference.java new file mode 100644 index 0000000000000000000000000000000000000000..f5d8e4cb648e029b0a17dd43befbc5ff1c2f9982 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/LiteralValueReference.java @@ -0,0 +1,46 @@ +/** + */ +package org.etsi.mts.tdl.structuredobjectives; + + +/** + * + * A representation of the model object 'Literal Value Reference'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.structuredobjectives.LiteralValueReference#getContent Content}
  • + *
+ * + * @see org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage#getLiteralValueReference() + * @model + * @generated + */ +public interface LiteralValueReference extends Value, Element +{ + /** + * Returns the value of the 'Content' reference. + * + * + * @return the value of the 'Content' reference. + * @see #setContent(LiteralValue) + * @see org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage#getLiteralValueReference_Content() + * @model required="true" + * @generated + */ + LiteralValue getContent(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.structuredobjectives.LiteralValueReference#getContent Content}' reference. + * + * + * @param value the new value of the 'Content' reference. + * @see #getContent() + * @generated + */ + void setContent(LiteralValue value); + +} // LiteralValueReference diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/PICS.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/PICS.java new file mode 100644 index 0000000000000000000000000000000000000000..71c527bbb8983c9f3fe8d8e57003c85d5e10d763 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/PICS.java @@ -0,0 +1,19 @@ +/** + */ +package org.etsi.mts.tdl.structuredobjectives; + +import org.etsi.mts.tdl.PackageableElement; + +/** + * + * A representation of the model object 'PICS'. + * + * + * + * @see org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage#getPICS() + * @model + * @generated + */ +public interface PICS extends PackageableElement, Element +{ +} // PICS diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/PICSReference.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/PICSReference.java new file mode 100644 index 0000000000000000000000000000000000000000..190e3511dd99d72bf1ca3245e58b5ce514a3ab5c --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/PICSReference.java @@ -0,0 +1,46 @@ +/** + */ +package org.etsi.mts.tdl.structuredobjectives; + + +/** + * + * A representation of the model object 'PICS Reference'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.structuredobjectives.PICSReference#getPics Pics}
  • + *
+ * + * @see org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage#getPICSReference() + * @model + * @generated + */ +public interface PICSReference extends Element +{ + /** + * Returns the value of the 'Pics' reference. + * + * + * @return the value of the 'Pics' reference. + * @see #setPics(PICS) + * @see org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage#getPICSReference_Pics() + * @model required="true" + * @generated + */ + PICS getPics(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.structuredobjectives.PICSReference#getPics Pics}' reference. + * + * + * @param value the new value of the 'Pics' reference. + * @see #getPics() + * @generated + */ + void setPics(PICS value); + +} // PICSReference diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/RepeatedEventSequence.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/RepeatedEventSequence.java new file mode 100644 index 0000000000000000000000000000000000000000..41125cbad56928600562617942eeb2ae9c2dbd8a --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/RepeatedEventSequence.java @@ -0,0 +1,69 @@ +/** + */ +package org.etsi.mts.tdl.structuredobjectives; + + +/** + * + * A representation of the model object 'Repeated Event Sequence'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.structuredobjectives.RepeatedEventSequence#getRepetitions Repetitions}
  • + *
  • {@link org.etsi.mts.tdl.structuredobjectives.RepeatedEventSequence#getInterval Interval}
  • + *
+ * + * @see org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage#getRepeatedEventSequence() + * @model + * @generated + */ +public interface RepeatedEventSequence extends EventSequence, Element +{ + /** + * Returns the value of the 'Repetitions' containment reference. + * + * + * @return the value of the 'Repetitions' containment reference. + * @see #setRepetitions(Value) + * @see org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage#getRepeatedEventSequence_Repetitions() + * @model containment="true" + * @generated + */ + Value getRepetitions(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.structuredobjectives.RepeatedEventSequence#getRepetitions Repetitions}' containment reference. + * + * + * @param value the new value of the 'Repetitions' containment reference. + * @see #getRepetitions() + * @generated + */ + void setRepetitions(Value value); + + /** + * Returns the value of the 'Interval' containment reference. + * + * + * @return the value of the 'Interval' containment reference. + * @see #setInterval(Value) + * @see org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage#getRepeatedEventSequence_Interval() + * @model containment="true" + * @generated + */ + Value getInterval(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.structuredobjectives.RepeatedEventSequence#getInterval Interval}' containment reference. + * + * + * @param value the new value of the 'Interval' containment reference. + * @see #getInterval() + * @generated + */ + void setInterval(Value value); + +} // RepeatedEventSequence diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/StructuredObjectivesFactory.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/StructuredObjectivesFactory.java new file mode 100644 index 0000000000000000000000000000000000000000..85a6c6bdcb1803ff9b20abace73992efe70d6a6b --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/StructuredObjectivesFactory.java @@ -0,0 +1,277 @@ +/** + */ +package org.etsi.mts.tdl.structuredobjectives; + +import org.eclipse.emf.ecore.EFactory; + +/** + * + * The Factory for the model. + * It provides a create method for each non-abstract class of the model. + * + * @see org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage + * @generated + */ +public interface StructuredObjectivesFactory extends EFactory +{ + /** + * The singleton instance of the factory. + * + * + * @generated + */ + StructuredObjectivesFactory eINSTANCE = org.etsi.mts.tdl.structuredobjectives.impl.StructuredObjectivesFactoryImpl.init(); + + /** + * Returns a new object of class 'Element'. + * + * + * @return a new object of class 'Element'. + * @generated + */ + Element createElement(); + + /** + * Returns a new object of class 'Structured Test Objective'. + * + * + * @return a new object of class 'Structured Test Objective'. + * @generated + */ + StructuredTestObjective createStructuredTestObjective(); + + /** + * Returns a new object of class 'Initial Conditions'. + * + * + * @return a new object of class 'Initial Conditions'. + * @generated + */ + InitialConditions createInitialConditions(); + + /** + * Returns a new object of class 'Event Sequence'. + * + * + * @return a new object of class 'Event Sequence'. + * @generated + */ + EventSequence createEventSequence(); + + /** + * Returns a new object of class 'Event Occurrence'. + * + * + * @return a new object of class 'Event Occurrence'. + * @generated + */ + EventOccurrence createEventOccurrence(); + + /** + * Returns a new object of class 'Expected Behaviour'. + * + * + * @return a new object of class 'Expected Behaviour'. + * @generated + */ + ExpectedBehaviour createExpectedBehaviour(); + + /** + * Returns a new object of class 'Final Conditions'. + * + * + * @return a new object of class 'Final Conditions'. + * @generated + */ + FinalConditions createFinalConditions(); + + /** + * Returns a new object of class 'PICS Reference'. + * + * + * @return a new object of class 'PICS Reference'. + * @generated + */ + PICSReference createPICSReference(); + + /** + * Returns a new object of class 'PICS'. + * + * + * @return a new object of class 'PICS'. + * @generated + */ + PICS createPICS(); + + /** + * Returns a new object of class 'Entity'. + * + * + * @return a new object of class 'Entity'. + * @generated + */ + Entity createEntity(); + + /** + * Returns a new object of class 'Event'. + * + * + * @return a new object of class 'Event'. + * @generated + */ + Event createEvent(); + + /** + * Returns a new object of class 'Event Occurrence Specification'. + * + * + * @return a new object of class 'Event Occurrence Specification'. + * @generated + */ + EventOccurrenceSpecification createEventOccurrenceSpecification(); + + /** + * Returns a new object of class 'Entity Reference'. + * + * + * @return a new object of class 'Entity Reference'. + * @generated + */ + EntityReference createEntityReference(); + + /** + * Returns a new object of class 'Event Reference'. + * + * + * @return a new object of class 'Event Reference'. + * @generated + */ + EventReference createEventReference(); + + /** + * Returns a new object of class 'Event Argument'. + * + * + * @return a new object of class 'Event Argument'. + * @generated + */ + EventArgument createEventArgument(); + + /** + * Returns a new object of class 'Data Reference'. + * + * + * @return a new object of class 'Data Reference'. + * @generated + */ + DataReference createDataReference(); + + /** + * Returns a new object of class 'Content'. + * + * + * @return a new object of class 'Content'. + * @generated + */ + Content createContent(); + + /** + * Returns a new object of class 'Literal Value'. + * + * + * @return a new object of class 'Literal Value'. + * @generated + */ + LiteralValue createLiteralValue(); + + /** + * Returns a new object of class 'Content Reference'. + * + * + * @return a new object of class 'Content Reference'. + * @generated + */ + ContentReference createContentReference(); + + /** + * Returns a new object of class 'Literal Value Reference'. + * + * + * @return a new object of class 'Literal Value Reference'. + * @generated + */ + LiteralValueReference createLiteralValueReference(); + + /** + * Returns a new object of class 'Repeated Event Sequence'. + * + * + * @return a new object of class 'Repeated Event Sequence'. + * @generated + */ + RepeatedEventSequence createRepeatedEventSequence(); + + /** + * Returns a new object of class 'Event Template Occurrence'. + * + * + * @return a new object of class 'Event Template Occurrence'. + * @generated + */ + EventTemplateOccurrence createEventTemplateOccurrence(); + + /** + * Returns a new object of class 'Event Specification Template'. + * + * + * @return a new object of class 'Event Specification Template'. + * @generated + */ + EventSpecificationTemplate createEventSpecificationTemplate(); + + /** + * Returns a new object of class 'Entity Binding'. + * + * + * @return a new object of class 'Entity Binding'. + * @generated + */ + EntityBinding createEntityBinding(); + + /** + * Returns a new object of class 'Variants'. + * + * + * @return a new object of class 'Variants'. + * @generated + */ + Variants createVariants(); + + /** + * Returns a new object of class 'Test Objective Variant'. + * + * + * @return a new object of class 'Test Objective Variant'. + * @generated + */ + TestObjectiveVariant createTestObjectiveVariant(); + + /** + * Returns a new object of class 'Variant Binding'. + * + * + * @return a new object of class 'Variant Binding'. + * @generated + */ + VariantBinding createVariantBinding(); + + /** + * Returns the package supported by this factory. + * + * + * @return the package supported by this factory. + * @generated + */ + StructuredObjectivesPackage getStructuredObjectivesPackage(); + +} //StructuredObjectivesFactory diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/StructuredObjectivesPackage.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/StructuredObjectivesPackage.java new file mode 100644 index 0000000000000000000000000000000000000000..8da9718b011e1159f35936ce2987e3b74fffe9c2 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/StructuredObjectivesPackage.java @@ -0,0 +1,5004 @@ +/** + */ +package org.etsi.mts.tdl.structuredobjectives; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EOperation; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.EReference; + +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * The Package for the model. + * It contains accessors for the meta objects to represent + *
    + *
  • each class,
  • + *
  • each feature of each class,
  • + *
  • each operation of each class,
  • + *
  • each enum,
  • + *
  • and each data type
  • + *
+ * + * @see org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesFactory + * @model kind="package" + * annotation="http://www.eclipse.org/OCL/Import tdl='tdl.ecore#/'" + * @generated + */ +public interface StructuredObjectivesPackage extends EPackage +{ + /** + * The package name. + * + * + * @generated + */ + String eNAME = "structuredobjectives"; + + /** + * The package namespace URI. + * + * + * @generated + */ + String eNS_URI = "http://www.etsi.org/spec/TDL/1.3.1/structured"; + + /** + * The package namespace name. + * + * + * @generated + */ + String eNS_PREFIX = "structured"; + + /** + * The singleton instance of the package. + * + * + * @generated + */ + StructuredObjectivesPackage eINSTANCE = org.etsi.mts.tdl.structuredobjectives.impl.StructuredObjectivesPackageImpl.init(); + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.structuredobjectives.impl.ElementImpl Element}' class. + * + * + * @see org.etsi.mts.tdl.structuredobjectives.impl.ElementImpl + * @see org.etsi.mts.tdl.structuredobjectives.impl.StructuredObjectivesPackageImpl#getElement() + * @generated + */ + int ELEMENT = 0; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int ELEMENT__COMMENT = tdlPackage.ELEMENT__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int ELEMENT__ANNOTATION = tdlPackage.ELEMENT__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int ELEMENT__NAME = tdlPackage.ELEMENT__NAME; + + /** + * The number of structural features of the 'Element' class. + * + * + * @generated + * @ordered + */ + int ELEMENT_FEATURE_COUNT = tdlPackage.ELEMENT_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int ELEMENT___CONTAINER = tdlPackage.ELEMENT___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int ELEMENT___GET_PARENT_TEST_DESCRIPTION = tdlPackage.ELEMENT___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Get Test Objective' operation. + * + * + * @generated + * @ordered + */ + int ELEMENT___GET_TEST_OBJECTIVE = tdlPackage.ELEMENT_OPERATION_COUNT + 0; + + /** + * The operation id for the 'Contains' operation. + * + * + * @generated + * @ordered + */ + int ELEMENT___CONTAINS__ELEMENT = tdlPackage.ELEMENT_OPERATION_COUNT + 1; + + /** + * The operation id for the 'Get Notes' operation. + * + * + * @generated + * @ordered + */ + int ELEMENT___GET_NOTES = tdlPackage.ELEMENT_OPERATION_COUNT + 2; + + /** + * The number of operations of the 'Element' class. + * + * + * @generated + * @ordered + */ + int ELEMENT_OPERATION_COUNT = tdlPackage.ELEMENT_OPERATION_COUNT + 3; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.structuredobjectives.impl.StructuredTestObjectiveImpl Structured Test Objective}' class. + * + * + * @see org.etsi.mts.tdl.structuredobjectives.impl.StructuredTestObjectiveImpl + * @see org.etsi.mts.tdl.structuredobjectives.impl.StructuredObjectivesPackageImpl#getStructuredTestObjective() + * @generated + */ + int STRUCTURED_TEST_OBJECTIVE = 1; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURED_TEST_OBJECTIVE__COMMENT = tdlPackage.TEST_OBJECTIVE__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURED_TEST_OBJECTIVE__ANNOTATION = tdlPackage.TEST_OBJECTIVE__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int STRUCTURED_TEST_OBJECTIVE__NAME = tdlPackage.TEST_OBJECTIVE__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int STRUCTURED_TEST_OBJECTIVE__QUALIFIED_NAME = tdlPackage.TEST_OBJECTIVE__QUALIFIED_NAME; + + /** + * The feature id for the 'Objective URI' attribute list. + * + * + * @generated + * @ordered + */ + int STRUCTURED_TEST_OBJECTIVE__OBJECTIVE_URI = tdlPackage.TEST_OBJECTIVE__OBJECTIVE_URI; + + /** + * The feature id for the 'Description' attribute. + * + * + * @generated + * @ordered + */ + int STRUCTURED_TEST_OBJECTIVE__DESCRIPTION = tdlPackage.TEST_OBJECTIVE__DESCRIPTION; + + /** + * The feature id for the 'Configuration' reference. + * + * + * @generated + * @ordered + */ + int STRUCTURED_TEST_OBJECTIVE__CONFIGURATION = tdlPackage.TEST_OBJECTIVE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Initial Conditions' containment reference. + * + * + * @generated + * @ordered + */ + int STRUCTURED_TEST_OBJECTIVE__INITIAL_CONDITIONS = tdlPackage.TEST_OBJECTIVE_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Expected Behaviour' containment reference. + * + * + * @generated + * @ordered + */ + int STRUCTURED_TEST_OBJECTIVE__EXPECTED_BEHAVIOUR = tdlPackage.TEST_OBJECTIVE_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Final Conditions' containment reference. + * + * + * @generated + * @ordered + */ + int STRUCTURED_TEST_OBJECTIVE__FINAL_CONDITIONS = tdlPackage.TEST_OBJECTIVE_FEATURE_COUNT + 3; + + /** + * The feature id for the 'Pics Reference' containment reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURED_TEST_OBJECTIVE__PICS_REFERENCE = tdlPackage.TEST_OBJECTIVE_FEATURE_COUNT + 4; + + /** + * The feature id for the 'Variants' containment reference. + * + * + * @generated + * @ordered + */ + int STRUCTURED_TEST_OBJECTIVE__VARIANTS = tdlPackage.TEST_OBJECTIVE_FEATURE_COUNT + 5; + + /** + * The number of structural features of the 'Structured Test Objective' class. + * + * + * @generated + * @ordered + */ + int STRUCTURED_TEST_OBJECTIVE_FEATURE_COUNT = tdlPackage.TEST_OBJECTIVE_FEATURE_COUNT + 6; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int STRUCTURED_TEST_OBJECTIVE___CONTAINER = tdlPackage.TEST_OBJECTIVE___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int STRUCTURED_TEST_OBJECTIVE___GET_PARENT_TEST_DESCRIPTION = tdlPackage.TEST_OBJECTIVE___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Conforms To' operation. + * + * + * @generated + * @ordered + */ + int STRUCTURED_TEST_OBJECTIVE___CONFORMS_TO__STRING = tdlPackage.TEST_OBJECTIVE___CONFORMS_TO__STRING; + + /** + * The operation id for the 'Get Element Named' operation. + * + * + * @generated + * @ordered + */ + int STRUCTURED_TEST_OBJECTIVE___GET_ELEMENT_NAMED__STRING = tdlPackage.TEST_OBJECTIVE___GET_ELEMENT_NAMED__STRING; + + /** + * The operation id for the 'Conforms To' operation. + * + * + * @generated + * @ordered + */ + int STRUCTURED_TEST_OBJECTIVE___CONFORMS_TO__PACKAGEABLEELEMENT = tdlPackage.TEST_OBJECTIVE___CONFORMS_TO__PACKAGEABLEELEMENT; + + /** + * The operation id for the 'Get Test Objective' operation. + * + * + * @generated + * @ordered + */ + int STRUCTURED_TEST_OBJECTIVE___GET_TEST_OBJECTIVE = tdlPackage.TEST_OBJECTIVE_OPERATION_COUNT + 0; + + /** + * The operation id for the 'Contains' operation. + * + * + * @generated + * @ordered + */ + int STRUCTURED_TEST_OBJECTIVE___CONTAINS__ELEMENT = tdlPackage.TEST_OBJECTIVE_OPERATION_COUNT + 1; + + /** + * The operation id for the 'Get Notes' operation. + * + * + * @generated + * @ordered + */ + int STRUCTURED_TEST_OBJECTIVE___GET_NOTES = tdlPackage.TEST_OBJECTIVE_OPERATION_COUNT + 2; + + /** + * The operation id for the 'Index Of' operation. + * + * + * @generated + * @ordered + */ + int STRUCTURED_TEST_OBJECTIVE___INDEX_OF__ELEMENT = tdlPackage.TEST_OBJECTIVE_OPERATION_COUNT + 3; + + /** + * The number of operations of the 'Structured Test Objective' class. + * + * + * @generated + * @ordered + */ + int STRUCTURED_TEST_OBJECTIVE_OPERATION_COUNT = tdlPackage.TEST_OBJECTIVE_OPERATION_COUNT + 4; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.structuredobjectives.impl.InitialConditionsImpl Initial Conditions}' class. + * + * + * @see org.etsi.mts.tdl.structuredobjectives.impl.InitialConditionsImpl + * @see org.etsi.mts.tdl.structuredobjectives.impl.StructuredObjectivesPackageImpl#getInitialConditions() + * @generated + */ + int INITIAL_CONDITIONS = 2; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int INITIAL_CONDITIONS__COMMENT = ELEMENT__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int INITIAL_CONDITIONS__ANNOTATION = ELEMENT__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int INITIAL_CONDITIONS__NAME = ELEMENT__NAME; + + /** + * The feature id for the 'Conditions' containment reference. + * + * + * @generated + * @ordered + */ + int INITIAL_CONDITIONS__CONDITIONS = ELEMENT_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Initial Conditions' class. + * + * + * @generated + * @ordered + */ + int INITIAL_CONDITIONS_FEATURE_COUNT = ELEMENT_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int INITIAL_CONDITIONS___CONTAINER = ELEMENT___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int INITIAL_CONDITIONS___GET_PARENT_TEST_DESCRIPTION = ELEMENT___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Get Test Objective' operation. + * + * + * @generated + * @ordered + */ + int INITIAL_CONDITIONS___GET_TEST_OBJECTIVE = ELEMENT___GET_TEST_OBJECTIVE; + + /** + * The operation id for the 'Contains' operation. + * + * + * @generated + * @ordered + */ + int INITIAL_CONDITIONS___CONTAINS__ELEMENT = ELEMENT___CONTAINS__ELEMENT; + + /** + * The operation id for the 'Get Notes' operation. + * + * + * @generated + * @ordered + */ + int INITIAL_CONDITIONS___GET_NOTES = ELEMENT___GET_NOTES; + + /** + * The number of operations of the 'Initial Conditions' class. + * + * + * @generated + * @ordered + */ + int INITIAL_CONDITIONS_OPERATION_COUNT = ELEMENT_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.structuredobjectives.impl.EventSequenceImpl Event Sequence}' class. + * + * + * @see org.etsi.mts.tdl.structuredobjectives.impl.EventSequenceImpl + * @see org.etsi.mts.tdl.structuredobjectives.impl.StructuredObjectivesPackageImpl#getEventSequence() + * @generated + */ + int EVENT_SEQUENCE = 3; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int EVENT_SEQUENCE__COMMENT = ELEMENT__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int EVENT_SEQUENCE__ANNOTATION = ELEMENT__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int EVENT_SEQUENCE__NAME = ELEMENT__NAME; + + /** + * The feature id for the 'Events' containment reference list. + * + * + * @generated + * @ordered + */ + int EVENT_SEQUENCE__EVENTS = ELEMENT_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Event Sequence' class. + * + * + * @generated + * @ordered + */ + int EVENT_SEQUENCE_FEATURE_COUNT = ELEMENT_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int EVENT_SEQUENCE___CONTAINER = ELEMENT___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int EVENT_SEQUENCE___GET_PARENT_TEST_DESCRIPTION = ELEMENT___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Get Test Objective' operation. + * + * + * @generated + * @ordered + */ + int EVENT_SEQUENCE___GET_TEST_OBJECTIVE = ELEMENT___GET_TEST_OBJECTIVE; + + /** + * The operation id for the 'Contains' operation. + * + * + * @generated + * @ordered + */ + int EVENT_SEQUENCE___CONTAINS__ELEMENT = ELEMENT___CONTAINS__ELEMENT; + + /** + * The operation id for the 'Get Notes' operation. + * + * + * @generated + * @ordered + */ + int EVENT_SEQUENCE___GET_NOTES = ELEMENT___GET_NOTES; + + /** + * The number of operations of the 'Event Sequence' class. + * + * + * @generated + * @ordered + */ + int EVENT_SEQUENCE_OPERATION_COUNT = ELEMENT_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.structuredobjectives.impl.EventOccurrenceImpl Event Occurrence}' class. + * + * + * @see org.etsi.mts.tdl.structuredobjectives.impl.EventOccurrenceImpl + * @see org.etsi.mts.tdl.structuredobjectives.impl.StructuredObjectivesPackageImpl#getEventOccurrence() + * @generated + */ + int EVENT_OCCURRENCE = 4; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE__COMMENT = ELEMENT__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE__ANNOTATION = ELEMENT__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE__NAME = ELEMENT__NAME; + + /** + * The feature id for the 'Time Constraint' containment reference list. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE__TIME_CONSTRAINT = ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Time Label' containment reference. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE__TIME_LABEL = ELEMENT_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Event Occurrence' class. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_FEATURE_COUNT = ELEMENT_FEATURE_COUNT + 2; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE___CONTAINER = ELEMENT___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE___GET_PARENT_TEST_DESCRIPTION = ELEMENT___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Get Test Objective' operation. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE___GET_TEST_OBJECTIVE = ELEMENT___GET_TEST_OBJECTIVE; + + /** + * The operation id for the 'Contains' operation. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE___CONTAINS__ELEMENT = ELEMENT___CONTAINS__ELEMENT; + + /** + * The operation id for the 'Get Notes' operation. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE___GET_NOTES = ELEMENT___GET_NOTES; + + /** + * The number of operations of the 'Event Occurrence' class. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_OPERATION_COUNT = ELEMENT_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.structuredobjectives.impl.ExpectedBehaviourImpl Expected Behaviour}' class. + * + * + * @see org.etsi.mts.tdl.structuredobjectives.impl.ExpectedBehaviourImpl + * @see org.etsi.mts.tdl.structuredobjectives.impl.StructuredObjectivesPackageImpl#getExpectedBehaviour() + * @generated + */ + int EXPECTED_BEHAVIOUR = 5; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int EXPECTED_BEHAVIOUR__COMMENT = ELEMENT__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int EXPECTED_BEHAVIOUR__ANNOTATION = ELEMENT__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int EXPECTED_BEHAVIOUR__NAME = ELEMENT__NAME; + + /** + * The feature id for the 'When Clause' containment reference. + * + * + * @generated + * @ordered + */ + int EXPECTED_BEHAVIOUR__WHEN_CLAUSE = ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Then Clause' containment reference. + * + * + * @generated + * @ordered + */ + int EXPECTED_BEHAVIOUR__THEN_CLAUSE = ELEMENT_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Expected Behaviour' class. + * + * + * @generated + * @ordered + */ + int EXPECTED_BEHAVIOUR_FEATURE_COUNT = ELEMENT_FEATURE_COUNT + 2; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int EXPECTED_BEHAVIOUR___CONTAINER = ELEMENT___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int EXPECTED_BEHAVIOUR___GET_PARENT_TEST_DESCRIPTION = ELEMENT___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Get Test Objective' operation. + * + * + * @generated + * @ordered + */ + int EXPECTED_BEHAVIOUR___GET_TEST_OBJECTIVE = ELEMENT___GET_TEST_OBJECTIVE; + + /** + * The operation id for the 'Contains' operation. + * + * + * @generated + * @ordered + */ + int EXPECTED_BEHAVIOUR___CONTAINS__ELEMENT = ELEMENT___CONTAINS__ELEMENT; + + /** + * The operation id for the 'Get Notes' operation. + * + * + * @generated + * @ordered + */ + int EXPECTED_BEHAVIOUR___GET_NOTES = ELEMENT___GET_NOTES; + + /** + * The number of operations of the 'Expected Behaviour' class. + * + * + * @generated + * @ordered + */ + int EXPECTED_BEHAVIOUR_OPERATION_COUNT = ELEMENT_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.structuredobjectives.impl.FinalConditionsImpl Final Conditions}' class. + * + * + * @see org.etsi.mts.tdl.structuredobjectives.impl.FinalConditionsImpl + * @see org.etsi.mts.tdl.structuredobjectives.impl.StructuredObjectivesPackageImpl#getFinalConditions() + * @generated + */ + int FINAL_CONDITIONS = 6; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int FINAL_CONDITIONS__COMMENT = ELEMENT__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int FINAL_CONDITIONS__ANNOTATION = ELEMENT__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int FINAL_CONDITIONS__NAME = ELEMENT__NAME; + + /** + * The feature id for the 'Conditions' containment reference. + * + * + * @generated + * @ordered + */ + int FINAL_CONDITIONS__CONDITIONS = ELEMENT_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Final Conditions' class. + * + * + * @generated + * @ordered + */ + int FINAL_CONDITIONS_FEATURE_COUNT = ELEMENT_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int FINAL_CONDITIONS___CONTAINER = ELEMENT___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int FINAL_CONDITIONS___GET_PARENT_TEST_DESCRIPTION = ELEMENT___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Get Test Objective' operation. + * + * + * @generated + * @ordered + */ + int FINAL_CONDITIONS___GET_TEST_OBJECTIVE = ELEMENT___GET_TEST_OBJECTIVE; + + /** + * The operation id for the 'Contains' operation. + * + * + * @generated + * @ordered + */ + int FINAL_CONDITIONS___CONTAINS__ELEMENT = ELEMENT___CONTAINS__ELEMENT; + + /** + * The operation id for the 'Get Notes' operation. + * + * + * @generated + * @ordered + */ + int FINAL_CONDITIONS___GET_NOTES = ELEMENT___GET_NOTES; + + /** + * The number of operations of the 'Final Conditions' class. + * + * + * @generated + * @ordered + */ + int FINAL_CONDITIONS_OPERATION_COUNT = ELEMENT_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.structuredobjectives.impl.PICSReferenceImpl PICS Reference}' class. + * + * + * @see org.etsi.mts.tdl.structuredobjectives.impl.PICSReferenceImpl + * @see org.etsi.mts.tdl.structuredobjectives.impl.StructuredObjectivesPackageImpl#getPICSReference() + * @generated + */ + int PICS_REFERENCE = 7; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int PICS_REFERENCE__COMMENT = ELEMENT__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int PICS_REFERENCE__ANNOTATION = ELEMENT__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int PICS_REFERENCE__NAME = ELEMENT__NAME; + + /** + * The feature id for the 'Pics' reference. + * + * + * @generated + * @ordered + */ + int PICS_REFERENCE__PICS = ELEMENT_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'PICS Reference' class. + * + * + * @generated + * @ordered + */ + int PICS_REFERENCE_FEATURE_COUNT = ELEMENT_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int PICS_REFERENCE___CONTAINER = ELEMENT___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int PICS_REFERENCE___GET_PARENT_TEST_DESCRIPTION = ELEMENT___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Get Test Objective' operation. + * + * + * @generated + * @ordered + */ + int PICS_REFERENCE___GET_TEST_OBJECTIVE = ELEMENT___GET_TEST_OBJECTIVE; + + /** + * The operation id for the 'Contains' operation. + * + * + * @generated + * @ordered + */ + int PICS_REFERENCE___CONTAINS__ELEMENT = ELEMENT___CONTAINS__ELEMENT; + + /** + * The operation id for the 'Get Notes' operation. + * + * + * @generated + * @ordered + */ + int PICS_REFERENCE___GET_NOTES = ELEMENT___GET_NOTES; + + /** + * The number of operations of the 'PICS Reference' class. + * + * + * @generated + * @ordered + */ + int PICS_REFERENCE_OPERATION_COUNT = ELEMENT_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.structuredobjectives.impl.PICSImpl PICS}' class. + * + * + * @see org.etsi.mts.tdl.structuredobjectives.impl.PICSImpl + * @see org.etsi.mts.tdl.structuredobjectives.impl.StructuredObjectivesPackageImpl#getPICS() + * @generated + */ + int PICS = 8; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int PICS__COMMENT = tdlPackage.PACKAGEABLE_ELEMENT__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int PICS__ANNOTATION = tdlPackage.PACKAGEABLE_ELEMENT__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int PICS__NAME = tdlPackage.PACKAGEABLE_ELEMENT__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int PICS__QUALIFIED_NAME = tdlPackage.PACKAGEABLE_ELEMENT__QUALIFIED_NAME; + + /** + * The number of structural features of the 'PICS' class. + * + * + * @generated + * @ordered + */ + int PICS_FEATURE_COUNT = tdlPackage.PACKAGEABLE_ELEMENT_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int PICS___CONTAINER = tdlPackage.PACKAGEABLE_ELEMENT___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int PICS___GET_PARENT_TEST_DESCRIPTION = tdlPackage.PACKAGEABLE_ELEMENT___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Conforms To' operation. + * + * + * @generated + * @ordered + */ + int PICS___CONFORMS_TO__STRING = tdlPackage.PACKAGEABLE_ELEMENT___CONFORMS_TO__STRING; + + /** + * The operation id for the 'Get Element Named' operation. + * + * + * @generated + * @ordered + */ + int PICS___GET_ELEMENT_NAMED__STRING = tdlPackage.PACKAGEABLE_ELEMENT___GET_ELEMENT_NAMED__STRING; + + /** + * The operation id for the 'Conforms To' operation. + * + * + * @generated + * @ordered + */ + int PICS___CONFORMS_TO__PACKAGEABLEELEMENT = tdlPackage.PACKAGEABLE_ELEMENT___CONFORMS_TO__PACKAGEABLEELEMENT; + + /** + * The operation id for the 'Get Test Objective' operation. + * + * + * @generated + * @ordered + */ + int PICS___GET_TEST_OBJECTIVE = tdlPackage.PACKAGEABLE_ELEMENT_OPERATION_COUNT + 0; + + /** + * The operation id for the 'Contains' operation. + * + * + * @generated + * @ordered + */ + int PICS___CONTAINS__ELEMENT = tdlPackage.PACKAGEABLE_ELEMENT_OPERATION_COUNT + 1; + + /** + * The operation id for the 'Get Notes' operation. + * + * + * @generated + * @ordered + */ + int PICS___GET_NOTES = tdlPackage.PACKAGEABLE_ELEMENT_OPERATION_COUNT + 2; + + /** + * The number of operations of the 'PICS' class. + * + * + * @generated + * @ordered + */ + int PICS_OPERATION_COUNT = tdlPackage.PACKAGEABLE_ELEMENT_OPERATION_COUNT + 3; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.structuredobjectives.impl.EntityImpl Entity}' class. + * + * + * @see org.etsi.mts.tdl.structuredobjectives.impl.EntityImpl + * @see org.etsi.mts.tdl.structuredobjectives.impl.StructuredObjectivesPackageImpl#getEntity() + * @generated + */ + int ENTITY = 9; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int ENTITY__COMMENT = tdlPackage.PACKAGEABLE_ELEMENT__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int ENTITY__ANNOTATION = tdlPackage.PACKAGEABLE_ELEMENT__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int ENTITY__NAME = tdlPackage.PACKAGEABLE_ELEMENT__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int ENTITY__QUALIFIED_NAME = tdlPackage.PACKAGEABLE_ELEMENT__QUALIFIED_NAME; + + /** + * The number of structural features of the 'Entity' class. + * + * + * @generated + * @ordered + */ + int ENTITY_FEATURE_COUNT = tdlPackage.PACKAGEABLE_ELEMENT_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int ENTITY___CONTAINER = tdlPackage.PACKAGEABLE_ELEMENT___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int ENTITY___GET_PARENT_TEST_DESCRIPTION = tdlPackage.PACKAGEABLE_ELEMENT___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Conforms To' operation. + * + * + * @generated + * @ordered + */ + int ENTITY___CONFORMS_TO__STRING = tdlPackage.PACKAGEABLE_ELEMENT___CONFORMS_TO__STRING; + + /** + * The operation id for the 'Get Element Named' operation. + * + * + * @generated + * @ordered + */ + int ENTITY___GET_ELEMENT_NAMED__STRING = tdlPackage.PACKAGEABLE_ELEMENT___GET_ELEMENT_NAMED__STRING; + + /** + * The operation id for the 'Conforms To' operation. + * + * + * @generated + * @ordered + */ + int ENTITY___CONFORMS_TO__PACKAGEABLEELEMENT = tdlPackage.PACKAGEABLE_ELEMENT___CONFORMS_TO__PACKAGEABLEELEMENT; + + /** + * The operation id for the 'Get Test Objective' operation. + * + * + * @generated + * @ordered + */ + int ENTITY___GET_TEST_OBJECTIVE = tdlPackage.PACKAGEABLE_ELEMENT_OPERATION_COUNT + 0; + + /** + * The operation id for the 'Contains' operation. + * + * + * @generated + * @ordered + */ + int ENTITY___CONTAINS__ELEMENT = tdlPackage.PACKAGEABLE_ELEMENT_OPERATION_COUNT + 1; + + /** + * The operation id for the 'Get Notes' operation. + * + * + * @generated + * @ordered + */ + int ENTITY___GET_NOTES = tdlPackage.PACKAGEABLE_ELEMENT_OPERATION_COUNT + 2; + + /** + * The number of operations of the 'Entity' class. + * + * + * @generated + * @ordered + */ + int ENTITY_OPERATION_COUNT = tdlPackage.PACKAGEABLE_ELEMENT_OPERATION_COUNT + 3; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.structuredobjectives.impl.EventImpl Event}' class. + * + * + * @see org.etsi.mts.tdl.structuredobjectives.impl.EventImpl + * @see org.etsi.mts.tdl.structuredobjectives.impl.StructuredObjectivesPackageImpl#getEvent() + * @generated + */ + int EVENT = 10; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int EVENT__COMMENT = tdlPackage.PACKAGEABLE_ELEMENT__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int EVENT__ANNOTATION = tdlPackage.PACKAGEABLE_ELEMENT__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int EVENT__NAME = tdlPackage.PACKAGEABLE_ELEMENT__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int EVENT__QUALIFIED_NAME = tdlPackage.PACKAGEABLE_ELEMENT__QUALIFIED_NAME; + + /** + * The number of structural features of the 'Event' class. + * + * + * @generated + * @ordered + */ + int EVENT_FEATURE_COUNT = tdlPackage.PACKAGEABLE_ELEMENT_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int EVENT___CONTAINER = tdlPackage.PACKAGEABLE_ELEMENT___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int EVENT___GET_PARENT_TEST_DESCRIPTION = tdlPackage.PACKAGEABLE_ELEMENT___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Conforms To' operation. + * + * + * @generated + * @ordered + */ + int EVENT___CONFORMS_TO__STRING = tdlPackage.PACKAGEABLE_ELEMENT___CONFORMS_TO__STRING; + + /** + * The operation id for the 'Get Element Named' operation. + * + * + * @generated + * @ordered + */ + int EVENT___GET_ELEMENT_NAMED__STRING = tdlPackage.PACKAGEABLE_ELEMENT___GET_ELEMENT_NAMED__STRING; + + /** + * The operation id for the 'Conforms To' operation. + * + * + * @generated + * @ordered + */ + int EVENT___CONFORMS_TO__PACKAGEABLEELEMENT = tdlPackage.PACKAGEABLE_ELEMENT___CONFORMS_TO__PACKAGEABLEELEMENT; + + /** + * The operation id for the 'Get Test Objective' operation. + * + * + * @generated + * @ordered + */ + int EVENT___GET_TEST_OBJECTIVE = tdlPackage.PACKAGEABLE_ELEMENT_OPERATION_COUNT + 0; + + /** + * The operation id for the 'Contains' operation. + * + * + * @generated + * @ordered + */ + int EVENT___CONTAINS__ELEMENT = tdlPackage.PACKAGEABLE_ELEMENT_OPERATION_COUNT + 1; + + /** + * The operation id for the 'Get Notes' operation. + * + * + * @generated + * @ordered + */ + int EVENT___GET_NOTES = tdlPackage.PACKAGEABLE_ELEMENT_OPERATION_COUNT + 2; + + /** + * The number of operations of the 'Event' class. + * + * + * @generated + * @ordered + */ + int EVENT_OPERATION_COUNT = tdlPackage.PACKAGEABLE_ELEMENT_OPERATION_COUNT + 3; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.structuredobjectives.impl.EventOccurrenceSpecificationImpl Event Occurrence Specification}' class. + * + * + * @see org.etsi.mts.tdl.structuredobjectives.impl.EventOccurrenceSpecificationImpl + * @see org.etsi.mts.tdl.structuredobjectives.impl.StructuredObjectivesPackageImpl#getEventOccurrenceSpecification() + * @generated + */ + int EVENT_OCCURRENCE_SPECIFICATION = 11; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_SPECIFICATION__COMMENT = EVENT_OCCURRENCE__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_SPECIFICATION__ANNOTATION = EVENT_OCCURRENCE__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_SPECIFICATION__NAME = EVENT_OCCURRENCE__NAME; + + /** + * The feature id for the 'Time Constraint' containment reference list. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_SPECIFICATION__TIME_CONSTRAINT = EVENT_OCCURRENCE__TIME_CONSTRAINT; + + /** + * The feature id for the 'Time Label' containment reference. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_SPECIFICATION__TIME_LABEL = EVENT_OCCURRENCE__TIME_LABEL; + + /** + * The feature id for the 'Entity Reference' containment reference. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_SPECIFICATION__ENTITY_REFERENCE = EVENT_OCCURRENCE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Event Reference' containment reference. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_SPECIFICATION__EVENT_REFERENCE = EVENT_OCCURRENCE_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Opposite Entity Reference' containment reference list. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_SPECIFICATION__OPPOSITE_ENTITY_REFERENCE = EVENT_OCCURRENCE_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Event Argument' containment reference. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_SPECIFICATION__EVENT_ARGUMENT = EVENT_OCCURRENCE_FEATURE_COUNT + 3; + + /** + * The number of structural features of the 'Event Occurrence Specification' class. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_SPECIFICATION_FEATURE_COUNT = EVENT_OCCURRENCE_FEATURE_COUNT + 4; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_SPECIFICATION___CONTAINER = EVENT_OCCURRENCE___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_SPECIFICATION___GET_PARENT_TEST_DESCRIPTION = EVENT_OCCURRENCE___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Get Test Objective' operation. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_SPECIFICATION___GET_TEST_OBJECTIVE = EVENT_OCCURRENCE___GET_TEST_OBJECTIVE; + + /** + * The operation id for the 'Contains' operation. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_SPECIFICATION___CONTAINS__ELEMENT = EVENT_OCCURRENCE___CONTAINS__ELEMENT; + + /** + * The operation id for the 'Get Notes' operation. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_SPECIFICATION___GET_NOTES = EVENT_OCCURRENCE___GET_NOTES; + + /** + * The number of operations of the 'Event Occurrence Specification' class. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_SPECIFICATION_OPERATION_COUNT = EVENT_OCCURRENCE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.structuredobjectives.impl.EntityReferenceImpl Entity Reference}' class. + * + * + * @see org.etsi.mts.tdl.structuredobjectives.impl.EntityReferenceImpl + * @see org.etsi.mts.tdl.structuredobjectives.impl.StructuredObjectivesPackageImpl#getEntityReference() + * @generated + */ + int ENTITY_REFERENCE = 12; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int ENTITY_REFERENCE__COMMENT = ELEMENT__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int ENTITY_REFERENCE__ANNOTATION = ELEMENT__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int ENTITY_REFERENCE__NAME = ELEMENT__NAME; + + /** + * The feature id for the 'Entity' reference. + * + * + * @generated + * @ordered + */ + int ENTITY_REFERENCE__ENTITY = ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Component' reference. + * + * + * @generated + * @ordered + */ + int ENTITY_REFERENCE__COMPONENT = ELEMENT_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Entity Reference' class. + * + * + * @generated + * @ordered + */ + int ENTITY_REFERENCE_FEATURE_COUNT = ELEMENT_FEATURE_COUNT + 2; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int ENTITY_REFERENCE___CONTAINER = ELEMENT___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int ENTITY_REFERENCE___GET_PARENT_TEST_DESCRIPTION = ELEMENT___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Get Test Objective' operation. + * + * + * @generated + * @ordered + */ + int ENTITY_REFERENCE___GET_TEST_OBJECTIVE = ELEMENT___GET_TEST_OBJECTIVE; + + /** + * The operation id for the 'Contains' operation. + * + * + * @generated + * @ordered + */ + int ENTITY_REFERENCE___CONTAINS__ELEMENT = ELEMENT___CONTAINS__ELEMENT; + + /** + * The operation id for the 'Get Notes' operation. + * + * + * @generated + * @ordered + */ + int ENTITY_REFERENCE___GET_NOTES = ELEMENT___GET_NOTES; + + /** + * The number of operations of the 'Entity Reference' class. + * + * + * @generated + * @ordered + */ + int ENTITY_REFERENCE_OPERATION_COUNT = ELEMENT_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.structuredobjectives.impl.EventReferenceImpl Event Reference}' class. + * + * + * @see org.etsi.mts.tdl.structuredobjectives.impl.EventReferenceImpl + * @see org.etsi.mts.tdl.structuredobjectives.impl.StructuredObjectivesPackageImpl#getEventReference() + * @generated + */ + int EVENT_REFERENCE = 13; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int EVENT_REFERENCE__COMMENT = ELEMENT__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int EVENT_REFERENCE__ANNOTATION = ELEMENT__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int EVENT_REFERENCE__NAME = ELEMENT__NAME; + + /** + * The feature id for the 'Event' reference. + * + * + * @generated + * @ordered + */ + int EVENT_REFERENCE__EVENT = ELEMENT_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Event Reference' class. + * + * + * @generated + * @ordered + */ + int EVENT_REFERENCE_FEATURE_COUNT = ELEMENT_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int EVENT_REFERENCE___CONTAINER = ELEMENT___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int EVENT_REFERENCE___GET_PARENT_TEST_DESCRIPTION = ELEMENT___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Get Test Objective' operation. + * + * + * @generated + * @ordered + */ + int EVENT_REFERENCE___GET_TEST_OBJECTIVE = ELEMENT___GET_TEST_OBJECTIVE; + + /** + * The operation id for the 'Contains' operation. + * + * + * @generated + * @ordered + */ + int EVENT_REFERENCE___CONTAINS__ELEMENT = ELEMENT___CONTAINS__ELEMENT; + + /** + * The operation id for the 'Get Notes' operation. + * + * + * @generated + * @ordered + */ + int EVENT_REFERENCE___GET_NOTES = ELEMENT___GET_NOTES; + + /** + * The number of operations of the 'Event Reference' class. + * + * + * @generated + * @ordered + */ + int EVENT_REFERENCE_OPERATION_COUNT = ELEMENT_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.structuredobjectives.impl.ValueImpl Value}' class. + * + * + * @see org.etsi.mts.tdl.structuredobjectives.impl.ValueImpl + * @see org.etsi.mts.tdl.structuredobjectives.impl.StructuredObjectivesPackageImpl#getValue() + * @generated + */ + int VALUE = 14; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int VALUE__COMMENT = ELEMENT__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int VALUE__ANNOTATION = ELEMENT__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int VALUE__NAME = ELEMENT__NAME; + + /** + * The number of structural features of the 'Value' class. + * + * + * @generated + * @ordered + */ + int VALUE_FEATURE_COUNT = ELEMENT_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int VALUE___CONTAINER = ELEMENT___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int VALUE___GET_PARENT_TEST_DESCRIPTION = ELEMENT___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Get Test Objective' operation. + * + * + * @generated + * @ordered + */ + int VALUE___GET_TEST_OBJECTIVE = ELEMENT___GET_TEST_OBJECTIVE; + + /** + * The operation id for the 'Contains' operation. + * + * + * @generated + * @ordered + */ + int VALUE___CONTAINS__ELEMENT = ELEMENT___CONTAINS__ELEMENT; + + /** + * The operation id for the 'Get Notes' operation. + * + * + * @generated + * @ordered + */ + int VALUE___GET_NOTES = ELEMENT___GET_NOTES; + + /** + * The number of operations of the 'Value' class. + * + * + * @generated + * @ordered + */ + int VALUE_OPERATION_COUNT = ELEMENT_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.structuredobjectives.impl.EventArgumentImpl Event Argument}' class. + * + * + * @see org.etsi.mts.tdl.structuredobjectives.impl.EventArgumentImpl + * @see org.etsi.mts.tdl.structuredobjectives.impl.StructuredObjectivesPackageImpl#getEventArgument() + * @generated + */ + int EVENT_ARGUMENT = 15; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int EVENT_ARGUMENT__COMMENT = ELEMENT__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int EVENT_ARGUMENT__ANNOTATION = ELEMENT__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int EVENT_ARGUMENT__NAME = ELEMENT__NAME; + + /** + * The number of structural features of the 'Event Argument' class. + * + * + * @generated + * @ordered + */ + int EVENT_ARGUMENT_FEATURE_COUNT = ELEMENT_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int EVENT_ARGUMENT___CONTAINER = ELEMENT___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int EVENT_ARGUMENT___GET_PARENT_TEST_DESCRIPTION = ELEMENT___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Get Test Objective' operation. + * + * + * @generated + * @ordered + */ + int EVENT_ARGUMENT___GET_TEST_OBJECTIVE = ELEMENT___GET_TEST_OBJECTIVE; + + /** + * The operation id for the 'Contains' operation. + * + * + * @generated + * @ordered + */ + int EVENT_ARGUMENT___CONTAINS__ELEMENT = ELEMENT___CONTAINS__ELEMENT; + + /** + * The operation id for the 'Get Notes' operation. + * + * + * @generated + * @ordered + */ + int EVENT_ARGUMENT___GET_NOTES = ELEMENT___GET_NOTES; + + /** + * The number of operations of the 'Event Argument' class. + * + * + * @generated + * @ordered + */ + int EVENT_ARGUMENT_OPERATION_COUNT = ELEMENT_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.structuredobjectives.impl.DataReferenceImpl Data Reference}' class. + * + * + * @see org.etsi.mts.tdl.structuredobjectives.impl.DataReferenceImpl + * @see org.etsi.mts.tdl.structuredobjectives.impl.StructuredObjectivesPackageImpl#getDataReference() + * @generated + */ + int DATA_REFERENCE = 16; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int DATA_REFERENCE__COMMENT = VALUE__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int DATA_REFERENCE__ANNOTATION = VALUE__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int DATA_REFERENCE__NAME = VALUE__NAME; + + /** + * The feature id for the 'Content' containment reference. + * + * + * @generated + * @ordered + */ + int DATA_REFERENCE__CONTENT = VALUE_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Data Reference' class. + * + * + * @generated + * @ordered + */ + int DATA_REFERENCE_FEATURE_COUNT = VALUE_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int DATA_REFERENCE___CONTAINER = VALUE___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int DATA_REFERENCE___GET_PARENT_TEST_DESCRIPTION = VALUE___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Get Test Objective' operation. + * + * + * @generated + * @ordered + */ + int DATA_REFERENCE___GET_TEST_OBJECTIVE = VALUE___GET_TEST_OBJECTIVE; + + /** + * The operation id for the 'Contains' operation. + * + * + * @generated + * @ordered + */ + int DATA_REFERENCE___CONTAINS__ELEMENT = VALUE___CONTAINS__ELEMENT; + + /** + * The operation id for the 'Get Notes' operation. + * + * + * @generated + * @ordered + */ + int DATA_REFERENCE___GET_NOTES = VALUE___GET_NOTES; + + /** + * The number of operations of the 'Data Reference' class. + * + * + * @generated + * @ordered + */ + int DATA_REFERENCE_OPERATION_COUNT = VALUE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.structuredobjectives.impl.ContentImpl Content}' class. + * + * + * @see org.etsi.mts.tdl.structuredobjectives.impl.ContentImpl + * @see org.etsi.mts.tdl.structuredobjectives.impl.StructuredObjectivesPackageImpl#getContent() + * @generated + */ + int CONTENT = 17; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int CONTENT__COMMENT = ELEMENT__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int CONTENT__ANNOTATION = ELEMENT__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int CONTENT__NAME = ELEMENT__NAME; + + /** + * The feature id for the 'Value' containment reference. + * + * + * @generated + * @ordered + */ + int CONTENT__VALUE = ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Content' containment reference list. + * + * + * @generated + * @ordered + */ + int CONTENT__CONTENT = ELEMENT_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Member' reference. + * + * + * @generated + * @ordered + */ + int CONTENT__MEMBER = ELEMENT_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'Content' class. + * + * + * @generated + * @ordered + */ + int CONTENT_FEATURE_COUNT = ELEMENT_FEATURE_COUNT + 3; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int CONTENT___CONTAINER = ELEMENT___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int CONTENT___GET_PARENT_TEST_DESCRIPTION = ELEMENT___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Get Test Objective' operation. + * + * + * @generated + * @ordered + */ + int CONTENT___GET_TEST_OBJECTIVE = ELEMENT___GET_TEST_OBJECTIVE; + + /** + * The operation id for the 'Contains' operation. + * + * + * @generated + * @ordered + */ + int CONTENT___CONTAINS__ELEMENT = ELEMENT___CONTAINS__ELEMENT; + + /** + * The operation id for the 'Get Notes' operation. + * + * + * @generated + * @ordered + */ + int CONTENT___GET_NOTES = ELEMENT___GET_NOTES; + + /** + * The number of operations of the 'Content' class. + * + * + * @generated + * @ordered + */ + int CONTENT_OPERATION_COUNT = ELEMENT_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.structuredobjectives.impl.LiteralValueImpl Literal Value}' class. + * + * + * @see org.etsi.mts.tdl.structuredobjectives.impl.LiteralValueImpl + * @see org.etsi.mts.tdl.structuredobjectives.impl.StructuredObjectivesPackageImpl#getLiteralValue() + * @generated + */ + int LITERAL_VALUE = 18; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_VALUE__COMMENT = VALUE__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_VALUE__ANNOTATION = VALUE__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_VALUE__NAME = VALUE__NAME; + + /** + * The feature id for the 'Content' containment reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_VALUE__CONTENT = VALUE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Data Type' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_VALUE__DATA_TYPE = VALUE_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Literal Value' class. + * + * + * @generated + * @ordered + */ + int LITERAL_VALUE_FEATURE_COUNT = VALUE_FEATURE_COUNT + 2; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_VALUE___CONTAINER = VALUE___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_VALUE___GET_PARENT_TEST_DESCRIPTION = VALUE___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Get Test Objective' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_VALUE___GET_TEST_OBJECTIVE = VALUE___GET_TEST_OBJECTIVE; + + /** + * The operation id for the 'Contains' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_VALUE___CONTAINS__ELEMENT = VALUE___CONTAINS__ELEMENT; + + /** + * The operation id for the 'Get Notes' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_VALUE___GET_NOTES = VALUE___GET_NOTES; + + /** + * The number of operations of the 'Literal Value' class. + * + * + * @generated + * @ordered + */ + int LITERAL_VALUE_OPERATION_COUNT = VALUE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.structuredobjectives.impl.ContentReferenceImpl Content Reference}' class. + * + * + * @see org.etsi.mts.tdl.structuredobjectives.impl.ContentReferenceImpl + * @see org.etsi.mts.tdl.structuredobjectives.impl.StructuredObjectivesPackageImpl#getContentReference() + * @generated + */ + int CONTENT_REFERENCE = 19; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int CONTENT_REFERENCE__COMMENT = VALUE__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int CONTENT_REFERENCE__ANNOTATION = VALUE__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int CONTENT_REFERENCE__NAME = VALUE__NAME; + + /** + * The feature id for the 'Content' reference. + * + * + * @generated + * @ordered + */ + int CONTENT_REFERENCE__CONTENT = VALUE_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Content Reference' class. + * + * + * @generated + * @ordered + */ + int CONTENT_REFERENCE_FEATURE_COUNT = VALUE_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int CONTENT_REFERENCE___CONTAINER = VALUE___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int CONTENT_REFERENCE___GET_PARENT_TEST_DESCRIPTION = VALUE___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Get Test Objective' operation. + * + * + * @generated + * @ordered + */ + int CONTENT_REFERENCE___GET_TEST_OBJECTIVE = VALUE___GET_TEST_OBJECTIVE; + + /** + * The operation id for the 'Contains' operation. + * + * + * @generated + * @ordered + */ + int CONTENT_REFERENCE___CONTAINS__ELEMENT = VALUE___CONTAINS__ELEMENT; + + /** + * The operation id for the 'Get Notes' operation. + * + * + * @generated + * @ordered + */ + int CONTENT_REFERENCE___GET_NOTES = VALUE___GET_NOTES; + + /** + * The number of operations of the 'Content Reference' class. + * + * + * @generated + * @ordered + */ + int CONTENT_REFERENCE_OPERATION_COUNT = VALUE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.structuredobjectives.impl.LiteralValueReferenceImpl Literal Value Reference}' class. + * + * + * @see org.etsi.mts.tdl.structuredobjectives.impl.LiteralValueReferenceImpl + * @see org.etsi.mts.tdl.structuredobjectives.impl.StructuredObjectivesPackageImpl#getLiteralValueReference() + * @generated + */ + int LITERAL_VALUE_REFERENCE = 20; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_VALUE_REFERENCE__COMMENT = VALUE__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_VALUE_REFERENCE__ANNOTATION = VALUE__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_VALUE_REFERENCE__NAME = VALUE__NAME; + + /** + * The feature id for the 'Content' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_VALUE_REFERENCE__CONTENT = VALUE_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Literal Value Reference' class. + * + * + * @generated + * @ordered + */ + int LITERAL_VALUE_REFERENCE_FEATURE_COUNT = VALUE_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_VALUE_REFERENCE___CONTAINER = VALUE___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_VALUE_REFERENCE___GET_PARENT_TEST_DESCRIPTION = VALUE___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Get Test Objective' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_VALUE_REFERENCE___GET_TEST_OBJECTIVE = VALUE___GET_TEST_OBJECTIVE; + + /** + * The operation id for the 'Contains' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_VALUE_REFERENCE___CONTAINS__ELEMENT = VALUE___CONTAINS__ELEMENT; + + /** + * The operation id for the 'Get Notes' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_VALUE_REFERENCE___GET_NOTES = VALUE___GET_NOTES; + + /** + * The number of operations of the 'Literal Value Reference' class. + * + * + * @generated + * @ordered + */ + int LITERAL_VALUE_REFERENCE_OPERATION_COUNT = VALUE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.structuredobjectives.impl.RepeatedEventSequenceImpl Repeated Event Sequence}' class. + * + * + * @see org.etsi.mts.tdl.structuredobjectives.impl.RepeatedEventSequenceImpl + * @see org.etsi.mts.tdl.structuredobjectives.impl.StructuredObjectivesPackageImpl#getRepeatedEventSequence() + * @generated + */ + int REPEATED_EVENT_SEQUENCE = 21; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int REPEATED_EVENT_SEQUENCE__COMMENT = EVENT_SEQUENCE__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int REPEATED_EVENT_SEQUENCE__ANNOTATION = EVENT_SEQUENCE__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int REPEATED_EVENT_SEQUENCE__NAME = EVENT_SEQUENCE__NAME; + + /** + * The feature id for the 'Events' containment reference list. + * + * + * @generated + * @ordered + */ + int REPEATED_EVENT_SEQUENCE__EVENTS = EVENT_SEQUENCE__EVENTS; + + /** + * The feature id for the 'Repetitions' containment reference. + * + * + * @generated + * @ordered + */ + int REPEATED_EVENT_SEQUENCE__REPETITIONS = EVENT_SEQUENCE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Interval' containment reference. + * + * + * @generated + * @ordered + */ + int REPEATED_EVENT_SEQUENCE__INTERVAL = EVENT_SEQUENCE_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Repeated Event Sequence' class. + * + * + * @generated + * @ordered + */ + int REPEATED_EVENT_SEQUENCE_FEATURE_COUNT = EVENT_SEQUENCE_FEATURE_COUNT + 2; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int REPEATED_EVENT_SEQUENCE___CONTAINER = EVENT_SEQUENCE___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int REPEATED_EVENT_SEQUENCE___GET_PARENT_TEST_DESCRIPTION = EVENT_SEQUENCE___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Get Test Objective' operation. + * + * + * @generated + * @ordered + */ + int REPEATED_EVENT_SEQUENCE___GET_TEST_OBJECTIVE = EVENT_SEQUENCE___GET_TEST_OBJECTIVE; + + /** + * The operation id for the 'Contains' operation. + * + * + * @generated + * @ordered + */ + int REPEATED_EVENT_SEQUENCE___CONTAINS__ELEMENT = EVENT_SEQUENCE___CONTAINS__ELEMENT; + + /** + * The operation id for the 'Get Notes' operation. + * + * + * @generated + * @ordered + */ + int REPEATED_EVENT_SEQUENCE___GET_NOTES = EVENT_SEQUENCE___GET_NOTES; + + /** + * The number of operations of the 'Repeated Event Sequence' class. + * + * + * @generated + * @ordered + */ + int REPEATED_EVENT_SEQUENCE_OPERATION_COUNT = EVENT_SEQUENCE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.structuredobjectives.impl.EventTemplateOccurrenceImpl Event Template Occurrence}' class. + * + * + * @see org.etsi.mts.tdl.structuredobjectives.impl.EventTemplateOccurrenceImpl + * @see org.etsi.mts.tdl.structuredobjectives.impl.StructuredObjectivesPackageImpl#getEventTemplateOccurrence() + * @generated + */ + int EVENT_TEMPLATE_OCCURRENCE = 22; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int EVENT_TEMPLATE_OCCURRENCE__COMMENT = EVENT_OCCURRENCE__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int EVENT_TEMPLATE_OCCURRENCE__ANNOTATION = EVENT_OCCURRENCE__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int EVENT_TEMPLATE_OCCURRENCE__NAME = EVENT_OCCURRENCE__NAME; + + /** + * The feature id for the 'Time Constraint' containment reference list. + * + * + * @generated + * @ordered + */ + int EVENT_TEMPLATE_OCCURRENCE__TIME_CONSTRAINT = EVENT_OCCURRENCE__TIME_CONSTRAINT; + + /** + * The feature id for the 'Time Label' containment reference. + * + * + * @generated + * @ordered + */ + int EVENT_TEMPLATE_OCCURRENCE__TIME_LABEL = EVENT_OCCURRENCE__TIME_LABEL; + + /** + * The feature id for the 'Event Template' reference. + * + * + * @generated + * @ordered + */ + int EVENT_TEMPLATE_OCCURRENCE__EVENT_TEMPLATE = EVENT_OCCURRENCE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Entity Binding' containment reference list. + * + * + * @generated + * @ordered + */ + int EVENT_TEMPLATE_OCCURRENCE__ENTITY_BINDING = EVENT_OCCURRENCE_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Occurrence Argument' containment reference. + * + * + * @generated + * @ordered + */ + int EVENT_TEMPLATE_OCCURRENCE__OCCURRENCE_ARGUMENT = EVENT_OCCURRENCE_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'Event Template Occurrence' class. + * + * + * @generated + * @ordered + */ + int EVENT_TEMPLATE_OCCURRENCE_FEATURE_COUNT = EVENT_OCCURRENCE_FEATURE_COUNT + 3; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int EVENT_TEMPLATE_OCCURRENCE___CONTAINER = EVENT_OCCURRENCE___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int EVENT_TEMPLATE_OCCURRENCE___GET_PARENT_TEST_DESCRIPTION = EVENT_OCCURRENCE___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Get Test Objective' operation. + * + * + * @generated + * @ordered + */ + int EVENT_TEMPLATE_OCCURRENCE___GET_TEST_OBJECTIVE = EVENT_OCCURRENCE___GET_TEST_OBJECTIVE; + + /** + * The operation id for the 'Contains' operation. + * + * + * @generated + * @ordered + */ + int EVENT_TEMPLATE_OCCURRENCE___CONTAINS__ELEMENT = EVENT_OCCURRENCE___CONTAINS__ELEMENT; + + /** + * The operation id for the 'Get Notes' operation. + * + * + * @generated + * @ordered + */ + int EVENT_TEMPLATE_OCCURRENCE___GET_NOTES = EVENT_OCCURRENCE___GET_NOTES; + + /** + * The number of operations of the 'Event Template Occurrence' class. + * + * + * @generated + * @ordered + */ + int EVENT_TEMPLATE_OCCURRENCE_OPERATION_COUNT = EVENT_OCCURRENCE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.structuredobjectives.impl.EventSpecificationTemplateImpl Event Specification Template}' class. + * + * + * @see org.etsi.mts.tdl.structuredobjectives.impl.EventSpecificationTemplateImpl + * @see org.etsi.mts.tdl.structuredobjectives.impl.StructuredObjectivesPackageImpl#getEventSpecificationTemplate() + * @generated + */ + int EVENT_SPECIFICATION_TEMPLATE = 23; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int EVENT_SPECIFICATION_TEMPLATE__COMMENT = tdlPackage.PACKAGEABLE_ELEMENT__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int EVENT_SPECIFICATION_TEMPLATE__ANNOTATION = tdlPackage.PACKAGEABLE_ELEMENT__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int EVENT_SPECIFICATION_TEMPLATE__NAME = tdlPackage.PACKAGEABLE_ELEMENT__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int EVENT_SPECIFICATION_TEMPLATE__QUALIFIED_NAME = tdlPackage.PACKAGEABLE_ELEMENT__QUALIFIED_NAME; + + /** + * The feature id for the 'Event Specification' containment reference. + * + * + * @generated + * @ordered + */ + int EVENT_SPECIFICATION_TEMPLATE__EVENT_SPECIFICATION = tdlPackage.PACKAGEABLE_ELEMENT_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Event Specification Template' class. + * + * + * @generated + * @ordered + */ + int EVENT_SPECIFICATION_TEMPLATE_FEATURE_COUNT = tdlPackage.PACKAGEABLE_ELEMENT_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int EVENT_SPECIFICATION_TEMPLATE___CONTAINER = tdlPackage.PACKAGEABLE_ELEMENT___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int EVENT_SPECIFICATION_TEMPLATE___GET_PARENT_TEST_DESCRIPTION = tdlPackage.PACKAGEABLE_ELEMENT___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Conforms To' operation. + * + * + * @generated + * @ordered + */ + int EVENT_SPECIFICATION_TEMPLATE___CONFORMS_TO__STRING = tdlPackage.PACKAGEABLE_ELEMENT___CONFORMS_TO__STRING; + + /** + * The operation id for the 'Get Element Named' operation. + * + * + * @generated + * @ordered + */ + int EVENT_SPECIFICATION_TEMPLATE___GET_ELEMENT_NAMED__STRING = tdlPackage.PACKAGEABLE_ELEMENT___GET_ELEMENT_NAMED__STRING; + + /** + * The operation id for the 'Conforms To' operation. + * + * + * @generated + * @ordered + */ + int EVENT_SPECIFICATION_TEMPLATE___CONFORMS_TO__PACKAGEABLEELEMENT = tdlPackage.PACKAGEABLE_ELEMENT___CONFORMS_TO__PACKAGEABLEELEMENT; + + /** + * The operation id for the 'Get Test Objective' operation. + * + * + * @generated + * @ordered + */ + int EVENT_SPECIFICATION_TEMPLATE___GET_TEST_OBJECTIVE = tdlPackage.PACKAGEABLE_ELEMENT_OPERATION_COUNT + 0; + + /** + * The operation id for the 'Contains' operation. + * + * + * @generated + * @ordered + */ + int EVENT_SPECIFICATION_TEMPLATE___CONTAINS__ELEMENT = tdlPackage.PACKAGEABLE_ELEMENT_OPERATION_COUNT + 1; + + /** + * The operation id for the 'Get Notes' operation. + * + * + * @generated + * @ordered + */ + int EVENT_SPECIFICATION_TEMPLATE___GET_NOTES = tdlPackage.PACKAGEABLE_ELEMENT_OPERATION_COUNT + 2; + + /** + * The number of operations of the 'Event Specification Template' class. + * + * + * @generated + * @ordered + */ + int EVENT_SPECIFICATION_TEMPLATE_OPERATION_COUNT = tdlPackage.PACKAGEABLE_ELEMENT_OPERATION_COUNT + 3; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.structuredobjectives.impl.EntityBindingImpl Entity Binding}' class. + * + * + * @see org.etsi.mts.tdl.structuredobjectives.impl.EntityBindingImpl + * @see org.etsi.mts.tdl.structuredobjectives.impl.StructuredObjectivesPackageImpl#getEntityBinding() + * @generated + */ + int ENTITY_BINDING = 24; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int ENTITY_BINDING__COMMENT = ELEMENT__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int ENTITY_BINDING__ANNOTATION = ELEMENT__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int ENTITY_BINDING__NAME = ELEMENT__NAME; + + /** + * The feature id for the 'Template Entity' containment reference. + * + * + * @generated + * @ordered + */ + int ENTITY_BINDING__TEMPLATE_ENTITY = ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Occurrence Entity' containment reference. + * + * + * @generated + * @ordered + */ + int ENTITY_BINDING__OCCURRENCE_ENTITY = ELEMENT_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Entity Binding' class. + * + * + * @generated + * @ordered + */ + int ENTITY_BINDING_FEATURE_COUNT = ELEMENT_FEATURE_COUNT + 2; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int ENTITY_BINDING___CONTAINER = ELEMENT___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int ENTITY_BINDING___GET_PARENT_TEST_DESCRIPTION = ELEMENT___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Get Test Objective' operation. + * + * + * @generated + * @ordered + */ + int ENTITY_BINDING___GET_TEST_OBJECTIVE = ELEMENT___GET_TEST_OBJECTIVE; + + /** + * The operation id for the 'Contains' operation. + * + * + * @generated + * @ordered + */ + int ENTITY_BINDING___CONTAINS__ELEMENT = ELEMENT___CONTAINS__ELEMENT; + + /** + * The operation id for the 'Get Notes' operation. + * + * + * @generated + * @ordered + */ + int ENTITY_BINDING___GET_NOTES = ELEMENT___GET_NOTES; + + /** + * The number of operations of the 'Entity Binding' class. + * + * + * @generated + * @ordered + */ + int ENTITY_BINDING_OPERATION_COUNT = ELEMENT_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.structuredobjectives.impl.VariantsImpl Variants}' class. + * + * + * @see org.etsi.mts.tdl.structuredobjectives.impl.VariantsImpl + * @see org.etsi.mts.tdl.structuredobjectives.impl.StructuredObjectivesPackageImpl#getVariants() + * @generated + */ + int VARIANTS = 25; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int VARIANTS__COMMENT = ELEMENT__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int VARIANTS__ANNOTATION = ELEMENT__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int VARIANTS__NAME = ELEMENT__NAME; + + /** + * The feature id for the 'Variants' containment reference list. + * + * + * @generated + * @ordered + */ + int VARIANTS__VARIANTS = ELEMENT_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Variants' class. + * + * + * @generated + * @ordered + */ + int VARIANTS_FEATURE_COUNT = ELEMENT_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int VARIANTS___CONTAINER = ELEMENT___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int VARIANTS___GET_PARENT_TEST_DESCRIPTION = ELEMENT___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Get Test Objective' operation. + * + * + * @generated + * @ordered + */ + int VARIANTS___GET_TEST_OBJECTIVE = ELEMENT___GET_TEST_OBJECTIVE; + + /** + * The operation id for the 'Contains' operation. + * + * + * @generated + * @ordered + */ + int VARIANTS___CONTAINS__ELEMENT = ELEMENT___CONTAINS__ELEMENT; + + /** + * The operation id for the 'Get Notes' operation. + * + * + * @generated + * @ordered + */ + int VARIANTS___GET_NOTES = ELEMENT___GET_NOTES; + + /** + * The number of operations of the 'Variants' class. + * + * + * @generated + * @ordered + */ + int VARIANTS_OPERATION_COUNT = ELEMENT_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.structuredobjectives.impl.TestObjectiveVariantImpl Test Objective Variant}' class. + * + * + * @see org.etsi.mts.tdl.structuredobjectives.impl.TestObjectiveVariantImpl + * @see org.etsi.mts.tdl.structuredobjectives.impl.StructuredObjectivesPackageImpl#getTestObjectiveVariant() + * @generated + */ + int TEST_OBJECTIVE_VARIANT = 26; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int TEST_OBJECTIVE_VARIANT__COMMENT = tdlPackage.TEST_OBJECTIVE__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int TEST_OBJECTIVE_VARIANT__ANNOTATION = tdlPackage.TEST_OBJECTIVE__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int TEST_OBJECTIVE_VARIANT__NAME = tdlPackage.TEST_OBJECTIVE__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int TEST_OBJECTIVE_VARIANT__QUALIFIED_NAME = tdlPackage.TEST_OBJECTIVE__QUALIFIED_NAME; + + /** + * The feature id for the 'Objective URI' attribute list. + * + * + * @generated + * @ordered + */ + int TEST_OBJECTIVE_VARIANT__OBJECTIVE_URI = tdlPackage.TEST_OBJECTIVE__OBJECTIVE_URI; + + /** + * The feature id for the 'Description' attribute. + * + * + * @generated + * @ordered + */ + int TEST_OBJECTIVE_VARIANT__DESCRIPTION = tdlPackage.TEST_OBJECTIVE__DESCRIPTION; + + /** + * The feature id for the 'Pics Reference' containment reference list. + * + * + * @generated + * @ordered + */ + int TEST_OBJECTIVE_VARIANT__PICS_REFERENCE = tdlPackage.TEST_OBJECTIVE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Bindings' containment reference list. + * + * + * @generated + * @ordered + */ + int TEST_OBJECTIVE_VARIANT__BINDINGS = tdlPackage.TEST_OBJECTIVE_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Test Objective Variant' class. + * + * + * @generated + * @ordered + */ + int TEST_OBJECTIVE_VARIANT_FEATURE_COUNT = tdlPackage.TEST_OBJECTIVE_FEATURE_COUNT + 2; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int TEST_OBJECTIVE_VARIANT___CONTAINER = tdlPackage.TEST_OBJECTIVE___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int TEST_OBJECTIVE_VARIANT___GET_PARENT_TEST_DESCRIPTION = tdlPackage.TEST_OBJECTIVE___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Conforms To' operation. + * + * + * @generated + * @ordered + */ + int TEST_OBJECTIVE_VARIANT___CONFORMS_TO__STRING = tdlPackage.TEST_OBJECTIVE___CONFORMS_TO__STRING; + + /** + * The operation id for the 'Get Element Named' operation. + * + * + * @generated + * @ordered + */ + int TEST_OBJECTIVE_VARIANT___GET_ELEMENT_NAMED__STRING = tdlPackage.TEST_OBJECTIVE___GET_ELEMENT_NAMED__STRING; + + /** + * The operation id for the 'Conforms To' operation. + * + * + * @generated + * @ordered + */ + int TEST_OBJECTIVE_VARIANT___CONFORMS_TO__PACKAGEABLEELEMENT = tdlPackage.TEST_OBJECTIVE___CONFORMS_TO__PACKAGEABLEELEMENT; + + /** + * The operation id for the 'Get Test Objective' operation. + * + * + * @generated + * @ordered + */ + int TEST_OBJECTIVE_VARIANT___GET_TEST_OBJECTIVE = tdlPackage.TEST_OBJECTIVE_OPERATION_COUNT + 0; + + /** + * The operation id for the 'Contains' operation. + * + * + * @generated + * @ordered + */ + int TEST_OBJECTIVE_VARIANT___CONTAINS__ELEMENT = tdlPackage.TEST_OBJECTIVE_OPERATION_COUNT + 1; + + /** + * The operation id for the 'Get Notes' operation. + * + * + * @generated + * @ordered + */ + int TEST_OBJECTIVE_VARIANT___GET_NOTES = tdlPackage.TEST_OBJECTIVE_OPERATION_COUNT + 2; + + /** + * The number of operations of the 'Test Objective Variant' class. + * + * + * @generated + * @ordered + */ + int TEST_OBJECTIVE_VARIANT_OPERATION_COUNT = tdlPackage.TEST_OBJECTIVE_OPERATION_COUNT + 3; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.structuredobjectives.impl.VariantBindingImpl Variant Binding}' class. + * + * + * @see org.etsi.mts.tdl.structuredobjectives.impl.VariantBindingImpl + * @see org.etsi.mts.tdl.structuredobjectives.impl.StructuredObjectivesPackageImpl#getVariantBinding() + * @generated + */ + int VARIANT_BINDING = 27; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int VARIANT_BINDING__COMMENT = ELEMENT__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int VARIANT_BINDING__ANNOTATION = ELEMENT__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int VARIANT_BINDING__NAME = ELEMENT__NAME; + + /** + * The feature id for the 'Value' containment reference. + * + * + * @generated + * @ordered + */ + int VARIANT_BINDING__VALUE = ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Bound To' containment reference. + * + * + * @generated + * @ordered + */ + int VARIANT_BINDING__BOUND_TO = ELEMENT_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Variant Binding' class. + * + * + * @generated + * @ordered + */ + int VARIANT_BINDING_FEATURE_COUNT = ELEMENT_FEATURE_COUNT + 2; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int VARIANT_BINDING___CONTAINER = ELEMENT___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int VARIANT_BINDING___GET_PARENT_TEST_DESCRIPTION = ELEMENT___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Get Test Objective' operation. + * + * + * @generated + * @ordered + */ + int VARIANT_BINDING___GET_TEST_OBJECTIVE = ELEMENT___GET_TEST_OBJECTIVE; + + /** + * The operation id for the 'Contains' operation. + * + * + * @generated + * @ordered + */ + int VARIANT_BINDING___CONTAINS__ELEMENT = ELEMENT___CONTAINS__ELEMENT; + + /** + * The operation id for the 'Get Notes' operation. + * + * + * @generated + * @ordered + */ + int VARIANT_BINDING___GET_NOTES = ELEMENT___GET_NOTES; + + /** + * The number of operations of the 'Variant Binding' class. + * + * + * @generated + * @ordered + */ + int VARIANT_BINDING_OPERATION_COUNT = ELEMENT_OPERATION_COUNT + 0; + + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.structuredobjectives.Element Element}'. + * + * + * @return the meta object for class 'Element'. + * @see org.etsi.mts.tdl.structuredobjectives.Element + * @generated + */ + EClass getElement(); + + /** + * Returns the meta object for the '{@link org.etsi.mts.tdl.structuredobjectives.Element#getTestObjective() Get Test Objective}' operation. + * + * + * @return the meta object for the 'Get Test Objective' operation. + * @see org.etsi.mts.tdl.structuredobjectives.Element#getTestObjective() + * @generated + */ + EOperation getElement__GetTestObjective(); + + /** + * Returns the meta object for the '{@link org.etsi.mts.tdl.structuredobjectives.Element#contains(org.etsi.mts.tdl.structuredobjectives.Element) Contains}' operation. + * + * + * @return the meta object for the 'Contains' operation. + * @see org.etsi.mts.tdl.structuredobjectives.Element#contains(org.etsi.mts.tdl.structuredobjectives.Element) + * @generated + */ + EOperation getElement__Contains__Element(); + + /** + * Returns the meta object for the '{@link org.etsi.mts.tdl.structuredobjectives.Element#getNotes() Get Notes}' operation. + * + * + * @return the meta object for the 'Get Notes' operation. + * @see org.etsi.mts.tdl.structuredobjectives.Element#getNotes() + * @generated + */ + EOperation getElement__GetNotes(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.structuredobjectives.StructuredTestObjective Structured Test Objective}'. + * + * + * @return the meta object for class 'Structured Test Objective'. + * @see org.etsi.mts.tdl.structuredobjectives.StructuredTestObjective + * @generated + */ + EClass getStructuredTestObjective(); + + /** + * Returns the meta object for the reference '{@link org.etsi.mts.tdl.structuredobjectives.StructuredTestObjective#getConfiguration Configuration}'. + * + * + * @return the meta object for the reference 'Configuration'. + * @see org.etsi.mts.tdl.structuredobjectives.StructuredTestObjective#getConfiguration() + * @see #getStructuredTestObjective() + * @generated + */ + EReference getStructuredTestObjective_Configuration(); + + /** + * Returns the meta object for the containment reference '{@link org.etsi.mts.tdl.structuredobjectives.StructuredTestObjective#getInitialConditions Initial Conditions}'. + * + * + * @return the meta object for the containment reference 'Initial Conditions'. + * @see org.etsi.mts.tdl.structuredobjectives.StructuredTestObjective#getInitialConditions() + * @see #getStructuredTestObjective() + * @generated + */ + EReference getStructuredTestObjective_InitialConditions(); + + /** + * Returns the meta object for the containment reference '{@link org.etsi.mts.tdl.structuredobjectives.StructuredTestObjective#getExpectedBehaviour Expected Behaviour}'. + * + * + * @return the meta object for the containment reference 'Expected Behaviour'. + * @see org.etsi.mts.tdl.structuredobjectives.StructuredTestObjective#getExpectedBehaviour() + * @see #getStructuredTestObjective() + * @generated + */ + EReference getStructuredTestObjective_ExpectedBehaviour(); + + /** + * Returns the meta object for the containment reference '{@link org.etsi.mts.tdl.structuredobjectives.StructuredTestObjective#getFinalConditions Final Conditions}'. + * + * + * @return the meta object for the containment reference 'Final Conditions'. + * @see org.etsi.mts.tdl.structuredobjectives.StructuredTestObjective#getFinalConditions() + * @see #getStructuredTestObjective() + * @generated + */ + EReference getStructuredTestObjective_FinalConditions(); + + /** + * Returns the meta object for the containment reference list '{@link org.etsi.mts.tdl.structuredobjectives.StructuredTestObjective#getPicsReference Pics Reference}'. + * + * + * @return the meta object for the containment reference list 'Pics Reference'. + * @see org.etsi.mts.tdl.structuredobjectives.StructuredTestObjective#getPicsReference() + * @see #getStructuredTestObjective() + * @generated + */ + EReference getStructuredTestObjective_PicsReference(); + + /** + * Returns the meta object for the containment reference '{@link org.etsi.mts.tdl.structuredobjectives.StructuredTestObjective#getVariants Variants}'. + * + * + * @return the meta object for the containment reference 'Variants'. + * @see org.etsi.mts.tdl.structuredobjectives.StructuredTestObjective#getVariants() + * @see #getStructuredTestObjective() + * @generated + */ + EReference getStructuredTestObjective_Variants(); + + /** + * Returns the meta object for the '{@link org.etsi.mts.tdl.structuredobjectives.StructuredTestObjective#indexOf(org.etsi.mts.tdl.structuredobjectives.Element) Index Of}' operation. + * + * + * @return the meta object for the 'Index Of' operation. + * @see org.etsi.mts.tdl.structuredobjectives.StructuredTestObjective#indexOf(org.etsi.mts.tdl.structuredobjectives.Element) + * @generated + */ + EOperation getStructuredTestObjective__IndexOf__Element(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.structuredobjectives.InitialConditions Initial Conditions}'. + * + * + * @return the meta object for class 'Initial Conditions'. + * @see org.etsi.mts.tdl.structuredobjectives.InitialConditions + * @generated + */ + EClass getInitialConditions(); + + /** + * Returns the meta object for the containment reference '{@link org.etsi.mts.tdl.structuredobjectives.InitialConditions#getConditions Conditions}'. + * + * + * @return the meta object for the containment reference 'Conditions'. + * @see org.etsi.mts.tdl.structuredobjectives.InitialConditions#getConditions() + * @see #getInitialConditions() + * @generated + */ + EReference getInitialConditions_Conditions(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.structuredobjectives.EventSequence Event Sequence}'. + * + * + * @return the meta object for class 'Event Sequence'. + * @see org.etsi.mts.tdl.structuredobjectives.EventSequence + * @generated + */ + EClass getEventSequence(); + + /** + * Returns the meta object for the containment reference list '{@link org.etsi.mts.tdl.structuredobjectives.EventSequence#getEvents Events}'. + * + * + * @return the meta object for the containment reference list 'Events'. + * @see org.etsi.mts.tdl.structuredobjectives.EventSequence#getEvents() + * @see #getEventSequence() + * @generated + */ + EReference getEventSequence_Events(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.structuredobjectives.EventOccurrence Event Occurrence}'. + * + * + * @return the meta object for class 'Event Occurrence'. + * @see org.etsi.mts.tdl.structuredobjectives.EventOccurrence + * @generated + */ + EClass getEventOccurrence(); + + /** + * Returns the meta object for the containment reference list '{@link org.etsi.mts.tdl.structuredobjectives.EventOccurrence#getTimeConstraint Time Constraint}'. + * + * + * @return the meta object for the containment reference list 'Time Constraint'. + * @see org.etsi.mts.tdl.structuredobjectives.EventOccurrence#getTimeConstraint() + * @see #getEventOccurrence() + * @generated + */ + EReference getEventOccurrence_TimeConstraint(); + + /** + * Returns the meta object for the containment reference '{@link org.etsi.mts.tdl.structuredobjectives.EventOccurrence#getTimeLabel Time Label}'. + * + * + * @return the meta object for the containment reference 'Time Label'. + * @see org.etsi.mts.tdl.structuredobjectives.EventOccurrence#getTimeLabel() + * @see #getEventOccurrence() + * @generated + */ + EReference getEventOccurrence_TimeLabel(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.structuredobjectives.ExpectedBehaviour Expected Behaviour}'. + * + * + * @return the meta object for class 'Expected Behaviour'. + * @see org.etsi.mts.tdl.structuredobjectives.ExpectedBehaviour + * @generated + */ + EClass getExpectedBehaviour(); + + /** + * Returns the meta object for the containment reference '{@link org.etsi.mts.tdl.structuredobjectives.ExpectedBehaviour#getWhenClause When Clause}'. + * + * + * @return the meta object for the containment reference 'When Clause'. + * @see org.etsi.mts.tdl.structuredobjectives.ExpectedBehaviour#getWhenClause() + * @see #getExpectedBehaviour() + * @generated + */ + EReference getExpectedBehaviour_WhenClause(); + + /** + * Returns the meta object for the containment reference '{@link org.etsi.mts.tdl.structuredobjectives.ExpectedBehaviour#getThenClause Then Clause}'. + * + * + * @return the meta object for the containment reference 'Then Clause'. + * @see org.etsi.mts.tdl.structuredobjectives.ExpectedBehaviour#getThenClause() + * @see #getExpectedBehaviour() + * @generated + */ + EReference getExpectedBehaviour_ThenClause(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.structuredobjectives.FinalConditions Final Conditions}'. + * + * + * @return the meta object for class 'Final Conditions'. + * @see org.etsi.mts.tdl.structuredobjectives.FinalConditions + * @generated + */ + EClass getFinalConditions(); + + /** + * Returns the meta object for the containment reference '{@link org.etsi.mts.tdl.structuredobjectives.FinalConditions#getConditions Conditions}'. + * + * + * @return the meta object for the containment reference 'Conditions'. + * @see org.etsi.mts.tdl.structuredobjectives.FinalConditions#getConditions() + * @see #getFinalConditions() + * @generated + */ + EReference getFinalConditions_Conditions(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.structuredobjectives.PICSReference PICS Reference}'. + * + * + * @return the meta object for class 'PICS Reference'. + * @see org.etsi.mts.tdl.structuredobjectives.PICSReference + * @generated + */ + EClass getPICSReference(); + + /** + * Returns the meta object for the reference '{@link org.etsi.mts.tdl.structuredobjectives.PICSReference#getPics Pics}'. + * + * + * @return the meta object for the reference 'Pics'. + * @see org.etsi.mts.tdl.structuredobjectives.PICSReference#getPics() + * @see #getPICSReference() + * @generated + */ + EReference getPICSReference_Pics(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.structuredobjectives.PICS PICS}'. + * + * + * @return the meta object for class 'PICS'. + * @see org.etsi.mts.tdl.structuredobjectives.PICS + * @generated + */ + EClass getPICS(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.structuredobjectives.Entity Entity}'. + * + * + * @return the meta object for class 'Entity'. + * @see org.etsi.mts.tdl.structuredobjectives.Entity + * @generated + */ + EClass getEntity(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.structuredobjectives.Event Event}'. + * + * + * @return the meta object for class 'Event'. + * @see org.etsi.mts.tdl.structuredobjectives.Event + * @generated + */ + EClass getEvent(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.structuredobjectives.EventOccurrenceSpecification Event Occurrence Specification}'. + * + * + * @return the meta object for class 'Event Occurrence Specification'. + * @see org.etsi.mts.tdl.structuredobjectives.EventOccurrenceSpecification + * @generated + */ + EClass getEventOccurrenceSpecification(); + + /** + * Returns the meta object for the containment reference '{@link org.etsi.mts.tdl.structuredobjectives.EventOccurrenceSpecification#getEntityReference Entity Reference}'. + * + * + * @return the meta object for the containment reference 'Entity Reference'. + * @see org.etsi.mts.tdl.structuredobjectives.EventOccurrenceSpecification#getEntityReference() + * @see #getEventOccurrenceSpecification() + * @generated + */ + EReference getEventOccurrenceSpecification_EntityReference(); + + /** + * Returns the meta object for the containment reference '{@link org.etsi.mts.tdl.structuredobjectives.EventOccurrenceSpecification#getEventReference Event Reference}'. + * + * + * @return the meta object for the containment reference 'Event Reference'. + * @see org.etsi.mts.tdl.structuredobjectives.EventOccurrenceSpecification#getEventReference() + * @see #getEventOccurrenceSpecification() + * @generated + */ + EReference getEventOccurrenceSpecification_EventReference(); + + /** + * Returns the meta object for the containment reference list '{@link org.etsi.mts.tdl.structuredobjectives.EventOccurrenceSpecification#getOppositeEntityReference Opposite Entity Reference}'. + * + * + * @return the meta object for the containment reference list 'Opposite Entity Reference'. + * @see org.etsi.mts.tdl.structuredobjectives.EventOccurrenceSpecification#getOppositeEntityReference() + * @see #getEventOccurrenceSpecification() + * @generated + */ + EReference getEventOccurrenceSpecification_OppositeEntityReference(); + + /** + * Returns the meta object for the containment reference '{@link org.etsi.mts.tdl.structuredobjectives.EventOccurrenceSpecification#getEventArgument Event Argument}'. + * + * + * @return the meta object for the containment reference 'Event Argument'. + * @see org.etsi.mts.tdl.structuredobjectives.EventOccurrenceSpecification#getEventArgument() + * @see #getEventOccurrenceSpecification() + * @generated + */ + EReference getEventOccurrenceSpecification_EventArgument(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.structuredobjectives.EntityReference Entity Reference}'. + * + * + * @return the meta object for class 'Entity Reference'. + * @see org.etsi.mts.tdl.structuredobjectives.EntityReference + * @generated + */ + EClass getEntityReference(); + + /** + * Returns the meta object for the reference '{@link org.etsi.mts.tdl.structuredobjectives.EntityReference#getEntity Entity}'. + * + * + * @return the meta object for the reference 'Entity'. + * @see org.etsi.mts.tdl.structuredobjectives.EntityReference#getEntity() + * @see #getEntityReference() + * @generated + */ + EReference getEntityReference_Entity(); + + /** + * Returns the meta object for the reference '{@link org.etsi.mts.tdl.structuredobjectives.EntityReference#getComponent Component}'. + * + * + * @return the meta object for the reference 'Component'. + * @see org.etsi.mts.tdl.structuredobjectives.EntityReference#getComponent() + * @see #getEntityReference() + * @generated + */ + EReference getEntityReference_Component(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.structuredobjectives.EventReference Event Reference}'. + * + * + * @return the meta object for class 'Event Reference'. + * @see org.etsi.mts.tdl.structuredobjectives.EventReference + * @generated + */ + EClass getEventReference(); + + /** + * Returns the meta object for the reference '{@link org.etsi.mts.tdl.structuredobjectives.EventReference#getEvent Event}'. + * + * + * @return the meta object for the reference 'Event'. + * @see org.etsi.mts.tdl.structuredobjectives.EventReference#getEvent() + * @see #getEventReference() + * @generated + */ + EReference getEventReference_Event(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.structuredobjectives.Value Value}'. + * + * + * @return the meta object for class 'Value'. + * @see org.etsi.mts.tdl.structuredobjectives.Value + * @generated + */ + EClass getValue(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.structuredobjectives.EventArgument Event Argument}'. + * + * + * @return the meta object for class 'Event Argument'. + * @see org.etsi.mts.tdl.structuredobjectives.EventArgument + * @generated + */ + EClass getEventArgument(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.structuredobjectives.DataReference Data Reference}'. + * + * + * @return the meta object for class 'Data Reference'. + * @see org.etsi.mts.tdl.structuredobjectives.DataReference + * @generated + */ + EClass getDataReference(); + + /** + * Returns the meta object for the containment reference '{@link org.etsi.mts.tdl.structuredobjectives.DataReference#getContent Content}'. + * + * + * @return the meta object for the containment reference 'Content'. + * @see org.etsi.mts.tdl.structuredobjectives.DataReference#getContent() + * @see #getDataReference() + * @generated + */ + EReference getDataReference_Content(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.structuredobjectives.Content Content}'. + * + * + * @return the meta object for class 'Content'. + * @see org.etsi.mts.tdl.structuredobjectives.Content + * @generated + */ + EClass getContent(); + + /** + * Returns the meta object for the containment reference '{@link org.etsi.mts.tdl.structuredobjectives.Content#getValue Value}'. + * + * + * @return the meta object for the containment reference 'Value'. + * @see org.etsi.mts.tdl.structuredobjectives.Content#getValue() + * @see #getContent() + * @generated + */ + EReference getContent_Value(); + + /** + * Returns the meta object for the containment reference list '{@link org.etsi.mts.tdl.structuredobjectives.Content#getContent Content}'. + * + * + * @return the meta object for the containment reference list 'Content'. + * @see org.etsi.mts.tdl.structuredobjectives.Content#getContent() + * @see #getContent() + * @generated + */ + EReference getContent_Content(); + + /** + * Returns the meta object for the reference '{@link org.etsi.mts.tdl.structuredobjectives.Content#getMember Member}'. + * + * + * @return the meta object for the reference 'Member'. + * @see org.etsi.mts.tdl.structuredobjectives.Content#getMember() + * @see #getContent() + * @generated + */ + EReference getContent_Member(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.structuredobjectives.LiteralValue Literal Value}'. + * + * + * @return the meta object for class 'Literal Value'. + * @see org.etsi.mts.tdl.structuredobjectives.LiteralValue + * @generated + */ + EClass getLiteralValue(); + + /** + * Returns the meta object for the containment reference list '{@link org.etsi.mts.tdl.structuredobjectives.LiteralValue#getContent Content}'. + * + * + * @return the meta object for the containment reference list 'Content'. + * @see org.etsi.mts.tdl.structuredobjectives.LiteralValue#getContent() + * @see #getLiteralValue() + * @generated + */ + EReference getLiteralValue_Content(); + + /** + * Returns the meta object for the reference '{@link org.etsi.mts.tdl.structuredobjectives.LiteralValue#getDataType Data Type}'. + * + * + * @return the meta object for the reference 'Data Type'. + * @see org.etsi.mts.tdl.structuredobjectives.LiteralValue#getDataType() + * @see #getLiteralValue() + * @generated + */ + EReference getLiteralValue_DataType(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.structuredobjectives.ContentReference Content Reference}'. + * + * + * @return the meta object for class 'Content Reference'. + * @see org.etsi.mts.tdl.structuredobjectives.ContentReference + * @generated + */ + EClass getContentReference(); + + /** + * Returns the meta object for the reference '{@link org.etsi.mts.tdl.structuredobjectives.ContentReference#getContent Content}'. + * + * + * @return the meta object for the reference 'Content'. + * @see org.etsi.mts.tdl.structuredobjectives.ContentReference#getContent() + * @see #getContentReference() + * @generated + */ + EReference getContentReference_Content(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.structuredobjectives.LiteralValueReference Literal Value Reference}'. + * + * + * @return the meta object for class 'Literal Value Reference'. + * @see org.etsi.mts.tdl.structuredobjectives.LiteralValueReference + * @generated + */ + EClass getLiteralValueReference(); + + /** + * Returns the meta object for the reference '{@link org.etsi.mts.tdl.structuredobjectives.LiteralValueReference#getContent Content}'. + * + * + * @return the meta object for the reference 'Content'. + * @see org.etsi.mts.tdl.structuredobjectives.LiteralValueReference#getContent() + * @see #getLiteralValueReference() + * @generated + */ + EReference getLiteralValueReference_Content(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.structuredobjectives.RepeatedEventSequence Repeated Event Sequence}'. + * + * + * @return the meta object for class 'Repeated Event Sequence'. + * @see org.etsi.mts.tdl.structuredobjectives.RepeatedEventSequence + * @generated + */ + EClass getRepeatedEventSequence(); + + /** + * Returns the meta object for the containment reference '{@link org.etsi.mts.tdl.structuredobjectives.RepeatedEventSequence#getRepetitions Repetitions}'. + * + * + * @return the meta object for the containment reference 'Repetitions'. + * @see org.etsi.mts.tdl.structuredobjectives.RepeatedEventSequence#getRepetitions() + * @see #getRepeatedEventSequence() + * @generated + */ + EReference getRepeatedEventSequence_Repetitions(); + + /** + * Returns the meta object for the containment reference '{@link org.etsi.mts.tdl.structuredobjectives.RepeatedEventSequence#getInterval Interval}'. + * + * + * @return the meta object for the containment reference 'Interval'. + * @see org.etsi.mts.tdl.structuredobjectives.RepeatedEventSequence#getInterval() + * @see #getRepeatedEventSequence() + * @generated + */ + EReference getRepeatedEventSequence_Interval(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.structuredobjectives.EventTemplateOccurrence Event Template Occurrence}'. + * + * + * @return the meta object for class 'Event Template Occurrence'. + * @see org.etsi.mts.tdl.structuredobjectives.EventTemplateOccurrence + * @generated + */ + EClass getEventTemplateOccurrence(); + + /** + * Returns the meta object for the reference '{@link org.etsi.mts.tdl.structuredobjectives.EventTemplateOccurrence#getEventTemplate Event Template}'. + * + * + * @return the meta object for the reference 'Event Template'. + * @see org.etsi.mts.tdl.structuredobjectives.EventTemplateOccurrence#getEventTemplate() + * @see #getEventTemplateOccurrence() + * @generated + */ + EReference getEventTemplateOccurrence_EventTemplate(); + + /** + * Returns the meta object for the containment reference list '{@link org.etsi.mts.tdl.structuredobjectives.EventTemplateOccurrence#getEntityBinding Entity Binding}'. + * + * + * @return the meta object for the containment reference list 'Entity Binding'. + * @see org.etsi.mts.tdl.structuredobjectives.EventTemplateOccurrence#getEntityBinding() + * @see #getEventTemplateOccurrence() + * @generated + */ + EReference getEventTemplateOccurrence_EntityBinding(); + + /** + * Returns the meta object for the containment reference '{@link org.etsi.mts.tdl.structuredobjectives.EventTemplateOccurrence#getOccurrenceArgument Occurrence Argument}'. + * + * + * @return the meta object for the containment reference 'Occurrence Argument'. + * @see org.etsi.mts.tdl.structuredobjectives.EventTemplateOccurrence#getOccurrenceArgument() + * @see #getEventTemplateOccurrence() + * @generated + */ + EReference getEventTemplateOccurrence_OccurrenceArgument(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.structuredobjectives.EventSpecificationTemplate Event Specification Template}'. + * + * + * @return the meta object for class 'Event Specification Template'. + * @see org.etsi.mts.tdl.structuredobjectives.EventSpecificationTemplate + * @generated + */ + EClass getEventSpecificationTemplate(); + + /** + * Returns the meta object for the containment reference '{@link org.etsi.mts.tdl.structuredobjectives.EventSpecificationTemplate#getEventSpecification Event Specification}'. + * + * + * @return the meta object for the containment reference 'Event Specification'. + * @see org.etsi.mts.tdl.structuredobjectives.EventSpecificationTemplate#getEventSpecification() + * @see #getEventSpecificationTemplate() + * @generated + */ + EReference getEventSpecificationTemplate_EventSpecification(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.structuredobjectives.EntityBinding Entity Binding}'. + * + * + * @return the meta object for class 'Entity Binding'. + * @see org.etsi.mts.tdl.structuredobjectives.EntityBinding + * @generated + */ + EClass getEntityBinding(); + + /** + * Returns the meta object for the containment reference '{@link org.etsi.mts.tdl.structuredobjectives.EntityBinding#getTemplateEntity Template Entity}'. + * + * + * @return the meta object for the containment reference 'Template Entity'. + * @see org.etsi.mts.tdl.structuredobjectives.EntityBinding#getTemplateEntity() + * @see #getEntityBinding() + * @generated + */ + EReference getEntityBinding_TemplateEntity(); + + /** + * Returns the meta object for the containment reference '{@link org.etsi.mts.tdl.structuredobjectives.EntityBinding#getOccurrenceEntity Occurrence Entity}'. + * + * + * @return the meta object for the containment reference 'Occurrence Entity'. + * @see org.etsi.mts.tdl.structuredobjectives.EntityBinding#getOccurrenceEntity() + * @see #getEntityBinding() + * @generated + */ + EReference getEntityBinding_OccurrenceEntity(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.structuredobjectives.Variants Variants}'. + * + * + * @return the meta object for class 'Variants'. + * @see org.etsi.mts.tdl.structuredobjectives.Variants + * @generated + */ + EClass getVariants(); + + /** + * Returns the meta object for the containment reference list '{@link org.etsi.mts.tdl.structuredobjectives.Variants#getVariants Variants}'. + * + * + * @return the meta object for the containment reference list 'Variants'. + * @see org.etsi.mts.tdl.structuredobjectives.Variants#getVariants() + * @see #getVariants() + * @generated + */ + EReference getVariants_Variants(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.structuredobjectives.TestObjectiveVariant Test Objective Variant}'. + * + * + * @return the meta object for class 'Test Objective Variant'. + * @see org.etsi.mts.tdl.structuredobjectives.TestObjectiveVariant + * @generated + */ + EClass getTestObjectiveVariant(); + + /** + * Returns the meta object for the containment reference list '{@link org.etsi.mts.tdl.structuredobjectives.TestObjectiveVariant#getPicsReference Pics Reference}'. + * + * + * @return the meta object for the containment reference list 'Pics Reference'. + * @see org.etsi.mts.tdl.structuredobjectives.TestObjectiveVariant#getPicsReference() + * @see #getTestObjectiveVariant() + * @generated + */ + EReference getTestObjectiveVariant_PicsReference(); + + /** + * Returns the meta object for the containment reference list '{@link org.etsi.mts.tdl.structuredobjectives.TestObjectiveVariant#getBindings Bindings}'. + * + * + * @return the meta object for the containment reference list 'Bindings'. + * @see org.etsi.mts.tdl.structuredobjectives.TestObjectiveVariant#getBindings() + * @see #getTestObjectiveVariant() + * @generated + */ + EReference getTestObjectiveVariant_Bindings(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.structuredobjectives.VariantBinding Variant Binding}'. + * + * + * @return the meta object for class 'Variant Binding'. + * @see org.etsi.mts.tdl.structuredobjectives.VariantBinding + * @generated + */ + EClass getVariantBinding(); + + /** + * Returns the meta object for the containment reference '{@link org.etsi.mts.tdl.structuredobjectives.VariantBinding#getValue Value}'. + * + * + * @return the meta object for the containment reference 'Value'. + * @see org.etsi.mts.tdl.structuredobjectives.VariantBinding#getValue() + * @see #getVariantBinding() + * @generated + */ + EReference getVariantBinding_Value(); + + /** + * Returns the meta object for the containment reference '{@link org.etsi.mts.tdl.structuredobjectives.VariantBinding#getBoundTo Bound To}'. + * + * + * @return the meta object for the containment reference 'Bound To'. + * @see org.etsi.mts.tdl.structuredobjectives.VariantBinding#getBoundTo() + * @see #getVariantBinding() + * @generated + */ + EReference getVariantBinding_BoundTo(); + + /** + * Returns the factory that creates the instances of the model. + * + * + * @return the factory that creates the instances of the model. + * @generated + */ + StructuredObjectivesFactory getStructuredObjectivesFactory(); + + /** + * + * Defines literals for the meta objects that represent + *
    + *
  • each class,
  • + *
  • each feature of each class,
  • + *
  • each operation of each class,
  • + *
  • each enum,
  • + *
  • and each data type
  • + *
+ * + * @generated + */ + interface Literals + { + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.structuredobjectives.impl.ElementImpl Element}' class. + * + * + * @see org.etsi.mts.tdl.structuredobjectives.impl.ElementImpl + * @see org.etsi.mts.tdl.structuredobjectives.impl.StructuredObjectivesPackageImpl#getElement() + * @generated + */ + EClass ELEMENT = eINSTANCE.getElement(); + + /** + * The meta object literal for the 'Get Test Objective' operation. + * + * + * @generated + */ + EOperation ELEMENT___GET_TEST_OBJECTIVE = eINSTANCE.getElement__GetTestObjective(); + + /** + * The meta object literal for the 'Contains' operation. + * + * + * @generated + */ + EOperation ELEMENT___CONTAINS__ELEMENT = eINSTANCE.getElement__Contains__Element(); + + /** + * The meta object literal for the 'Get Notes' operation. + * + * + * @generated + */ + EOperation ELEMENT___GET_NOTES = eINSTANCE.getElement__GetNotes(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.structuredobjectives.impl.StructuredTestObjectiveImpl Structured Test Objective}' class. + * + * + * @see org.etsi.mts.tdl.structuredobjectives.impl.StructuredTestObjectiveImpl + * @see org.etsi.mts.tdl.structuredobjectives.impl.StructuredObjectivesPackageImpl#getStructuredTestObjective() + * @generated + */ + EClass STRUCTURED_TEST_OBJECTIVE = eINSTANCE.getStructuredTestObjective(); + + /** + * The meta object literal for the 'Configuration' reference feature. + * + * + * @generated + */ + EReference STRUCTURED_TEST_OBJECTIVE__CONFIGURATION = eINSTANCE.getStructuredTestObjective_Configuration(); + + /** + * The meta object literal for the 'Initial Conditions' containment reference feature. + * + * + * @generated + */ + EReference STRUCTURED_TEST_OBJECTIVE__INITIAL_CONDITIONS = eINSTANCE.getStructuredTestObjective_InitialConditions(); + + /** + * The meta object literal for the 'Expected Behaviour' containment reference feature. + * + * + * @generated + */ + EReference STRUCTURED_TEST_OBJECTIVE__EXPECTED_BEHAVIOUR = eINSTANCE.getStructuredTestObjective_ExpectedBehaviour(); + + /** + * The meta object literal for the 'Final Conditions' containment reference feature. + * + * + * @generated + */ + EReference STRUCTURED_TEST_OBJECTIVE__FINAL_CONDITIONS = eINSTANCE.getStructuredTestObjective_FinalConditions(); + + /** + * The meta object literal for the 'Pics Reference' containment reference list feature. + * + * + * @generated + */ + EReference STRUCTURED_TEST_OBJECTIVE__PICS_REFERENCE = eINSTANCE.getStructuredTestObjective_PicsReference(); + + /** + * The meta object literal for the 'Variants' containment reference feature. + * + * + * @generated + */ + EReference STRUCTURED_TEST_OBJECTIVE__VARIANTS = eINSTANCE.getStructuredTestObjective_Variants(); + + /** + * The meta object literal for the 'Index Of' operation. + * + * + * @generated + */ + EOperation STRUCTURED_TEST_OBJECTIVE___INDEX_OF__ELEMENT = eINSTANCE.getStructuredTestObjective__IndexOf__Element(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.structuredobjectives.impl.InitialConditionsImpl Initial Conditions}' class. + * + * + * @see org.etsi.mts.tdl.structuredobjectives.impl.InitialConditionsImpl + * @see org.etsi.mts.tdl.structuredobjectives.impl.StructuredObjectivesPackageImpl#getInitialConditions() + * @generated + */ + EClass INITIAL_CONDITIONS = eINSTANCE.getInitialConditions(); + + /** + * The meta object literal for the 'Conditions' containment reference feature. + * + * + * @generated + */ + EReference INITIAL_CONDITIONS__CONDITIONS = eINSTANCE.getInitialConditions_Conditions(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.structuredobjectives.impl.EventSequenceImpl Event Sequence}' class. + * + * + * @see org.etsi.mts.tdl.structuredobjectives.impl.EventSequenceImpl + * @see org.etsi.mts.tdl.structuredobjectives.impl.StructuredObjectivesPackageImpl#getEventSequence() + * @generated + */ + EClass EVENT_SEQUENCE = eINSTANCE.getEventSequence(); + + /** + * The meta object literal for the 'Events' containment reference list feature. + * + * + * @generated + */ + EReference EVENT_SEQUENCE__EVENTS = eINSTANCE.getEventSequence_Events(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.structuredobjectives.impl.EventOccurrenceImpl Event Occurrence}' class. + * + * + * @see org.etsi.mts.tdl.structuredobjectives.impl.EventOccurrenceImpl + * @see org.etsi.mts.tdl.structuredobjectives.impl.StructuredObjectivesPackageImpl#getEventOccurrence() + * @generated + */ + EClass EVENT_OCCURRENCE = eINSTANCE.getEventOccurrence(); + + /** + * The meta object literal for the 'Time Constraint' containment reference list feature. + * + * + * @generated + */ + EReference EVENT_OCCURRENCE__TIME_CONSTRAINT = eINSTANCE.getEventOccurrence_TimeConstraint(); + + /** + * The meta object literal for the 'Time Label' containment reference feature. + * + * + * @generated + */ + EReference EVENT_OCCURRENCE__TIME_LABEL = eINSTANCE.getEventOccurrence_TimeLabel(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.structuredobjectives.impl.ExpectedBehaviourImpl Expected Behaviour}' class. + * + * + * @see org.etsi.mts.tdl.structuredobjectives.impl.ExpectedBehaviourImpl + * @see org.etsi.mts.tdl.structuredobjectives.impl.StructuredObjectivesPackageImpl#getExpectedBehaviour() + * @generated + */ + EClass EXPECTED_BEHAVIOUR = eINSTANCE.getExpectedBehaviour(); + + /** + * The meta object literal for the 'When Clause' containment reference feature. + * + * + * @generated + */ + EReference EXPECTED_BEHAVIOUR__WHEN_CLAUSE = eINSTANCE.getExpectedBehaviour_WhenClause(); + + /** + * The meta object literal for the 'Then Clause' containment reference feature. + * + * + * @generated + */ + EReference EXPECTED_BEHAVIOUR__THEN_CLAUSE = eINSTANCE.getExpectedBehaviour_ThenClause(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.structuredobjectives.impl.FinalConditionsImpl Final Conditions}' class. + * + * + * @see org.etsi.mts.tdl.structuredobjectives.impl.FinalConditionsImpl + * @see org.etsi.mts.tdl.structuredobjectives.impl.StructuredObjectivesPackageImpl#getFinalConditions() + * @generated + */ + EClass FINAL_CONDITIONS = eINSTANCE.getFinalConditions(); + + /** + * The meta object literal for the 'Conditions' containment reference feature. + * + * + * @generated + */ + EReference FINAL_CONDITIONS__CONDITIONS = eINSTANCE.getFinalConditions_Conditions(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.structuredobjectives.impl.PICSReferenceImpl PICS Reference}' class. + * + * + * @see org.etsi.mts.tdl.structuredobjectives.impl.PICSReferenceImpl + * @see org.etsi.mts.tdl.structuredobjectives.impl.StructuredObjectivesPackageImpl#getPICSReference() + * @generated + */ + EClass PICS_REFERENCE = eINSTANCE.getPICSReference(); + + /** + * The meta object literal for the 'Pics' reference feature. + * + * + * @generated + */ + EReference PICS_REFERENCE__PICS = eINSTANCE.getPICSReference_Pics(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.structuredobjectives.impl.PICSImpl PICS}' class. + * + * + * @see org.etsi.mts.tdl.structuredobjectives.impl.PICSImpl + * @see org.etsi.mts.tdl.structuredobjectives.impl.StructuredObjectivesPackageImpl#getPICS() + * @generated + */ + EClass PICS = eINSTANCE.getPICS(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.structuredobjectives.impl.EntityImpl Entity}' class. + * + * + * @see org.etsi.mts.tdl.structuredobjectives.impl.EntityImpl + * @see org.etsi.mts.tdl.structuredobjectives.impl.StructuredObjectivesPackageImpl#getEntity() + * @generated + */ + EClass ENTITY = eINSTANCE.getEntity(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.structuredobjectives.impl.EventImpl Event}' class. + * + * + * @see org.etsi.mts.tdl.structuredobjectives.impl.EventImpl + * @see org.etsi.mts.tdl.structuredobjectives.impl.StructuredObjectivesPackageImpl#getEvent() + * @generated + */ + EClass EVENT = eINSTANCE.getEvent(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.structuredobjectives.impl.EventOccurrenceSpecificationImpl Event Occurrence Specification}' class. + * + * + * @see org.etsi.mts.tdl.structuredobjectives.impl.EventOccurrenceSpecificationImpl + * @see org.etsi.mts.tdl.structuredobjectives.impl.StructuredObjectivesPackageImpl#getEventOccurrenceSpecification() + * @generated + */ + EClass EVENT_OCCURRENCE_SPECIFICATION = eINSTANCE.getEventOccurrenceSpecification(); + + /** + * The meta object literal for the 'Entity Reference' containment reference feature. + * + * + * @generated + */ + EReference EVENT_OCCURRENCE_SPECIFICATION__ENTITY_REFERENCE = eINSTANCE.getEventOccurrenceSpecification_EntityReference(); + + /** + * The meta object literal for the 'Event Reference' containment reference feature. + * + * + * @generated + */ + EReference EVENT_OCCURRENCE_SPECIFICATION__EVENT_REFERENCE = eINSTANCE.getEventOccurrenceSpecification_EventReference(); + + /** + * The meta object literal for the 'Opposite Entity Reference' containment reference list feature. + * + * + * @generated + */ + EReference EVENT_OCCURRENCE_SPECIFICATION__OPPOSITE_ENTITY_REFERENCE = eINSTANCE.getEventOccurrenceSpecification_OppositeEntityReference(); + + /** + * The meta object literal for the 'Event Argument' containment reference feature. + * + * + * @generated + */ + EReference EVENT_OCCURRENCE_SPECIFICATION__EVENT_ARGUMENT = eINSTANCE.getEventOccurrenceSpecification_EventArgument(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.structuredobjectives.impl.EntityReferenceImpl Entity Reference}' class. + * + * + * @see org.etsi.mts.tdl.structuredobjectives.impl.EntityReferenceImpl + * @see org.etsi.mts.tdl.structuredobjectives.impl.StructuredObjectivesPackageImpl#getEntityReference() + * @generated + */ + EClass ENTITY_REFERENCE = eINSTANCE.getEntityReference(); + + /** + * The meta object literal for the 'Entity' reference feature. + * + * + * @generated + */ + EReference ENTITY_REFERENCE__ENTITY = eINSTANCE.getEntityReference_Entity(); + + /** + * The meta object literal for the 'Component' reference feature. + * + * + * @generated + */ + EReference ENTITY_REFERENCE__COMPONENT = eINSTANCE.getEntityReference_Component(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.structuredobjectives.impl.EventReferenceImpl Event Reference}' class. + * + * + * @see org.etsi.mts.tdl.structuredobjectives.impl.EventReferenceImpl + * @see org.etsi.mts.tdl.structuredobjectives.impl.StructuredObjectivesPackageImpl#getEventReference() + * @generated + */ + EClass EVENT_REFERENCE = eINSTANCE.getEventReference(); + + /** + * The meta object literal for the 'Event' reference feature. + * + * + * @generated + */ + EReference EVENT_REFERENCE__EVENT = eINSTANCE.getEventReference_Event(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.structuredobjectives.impl.ValueImpl Value}' class. + * + * + * @see org.etsi.mts.tdl.structuredobjectives.impl.ValueImpl + * @see org.etsi.mts.tdl.structuredobjectives.impl.StructuredObjectivesPackageImpl#getValue() + * @generated + */ + EClass VALUE = eINSTANCE.getValue(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.structuredobjectives.impl.EventArgumentImpl Event Argument}' class. + * + * + * @see org.etsi.mts.tdl.structuredobjectives.impl.EventArgumentImpl + * @see org.etsi.mts.tdl.structuredobjectives.impl.StructuredObjectivesPackageImpl#getEventArgument() + * @generated + */ + EClass EVENT_ARGUMENT = eINSTANCE.getEventArgument(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.structuredobjectives.impl.DataReferenceImpl Data Reference}' class. + * + * + * @see org.etsi.mts.tdl.structuredobjectives.impl.DataReferenceImpl + * @see org.etsi.mts.tdl.structuredobjectives.impl.StructuredObjectivesPackageImpl#getDataReference() + * @generated + */ + EClass DATA_REFERENCE = eINSTANCE.getDataReference(); + + /** + * The meta object literal for the 'Content' containment reference feature. + * + * + * @generated + */ + EReference DATA_REFERENCE__CONTENT = eINSTANCE.getDataReference_Content(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.structuredobjectives.impl.ContentImpl Content}' class. + * + * + * @see org.etsi.mts.tdl.structuredobjectives.impl.ContentImpl + * @see org.etsi.mts.tdl.structuredobjectives.impl.StructuredObjectivesPackageImpl#getContent() + * @generated + */ + EClass CONTENT = eINSTANCE.getContent(); + + /** + * The meta object literal for the 'Value' containment reference feature. + * + * + * @generated + */ + EReference CONTENT__VALUE = eINSTANCE.getContent_Value(); + + /** + * The meta object literal for the 'Content' containment reference list feature. + * + * + * @generated + */ + EReference CONTENT__CONTENT = eINSTANCE.getContent_Content(); + + /** + * The meta object literal for the 'Member' reference feature. + * + * + * @generated + */ + EReference CONTENT__MEMBER = eINSTANCE.getContent_Member(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.structuredobjectives.impl.LiteralValueImpl Literal Value}' class. + * + * + * @see org.etsi.mts.tdl.structuredobjectives.impl.LiteralValueImpl + * @see org.etsi.mts.tdl.structuredobjectives.impl.StructuredObjectivesPackageImpl#getLiteralValue() + * @generated + */ + EClass LITERAL_VALUE = eINSTANCE.getLiteralValue(); + + /** + * The meta object literal for the 'Content' containment reference list feature. + * + * + * @generated + */ + EReference LITERAL_VALUE__CONTENT = eINSTANCE.getLiteralValue_Content(); + + /** + * The meta object literal for the 'Data Type' reference feature. + * + * + * @generated + */ + EReference LITERAL_VALUE__DATA_TYPE = eINSTANCE.getLiteralValue_DataType(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.structuredobjectives.impl.ContentReferenceImpl Content Reference}' class. + * + * + * @see org.etsi.mts.tdl.structuredobjectives.impl.ContentReferenceImpl + * @see org.etsi.mts.tdl.structuredobjectives.impl.StructuredObjectivesPackageImpl#getContentReference() + * @generated + */ + EClass CONTENT_REFERENCE = eINSTANCE.getContentReference(); + + /** + * The meta object literal for the 'Content' reference feature. + * + * + * @generated + */ + EReference CONTENT_REFERENCE__CONTENT = eINSTANCE.getContentReference_Content(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.structuredobjectives.impl.LiteralValueReferenceImpl Literal Value Reference}' class. + * + * + * @see org.etsi.mts.tdl.structuredobjectives.impl.LiteralValueReferenceImpl + * @see org.etsi.mts.tdl.structuredobjectives.impl.StructuredObjectivesPackageImpl#getLiteralValueReference() + * @generated + */ + EClass LITERAL_VALUE_REFERENCE = eINSTANCE.getLiteralValueReference(); + + /** + * The meta object literal for the 'Content' reference feature. + * + * + * @generated + */ + EReference LITERAL_VALUE_REFERENCE__CONTENT = eINSTANCE.getLiteralValueReference_Content(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.structuredobjectives.impl.RepeatedEventSequenceImpl Repeated Event Sequence}' class. + * + * + * @see org.etsi.mts.tdl.structuredobjectives.impl.RepeatedEventSequenceImpl + * @see org.etsi.mts.tdl.structuredobjectives.impl.StructuredObjectivesPackageImpl#getRepeatedEventSequence() + * @generated + */ + EClass REPEATED_EVENT_SEQUENCE = eINSTANCE.getRepeatedEventSequence(); + + /** + * The meta object literal for the 'Repetitions' containment reference feature. + * + * + * @generated + */ + EReference REPEATED_EVENT_SEQUENCE__REPETITIONS = eINSTANCE.getRepeatedEventSequence_Repetitions(); + + /** + * The meta object literal for the 'Interval' containment reference feature. + * + * + * @generated + */ + EReference REPEATED_EVENT_SEQUENCE__INTERVAL = eINSTANCE.getRepeatedEventSequence_Interval(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.structuredobjectives.impl.EventTemplateOccurrenceImpl Event Template Occurrence}' class. + * + * + * @see org.etsi.mts.tdl.structuredobjectives.impl.EventTemplateOccurrenceImpl + * @see org.etsi.mts.tdl.structuredobjectives.impl.StructuredObjectivesPackageImpl#getEventTemplateOccurrence() + * @generated + */ + EClass EVENT_TEMPLATE_OCCURRENCE = eINSTANCE.getEventTemplateOccurrence(); + + /** + * The meta object literal for the 'Event Template' reference feature. + * + * + * @generated + */ + EReference EVENT_TEMPLATE_OCCURRENCE__EVENT_TEMPLATE = eINSTANCE.getEventTemplateOccurrence_EventTemplate(); + + /** + * The meta object literal for the 'Entity Binding' containment reference list feature. + * + * + * @generated + */ + EReference EVENT_TEMPLATE_OCCURRENCE__ENTITY_BINDING = eINSTANCE.getEventTemplateOccurrence_EntityBinding(); + + /** + * The meta object literal for the 'Occurrence Argument' containment reference feature. + * + * + * @generated + */ + EReference EVENT_TEMPLATE_OCCURRENCE__OCCURRENCE_ARGUMENT = eINSTANCE.getEventTemplateOccurrence_OccurrenceArgument(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.structuredobjectives.impl.EventSpecificationTemplateImpl Event Specification Template}' class. + * + * + * @see org.etsi.mts.tdl.structuredobjectives.impl.EventSpecificationTemplateImpl + * @see org.etsi.mts.tdl.structuredobjectives.impl.StructuredObjectivesPackageImpl#getEventSpecificationTemplate() + * @generated + */ + EClass EVENT_SPECIFICATION_TEMPLATE = eINSTANCE.getEventSpecificationTemplate(); + + /** + * The meta object literal for the 'Event Specification' containment reference feature. + * + * + * @generated + */ + EReference EVENT_SPECIFICATION_TEMPLATE__EVENT_SPECIFICATION = eINSTANCE.getEventSpecificationTemplate_EventSpecification(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.structuredobjectives.impl.EntityBindingImpl Entity Binding}' class. + * + * + * @see org.etsi.mts.tdl.structuredobjectives.impl.EntityBindingImpl + * @see org.etsi.mts.tdl.structuredobjectives.impl.StructuredObjectivesPackageImpl#getEntityBinding() + * @generated + */ + EClass ENTITY_BINDING = eINSTANCE.getEntityBinding(); + + /** + * The meta object literal for the 'Template Entity' containment reference feature. + * + * + * @generated + */ + EReference ENTITY_BINDING__TEMPLATE_ENTITY = eINSTANCE.getEntityBinding_TemplateEntity(); + + /** + * The meta object literal for the 'Occurrence Entity' containment reference feature. + * + * + * @generated + */ + EReference ENTITY_BINDING__OCCURRENCE_ENTITY = eINSTANCE.getEntityBinding_OccurrenceEntity(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.structuredobjectives.impl.VariantsImpl Variants}' class. + * + * + * @see org.etsi.mts.tdl.structuredobjectives.impl.VariantsImpl + * @see org.etsi.mts.tdl.structuredobjectives.impl.StructuredObjectivesPackageImpl#getVariants() + * @generated + */ + EClass VARIANTS = eINSTANCE.getVariants(); + + /** + * The meta object literal for the 'Variants' containment reference list feature. + * + * + * @generated + */ + EReference VARIANTS__VARIANTS = eINSTANCE.getVariants_Variants(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.structuredobjectives.impl.TestObjectiveVariantImpl Test Objective Variant}' class. + * + * + * @see org.etsi.mts.tdl.structuredobjectives.impl.TestObjectiveVariantImpl + * @see org.etsi.mts.tdl.structuredobjectives.impl.StructuredObjectivesPackageImpl#getTestObjectiveVariant() + * @generated + */ + EClass TEST_OBJECTIVE_VARIANT = eINSTANCE.getTestObjectiveVariant(); + + /** + * The meta object literal for the 'Pics Reference' containment reference list feature. + * + * + * @generated + */ + EReference TEST_OBJECTIVE_VARIANT__PICS_REFERENCE = eINSTANCE.getTestObjectiveVariant_PicsReference(); + + /** + * The meta object literal for the 'Bindings' containment reference list feature. + * + * + * @generated + */ + EReference TEST_OBJECTIVE_VARIANT__BINDINGS = eINSTANCE.getTestObjectiveVariant_Bindings(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.structuredobjectives.impl.VariantBindingImpl Variant Binding}' class. + * + * + * @see org.etsi.mts.tdl.structuredobjectives.impl.VariantBindingImpl + * @see org.etsi.mts.tdl.structuredobjectives.impl.StructuredObjectivesPackageImpl#getVariantBinding() + * @generated + */ + EClass VARIANT_BINDING = eINSTANCE.getVariantBinding(); + + /** + * The meta object literal for the 'Value' containment reference feature. + * + * + * @generated + */ + EReference VARIANT_BINDING__VALUE = eINSTANCE.getVariantBinding_Value(); + + /** + * The meta object literal for the 'Bound To' containment reference feature. + * + * + * @generated + */ + EReference VARIANT_BINDING__BOUND_TO = eINSTANCE.getVariantBinding_BoundTo(); + + } + +} //StructuredObjectivesPackage diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/StructuredTestObjective.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/StructuredTestObjective.java new file mode 100644 index 0000000000000000000000000000000000000000..306ca08f65d30bc0a178c12492d1c22e924b40c0 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/StructuredTestObjective.java @@ -0,0 +1,164 @@ +/** + */ +package org.etsi.mts.tdl.structuredobjectives; + +import org.eclipse.emf.common.util.EList; + +import org.etsi.mts.tdl.TestConfiguration; +import org.etsi.mts.tdl.TestObjective; + +/** + * + * A representation of the model object 'Structured Test Objective'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.structuredobjectives.StructuredTestObjective#getConfiguration Configuration}
  • + *
  • {@link org.etsi.mts.tdl.structuredobjectives.StructuredTestObjective#getInitialConditions Initial Conditions}
  • + *
  • {@link org.etsi.mts.tdl.structuredobjectives.StructuredTestObjective#getExpectedBehaviour Expected Behaviour}
  • + *
  • {@link org.etsi.mts.tdl.structuredobjectives.StructuredTestObjective#getFinalConditions Final Conditions}
  • + *
  • {@link org.etsi.mts.tdl.structuredobjectives.StructuredTestObjective#getPicsReference Pics Reference}
  • + *
  • {@link org.etsi.mts.tdl.structuredobjectives.StructuredTestObjective#getVariants Variants}
  • + *
+ * + * @see org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage#getStructuredTestObjective() + * @model + * @generated + */ +public interface StructuredTestObjective extends TestObjective, Element +{ + /** + * Returns the value of the 'Configuration' reference. + * + * + * @return the value of the 'Configuration' reference. + * @see #setConfiguration(TestConfiguration) + * @see org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage#getStructuredTestObjective_Configuration() + * @model + * @generated + */ + TestConfiguration getConfiguration(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.structuredobjectives.StructuredTestObjective#getConfiguration Configuration}' reference. + * + * + * @param value the new value of the 'Configuration' reference. + * @see #getConfiguration() + * @generated + */ + void setConfiguration(TestConfiguration value); + + /** + * Returns the value of the 'Initial Conditions' containment reference. + * + * + * @return the value of the 'Initial Conditions' containment reference. + * @see #setInitialConditions(InitialConditions) + * @see org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage#getStructuredTestObjective_InitialConditions() + * @model containment="true" + * @generated + */ + InitialConditions getInitialConditions(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.structuredobjectives.StructuredTestObjective#getInitialConditions Initial Conditions}' containment reference. + * + * + * @param value the new value of the 'Initial Conditions' containment reference. + * @see #getInitialConditions() + * @generated + */ + void setInitialConditions(InitialConditions value); + + /** + * Returns the value of the 'Expected Behaviour' containment reference. + * + * + * @return the value of the 'Expected Behaviour' containment reference. + * @see #setExpectedBehaviour(ExpectedBehaviour) + * @see org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage#getStructuredTestObjective_ExpectedBehaviour() + * @model containment="true" + * @generated + */ + ExpectedBehaviour getExpectedBehaviour(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.structuredobjectives.StructuredTestObjective#getExpectedBehaviour Expected Behaviour}' containment reference. + * + * + * @param value the new value of the 'Expected Behaviour' containment reference. + * @see #getExpectedBehaviour() + * @generated + */ + void setExpectedBehaviour(ExpectedBehaviour value); + + /** + * Returns the value of the 'Final Conditions' containment reference. + * + * + * @return the value of the 'Final Conditions' containment reference. + * @see #setFinalConditions(FinalConditions) + * @see org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage#getStructuredTestObjective_FinalConditions() + * @model containment="true" + * @generated + */ + FinalConditions getFinalConditions(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.structuredobjectives.StructuredTestObjective#getFinalConditions Final Conditions}' containment reference. + * + * + * @param value the new value of the 'Final Conditions' containment reference. + * @see #getFinalConditions() + * @generated + */ + void setFinalConditions(FinalConditions value); + + /** + * Returns the value of the 'Pics Reference' containment reference list. + * The list contents are of type {@link org.etsi.mts.tdl.structuredobjectives.PICSReference}. + * + * + * @return the value of the 'Pics Reference' containment reference list. + * @see org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage#getStructuredTestObjective_PicsReference() + * @model containment="true" + * @generated + */ + EList getPicsReference(); + + /** + * Returns the value of the 'Variants' containment reference. + * + * + * @return the value of the 'Variants' containment reference. + * @see #setVariants(Variants) + * @see org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage#getStructuredTestObjective_Variants() + * @model containment="true" + * @generated + */ + Variants getVariants(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.structuredobjectives.StructuredTestObjective#getVariants Variants}' containment reference. + * + * + * @param value the new value of the 'Variants' containment reference. + * @see #getVariants() + * @generated + */ + void setVariants(Variants value); + + /** + * + * + * @model required="true" + * annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot body='self->asOrderedSet()->closure(oclContents())->indexOf(object)'" + * @generated + */ + int indexOf(Element object); + +} // StructuredTestObjective diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/TestObjectiveVariant.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/TestObjectiveVariant.java new file mode 100644 index 0000000000000000000000000000000000000000..a09d3f11074bd17dfbf68f8a26aafe9c722e35b8 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/TestObjectiveVariant.java @@ -0,0 +1,53 @@ +/** + */ +package org.etsi.mts.tdl.structuredobjectives; + +import org.eclipse.emf.common.util.EList; + +import org.etsi.mts.tdl.TestObjective; + +/** + * + * A representation of the model object 'Test Objective Variant'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.structuredobjectives.TestObjectiveVariant#getPicsReference Pics Reference}
  • + *
  • {@link org.etsi.mts.tdl.structuredobjectives.TestObjectiveVariant#getBindings Bindings}
  • + *
+ * + * @see org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage#getTestObjectiveVariant() + * @model + * @generated + */ +public interface TestObjectiveVariant extends TestObjective, Element +{ + /** + * Returns the value of the 'Pics Reference' containment reference list. + * The list contents are of type {@link org.etsi.mts.tdl.structuredobjectives.PICSReference}. + * + * + * @return the value of the 'Pics Reference' containment reference list. + * @see org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage#getTestObjectiveVariant_PicsReference() + * @model containment="true" + * @generated + */ + EList getPicsReference(); + + /** + * Returns the value of the 'Bindings' containment reference list. + * The list contents are of type {@link org.etsi.mts.tdl.structuredobjectives.VariantBinding}. + * + * + * @return the value of the 'Bindings' containment reference list. + * @see org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage#getTestObjectiveVariant_Bindings() + * @model containment="true" + * annotation="http://www.eclipse.org/OCL/Collection nullFree='false'" + * @generated + */ + EList getBindings(); + +} // TestObjectiveVariant diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/Value.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/Value.java new file mode 100644 index 0000000000000000000000000000000000000000..aa165161a4e15797bbe02bb6d2504ed8d4565cdb --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/Value.java @@ -0,0 +1,18 @@ +/** + */ +package org.etsi.mts.tdl.structuredobjectives; + + +/** + * + * A representation of the model object 'Value'. + * + * + * + * @see org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage#getValue() + * @model abstract="true" + * @generated + */ +public interface Value extends Element +{ +} // Value diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/VariantBinding.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/VariantBinding.java new file mode 100644 index 0000000000000000000000000000000000000000..bfe57ed82cf026884685d4ec3f16adc1205575b9 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/VariantBinding.java @@ -0,0 +1,69 @@ +/** + */ +package org.etsi.mts.tdl.structuredobjectives; + + +/** + * + * A representation of the model object 'Variant Binding'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.structuredobjectives.VariantBinding#getValue Value}
  • + *
  • {@link org.etsi.mts.tdl.structuredobjectives.VariantBinding#getBoundTo Bound To}
  • + *
+ * + * @see org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage#getVariantBinding() + * @model + * @generated + */ +public interface VariantBinding extends Element +{ + /** + * Returns the value of the 'Value' containment reference. + * + * + * @return the value of the 'Value' containment reference. + * @see #setValue(Value) + * @see org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage#getVariantBinding_Value() + * @model containment="true" required="true" + * @generated + */ + Value getValue(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.structuredobjectives.VariantBinding#getValue Value}' containment reference. + * + * + * @param value the new value of the 'Value' containment reference. + * @see #getValue() + * @generated + */ + void setValue(Value value); + + /** + * Returns the value of the 'Bound To' containment reference. + * + * + * @return the value of the 'Bound To' containment reference. + * @see #setBoundTo(Value) + * @see org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage#getVariantBinding_BoundTo() + * @model containment="true" required="true" + * @generated + */ + Value getBoundTo(); + + /** + * Sets the value of the '{@link org.etsi.mts.tdl.structuredobjectives.VariantBinding#getBoundTo Bound To}' containment reference. + * + * + * @param value the new value of the 'Bound To' containment reference. + * @see #getBoundTo() + * @generated + */ + void setBoundTo(Value value); + +} // VariantBinding diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/Variants.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/Variants.java new file mode 100644 index 0000000000000000000000000000000000000000..d90e512be995ce0e6493e5b2de1f204f33c00fb5 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/Variants.java @@ -0,0 +1,37 @@ +/** + */ +package org.etsi.mts.tdl.structuredobjectives; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Variants'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.structuredobjectives.Variants#getVariants Variants}
  • + *
+ * + * @see org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage#getVariants() + * @model + * @generated + */ +public interface Variants extends Element +{ + /** + * Returns the value of the 'Variants' containment reference list. + * The list contents are of type {@link org.etsi.mts.tdl.structuredobjectives.TestObjectiveVariant}. + * + * + * @return the value of the 'Variants' containment reference list. + * @see org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage#getVariants_Variants() + * @model containment="true" + * @generated + */ + EList getVariants(); + +} // Variants diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/ContentImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/ContentImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..514183e9ff8af861bd4cc184fde4e81ad13f3d5b --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/ContentImpl.java @@ -0,0 +1,311 @@ +/** + */ +package org.etsi.mts.tdl.structuredobjectives.impl; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.etsi.mts.tdl.Member; + +import org.etsi.mts.tdl.structuredobjectives.Content; +import org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage; +import org.etsi.mts.tdl.structuredobjectives.Value; + +/** + * + * An implementation of the model object 'Content'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.structuredobjectives.impl.ContentImpl#getValue Value}
  • + *
  • {@link org.etsi.mts.tdl.structuredobjectives.impl.ContentImpl#getContent Content}
  • + *
  • {@link org.etsi.mts.tdl.structuredobjectives.impl.ContentImpl#getMember Member}
  • + *
+ * + * @generated + */ +public class ContentImpl extends ElementImpl implements Content +{ + /** + * The cached value of the '{@link #getValue() Value}' containment reference. + * + * + * @see #getValue() + * @generated + * @ordered + */ + protected Value value; + + /** + * The cached value of the '{@link #getContent() Content}' containment reference list. + * + * + * @see #getContent() + * @generated + * @ordered + */ + protected EList content; + + /** + * The cached value of the '{@link #getMember() Member}' reference. + * + * + * @see #getMember() + * @generated + * @ordered + */ + protected Member member; + + /** + * + * + * @generated + */ + protected ContentImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return StructuredObjectivesPackage.Literals.CONTENT; + } + + /** + * + * + * @generated + */ + @Override + public Value getValue() + { + return value; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetValue(Value newValue, NotificationChain msgs) + { + Value oldValue = value; + value = newValue; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, StructuredObjectivesPackage.CONTENT__VALUE, oldValue, newValue); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + @Override + public void setValue(Value newValue) + { + if (newValue != value) + { + NotificationChain msgs = null; + if (value != null) + msgs = ((InternalEObject)value).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - StructuredObjectivesPackage.CONTENT__VALUE, null, msgs); + if (newValue != null) + msgs = ((InternalEObject)newValue).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - StructuredObjectivesPackage.CONTENT__VALUE, null, msgs); + msgs = basicSetValue(newValue, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, StructuredObjectivesPackage.CONTENT__VALUE, newValue, newValue)); + } + + /** + * + * + * @generated + */ + @Override + public EList getContent() + { + if (content == null) + { + content = new EObjectContainmentEList(Content.class, this, StructuredObjectivesPackage.CONTENT__CONTENT); + } + return content; + } + + /** + * + * + * @generated + */ + @Override + public Member getMember() + { + if (member != null && member.eIsProxy()) + { + InternalEObject oldMember = (InternalEObject)member; + member = (Member)eResolveProxy(oldMember); + if (member != oldMember) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, StructuredObjectivesPackage.CONTENT__MEMBER, oldMember, member)); + } + } + return member; + } + + /** + * + * + * @generated + */ + public Member basicGetMember() + { + return member; + } + + /** + * + * + * @generated + */ + @Override + public void setMember(Member newMember) + { + Member oldMember = member; + member = newMember; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, StructuredObjectivesPackage.CONTENT__MEMBER, oldMember, member)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case StructuredObjectivesPackage.CONTENT__VALUE: + return basicSetValue(null, msgs); + case StructuredObjectivesPackage.CONTENT__CONTENT: + return ((InternalEList)getContent()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case StructuredObjectivesPackage.CONTENT__VALUE: + return getValue(); + case StructuredObjectivesPackage.CONTENT__CONTENT: + return getContent(); + case StructuredObjectivesPackage.CONTENT__MEMBER: + if (resolve) return getMember(); + return basicGetMember(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case StructuredObjectivesPackage.CONTENT__VALUE: + setValue((Value)newValue); + return; + case StructuredObjectivesPackage.CONTENT__CONTENT: + getContent().clear(); + getContent().addAll((Collection)newValue); + return; + case StructuredObjectivesPackage.CONTENT__MEMBER: + setMember((Member)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case StructuredObjectivesPackage.CONTENT__VALUE: + setValue((Value)null); + return; + case StructuredObjectivesPackage.CONTENT__CONTENT: + getContent().clear(); + return; + case StructuredObjectivesPackage.CONTENT__MEMBER: + setMember((Member)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case StructuredObjectivesPackage.CONTENT__VALUE: + return value != null; + case StructuredObjectivesPackage.CONTENT__CONTENT: + return content != null && !content.isEmpty(); + case StructuredObjectivesPackage.CONTENT__MEMBER: + return member != null; + } + return super.eIsSet(featureID); + } + +} //ContentImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/ContentReferenceImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/ContentReferenceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..850ceb4a8a3a36b65daab90e97d0527a4d78e71a --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/ContentReferenceImpl.java @@ -0,0 +1,174 @@ +/** + */ +package org.etsi.mts.tdl.structuredobjectives.impl; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.etsi.mts.tdl.structuredobjectives.Content; +import org.etsi.mts.tdl.structuredobjectives.ContentReference; +import org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage; + +/** + * + * An implementation of the model object 'Content Reference'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.structuredobjectives.impl.ContentReferenceImpl#getContent Content}
  • + *
+ * + * @generated + */ +public class ContentReferenceImpl extends ValueImpl implements ContentReference +{ + /** + * The cached value of the '{@link #getContent() Content}' reference. + * + * + * @see #getContent() + * @generated + * @ordered + */ + protected Content content; + + /** + * + * + * @generated + */ + protected ContentReferenceImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return StructuredObjectivesPackage.Literals.CONTENT_REFERENCE; + } + + /** + * + * + * @generated + */ + @Override + public Content getContent() + { + if (content != null && content.eIsProxy()) + { + InternalEObject oldContent = (InternalEObject)content; + content = (Content)eResolveProxy(oldContent); + if (content != oldContent) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, StructuredObjectivesPackage.CONTENT_REFERENCE__CONTENT, oldContent, content)); + } + } + return content; + } + + /** + * + * + * @generated + */ + public Content basicGetContent() + { + return content; + } + + /** + * + * + * @generated + */ + @Override + public void setContent(Content newContent) + { + Content oldContent = content; + content = newContent; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, StructuredObjectivesPackage.CONTENT_REFERENCE__CONTENT, oldContent, content)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case StructuredObjectivesPackage.CONTENT_REFERENCE__CONTENT: + if (resolve) return getContent(); + return basicGetContent(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case StructuredObjectivesPackage.CONTENT_REFERENCE__CONTENT: + setContent((Content)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case StructuredObjectivesPackage.CONTENT_REFERENCE__CONTENT: + setContent((Content)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case StructuredObjectivesPackage.CONTENT_REFERENCE__CONTENT: + return content != null; + } + return super.eIsSet(featureID); + } + +} //ContentReferenceImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/DataReferenceImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/DataReferenceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..4dcb9256fc55e9f7cd1c3517cc372a31507f393d --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/DataReferenceImpl.java @@ -0,0 +1,196 @@ +/** + */ +package org.etsi.mts.tdl.structuredobjectives.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.etsi.mts.tdl.StaticDataUse; + +import org.etsi.mts.tdl.structuredobjectives.DataReference; +import org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage; + +/** + * + * An implementation of the model object 'Data Reference'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.structuredobjectives.impl.DataReferenceImpl#getContent Content}
  • + *
+ * + * @generated + */ +public class DataReferenceImpl extends ValueImpl implements DataReference +{ + /** + * The cached value of the '{@link #getContent() Content}' containment reference. + * + * + * @see #getContent() + * @generated + * @ordered + */ + protected StaticDataUse content; + + /** + * + * + * @generated + */ + protected DataReferenceImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return StructuredObjectivesPackage.Literals.DATA_REFERENCE; + } + + /** + * + * + * @generated + */ + @Override + public StaticDataUse getContent() + { + return content; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetContent(StaticDataUse newContent, NotificationChain msgs) + { + StaticDataUse oldContent = content; + content = newContent; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, StructuredObjectivesPackage.DATA_REFERENCE__CONTENT, oldContent, newContent); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + @Override + public void setContent(StaticDataUse newContent) + { + if (newContent != content) + { + NotificationChain msgs = null; + if (content != null) + msgs = ((InternalEObject)content).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - StructuredObjectivesPackage.DATA_REFERENCE__CONTENT, null, msgs); + if (newContent != null) + msgs = ((InternalEObject)newContent).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - StructuredObjectivesPackage.DATA_REFERENCE__CONTENT, null, msgs); + msgs = basicSetContent(newContent, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, StructuredObjectivesPackage.DATA_REFERENCE__CONTENT, newContent, newContent)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case StructuredObjectivesPackage.DATA_REFERENCE__CONTENT: + return basicSetContent(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case StructuredObjectivesPackage.DATA_REFERENCE__CONTENT: + return getContent(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case StructuredObjectivesPackage.DATA_REFERENCE__CONTENT: + setContent((StaticDataUse)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case StructuredObjectivesPackage.DATA_REFERENCE__CONTENT: + setContent((StaticDataUse)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case StructuredObjectivesPackage.DATA_REFERENCE__CONTENT: + return content != null; + } + return super.eIsSet(featureID); + } + +} //DataReferenceImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/ElementImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/ElementImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..07b9eb6c096fe655f974aa27792f1a23543f018d --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/ElementImpl.java @@ -0,0 +1,106 @@ +/** + */ +package org.etsi.mts.tdl.structuredobjectives.impl; + +import java.lang.reflect.InvocationTargetException; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; + +import org.etsi.mts.tdl.Comment; + +import org.etsi.mts.tdl.structuredobjectives.Element; +import org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage; +import org.etsi.mts.tdl.structuredobjectives.StructuredTestObjective; + +/** + * + * An implementation of the model object 'Element'. + * + * + * @generated + */ +public class ElementImpl extends org.etsi.mts.tdl.impl.ElementImpl implements Element +{ + /** + * + * + * @generated + */ + protected ElementImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return StructuredObjectivesPackage.Literals.ELEMENT; + } + + /** + * + * + * @generated + */ + @Override + public StructuredTestObjective getTestObjective() + { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + @Override + public boolean contains(Element object) + { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + @Override + public EList getNotes() + { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + @Override + public Object eInvoke(int operationID, EList arguments) throws InvocationTargetException + { + switch (operationID) + { + case StructuredObjectivesPackage.ELEMENT___GET_TEST_OBJECTIVE: + return getTestObjective(); + case StructuredObjectivesPackage.ELEMENT___CONTAINS__ELEMENT: + return contains((Element)arguments.get(0)); + case StructuredObjectivesPackage.ELEMENT___GET_NOTES: + return getNotes(); + } + return super.eInvoke(operationID, arguments); + } + +} //ElementImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/EntityBindingImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/EntityBindingImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..b3167a33a6eaf7922a33bf471694e513a3e481c8 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/EntityBindingImpl.java @@ -0,0 +1,268 @@ +/** + */ +package org.etsi.mts.tdl.structuredobjectives.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.etsi.mts.tdl.structuredobjectives.EntityBinding; +import org.etsi.mts.tdl.structuredobjectives.EntityReference; +import org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage; + +/** + * + * An implementation of the model object 'Entity Binding'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.structuredobjectives.impl.EntityBindingImpl#getTemplateEntity Template Entity}
  • + *
  • {@link org.etsi.mts.tdl.structuredobjectives.impl.EntityBindingImpl#getOccurrenceEntity Occurrence Entity}
  • + *
+ * + * @generated + */ +public class EntityBindingImpl extends ElementImpl implements EntityBinding +{ + /** + * The cached value of the '{@link #getTemplateEntity() Template Entity}' containment reference. + * + * + * @see #getTemplateEntity() + * @generated + * @ordered + */ + protected EntityReference templateEntity; + + /** + * The cached value of the '{@link #getOccurrenceEntity() Occurrence Entity}' containment reference. + * + * + * @see #getOccurrenceEntity() + * @generated + * @ordered + */ + protected EntityReference occurrenceEntity; + + /** + * + * + * @generated + */ + protected EntityBindingImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return StructuredObjectivesPackage.Literals.ENTITY_BINDING; + } + + /** + * + * + * @generated + */ + @Override + public EntityReference getTemplateEntity() + { + return templateEntity; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetTemplateEntity(EntityReference newTemplateEntity, NotificationChain msgs) + { + EntityReference oldTemplateEntity = templateEntity; + templateEntity = newTemplateEntity; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, StructuredObjectivesPackage.ENTITY_BINDING__TEMPLATE_ENTITY, oldTemplateEntity, newTemplateEntity); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + @Override + public void setTemplateEntity(EntityReference newTemplateEntity) + { + if (newTemplateEntity != templateEntity) + { + NotificationChain msgs = null; + if (templateEntity != null) + msgs = ((InternalEObject)templateEntity).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - StructuredObjectivesPackage.ENTITY_BINDING__TEMPLATE_ENTITY, null, msgs); + if (newTemplateEntity != null) + msgs = ((InternalEObject)newTemplateEntity).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - StructuredObjectivesPackage.ENTITY_BINDING__TEMPLATE_ENTITY, null, msgs); + msgs = basicSetTemplateEntity(newTemplateEntity, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, StructuredObjectivesPackage.ENTITY_BINDING__TEMPLATE_ENTITY, newTemplateEntity, newTemplateEntity)); + } + + /** + * + * + * @generated + */ + @Override + public EntityReference getOccurrenceEntity() + { + return occurrenceEntity; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetOccurrenceEntity(EntityReference newOccurrenceEntity, NotificationChain msgs) + { + EntityReference oldOccurrenceEntity = occurrenceEntity; + occurrenceEntity = newOccurrenceEntity; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, StructuredObjectivesPackage.ENTITY_BINDING__OCCURRENCE_ENTITY, oldOccurrenceEntity, newOccurrenceEntity); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + @Override + public void setOccurrenceEntity(EntityReference newOccurrenceEntity) + { + if (newOccurrenceEntity != occurrenceEntity) + { + NotificationChain msgs = null; + if (occurrenceEntity != null) + msgs = ((InternalEObject)occurrenceEntity).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - StructuredObjectivesPackage.ENTITY_BINDING__OCCURRENCE_ENTITY, null, msgs); + if (newOccurrenceEntity != null) + msgs = ((InternalEObject)newOccurrenceEntity).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - StructuredObjectivesPackage.ENTITY_BINDING__OCCURRENCE_ENTITY, null, msgs); + msgs = basicSetOccurrenceEntity(newOccurrenceEntity, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, StructuredObjectivesPackage.ENTITY_BINDING__OCCURRENCE_ENTITY, newOccurrenceEntity, newOccurrenceEntity)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case StructuredObjectivesPackage.ENTITY_BINDING__TEMPLATE_ENTITY: + return basicSetTemplateEntity(null, msgs); + case StructuredObjectivesPackage.ENTITY_BINDING__OCCURRENCE_ENTITY: + return basicSetOccurrenceEntity(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case StructuredObjectivesPackage.ENTITY_BINDING__TEMPLATE_ENTITY: + return getTemplateEntity(); + case StructuredObjectivesPackage.ENTITY_BINDING__OCCURRENCE_ENTITY: + return getOccurrenceEntity(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case StructuredObjectivesPackage.ENTITY_BINDING__TEMPLATE_ENTITY: + setTemplateEntity((EntityReference)newValue); + return; + case StructuredObjectivesPackage.ENTITY_BINDING__OCCURRENCE_ENTITY: + setOccurrenceEntity((EntityReference)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case StructuredObjectivesPackage.ENTITY_BINDING__TEMPLATE_ENTITY: + setTemplateEntity((EntityReference)null); + return; + case StructuredObjectivesPackage.ENTITY_BINDING__OCCURRENCE_ENTITY: + setOccurrenceEntity((EntityReference)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case StructuredObjectivesPackage.ENTITY_BINDING__TEMPLATE_ENTITY: + return templateEntity != null; + case StructuredObjectivesPackage.ENTITY_BINDING__OCCURRENCE_ENTITY: + return occurrenceEntity != null; + } + return super.eIsSet(featureID); + } + +} //EntityBindingImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/EntityImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/EntityImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..0cc1ea4ab24486fd98bb149647ca9fde8f3f8bd4 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/EntityImpl.java @@ -0,0 +1,130 @@ +/** + */ +package org.etsi.mts.tdl.structuredobjectives.impl; + +import java.lang.reflect.InvocationTargetException; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; + +import org.etsi.mts.tdl.Comment; + +import org.etsi.mts.tdl.impl.PackageableElementImpl; + +import org.etsi.mts.tdl.structuredobjectives.Element; +import org.etsi.mts.tdl.structuredobjectives.Entity; +import org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage; +import org.etsi.mts.tdl.structuredobjectives.StructuredTestObjective; + +/** + * + * An implementation of the model object 'Entity'. + * + * + * @generated + */ +public class EntityImpl extends PackageableElementImpl implements Entity +{ + /** + * + * + * @generated + */ + protected EntityImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return StructuredObjectivesPackage.Literals.ENTITY; + } + + /** + * + * + * @generated + */ + @Override + public StructuredTestObjective getTestObjective() + { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + @Override + public boolean contains(Element object) + { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + @Override + public EList getNotes() + { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + @Override + public int eDerivedOperationID(int baseOperationID, Class baseClass) + { + if (baseClass == Element.class) + { + switch (baseOperationID) + { + case StructuredObjectivesPackage.ELEMENT___GET_TEST_OBJECTIVE: return StructuredObjectivesPackage.ENTITY___GET_TEST_OBJECTIVE; + case StructuredObjectivesPackage.ELEMENT___CONTAINS__ELEMENT: return StructuredObjectivesPackage.ENTITY___CONTAINS__ELEMENT; + case StructuredObjectivesPackage.ELEMENT___GET_NOTES: return StructuredObjectivesPackage.ENTITY___GET_NOTES; + default: return -1; + } + } + return super.eDerivedOperationID(baseOperationID, baseClass); + } + + /** + * + * + * @generated + */ + @Override + public Object eInvoke(int operationID, EList arguments) throws InvocationTargetException + { + switch (operationID) + { + case StructuredObjectivesPackage.ENTITY___GET_TEST_OBJECTIVE: + return getTestObjective(); + case StructuredObjectivesPackage.ENTITY___CONTAINS__ELEMENT: + return contains((Element)arguments.get(0)); + case StructuredObjectivesPackage.ENTITY___GET_NOTES: + return getNotes(); + } + return super.eInvoke(operationID, arguments); + } + +} //EntityImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/EntityReferenceImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/EntityReferenceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..923f8bfc56ef9248fb772f77d4820edb2c5fbc8e --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/EntityReferenceImpl.java @@ -0,0 +1,243 @@ +/** + */ +package org.etsi.mts.tdl.structuredobjectives.impl; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.etsi.mts.tdl.ComponentInstance; + +import org.etsi.mts.tdl.structuredobjectives.Entity; +import org.etsi.mts.tdl.structuredobjectives.EntityReference; +import org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage; + +/** + * + * An implementation of the model object 'Entity Reference'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.structuredobjectives.impl.EntityReferenceImpl#getEntity Entity}
  • + *
  • {@link org.etsi.mts.tdl.structuredobjectives.impl.EntityReferenceImpl#getComponent Component}
  • + *
+ * + * @generated + */ +public class EntityReferenceImpl extends ElementImpl implements EntityReference +{ + /** + * The cached value of the '{@link #getEntity() Entity}' reference. + * + * + * @see #getEntity() + * @generated + * @ordered + */ + protected Entity entity; + + /** + * The cached value of the '{@link #getComponent() Component}' reference. + * + * + * @see #getComponent() + * @generated + * @ordered + */ + protected ComponentInstance component; + + /** + * + * + * @generated + */ + protected EntityReferenceImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return StructuredObjectivesPackage.Literals.ENTITY_REFERENCE; + } + + /** + * + * + * @generated + */ + @Override + public Entity getEntity() + { + if (entity != null && entity.eIsProxy()) + { + InternalEObject oldEntity = (InternalEObject)entity; + entity = (Entity)eResolveProxy(oldEntity); + if (entity != oldEntity) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, StructuredObjectivesPackage.ENTITY_REFERENCE__ENTITY, oldEntity, entity)); + } + } + return entity; + } + + /** + * + * + * @generated + */ + public Entity basicGetEntity() + { + return entity; + } + + /** + * + * + * @generated + */ + @Override + public void setEntity(Entity newEntity) + { + Entity oldEntity = entity; + entity = newEntity; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, StructuredObjectivesPackage.ENTITY_REFERENCE__ENTITY, oldEntity, entity)); + } + + /** + * + * + * @generated + */ + @Override + public ComponentInstance getComponent() + { + if (component != null && component.eIsProxy()) + { + InternalEObject oldComponent = (InternalEObject)component; + component = (ComponentInstance)eResolveProxy(oldComponent); + if (component != oldComponent) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, StructuredObjectivesPackage.ENTITY_REFERENCE__COMPONENT, oldComponent, component)); + } + } + return component; + } + + /** + * + * + * @generated + */ + public ComponentInstance basicGetComponent() + { + return component; + } + + /** + * + * + * @generated + */ + @Override + public void setComponent(ComponentInstance newComponent) + { + ComponentInstance oldComponent = component; + component = newComponent; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, StructuredObjectivesPackage.ENTITY_REFERENCE__COMPONENT, oldComponent, component)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case StructuredObjectivesPackage.ENTITY_REFERENCE__ENTITY: + if (resolve) return getEntity(); + return basicGetEntity(); + case StructuredObjectivesPackage.ENTITY_REFERENCE__COMPONENT: + if (resolve) return getComponent(); + return basicGetComponent(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case StructuredObjectivesPackage.ENTITY_REFERENCE__ENTITY: + setEntity((Entity)newValue); + return; + case StructuredObjectivesPackage.ENTITY_REFERENCE__COMPONENT: + setComponent((ComponentInstance)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case StructuredObjectivesPackage.ENTITY_REFERENCE__ENTITY: + setEntity((Entity)null); + return; + case StructuredObjectivesPackage.ENTITY_REFERENCE__COMPONENT: + setComponent((ComponentInstance)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case StructuredObjectivesPackage.ENTITY_REFERENCE__ENTITY: + return entity != null; + case StructuredObjectivesPackage.ENTITY_REFERENCE__COMPONENT: + return component != null; + } + return super.eIsSet(featureID); + } + +} //EntityReferenceImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/EventArgumentImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/EventArgumentImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..0c31757ec24c3efd0347d9c14f73c71586a54bb9 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/EventArgumentImpl.java @@ -0,0 +1,40 @@ +/** + */ +package org.etsi.mts.tdl.structuredobjectives.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.etsi.mts.tdl.structuredobjectives.EventArgument; +import org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage; + +/** + * + * An implementation of the model object 'Event Argument'. + * + * + * @generated + */ +public class EventArgumentImpl extends ElementImpl implements EventArgument +{ + /** + * + * + * @generated + */ + protected EventArgumentImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return StructuredObjectivesPackage.Literals.EVENT_ARGUMENT; + } + +} //EventArgumentImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/EventImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/EventImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..c2897b72716079e5cb6eb331732ed724b56a95be --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/EventImpl.java @@ -0,0 +1,130 @@ +/** + */ +package org.etsi.mts.tdl.structuredobjectives.impl; + +import java.lang.reflect.InvocationTargetException; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; + +import org.etsi.mts.tdl.Comment; + +import org.etsi.mts.tdl.impl.PackageableElementImpl; + +import org.etsi.mts.tdl.structuredobjectives.Element; +import org.etsi.mts.tdl.structuredobjectives.Event; +import org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage; +import org.etsi.mts.tdl.structuredobjectives.StructuredTestObjective; + +/** + * + * An implementation of the model object 'Event'. + * + * + * @generated + */ +public class EventImpl extends PackageableElementImpl implements Event +{ + /** + * + * + * @generated + */ + protected EventImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return StructuredObjectivesPackage.Literals.EVENT; + } + + /** + * + * + * @generated + */ + @Override + public StructuredTestObjective getTestObjective() + { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + @Override + public boolean contains(Element object) + { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + @Override + public EList getNotes() + { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + @Override + public int eDerivedOperationID(int baseOperationID, Class baseClass) + { + if (baseClass == Element.class) + { + switch (baseOperationID) + { + case StructuredObjectivesPackage.ELEMENT___GET_TEST_OBJECTIVE: return StructuredObjectivesPackage.EVENT___GET_TEST_OBJECTIVE; + case StructuredObjectivesPackage.ELEMENT___CONTAINS__ELEMENT: return StructuredObjectivesPackage.EVENT___CONTAINS__ELEMENT; + case StructuredObjectivesPackage.ELEMENT___GET_NOTES: return StructuredObjectivesPackage.EVENT___GET_NOTES; + default: return -1; + } + } + return super.eDerivedOperationID(baseOperationID, baseClass); + } + + /** + * + * + * @generated + */ + @Override + public Object eInvoke(int operationID, EList arguments) throws InvocationTargetException + { + switch (operationID) + { + case StructuredObjectivesPackage.EVENT___GET_TEST_OBJECTIVE: + return getTestObjective(); + case StructuredObjectivesPackage.EVENT___CONTAINS__ELEMENT: + return contains((Element)arguments.get(0)); + case StructuredObjectivesPackage.EVENT___GET_NOTES: + return getNotes(); + } + return super.eInvoke(operationID, arguments); + } + +} //EventImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/EventOccurrenceImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/EventOccurrenceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..a7ebe2930c676c2c0bb4954e76278f3fd0ced737 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/EventOccurrenceImpl.java @@ -0,0 +1,244 @@ +/** + */ +package org.etsi.mts.tdl.structuredobjectives.impl; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.etsi.mts.tdl.TimeConstraint; +import org.etsi.mts.tdl.TimeLabel; + +import org.etsi.mts.tdl.structuredobjectives.EventOccurrence; +import org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage; + +/** + * + * An implementation of the model object 'Event Occurrence'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.structuredobjectives.impl.EventOccurrenceImpl#getTimeConstraint Time Constraint}
  • + *
  • {@link org.etsi.mts.tdl.structuredobjectives.impl.EventOccurrenceImpl#getTimeLabel Time Label}
  • + *
+ * + * @generated + */ +public class EventOccurrenceImpl extends ElementImpl implements EventOccurrence +{ + /** + * The cached value of the '{@link #getTimeConstraint() Time Constraint}' containment reference list. + * + * + * @see #getTimeConstraint() + * @generated + * @ordered + */ + protected EList timeConstraint; + + /** + * The cached value of the '{@link #getTimeLabel() Time Label}' containment reference. + * + * + * @see #getTimeLabel() + * @generated + * @ordered + */ + protected TimeLabel timeLabel; + + /** + * + * + * @generated + */ + protected EventOccurrenceImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return StructuredObjectivesPackage.Literals.EVENT_OCCURRENCE; + } + + /** + * + * + * @generated + */ + @Override + public EList getTimeConstraint() + { + if (timeConstraint == null) + { + timeConstraint = new EObjectContainmentEList(TimeConstraint.class, this, StructuredObjectivesPackage.EVENT_OCCURRENCE__TIME_CONSTRAINT); + } + return timeConstraint; + } + + /** + * + * + * @generated + */ + @Override + public TimeLabel getTimeLabel() + { + return timeLabel; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetTimeLabel(TimeLabel newTimeLabel, NotificationChain msgs) + { + TimeLabel oldTimeLabel = timeLabel; + timeLabel = newTimeLabel; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, StructuredObjectivesPackage.EVENT_OCCURRENCE__TIME_LABEL, oldTimeLabel, newTimeLabel); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + @Override + public void setTimeLabel(TimeLabel newTimeLabel) + { + if (newTimeLabel != timeLabel) + { + NotificationChain msgs = null; + if (timeLabel != null) + msgs = ((InternalEObject)timeLabel).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - StructuredObjectivesPackage.EVENT_OCCURRENCE__TIME_LABEL, null, msgs); + if (newTimeLabel != null) + msgs = ((InternalEObject)newTimeLabel).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - StructuredObjectivesPackage.EVENT_OCCURRENCE__TIME_LABEL, null, msgs); + msgs = basicSetTimeLabel(newTimeLabel, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, StructuredObjectivesPackage.EVENT_OCCURRENCE__TIME_LABEL, newTimeLabel, newTimeLabel)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case StructuredObjectivesPackage.EVENT_OCCURRENCE__TIME_CONSTRAINT: + return ((InternalEList)getTimeConstraint()).basicRemove(otherEnd, msgs); + case StructuredObjectivesPackage.EVENT_OCCURRENCE__TIME_LABEL: + return basicSetTimeLabel(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case StructuredObjectivesPackage.EVENT_OCCURRENCE__TIME_CONSTRAINT: + return getTimeConstraint(); + case StructuredObjectivesPackage.EVENT_OCCURRENCE__TIME_LABEL: + return getTimeLabel(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case StructuredObjectivesPackage.EVENT_OCCURRENCE__TIME_CONSTRAINT: + getTimeConstraint().clear(); + getTimeConstraint().addAll((Collection)newValue); + return; + case StructuredObjectivesPackage.EVENT_OCCURRENCE__TIME_LABEL: + setTimeLabel((TimeLabel)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case StructuredObjectivesPackage.EVENT_OCCURRENCE__TIME_CONSTRAINT: + getTimeConstraint().clear(); + return; + case StructuredObjectivesPackage.EVENT_OCCURRENCE__TIME_LABEL: + setTimeLabel((TimeLabel)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case StructuredObjectivesPackage.EVENT_OCCURRENCE__TIME_CONSTRAINT: + return timeConstraint != null && !timeConstraint.isEmpty(); + case StructuredObjectivesPackage.EVENT_OCCURRENCE__TIME_LABEL: + return timeLabel != null; + } + return super.eIsSet(featureID); + } + +} //EventOccurrenceImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/EventOccurrenceSpecificationImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/EventOccurrenceSpecificationImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..fb745b3b4de61a2dd7a8bb818eefbd2e4ebf6bd8 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/EventOccurrenceSpecificationImpl.java @@ -0,0 +1,390 @@ +/** + */ +package org.etsi.mts.tdl.structuredobjectives.impl; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.etsi.mts.tdl.structuredobjectives.EntityReference; +import org.etsi.mts.tdl.structuredobjectives.EventOccurrenceSpecification; +import org.etsi.mts.tdl.structuredobjectives.EventReference; +import org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage; +import org.etsi.mts.tdl.structuredobjectives.Value; + +/** + * + * An implementation of the model object 'Event Occurrence Specification'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.structuredobjectives.impl.EventOccurrenceSpecificationImpl#getEntityReference Entity Reference}
  • + *
  • {@link org.etsi.mts.tdl.structuredobjectives.impl.EventOccurrenceSpecificationImpl#getEventReference Event Reference}
  • + *
  • {@link org.etsi.mts.tdl.structuredobjectives.impl.EventOccurrenceSpecificationImpl#getOppositeEntityReference Opposite Entity Reference}
  • + *
  • {@link org.etsi.mts.tdl.structuredobjectives.impl.EventOccurrenceSpecificationImpl#getEventArgument Event Argument}
  • + *
+ * + * @generated + */ +public class EventOccurrenceSpecificationImpl extends EventOccurrenceImpl implements EventOccurrenceSpecification +{ + /** + * The cached value of the '{@link #getEntityReference() Entity Reference}' containment reference. + * + * + * @see #getEntityReference() + * @generated + * @ordered + */ + protected EntityReference entityReference; + + /** + * The cached value of the '{@link #getEventReference() Event Reference}' containment reference. + * + * + * @see #getEventReference() + * @generated + * @ordered + */ + protected EventReference eventReference; + + /** + * The cached value of the '{@link #getOppositeEntityReference() Opposite Entity Reference}' containment reference list. + * + * + * @see #getOppositeEntityReference() + * @generated + * @ordered + */ + protected EList oppositeEntityReference; + + /** + * The cached value of the '{@link #getEventArgument() Event Argument}' containment reference. + * + * + * @see #getEventArgument() + * @generated + * @ordered + */ + protected Value eventArgument; + + /** + * + * + * @generated + */ + protected EventOccurrenceSpecificationImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return StructuredObjectivesPackage.Literals.EVENT_OCCURRENCE_SPECIFICATION; + } + + /** + * + * + * @generated + */ + @Override + public EntityReference getEntityReference() + { + return entityReference; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetEntityReference(EntityReference newEntityReference, NotificationChain msgs) + { + EntityReference oldEntityReference = entityReference; + entityReference = newEntityReference; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, StructuredObjectivesPackage.EVENT_OCCURRENCE_SPECIFICATION__ENTITY_REFERENCE, oldEntityReference, newEntityReference); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + @Override + public void setEntityReference(EntityReference newEntityReference) + { + if (newEntityReference != entityReference) + { + NotificationChain msgs = null; + if (entityReference != null) + msgs = ((InternalEObject)entityReference).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - StructuredObjectivesPackage.EVENT_OCCURRENCE_SPECIFICATION__ENTITY_REFERENCE, null, msgs); + if (newEntityReference != null) + msgs = ((InternalEObject)newEntityReference).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - StructuredObjectivesPackage.EVENT_OCCURRENCE_SPECIFICATION__ENTITY_REFERENCE, null, msgs); + msgs = basicSetEntityReference(newEntityReference, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, StructuredObjectivesPackage.EVENT_OCCURRENCE_SPECIFICATION__ENTITY_REFERENCE, newEntityReference, newEntityReference)); + } + + /** + * + * + * @generated + */ + @Override + public EventReference getEventReference() + { + return eventReference; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetEventReference(EventReference newEventReference, NotificationChain msgs) + { + EventReference oldEventReference = eventReference; + eventReference = newEventReference; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, StructuredObjectivesPackage.EVENT_OCCURRENCE_SPECIFICATION__EVENT_REFERENCE, oldEventReference, newEventReference); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + @Override + public void setEventReference(EventReference newEventReference) + { + if (newEventReference != eventReference) + { + NotificationChain msgs = null; + if (eventReference != null) + msgs = ((InternalEObject)eventReference).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - StructuredObjectivesPackage.EVENT_OCCURRENCE_SPECIFICATION__EVENT_REFERENCE, null, msgs); + if (newEventReference != null) + msgs = ((InternalEObject)newEventReference).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - StructuredObjectivesPackage.EVENT_OCCURRENCE_SPECIFICATION__EVENT_REFERENCE, null, msgs); + msgs = basicSetEventReference(newEventReference, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, StructuredObjectivesPackage.EVENT_OCCURRENCE_SPECIFICATION__EVENT_REFERENCE, newEventReference, newEventReference)); + } + + /** + * + * + * @generated + */ + @Override + public EList getOppositeEntityReference() + { + if (oppositeEntityReference == null) + { + oppositeEntityReference = new EObjectContainmentEList(EntityReference.class, this, StructuredObjectivesPackage.EVENT_OCCURRENCE_SPECIFICATION__OPPOSITE_ENTITY_REFERENCE); + } + return oppositeEntityReference; + } + + /** + * + * + * @generated + */ + @Override + public Value getEventArgument() + { + return eventArgument; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetEventArgument(Value newEventArgument, NotificationChain msgs) + { + Value oldEventArgument = eventArgument; + eventArgument = newEventArgument; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, StructuredObjectivesPackage.EVENT_OCCURRENCE_SPECIFICATION__EVENT_ARGUMENT, oldEventArgument, newEventArgument); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + @Override + public void setEventArgument(Value newEventArgument) + { + if (newEventArgument != eventArgument) + { + NotificationChain msgs = null; + if (eventArgument != null) + msgs = ((InternalEObject)eventArgument).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - StructuredObjectivesPackage.EVENT_OCCURRENCE_SPECIFICATION__EVENT_ARGUMENT, null, msgs); + if (newEventArgument != null) + msgs = ((InternalEObject)newEventArgument).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - StructuredObjectivesPackage.EVENT_OCCURRENCE_SPECIFICATION__EVENT_ARGUMENT, null, msgs); + msgs = basicSetEventArgument(newEventArgument, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, StructuredObjectivesPackage.EVENT_OCCURRENCE_SPECIFICATION__EVENT_ARGUMENT, newEventArgument, newEventArgument)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case StructuredObjectivesPackage.EVENT_OCCURRENCE_SPECIFICATION__ENTITY_REFERENCE: + return basicSetEntityReference(null, msgs); + case StructuredObjectivesPackage.EVENT_OCCURRENCE_SPECIFICATION__EVENT_REFERENCE: + return basicSetEventReference(null, msgs); + case StructuredObjectivesPackage.EVENT_OCCURRENCE_SPECIFICATION__OPPOSITE_ENTITY_REFERENCE: + return ((InternalEList)getOppositeEntityReference()).basicRemove(otherEnd, msgs); + case StructuredObjectivesPackage.EVENT_OCCURRENCE_SPECIFICATION__EVENT_ARGUMENT: + return basicSetEventArgument(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case StructuredObjectivesPackage.EVENT_OCCURRENCE_SPECIFICATION__ENTITY_REFERENCE: + return getEntityReference(); + case StructuredObjectivesPackage.EVENT_OCCURRENCE_SPECIFICATION__EVENT_REFERENCE: + return getEventReference(); + case StructuredObjectivesPackage.EVENT_OCCURRENCE_SPECIFICATION__OPPOSITE_ENTITY_REFERENCE: + return getOppositeEntityReference(); + case StructuredObjectivesPackage.EVENT_OCCURRENCE_SPECIFICATION__EVENT_ARGUMENT: + return getEventArgument(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case StructuredObjectivesPackage.EVENT_OCCURRENCE_SPECIFICATION__ENTITY_REFERENCE: + setEntityReference((EntityReference)newValue); + return; + case StructuredObjectivesPackage.EVENT_OCCURRENCE_SPECIFICATION__EVENT_REFERENCE: + setEventReference((EventReference)newValue); + return; + case StructuredObjectivesPackage.EVENT_OCCURRENCE_SPECIFICATION__OPPOSITE_ENTITY_REFERENCE: + getOppositeEntityReference().clear(); + getOppositeEntityReference().addAll((Collection)newValue); + return; + case StructuredObjectivesPackage.EVENT_OCCURRENCE_SPECIFICATION__EVENT_ARGUMENT: + setEventArgument((Value)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case StructuredObjectivesPackage.EVENT_OCCURRENCE_SPECIFICATION__ENTITY_REFERENCE: + setEntityReference((EntityReference)null); + return; + case StructuredObjectivesPackage.EVENT_OCCURRENCE_SPECIFICATION__EVENT_REFERENCE: + setEventReference((EventReference)null); + return; + case StructuredObjectivesPackage.EVENT_OCCURRENCE_SPECIFICATION__OPPOSITE_ENTITY_REFERENCE: + getOppositeEntityReference().clear(); + return; + case StructuredObjectivesPackage.EVENT_OCCURRENCE_SPECIFICATION__EVENT_ARGUMENT: + setEventArgument((Value)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case StructuredObjectivesPackage.EVENT_OCCURRENCE_SPECIFICATION__ENTITY_REFERENCE: + return entityReference != null; + case StructuredObjectivesPackage.EVENT_OCCURRENCE_SPECIFICATION__EVENT_REFERENCE: + return eventReference != null; + case StructuredObjectivesPackage.EVENT_OCCURRENCE_SPECIFICATION__OPPOSITE_ENTITY_REFERENCE: + return oppositeEntityReference != null && !oppositeEntityReference.isEmpty(); + case StructuredObjectivesPackage.EVENT_OCCURRENCE_SPECIFICATION__EVENT_ARGUMENT: + return eventArgument != null; + } + return super.eIsSet(featureID); + } + +} //EventOccurrenceSpecificationImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/EventReferenceImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/EventReferenceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..8c22ad9f5fad025f5de6c024a5a79f83b439ff7a --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/EventReferenceImpl.java @@ -0,0 +1,174 @@ +/** + */ +package org.etsi.mts.tdl.structuredobjectives.impl; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.etsi.mts.tdl.structuredobjectives.Event; +import org.etsi.mts.tdl.structuredobjectives.EventReference; +import org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage; + +/** + * + * An implementation of the model object 'Event Reference'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.structuredobjectives.impl.EventReferenceImpl#getEvent Event}
  • + *
+ * + * @generated + */ +public class EventReferenceImpl extends ElementImpl implements EventReference +{ + /** + * The cached value of the '{@link #getEvent() Event}' reference. + * + * + * @see #getEvent() + * @generated + * @ordered + */ + protected Event event; + + /** + * + * + * @generated + */ + protected EventReferenceImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return StructuredObjectivesPackage.Literals.EVENT_REFERENCE; + } + + /** + * + * + * @generated + */ + @Override + public Event getEvent() + { + if (event != null && event.eIsProxy()) + { + InternalEObject oldEvent = (InternalEObject)event; + event = (Event)eResolveProxy(oldEvent); + if (event != oldEvent) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, StructuredObjectivesPackage.EVENT_REFERENCE__EVENT, oldEvent, event)); + } + } + return event; + } + + /** + * + * + * @generated + */ + public Event basicGetEvent() + { + return event; + } + + /** + * + * + * @generated + */ + @Override + public void setEvent(Event newEvent) + { + Event oldEvent = event; + event = newEvent; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, StructuredObjectivesPackage.EVENT_REFERENCE__EVENT, oldEvent, event)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case StructuredObjectivesPackage.EVENT_REFERENCE__EVENT: + if (resolve) return getEvent(); + return basicGetEvent(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case StructuredObjectivesPackage.EVENT_REFERENCE__EVENT: + setEvent((Event)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case StructuredObjectivesPackage.EVENT_REFERENCE__EVENT: + setEvent((Event)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case StructuredObjectivesPackage.EVENT_REFERENCE__EVENT: + return event != null; + } + return super.eIsSet(featureID); + } + +} //EventReferenceImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/EventSequenceImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/EventSequenceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..45e6562999f1da698ebba7b5991764067f94bf65 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/EventSequenceImpl.java @@ -0,0 +1,166 @@ +/** + */ +package org.etsi.mts.tdl.structuredobjectives.impl; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.etsi.mts.tdl.structuredobjectives.EventOccurrence; +import org.etsi.mts.tdl.structuredobjectives.EventSequence; +import org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage; + +/** + * + * An implementation of the model object 'Event Sequence'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.structuredobjectives.impl.EventSequenceImpl#getEvents Events}
  • + *
+ * + * @generated + */ +public class EventSequenceImpl extends ElementImpl implements EventSequence +{ + /** + * The cached value of the '{@link #getEvents() Events}' containment reference list. + * + * + * @see #getEvents() + * @generated + * @ordered + */ + protected EList events; + + /** + * + * + * @generated + */ + protected EventSequenceImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return StructuredObjectivesPackage.Literals.EVENT_SEQUENCE; + } + + /** + * + * + * @generated + */ + @Override + public EList getEvents() + { + if (events == null) + { + events = new EObjectContainmentEList(EventOccurrence.class, this, StructuredObjectivesPackage.EVENT_SEQUENCE__EVENTS); + } + return events; + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case StructuredObjectivesPackage.EVENT_SEQUENCE__EVENTS: + return ((InternalEList)getEvents()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case StructuredObjectivesPackage.EVENT_SEQUENCE__EVENTS: + return getEvents(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case StructuredObjectivesPackage.EVENT_SEQUENCE__EVENTS: + getEvents().clear(); + getEvents().addAll((Collection)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case StructuredObjectivesPackage.EVENT_SEQUENCE__EVENTS: + getEvents().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case StructuredObjectivesPackage.EVENT_SEQUENCE__EVENTS: + return events != null && !events.isEmpty(); + } + return super.eIsSet(featureID); + } + +} //EventSequenceImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/EventSpecificationTemplateImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/EventSpecificationTemplateImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..3c86e9c2c9fcbb8c7dbfde6aa86a3d171b5ac7ff --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/EventSpecificationTemplateImpl.java @@ -0,0 +1,285 @@ +/** + */ +package org.etsi.mts.tdl.structuredobjectives.impl; + +import java.lang.reflect.InvocationTargetException; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.etsi.mts.tdl.Comment; + +import org.etsi.mts.tdl.impl.PackageableElementImpl; + +import org.etsi.mts.tdl.structuredobjectives.Element; +import org.etsi.mts.tdl.structuredobjectives.EventOccurrenceSpecification; +import org.etsi.mts.tdl.structuredobjectives.EventSpecificationTemplate; +import org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage; +import org.etsi.mts.tdl.structuredobjectives.StructuredTestObjective; + +/** + * + * An implementation of the model object 'Event Specification Template'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.structuredobjectives.impl.EventSpecificationTemplateImpl#getEventSpecification Event Specification}
  • + *
+ * + * @generated + */ +public class EventSpecificationTemplateImpl extends PackageableElementImpl implements EventSpecificationTemplate +{ + /** + * The cached value of the '{@link #getEventSpecification() Event Specification}' containment reference. + * + * + * @see #getEventSpecification() + * @generated + * @ordered + */ + protected EventOccurrenceSpecification eventSpecification; + + /** + * + * + * @generated + */ + protected EventSpecificationTemplateImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return StructuredObjectivesPackage.Literals.EVENT_SPECIFICATION_TEMPLATE; + } + + /** + * + * + * @generated + */ + @Override + public EventOccurrenceSpecification getEventSpecification() + { + return eventSpecification; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetEventSpecification(EventOccurrenceSpecification newEventSpecification, NotificationChain msgs) + { + EventOccurrenceSpecification oldEventSpecification = eventSpecification; + eventSpecification = newEventSpecification; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, StructuredObjectivesPackage.EVENT_SPECIFICATION_TEMPLATE__EVENT_SPECIFICATION, oldEventSpecification, newEventSpecification); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + @Override + public void setEventSpecification(EventOccurrenceSpecification newEventSpecification) + { + if (newEventSpecification != eventSpecification) + { + NotificationChain msgs = null; + if (eventSpecification != null) + msgs = ((InternalEObject)eventSpecification).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - StructuredObjectivesPackage.EVENT_SPECIFICATION_TEMPLATE__EVENT_SPECIFICATION, null, msgs); + if (newEventSpecification != null) + msgs = ((InternalEObject)newEventSpecification).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - StructuredObjectivesPackage.EVENT_SPECIFICATION_TEMPLATE__EVENT_SPECIFICATION, null, msgs); + msgs = basicSetEventSpecification(newEventSpecification, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, StructuredObjectivesPackage.EVENT_SPECIFICATION_TEMPLATE__EVENT_SPECIFICATION, newEventSpecification, newEventSpecification)); + } + + /** + * + * + * @generated + */ + @Override + public StructuredTestObjective getTestObjective() + { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + @Override + public boolean contains(Element object) + { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + @Override + public EList getNotes() + { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case StructuredObjectivesPackage.EVENT_SPECIFICATION_TEMPLATE__EVENT_SPECIFICATION: + return basicSetEventSpecification(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case StructuredObjectivesPackage.EVENT_SPECIFICATION_TEMPLATE__EVENT_SPECIFICATION: + return getEventSpecification(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case StructuredObjectivesPackage.EVENT_SPECIFICATION_TEMPLATE__EVENT_SPECIFICATION: + setEventSpecification((EventOccurrenceSpecification)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case StructuredObjectivesPackage.EVENT_SPECIFICATION_TEMPLATE__EVENT_SPECIFICATION: + setEventSpecification((EventOccurrenceSpecification)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case StructuredObjectivesPackage.EVENT_SPECIFICATION_TEMPLATE__EVENT_SPECIFICATION: + return eventSpecification != null; + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public int eDerivedOperationID(int baseOperationID, Class baseClass) + { + if (baseClass == Element.class) + { + switch (baseOperationID) + { + case StructuredObjectivesPackage.ELEMENT___GET_TEST_OBJECTIVE: return StructuredObjectivesPackage.EVENT_SPECIFICATION_TEMPLATE___GET_TEST_OBJECTIVE; + case StructuredObjectivesPackage.ELEMENT___CONTAINS__ELEMENT: return StructuredObjectivesPackage.EVENT_SPECIFICATION_TEMPLATE___CONTAINS__ELEMENT; + case StructuredObjectivesPackage.ELEMENT___GET_NOTES: return StructuredObjectivesPackage.EVENT_SPECIFICATION_TEMPLATE___GET_NOTES; + default: return -1; + } + } + return super.eDerivedOperationID(baseOperationID, baseClass); + } + + /** + * + * + * @generated + */ + @Override + public Object eInvoke(int operationID, EList arguments) throws InvocationTargetException + { + switch (operationID) + { + case StructuredObjectivesPackage.EVENT_SPECIFICATION_TEMPLATE___GET_TEST_OBJECTIVE: + return getTestObjective(); + case StructuredObjectivesPackage.EVENT_SPECIFICATION_TEMPLATE___CONTAINS__ELEMENT: + return contains((Element)arguments.get(0)); + case StructuredObjectivesPackage.EVENT_SPECIFICATION_TEMPLATE___GET_NOTES: + return getNotes(); + } + return super.eInvoke(operationID, arguments); + } + +} //EventSpecificationTemplateImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/EventTemplateOccurrenceImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/EventTemplateOccurrenceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..11fcdc4277932208bee7d51ea3fd0f66075adc22 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/EventTemplateOccurrenceImpl.java @@ -0,0 +1,311 @@ +/** + */ +package org.etsi.mts.tdl.structuredobjectives.impl; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.etsi.mts.tdl.structuredobjectives.EntityBinding; +import org.etsi.mts.tdl.structuredobjectives.EventSpecificationTemplate; +import org.etsi.mts.tdl.structuredobjectives.EventTemplateOccurrence; +import org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage; +import org.etsi.mts.tdl.structuredobjectives.Value; + +/** + * + * An implementation of the model object 'Event Template Occurrence'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.structuredobjectives.impl.EventTemplateOccurrenceImpl#getEventTemplate Event Template}
  • + *
  • {@link org.etsi.mts.tdl.structuredobjectives.impl.EventTemplateOccurrenceImpl#getEntityBinding Entity Binding}
  • + *
  • {@link org.etsi.mts.tdl.structuredobjectives.impl.EventTemplateOccurrenceImpl#getOccurrenceArgument Occurrence Argument}
  • + *
+ * + * @generated + */ +public class EventTemplateOccurrenceImpl extends EventOccurrenceImpl implements EventTemplateOccurrence +{ + /** + * The cached value of the '{@link #getEventTemplate() Event Template}' reference. + * + * + * @see #getEventTemplate() + * @generated + * @ordered + */ + protected EventSpecificationTemplate eventTemplate; + + /** + * The cached value of the '{@link #getEntityBinding() Entity Binding}' containment reference list. + * + * + * @see #getEntityBinding() + * @generated + * @ordered + */ + protected EList entityBinding; + + /** + * The cached value of the '{@link #getOccurrenceArgument() Occurrence Argument}' containment reference. + * + * + * @see #getOccurrenceArgument() + * @generated + * @ordered + */ + protected Value occurrenceArgument; + + /** + * + * + * @generated + */ + protected EventTemplateOccurrenceImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return StructuredObjectivesPackage.Literals.EVENT_TEMPLATE_OCCURRENCE; + } + + /** + * + * + * @generated + */ + @Override + public EventSpecificationTemplate getEventTemplate() + { + if (eventTemplate != null && eventTemplate.eIsProxy()) + { + InternalEObject oldEventTemplate = (InternalEObject)eventTemplate; + eventTemplate = (EventSpecificationTemplate)eResolveProxy(oldEventTemplate); + if (eventTemplate != oldEventTemplate) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, StructuredObjectivesPackage.EVENT_TEMPLATE_OCCURRENCE__EVENT_TEMPLATE, oldEventTemplate, eventTemplate)); + } + } + return eventTemplate; + } + + /** + * + * + * @generated + */ + public EventSpecificationTemplate basicGetEventTemplate() + { + return eventTemplate; + } + + /** + * + * + * @generated + */ + @Override + public void setEventTemplate(EventSpecificationTemplate newEventTemplate) + { + EventSpecificationTemplate oldEventTemplate = eventTemplate; + eventTemplate = newEventTemplate; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, StructuredObjectivesPackage.EVENT_TEMPLATE_OCCURRENCE__EVENT_TEMPLATE, oldEventTemplate, eventTemplate)); + } + + /** + * + * + * @generated + */ + @Override + public EList getEntityBinding() + { + if (entityBinding == null) + { + entityBinding = new EObjectContainmentEList(EntityBinding.class, this, StructuredObjectivesPackage.EVENT_TEMPLATE_OCCURRENCE__ENTITY_BINDING); + } + return entityBinding; + } + + /** + * + * + * @generated + */ + @Override + public Value getOccurrenceArgument() + { + return occurrenceArgument; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetOccurrenceArgument(Value newOccurrenceArgument, NotificationChain msgs) + { + Value oldOccurrenceArgument = occurrenceArgument; + occurrenceArgument = newOccurrenceArgument; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, StructuredObjectivesPackage.EVENT_TEMPLATE_OCCURRENCE__OCCURRENCE_ARGUMENT, oldOccurrenceArgument, newOccurrenceArgument); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + @Override + public void setOccurrenceArgument(Value newOccurrenceArgument) + { + if (newOccurrenceArgument != occurrenceArgument) + { + NotificationChain msgs = null; + if (occurrenceArgument != null) + msgs = ((InternalEObject)occurrenceArgument).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - StructuredObjectivesPackage.EVENT_TEMPLATE_OCCURRENCE__OCCURRENCE_ARGUMENT, null, msgs); + if (newOccurrenceArgument != null) + msgs = ((InternalEObject)newOccurrenceArgument).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - StructuredObjectivesPackage.EVENT_TEMPLATE_OCCURRENCE__OCCURRENCE_ARGUMENT, null, msgs); + msgs = basicSetOccurrenceArgument(newOccurrenceArgument, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, StructuredObjectivesPackage.EVENT_TEMPLATE_OCCURRENCE__OCCURRENCE_ARGUMENT, newOccurrenceArgument, newOccurrenceArgument)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case StructuredObjectivesPackage.EVENT_TEMPLATE_OCCURRENCE__ENTITY_BINDING: + return ((InternalEList)getEntityBinding()).basicRemove(otherEnd, msgs); + case StructuredObjectivesPackage.EVENT_TEMPLATE_OCCURRENCE__OCCURRENCE_ARGUMENT: + return basicSetOccurrenceArgument(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case StructuredObjectivesPackage.EVENT_TEMPLATE_OCCURRENCE__EVENT_TEMPLATE: + if (resolve) return getEventTemplate(); + return basicGetEventTemplate(); + case StructuredObjectivesPackage.EVENT_TEMPLATE_OCCURRENCE__ENTITY_BINDING: + return getEntityBinding(); + case StructuredObjectivesPackage.EVENT_TEMPLATE_OCCURRENCE__OCCURRENCE_ARGUMENT: + return getOccurrenceArgument(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case StructuredObjectivesPackage.EVENT_TEMPLATE_OCCURRENCE__EVENT_TEMPLATE: + setEventTemplate((EventSpecificationTemplate)newValue); + return; + case StructuredObjectivesPackage.EVENT_TEMPLATE_OCCURRENCE__ENTITY_BINDING: + getEntityBinding().clear(); + getEntityBinding().addAll((Collection)newValue); + return; + case StructuredObjectivesPackage.EVENT_TEMPLATE_OCCURRENCE__OCCURRENCE_ARGUMENT: + setOccurrenceArgument((Value)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case StructuredObjectivesPackage.EVENT_TEMPLATE_OCCURRENCE__EVENT_TEMPLATE: + setEventTemplate((EventSpecificationTemplate)null); + return; + case StructuredObjectivesPackage.EVENT_TEMPLATE_OCCURRENCE__ENTITY_BINDING: + getEntityBinding().clear(); + return; + case StructuredObjectivesPackage.EVENT_TEMPLATE_OCCURRENCE__OCCURRENCE_ARGUMENT: + setOccurrenceArgument((Value)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case StructuredObjectivesPackage.EVENT_TEMPLATE_OCCURRENCE__EVENT_TEMPLATE: + return eventTemplate != null; + case StructuredObjectivesPackage.EVENT_TEMPLATE_OCCURRENCE__ENTITY_BINDING: + return entityBinding != null && !entityBinding.isEmpty(); + case StructuredObjectivesPackage.EVENT_TEMPLATE_OCCURRENCE__OCCURRENCE_ARGUMENT: + return occurrenceArgument != null; + } + return super.eIsSet(featureID); + } + +} //EventTemplateOccurrenceImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/ExpectedBehaviourImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/ExpectedBehaviourImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..f9f431fdf06601fd599981d806325cc05becc7ae --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/ExpectedBehaviourImpl.java @@ -0,0 +1,268 @@ +/** + */ +package org.etsi.mts.tdl.structuredobjectives.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.etsi.mts.tdl.structuredobjectives.EventSequence; +import org.etsi.mts.tdl.structuredobjectives.ExpectedBehaviour; +import org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage; + +/** + * + * An implementation of the model object 'Expected Behaviour'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.structuredobjectives.impl.ExpectedBehaviourImpl#getWhenClause When Clause}
  • + *
  • {@link org.etsi.mts.tdl.structuredobjectives.impl.ExpectedBehaviourImpl#getThenClause Then Clause}
  • + *
+ * + * @generated + */ +public class ExpectedBehaviourImpl extends ElementImpl implements ExpectedBehaviour +{ + /** + * The cached value of the '{@link #getWhenClause() When Clause}' containment reference. + * + * + * @see #getWhenClause() + * @generated + * @ordered + */ + protected EventSequence whenClause; + + /** + * The cached value of the '{@link #getThenClause() Then Clause}' containment reference. + * + * + * @see #getThenClause() + * @generated + * @ordered + */ + protected EventSequence thenClause; + + /** + * + * + * @generated + */ + protected ExpectedBehaviourImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return StructuredObjectivesPackage.Literals.EXPECTED_BEHAVIOUR; + } + + /** + * + * + * @generated + */ + @Override + public EventSequence getWhenClause() + { + return whenClause; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetWhenClause(EventSequence newWhenClause, NotificationChain msgs) + { + EventSequence oldWhenClause = whenClause; + whenClause = newWhenClause; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, StructuredObjectivesPackage.EXPECTED_BEHAVIOUR__WHEN_CLAUSE, oldWhenClause, newWhenClause); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + @Override + public void setWhenClause(EventSequence newWhenClause) + { + if (newWhenClause != whenClause) + { + NotificationChain msgs = null; + if (whenClause != null) + msgs = ((InternalEObject)whenClause).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - StructuredObjectivesPackage.EXPECTED_BEHAVIOUR__WHEN_CLAUSE, null, msgs); + if (newWhenClause != null) + msgs = ((InternalEObject)newWhenClause).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - StructuredObjectivesPackage.EXPECTED_BEHAVIOUR__WHEN_CLAUSE, null, msgs); + msgs = basicSetWhenClause(newWhenClause, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, StructuredObjectivesPackage.EXPECTED_BEHAVIOUR__WHEN_CLAUSE, newWhenClause, newWhenClause)); + } + + /** + * + * + * @generated + */ + @Override + public EventSequence getThenClause() + { + return thenClause; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetThenClause(EventSequence newThenClause, NotificationChain msgs) + { + EventSequence oldThenClause = thenClause; + thenClause = newThenClause; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, StructuredObjectivesPackage.EXPECTED_BEHAVIOUR__THEN_CLAUSE, oldThenClause, newThenClause); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + @Override + public void setThenClause(EventSequence newThenClause) + { + if (newThenClause != thenClause) + { + NotificationChain msgs = null; + if (thenClause != null) + msgs = ((InternalEObject)thenClause).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - StructuredObjectivesPackage.EXPECTED_BEHAVIOUR__THEN_CLAUSE, null, msgs); + if (newThenClause != null) + msgs = ((InternalEObject)newThenClause).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - StructuredObjectivesPackage.EXPECTED_BEHAVIOUR__THEN_CLAUSE, null, msgs); + msgs = basicSetThenClause(newThenClause, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, StructuredObjectivesPackage.EXPECTED_BEHAVIOUR__THEN_CLAUSE, newThenClause, newThenClause)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case StructuredObjectivesPackage.EXPECTED_BEHAVIOUR__WHEN_CLAUSE: + return basicSetWhenClause(null, msgs); + case StructuredObjectivesPackage.EXPECTED_BEHAVIOUR__THEN_CLAUSE: + return basicSetThenClause(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case StructuredObjectivesPackage.EXPECTED_BEHAVIOUR__WHEN_CLAUSE: + return getWhenClause(); + case StructuredObjectivesPackage.EXPECTED_BEHAVIOUR__THEN_CLAUSE: + return getThenClause(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case StructuredObjectivesPackage.EXPECTED_BEHAVIOUR__WHEN_CLAUSE: + setWhenClause((EventSequence)newValue); + return; + case StructuredObjectivesPackage.EXPECTED_BEHAVIOUR__THEN_CLAUSE: + setThenClause((EventSequence)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case StructuredObjectivesPackage.EXPECTED_BEHAVIOUR__WHEN_CLAUSE: + setWhenClause((EventSequence)null); + return; + case StructuredObjectivesPackage.EXPECTED_BEHAVIOUR__THEN_CLAUSE: + setThenClause((EventSequence)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case StructuredObjectivesPackage.EXPECTED_BEHAVIOUR__WHEN_CLAUSE: + return whenClause != null; + case StructuredObjectivesPackage.EXPECTED_BEHAVIOUR__THEN_CLAUSE: + return thenClause != null; + } + return super.eIsSet(featureID); + } + +} //ExpectedBehaviourImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/FinalConditionsImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/FinalConditionsImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..97e6e27e7ce0a445e5e106c8a526f6bdac42e06f --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/FinalConditionsImpl.java @@ -0,0 +1,195 @@ +/** + */ +package org.etsi.mts.tdl.structuredobjectives.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.etsi.mts.tdl.structuredobjectives.EventSequence; +import org.etsi.mts.tdl.structuredobjectives.FinalConditions; +import org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage; + +/** + * + * An implementation of the model object 'Final Conditions'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.structuredobjectives.impl.FinalConditionsImpl#getConditions Conditions}
  • + *
+ * + * @generated + */ +public class FinalConditionsImpl extends ElementImpl implements FinalConditions +{ + /** + * The cached value of the '{@link #getConditions() Conditions}' containment reference. + * + * + * @see #getConditions() + * @generated + * @ordered + */ + protected EventSequence conditions; + + /** + * + * + * @generated + */ + protected FinalConditionsImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return StructuredObjectivesPackage.Literals.FINAL_CONDITIONS; + } + + /** + * + * + * @generated + */ + @Override + public EventSequence getConditions() + { + return conditions; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetConditions(EventSequence newConditions, NotificationChain msgs) + { + EventSequence oldConditions = conditions; + conditions = newConditions; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, StructuredObjectivesPackage.FINAL_CONDITIONS__CONDITIONS, oldConditions, newConditions); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + @Override + public void setConditions(EventSequence newConditions) + { + if (newConditions != conditions) + { + NotificationChain msgs = null; + if (conditions != null) + msgs = ((InternalEObject)conditions).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - StructuredObjectivesPackage.FINAL_CONDITIONS__CONDITIONS, null, msgs); + if (newConditions != null) + msgs = ((InternalEObject)newConditions).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - StructuredObjectivesPackage.FINAL_CONDITIONS__CONDITIONS, null, msgs); + msgs = basicSetConditions(newConditions, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, StructuredObjectivesPackage.FINAL_CONDITIONS__CONDITIONS, newConditions, newConditions)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case StructuredObjectivesPackage.FINAL_CONDITIONS__CONDITIONS: + return basicSetConditions(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case StructuredObjectivesPackage.FINAL_CONDITIONS__CONDITIONS: + return getConditions(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case StructuredObjectivesPackage.FINAL_CONDITIONS__CONDITIONS: + setConditions((EventSequence)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case StructuredObjectivesPackage.FINAL_CONDITIONS__CONDITIONS: + setConditions((EventSequence)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case StructuredObjectivesPackage.FINAL_CONDITIONS__CONDITIONS: + return conditions != null; + } + return super.eIsSet(featureID); + } + +} //FinalConditionsImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/InitialConditionsImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/InitialConditionsImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..253795387ba5fe12f3b0a989b40eb24ceb82991e --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/InitialConditionsImpl.java @@ -0,0 +1,195 @@ +/** + */ +package org.etsi.mts.tdl.structuredobjectives.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.etsi.mts.tdl.structuredobjectives.EventSequence; +import org.etsi.mts.tdl.structuredobjectives.InitialConditions; +import org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage; + +/** + * + * An implementation of the model object 'Initial Conditions'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.structuredobjectives.impl.InitialConditionsImpl#getConditions Conditions}
  • + *
+ * + * @generated + */ +public class InitialConditionsImpl extends ElementImpl implements InitialConditions +{ + /** + * The cached value of the '{@link #getConditions() Conditions}' containment reference. + * + * + * @see #getConditions() + * @generated + * @ordered + */ + protected EventSequence conditions; + + /** + * + * + * @generated + */ + protected InitialConditionsImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return StructuredObjectivesPackage.Literals.INITIAL_CONDITIONS; + } + + /** + * + * + * @generated + */ + @Override + public EventSequence getConditions() + { + return conditions; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetConditions(EventSequence newConditions, NotificationChain msgs) + { + EventSequence oldConditions = conditions; + conditions = newConditions; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, StructuredObjectivesPackage.INITIAL_CONDITIONS__CONDITIONS, oldConditions, newConditions); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + @Override + public void setConditions(EventSequence newConditions) + { + if (newConditions != conditions) + { + NotificationChain msgs = null; + if (conditions != null) + msgs = ((InternalEObject)conditions).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - StructuredObjectivesPackage.INITIAL_CONDITIONS__CONDITIONS, null, msgs); + if (newConditions != null) + msgs = ((InternalEObject)newConditions).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - StructuredObjectivesPackage.INITIAL_CONDITIONS__CONDITIONS, null, msgs); + msgs = basicSetConditions(newConditions, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, StructuredObjectivesPackage.INITIAL_CONDITIONS__CONDITIONS, newConditions, newConditions)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case StructuredObjectivesPackage.INITIAL_CONDITIONS__CONDITIONS: + return basicSetConditions(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case StructuredObjectivesPackage.INITIAL_CONDITIONS__CONDITIONS: + return getConditions(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case StructuredObjectivesPackage.INITIAL_CONDITIONS__CONDITIONS: + setConditions((EventSequence)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case StructuredObjectivesPackage.INITIAL_CONDITIONS__CONDITIONS: + setConditions((EventSequence)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case StructuredObjectivesPackage.INITIAL_CONDITIONS__CONDITIONS: + return conditions != null; + } + return super.eIsSet(featureID); + } + +} //InitialConditionsImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/LiteralValueImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/LiteralValueImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..cb0618247a338f95fa0f076e516d07e9c80327ee --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/LiteralValueImpl.java @@ -0,0 +1,238 @@ +/** + */ +package org.etsi.mts.tdl.structuredobjectives.impl; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.etsi.mts.tdl.DataType; + +import org.etsi.mts.tdl.structuredobjectives.Content; +import org.etsi.mts.tdl.structuredobjectives.LiteralValue; +import org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage; + +/** + * + * An implementation of the model object 'Literal Value'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.structuredobjectives.impl.LiteralValueImpl#getContent Content}
  • + *
  • {@link org.etsi.mts.tdl.structuredobjectives.impl.LiteralValueImpl#getDataType Data Type}
  • + *
+ * + * @generated + */ +public class LiteralValueImpl extends ValueImpl implements LiteralValue +{ + /** + * The cached value of the '{@link #getContent() Content}' containment reference list. + * + * + * @see #getContent() + * @generated + * @ordered + */ + protected EList content; + + /** + * The cached value of the '{@link #getDataType() Data Type}' reference. + * + * + * @see #getDataType() + * @generated + * @ordered + */ + protected DataType dataType; + + /** + * + * + * @generated + */ + protected LiteralValueImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return StructuredObjectivesPackage.Literals.LITERAL_VALUE; + } + + /** + * + * + * @generated + */ + @Override + public EList getContent() + { + if (content == null) + { + content = new EObjectContainmentEList(Content.class, this, StructuredObjectivesPackage.LITERAL_VALUE__CONTENT); + } + return content; + } + + /** + * + * + * @generated + */ + @Override + public DataType getDataType() + { + if (dataType != null && dataType.eIsProxy()) + { + InternalEObject oldDataType = (InternalEObject)dataType; + dataType = (DataType)eResolveProxy(oldDataType); + if (dataType != oldDataType) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, StructuredObjectivesPackage.LITERAL_VALUE__DATA_TYPE, oldDataType, dataType)); + } + } + return dataType; + } + + /** + * + * + * @generated + */ + public DataType basicGetDataType() + { + return dataType; + } + + /** + * + * + * @generated + */ + @Override + public void setDataType(DataType newDataType) + { + DataType oldDataType = dataType; + dataType = newDataType; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, StructuredObjectivesPackage.LITERAL_VALUE__DATA_TYPE, oldDataType, dataType)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case StructuredObjectivesPackage.LITERAL_VALUE__CONTENT: + return ((InternalEList)getContent()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case StructuredObjectivesPackage.LITERAL_VALUE__CONTENT: + return getContent(); + case StructuredObjectivesPackage.LITERAL_VALUE__DATA_TYPE: + if (resolve) return getDataType(); + return basicGetDataType(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case StructuredObjectivesPackage.LITERAL_VALUE__CONTENT: + getContent().clear(); + getContent().addAll((Collection)newValue); + return; + case StructuredObjectivesPackage.LITERAL_VALUE__DATA_TYPE: + setDataType((DataType)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case StructuredObjectivesPackage.LITERAL_VALUE__CONTENT: + getContent().clear(); + return; + case StructuredObjectivesPackage.LITERAL_VALUE__DATA_TYPE: + setDataType((DataType)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case StructuredObjectivesPackage.LITERAL_VALUE__CONTENT: + return content != null && !content.isEmpty(); + case StructuredObjectivesPackage.LITERAL_VALUE__DATA_TYPE: + return dataType != null; + } + return super.eIsSet(featureID); + } + +} //LiteralValueImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/LiteralValueReferenceImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/LiteralValueReferenceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..81c721ae67340705b3cce9afe967eee9cbfffc50 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/LiteralValueReferenceImpl.java @@ -0,0 +1,174 @@ +/** + */ +package org.etsi.mts.tdl.structuredobjectives.impl; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.etsi.mts.tdl.structuredobjectives.LiteralValue; +import org.etsi.mts.tdl.structuredobjectives.LiteralValueReference; +import org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage; + +/** + * + * An implementation of the model object 'Literal Value Reference'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.structuredobjectives.impl.LiteralValueReferenceImpl#getContent Content}
  • + *
+ * + * @generated + */ +public class LiteralValueReferenceImpl extends ValueImpl implements LiteralValueReference +{ + /** + * The cached value of the '{@link #getContent() Content}' reference. + * + * + * @see #getContent() + * @generated + * @ordered + */ + protected LiteralValue content; + + /** + * + * + * @generated + */ + protected LiteralValueReferenceImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return StructuredObjectivesPackage.Literals.LITERAL_VALUE_REFERENCE; + } + + /** + * + * + * @generated + */ + @Override + public LiteralValue getContent() + { + if (content != null && content.eIsProxy()) + { + InternalEObject oldContent = (InternalEObject)content; + content = (LiteralValue)eResolveProxy(oldContent); + if (content != oldContent) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, StructuredObjectivesPackage.LITERAL_VALUE_REFERENCE__CONTENT, oldContent, content)); + } + } + return content; + } + + /** + * + * + * @generated + */ + public LiteralValue basicGetContent() + { + return content; + } + + /** + * + * + * @generated + */ + @Override + public void setContent(LiteralValue newContent) + { + LiteralValue oldContent = content; + content = newContent; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, StructuredObjectivesPackage.LITERAL_VALUE_REFERENCE__CONTENT, oldContent, content)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case StructuredObjectivesPackage.LITERAL_VALUE_REFERENCE__CONTENT: + if (resolve) return getContent(); + return basicGetContent(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case StructuredObjectivesPackage.LITERAL_VALUE_REFERENCE__CONTENT: + setContent((LiteralValue)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case StructuredObjectivesPackage.LITERAL_VALUE_REFERENCE__CONTENT: + setContent((LiteralValue)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case StructuredObjectivesPackage.LITERAL_VALUE_REFERENCE__CONTENT: + return content != null; + } + return super.eIsSet(featureID); + } + +} //LiteralValueReferenceImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/PICSImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/PICSImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..4fecdcbeae0cb0f2724a65834a26a615aca0a1b9 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/PICSImpl.java @@ -0,0 +1,130 @@ +/** + */ +package org.etsi.mts.tdl.structuredobjectives.impl; + +import java.lang.reflect.InvocationTargetException; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; + +import org.etsi.mts.tdl.Comment; + +import org.etsi.mts.tdl.impl.PackageableElementImpl; + +import org.etsi.mts.tdl.structuredobjectives.Element; +import org.etsi.mts.tdl.structuredobjectives.PICS; +import org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage; +import org.etsi.mts.tdl.structuredobjectives.StructuredTestObjective; + +/** + * + * An implementation of the model object 'PICS'. + * + * + * @generated + */ +public class PICSImpl extends PackageableElementImpl implements PICS +{ + /** + * + * + * @generated + */ + protected PICSImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return StructuredObjectivesPackage.Literals.PICS; + } + + /** + * + * + * @generated + */ + @Override + public StructuredTestObjective getTestObjective() + { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + @Override + public boolean contains(Element object) + { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + @Override + public EList getNotes() + { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + @Override + public int eDerivedOperationID(int baseOperationID, Class baseClass) + { + if (baseClass == Element.class) + { + switch (baseOperationID) + { + case StructuredObjectivesPackage.ELEMENT___GET_TEST_OBJECTIVE: return StructuredObjectivesPackage.PICS___GET_TEST_OBJECTIVE; + case StructuredObjectivesPackage.ELEMENT___CONTAINS__ELEMENT: return StructuredObjectivesPackage.PICS___CONTAINS__ELEMENT; + case StructuredObjectivesPackage.ELEMENT___GET_NOTES: return StructuredObjectivesPackage.PICS___GET_NOTES; + default: return -1; + } + } + return super.eDerivedOperationID(baseOperationID, baseClass); + } + + /** + * + * + * @generated + */ + @Override + public Object eInvoke(int operationID, EList arguments) throws InvocationTargetException + { + switch (operationID) + { + case StructuredObjectivesPackage.PICS___GET_TEST_OBJECTIVE: + return getTestObjective(); + case StructuredObjectivesPackage.PICS___CONTAINS__ELEMENT: + return contains((Element)arguments.get(0)); + case StructuredObjectivesPackage.PICS___GET_NOTES: + return getNotes(); + } + return super.eInvoke(operationID, arguments); + } + +} //PICSImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/PICSReferenceImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/PICSReferenceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..51bc32833bd30f29af96b9f494ffc29af7c3dca3 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/PICSReferenceImpl.java @@ -0,0 +1,174 @@ +/** + */ +package org.etsi.mts.tdl.structuredobjectives.impl; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.etsi.mts.tdl.structuredobjectives.PICS; +import org.etsi.mts.tdl.structuredobjectives.PICSReference; +import org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage; + +/** + * + * An implementation of the model object 'PICS Reference'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.structuredobjectives.impl.PICSReferenceImpl#getPics Pics}
  • + *
+ * + * @generated + */ +public class PICSReferenceImpl extends ElementImpl implements PICSReference +{ + /** + * The cached value of the '{@link #getPics() Pics}' reference. + * + * + * @see #getPics() + * @generated + * @ordered + */ + protected PICS pics; + + /** + * + * + * @generated + */ + protected PICSReferenceImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return StructuredObjectivesPackage.Literals.PICS_REFERENCE; + } + + /** + * + * + * @generated + */ + @Override + public PICS getPics() + { + if (pics != null && pics.eIsProxy()) + { + InternalEObject oldPics = (InternalEObject)pics; + pics = (PICS)eResolveProxy(oldPics); + if (pics != oldPics) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, StructuredObjectivesPackage.PICS_REFERENCE__PICS, oldPics, pics)); + } + } + return pics; + } + + /** + * + * + * @generated + */ + public PICS basicGetPics() + { + return pics; + } + + /** + * + * + * @generated + */ + @Override + public void setPics(PICS newPics) + { + PICS oldPics = pics; + pics = newPics; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, StructuredObjectivesPackage.PICS_REFERENCE__PICS, oldPics, pics)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case StructuredObjectivesPackage.PICS_REFERENCE__PICS: + if (resolve) return getPics(); + return basicGetPics(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case StructuredObjectivesPackage.PICS_REFERENCE__PICS: + setPics((PICS)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case StructuredObjectivesPackage.PICS_REFERENCE__PICS: + setPics((PICS)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case StructuredObjectivesPackage.PICS_REFERENCE__PICS: + return pics != null; + } + return super.eIsSet(featureID); + } + +} //PICSReferenceImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/RepeatedEventSequenceImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/RepeatedEventSequenceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..0511bdf5285de6dbcc31ba18a681bbb03b6b859a --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/RepeatedEventSequenceImpl.java @@ -0,0 +1,268 @@ +/** + */ +package org.etsi.mts.tdl.structuredobjectives.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.etsi.mts.tdl.structuredobjectives.RepeatedEventSequence; +import org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage; +import org.etsi.mts.tdl.structuredobjectives.Value; + +/** + * + * An implementation of the model object 'Repeated Event Sequence'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.structuredobjectives.impl.RepeatedEventSequenceImpl#getRepetitions Repetitions}
  • + *
  • {@link org.etsi.mts.tdl.structuredobjectives.impl.RepeatedEventSequenceImpl#getInterval Interval}
  • + *
+ * + * @generated + */ +public class RepeatedEventSequenceImpl extends EventSequenceImpl implements RepeatedEventSequence +{ + /** + * The cached value of the '{@link #getRepetitions() Repetitions}' containment reference. + * + * + * @see #getRepetitions() + * @generated + * @ordered + */ + protected Value repetitions; + + /** + * The cached value of the '{@link #getInterval() Interval}' containment reference. + * + * + * @see #getInterval() + * @generated + * @ordered + */ + protected Value interval; + + /** + * + * + * @generated + */ + protected RepeatedEventSequenceImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return StructuredObjectivesPackage.Literals.REPEATED_EVENT_SEQUENCE; + } + + /** + * + * + * @generated + */ + @Override + public Value getRepetitions() + { + return repetitions; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetRepetitions(Value newRepetitions, NotificationChain msgs) + { + Value oldRepetitions = repetitions; + repetitions = newRepetitions; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, StructuredObjectivesPackage.REPEATED_EVENT_SEQUENCE__REPETITIONS, oldRepetitions, newRepetitions); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + @Override + public void setRepetitions(Value newRepetitions) + { + if (newRepetitions != repetitions) + { + NotificationChain msgs = null; + if (repetitions != null) + msgs = ((InternalEObject)repetitions).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - StructuredObjectivesPackage.REPEATED_EVENT_SEQUENCE__REPETITIONS, null, msgs); + if (newRepetitions != null) + msgs = ((InternalEObject)newRepetitions).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - StructuredObjectivesPackage.REPEATED_EVENT_SEQUENCE__REPETITIONS, null, msgs); + msgs = basicSetRepetitions(newRepetitions, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, StructuredObjectivesPackage.REPEATED_EVENT_SEQUENCE__REPETITIONS, newRepetitions, newRepetitions)); + } + + /** + * + * + * @generated + */ + @Override + public Value getInterval() + { + return interval; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetInterval(Value newInterval, NotificationChain msgs) + { + Value oldInterval = interval; + interval = newInterval; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, StructuredObjectivesPackage.REPEATED_EVENT_SEQUENCE__INTERVAL, oldInterval, newInterval); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + @Override + public void setInterval(Value newInterval) + { + if (newInterval != interval) + { + NotificationChain msgs = null; + if (interval != null) + msgs = ((InternalEObject)interval).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - StructuredObjectivesPackage.REPEATED_EVENT_SEQUENCE__INTERVAL, null, msgs); + if (newInterval != null) + msgs = ((InternalEObject)newInterval).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - StructuredObjectivesPackage.REPEATED_EVENT_SEQUENCE__INTERVAL, null, msgs); + msgs = basicSetInterval(newInterval, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, StructuredObjectivesPackage.REPEATED_EVENT_SEQUENCE__INTERVAL, newInterval, newInterval)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case StructuredObjectivesPackage.REPEATED_EVENT_SEQUENCE__REPETITIONS: + return basicSetRepetitions(null, msgs); + case StructuredObjectivesPackage.REPEATED_EVENT_SEQUENCE__INTERVAL: + return basicSetInterval(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case StructuredObjectivesPackage.REPEATED_EVENT_SEQUENCE__REPETITIONS: + return getRepetitions(); + case StructuredObjectivesPackage.REPEATED_EVENT_SEQUENCE__INTERVAL: + return getInterval(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case StructuredObjectivesPackage.REPEATED_EVENT_SEQUENCE__REPETITIONS: + setRepetitions((Value)newValue); + return; + case StructuredObjectivesPackage.REPEATED_EVENT_SEQUENCE__INTERVAL: + setInterval((Value)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case StructuredObjectivesPackage.REPEATED_EVENT_SEQUENCE__REPETITIONS: + setRepetitions((Value)null); + return; + case StructuredObjectivesPackage.REPEATED_EVENT_SEQUENCE__INTERVAL: + setInterval((Value)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case StructuredObjectivesPackage.REPEATED_EVENT_SEQUENCE__REPETITIONS: + return repetitions != null; + case StructuredObjectivesPackage.REPEATED_EVENT_SEQUENCE__INTERVAL: + return interval != null; + } + return super.eIsSet(featureID); + } + +} //RepeatedEventSequenceImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/StructuredObjectivesFactoryImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/StructuredObjectivesFactoryImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..180095d963cd69392731f54a6f1d544094998871 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/StructuredObjectivesFactoryImpl.java @@ -0,0 +1,446 @@ +/** + */ +package org.etsi.mts.tdl.structuredobjectives.impl; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EPackage; + +import org.eclipse.emf.ecore.impl.EFactoryImpl; + +import org.eclipse.emf.ecore.plugin.EcorePlugin; + +import org.etsi.mts.tdl.structuredobjectives.*; + +/** + * + * An implementation of the model Factory. + * + * @generated + */ +public class StructuredObjectivesFactoryImpl extends EFactoryImpl implements StructuredObjectivesFactory +{ + /** + * Creates the default factory implementation. + * + * + * @generated + */ + public static StructuredObjectivesFactory init() + { + try + { + StructuredObjectivesFactory theStructuredObjectivesFactory = (StructuredObjectivesFactory)EPackage.Registry.INSTANCE.getEFactory(StructuredObjectivesPackage.eNS_URI); + if (theStructuredObjectivesFactory != null) + { + return theStructuredObjectivesFactory; + } + } + catch (Exception exception) + { + EcorePlugin.INSTANCE.log(exception); + } + return new StructuredObjectivesFactoryImpl(); + } + + /** + * Creates an instance of the factory. + * + * + * @generated + */ + public StructuredObjectivesFactoryImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + public EObject create(EClass eClass) + { + switch (eClass.getClassifierID()) + { + case StructuredObjectivesPackage.ELEMENT: return createElement(); + case StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE: return createStructuredTestObjective(); + case StructuredObjectivesPackage.INITIAL_CONDITIONS: return createInitialConditions(); + case StructuredObjectivesPackage.EVENT_SEQUENCE: return createEventSequence(); + case StructuredObjectivesPackage.EVENT_OCCURRENCE: return createEventOccurrence(); + case StructuredObjectivesPackage.EXPECTED_BEHAVIOUR: return createExpectedBehaviour(); + case StructuredObjectivesPackage.FINAL_CONDITIONS: return createFinalConditions(); + case StructuredObjectivesPackage.PICS_REFERENCE: return createPICSReference(); + case StructuredObjectivesPackage.PICS: return createPICS(); + case StructuredObjectivesPackage.ENTITY: return createEntity(); + case StructuredObjectivesPackage.EVENT: return createEvent(); + case StructuredObjectivesPackage.EVENT_OCCURRENCE_SPECIFICATION: return createEventOccurrenceSpecification(); + case StructuredObjectivesPackage.ENTITY_REFERENCE: return createEntityReference(); + case StructuredObjectivesPackage.EVENT_REFERENCE: return createEventReference(); + case StructuredObjectivesPackage.EVENT_ARGUMENT: return createEventArgument(); + case StructuredObjectivesPackage.DATA_REFERENCE: return createDataReference(); + case StructuredObjectivesPackage.CONTENT: return createContent(); + case StructuredObjectivesPackage.LITERAL_VALUE: return createLiteralValue(); + case StructuredObjectivesPackage.CONTENT_REFERENCE: return createContentReference(); + case StructuredObjectivesPackage.LITERAL_VALUE_REFERENCE: return createLiteralValueReference(); + case StructuredObjectivesPackage.REPEATED_EVENT_SEQUENCE: return createRepeatedEventSequence(); + case StructuredObjectivesPackage.EVENT_TEMPLATE_OCCURRENCE: return createEventTemplateOccurrence(); + case StructuredObjectivesPackage.EVENT_SPECIFICATION_TEMPLATE: return createEventSpecificationTemplate(); + case StructuredObjectivesPackage.ENTITY_BINDING: return createEntityBinding(); + case StructuredObjectivesPackage.VARIANTS: return createVariants(); + case StructuredObjectivesPackage.TEST_OBJECTIVE_VARIANT: return createTestObjectiveVariant(); + case StructuredObjectivesPackage.VARIANT_BINDING: return createVariantBinding(); + default: + throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); + } + } + + /** + * + * + * @generated + */ + @Override + public Element createElement() + { + ElementImpl element = new ElementImpl(); + return element; + } + + /** + * + * + * @generated + */ + @Override + public StructuredTestObjective createStructuredTestObjective() + { + StructuredTestObjectiveImpl structuredTestObjective = new StructuredTestObjectiveImpl(); + return structuredTestObjective; + } + + /** + * + * + * @generated + */ + @Override + public InitialConditions createInitialConditions() + { + InitialConditionsImpl initialConditions = new InitialConditionsImpl(); + return initialConditions; + } + + /** + * + * + * @generated + */ + @Override + public EventSequence createEventSequence() + { + EventSequenceImpl eventSequence = new EventSequenceImpl(); + return eventSequence; + } + + /** + * + * + * @generated + */ + @Override + public EventOccurrence createEventOccurrence() + { + EventOccurrenceImpl eventOccurrence = new EventOccurrenceImpl(); + return eventOccurrence; + } + + /** + * + * + * @generated + */ + @Override + public ExpectedBehaviour createExpectedBehaviour() + { + ExpectedBehaviourImpl expectedBehaviour = new ExpectedBehaviourImpl(); + return expectedBehaviour; + } + + /** + * + * + * @generated + */ + @Override + public FinalConditions createFinalConditions() + { + FinalConditionsImpl finalConditions = new FinalConditionsImpl(); + return finalConditions; + } + + /** + * + * + * @generated + */ + @Override + public PICSReference createPICSReference() + { + PICSReferenceImpl picsReference = new PICSReferenceImpl(); + return picsReference; + } + + /** + * + * + * @generated + */ + @Override + public PICS createPICS() + { + PICSImpl pics = new PICSImpl(); + return pics; + } + + /** + * + * + * @generated + */ + @Override + public Entity createEntity() + { + EntityImpl entity = new EntityImpl(); + return entity; + } + + /** + * + * + * @generated + */ + @Override + public Event createEvent() + { + EventImpl event = new EventImpl(); + return event; + } + + /** + * + * + * @generated + */ + @Override + public EventOccurrenceSpecification createEventOccurrenceSpecification() + { + EventOccurrenceSpecificationImpl eventOccurrenceSpecification = new EventOccurrenceSpecificationImpl(); + return eventOccurrenceSpecification; + } + + /** + * + * + * @generated + */ + @Override + public EntityReference createEntityReference() + { + EntityReferenceImpl entityReference = new EntityReferenceImpl(); + return entityReference; + } + + /** + * + * + * @generated + */ + @Override + public EventReference createEventReference() + { + EventReferenceImpl eventReference = new EventReferenceImpl(); + return eventReference; + } + + /** + * + * + * @generated + */ + @Override + public EventArgument createEventArgument() + { + EventArgumentImpl eventArgument = new EventArgumentImpl(); + return eventArgument; + } + + /** + * + * + * @generated + */ + @Override + public DataReference createDataReference() + { + DataReferenceImpl dataReference = new DataReferenceImpl(); + return dataReference; + } + + /** + * + * + * @generated + */ + @Override + public Content createContent() + { + ContentImpl content = new ContentImpl(); + return content; + } + + /** + * + * + * @generated + */ + @Override + public LiteralValue createLiteralValue() + { + LiteralValueImpl literalValue = new LiteralValueImpl(); + return literalValue; + } + + /** + * + * + * @generated + */ + @Override + public ContentReference createContentReference() + { + ContentReferenceImpl contentReference = new ContentReferenceImpl(); + return contentReference; + } + + /** + * + * + * @generated + */ + @Override + public LiteralValueReference createLiteralValueReference() + { + LiteralValueReferenceImpl literalValueReference = new LiteralValueReferenceImpl(); + return literalValueReference; + } + + /** + * + * + * @generated + */ + @Override + public RepeatedEventSequence createRepeatedEventSequence() + { + RepeatedEventSequenceImpl repeatedEventSequence = new RepeatedEventSequenceImpl(); + return repeatedEventSequence; + } + + /** + * + * + * @generated + */ + @Override + public EventTemplateOccurrence createEventTemplateOccurrence() + { + EventTemplateOccurrenceImpl eventTemplateOccurrence = new EventTemplateOccurrenceImpl(); + return eventTemplateOccurrence; + } + + /** + * + * + * @generated + */ + @Override + public EventSpecificationTemplate createEventSpecificationTemplate() + { + EventSpecificationTemplateImpl eventSpecificationTemplate = new EventSpecificationTemplateImpl(); + return eventSpecificationTemplate; + } + + /** + * + * + * @generated + */ + @Override + public EntityBinding createEntityBinding() + { + EntityBindingImpl entityBinding = new EntityBindingImpl(); + return entityBinding; + } + + /** + * + * + * @generated + */ + @Override + public Variants createVariants() + { + VariantsImpl variants = new VariantsImpl(); + return variants; + } + + /** + * + * + * @generated + */ + @Override + public TestObjectiveVariant createTestObjectiveVariant() + { + TestObjectiveVariantImpl testObjectiveVariant = new TestObjectiveVariantImpl(); + return testObjectiveVariant; + } + + /** + * + * + * @generated + */ + @Override + public VariantBinding createVariantBinding() + { + VariantBindingImpl variantBinding = new VariantBindingImpl(); + return variantBinding; + } + + /** + * + * + * @generated + */ + @Override + public StructuredObjectivesPackage getStructuredObjectivesPackage() + { + return (StructuredObjectivesPackage)getEPackage(); + } + + /** + * + * + * @deprecated + * @generated + */ + @Deprecated + public static StructuredObjectivesPackage getPackage() + { + return StructuredObjectivesPackage.eINSTANCE; + } + +} //StructuredObjectivesFactoryImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/StructuredObjectivesPackageImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/StructuredObjectivesPackageImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..f21414dadeafa00840af2a267beff35a5fd056df --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/StructuredObjectivesPackageImpl.java @@ -0,0 +1,1544 @@ +/** + */ +package org.etsi.mts.tdl.structuredobjectives.impl; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EOperation; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.EReference; + +import org.eclipse.emf.ecore.impl.EPackageImpl; + +import org.etsi.mts.tdl.extendedconfigurations.ExtendedConfigurationsPackage; + +import org.etsi.mts.tdl.extendedconfigurations.impl.ExtendedConfigurationsPackageImpl; + +import org.etsi.mts.tdl.impl.tdlPackageImpl; + +import org.etsi.mts.tdl.structuredobjectives.Content; +import org.etsi.mts.tdl.structuredobjectives.ContentReference; +import org.etsi.mts.tdl.structuredobjectives.DataReference; +import org.etsi.mts.tdl.structuredobjectives.Element; +import org.etsi.mts.tdl.structuredobjectives.Entity; +import org.etsi.mts.tdl.structuredobjectives.EntityBinding; +import org.etsi.mts.tdl.structuredobjectives.EntityReference; +import org.etsi.mts.tdl.structuredobjectives.Event; +import org.etsi.mts.tdl.structuredobjectives.EventArgument; +import org.etsi.mts.tdl.structuredobjectives.EventOccurrence; +import org.etsi.mts.tdl.structuredobjectives.EventOccurrenceSpecification; +import org.etsi.mts.tdl.structuredobjectives.EventReference; +import org.etsi.mts.tdl.structuredobjectives.EventSequence; +import org.etsi.mts.tdl.structuredobjectives.EventSpecificationTemplate; +import org.etsi.mts.tdl.structuredobjectives.EventTemplateOccurrence; +import org.etsi.mts.tdl.structuredobjectives.ExpectedBehaviour; +import org.etsi.mts.tdl.structuredobjectives.FinalConditions; +import org.etsi.mts.tdl.structuredobjectives.InitialConditions; +import org.etsi.mts.tdl.structuredobjectives.LiteralValue; +import org.etsi.mts.tdl.structuredobjectives.LiteralValueReference; +import org.etsi.mts.tdl.structuredobjectives.PICSReference; +import org.etsi.mts.tdl.structuredobjectives.RepeatedEventSequence; +import org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesFactory; +import org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage; +import org.etsi.mts.tdl.structuredobjectives.StructuredTestObjective; +import org.etsi.mts.tdl.structuredobjectives.TestObjectiveVariant; +import org.etsi.mts.tdl.structuredobjectives.Value; +import org.etsi.mts.tdl.structuredobjectives.VariantBinding; +import org.etsi.mts.tdl.structuredobjectives.Variants; + +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * An implementation of the model Package. + * + * @generated + */ +public class StructuredObjectivesPackageImpl extends EPackageImpl implements StructuredObjectivesPackage +{ + /** + * + * + * @generated + */ + private EClass elementEClass = null; + + /** + * + * + * @generated + */ + private EClass structuredTestObjectiveEClass = null; + + /** + * + * + * @generated + */ + private EClass initialConditionsEClass = null; + + /** + * + * + * @generated + */ + private EClass eventSequenceEClass = null; + + /** + * + * + * @generated + */ + private EClass eventOccurrenceEClass = null; + + /** + * + * + * @generated + */ + private EClass expectedBehaviourEClass = null; + + /** + * + * + * @generated + */ + private EClass finalConditionsEClass = null; + + /** + * + * + * @generated + */ + private EClass picsReferenceEClass = null; + + /** + * + * + * @generated + */ + private EClass picsEClass = null; + + /** + * + * + * @generated + */ + private EClass entityEClass = null; + + /** + * + * + * @generated + */ + private EClass eventEClass = null; + + /** + * + * + * @generated + */ + private EClass eventOccurrenceSpecificationEClass = null; + + /** + * + * + * @generated + */ + private EClass entityReferenceEClass = null; + + /** + * + * + * @generated + */ + private EClass eventReferenceEClass = null; + + /** + * + * + * @generated + */ + private EClass valueEClass = null; + + /** + * + * + * @generated + */ + private EClass eventArgumentEClass = null; + + /** + * + * + * @generated + */ + private EClass dataReferenceEClass = null; + + /** + * + * + * @generated + */ + private EClass contentEClass = null; + + /** + * + * + * @generated + */ + private EClass literalValueEClass = null; + + /** + * + * + * @generated + */ + private EClass contentReferenceEClass = null; + + /** + * + * + * @generated + */ + private EClass literalValueReferenceEClass = null; + + /** + * + * + * @generated + */ + private EClass repeatedEventSequenceEClass = null; + + /** + * + * + * @generated + */ + private EClass eventTemplateOccurrenceEClass = null; + + /** + * + * + * @generated + */ + private EClass eventSpecificationTemplateEClass = null; + + /** + * + * + * @generated + */ + private EClass entityBindingEClass = null; + + /** + * + * + * @generated + */ + private EClass variantsEClass = null; + + /** + * + * + * @generated + */ + private EClass testObjectiveVariantEClass = null; + + /** + * + * + * @generated + */ + private EClass variantBindingEClass = null; + + /** + * Creates an instance of the model Package, registered with + * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package + * package URI value. + *

Note: the correct way to create the package is via the static + * factory method {@link #init init()}, which also performs + * initialization of the package, or returns the registered package, + * if one already exists. + * + * + * @see org.eclipse.emf.ecore.EPackage.Registry + * @see org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage#eNS_URI + * @see #init() + * @generated + */ + private StructuredObjectivesPackageImpl() + { + super(eNS_URI, StructuredObjectivesFactory.eINSTANCE); + } + /** + * + * + * @generated + */ + private static boolean isInited = false; + + /** + * Creates, registers, and initializes the Package for this model, and for any others upon which it depends. + * + *

This method is used to initialize {@link StructuredObjectivesPackage#eINSTANCE} when that field is accessed. + * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package. + * + * + * @see #eNS_URI + * @see #createPackageContents() + * @see #initializePackageContents() + * @generated + */ + public static StructuredObjectivesPackage init() + { + if (isInited) return (StructuredObjectivesPackage)EPackage.Registry.INSTANCE.getEPackage(StructuredObjectivesPackage.eNS_URI); + + // Obtain or create and register package + Object registeredStructuredObjectivesPackage = EPackage.Registry.INSTANCE.get(eNS_URI); + StructuredObjectivesPackageImpl theStructuredObjectivesPackage = registeredStructuredObjectivesPackage instanceof StructuredObjectivesPackageImpl ? (StructuredObjectivesPackageImpl)registeredStructuredObjectivesPackage : new StructuredObjectivesPackageImpl(); + + isInited = true; + + // Obtain or create and register interdependencies + Object registeredPackage = EPackage.Registry.INSTANCE.getEPackage(tdlPackage.eNS_URI); + tdlPackageImpl thetdlPackage = (tdlPackageImpl)(registeredPackage instanceof tdlPackageImpl ? registeredPackage : tdlPackage.eINSTANCE); + registeredPackage = EPackage.Registry.INSTANCE.getEPackage(ExtendedConfigurationsPackage.eNS_URI); + ExtendedConfigurationsPackageImpl theExtendedConfigurationsPackage = (ExtendedConfigurationsPackageImpl)(registeredPackage instanceof ExtendedConfigurationsPackageImpl ? registeredPackage : ExtendedConfigurationsPackage.eINSTANCE); + + // Create package meta-data objects + theStructuredObjectivesPackage.createPackageContents(); + thetdlPackage.createPackageContents(); + theExtendedConfigurationsPackage.createPackageContents(); + + // Initialize created meta-data + theStructuredObjectivesPackage.initializePackageContents(); + thetdlPackage.initializePackageContents(); + theExtendedConfigurationsPackage.initializePackageContents(); + + // Mark meta-data to indicate it can't be changed + theStructuredObjectivesPackage.freeze(); + + // Update the registry and return the package + EPackage.Registry.INSTANCE.put(StructuredObjectivesPackage.eNS_URI, theStructuredObjectivesPackage); + return theStructuredObjectivesPackage; + } + + /** + * + * + * @generated + */ + @Override + public EClass getElement() + { + return elementEClass; + } + + /** + * + * + * @generated + */ + @Override + public EOperation getElement__GetTestObjective() + { + return elementEClass.getEOperations().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getElement__Contains__Element() + { + return elementEClass.getEOperations().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getElement__GetNotes() + { + return elementEClass.getEOperations().get(2); + } + + /** + * + * + * @generated + */ + @Override + public EClass getStructuredTestObjective() + { + return structuredTestObjectiveEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getStructuredTestObjective_Configuration() + { + return (EReference)structuredTestObjectiveEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getStructuredTestObjective_InitialConditions() + { + return (EReference)structuredTestObjectiveEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EReference getStructuredTestObjective_ExpectedBehaviour() + { + return (EReference)structuredTestObjectiveEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + @Override + public EReference getStructuredTestObjective_FinalConditions() + { + return (EReference)structuredTestObjectiveEClass.getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + @Override + public EReference getStructuredTestObjective_PicsReference() + { + return (EReference)structuredTestObjectiveEClass.getEStructuralFeatures().get(4); + } + + /** + * + * + * @generated + */ + @Override + public EReference getStructuredTestObjective_Variants() + { + return (EReference)structuredTestObjectiveEClass.getEStructuralFeatures().get(5); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getStructuredTestObjective__IndexOf__Element() + { + return structuredTestObjectiveEClass.getEOperations().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getInitialConditions() + { + return initialConditionsEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getInitialConditions_Conditions() + { + return (EReference)initialConditionsEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getEventSequence() + { + return eventSequenceEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getEventSequence_Events() + { + return (EReference)eventSequenceEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getEventOccurrence() + { + return eventOccurrenceEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getEventOccurrence_TimeConstraint() + { + return (EReference)eventOccurrenceEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getEventOccurrence_TimeLabel() + { + return (EReference)eventOccurrenceEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EClass getExpectedBehaviour() + { + return expectedBehaviourEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getExpectedBehaviour_WhenClause() + { + return (EReference)expectedBehaviourEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getExpectedBehaviour_ThenClause() + { + return (EReference)expectedBehaviourEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EClass getFinalConditions() + { + return finalConditionsEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getFinalConditions_Conditions() + { + return (EReference)finalConditionsEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getPICSReference() + { + return picsReferenceEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getPICSReference_Pics() + { + return (EReference)picsReferenceEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getPICS() + { + return picsEClass; + } + + /** + * + * + * @generated + */ + @Override + public EClass getEntity() + { + return entityEClass; + } + + /** + * + * + * @generated + */ + @Override + public EClass getEvent() + { + return eventEClass; + } + + /** + * + * + * @generated + */ + @Override + public EClass getEventOccurrenceSpecification() + { + return eventOccurrenceSpecificationEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getEventOccurrenceSpecification_EntityReference() + { + return (EReference)eventOccurrenceSpecificationEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getEventOccurrenceSpecification_EventReference() + { + return (EReference)eventOccurrenceSpecificationEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EReference getEventOccurrenceSpecification_OppositeEntityReference() + { + return (EReference)eventOccurrenceSpecificationEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + @Override + public EReference getEventOccurrenceSpecification_EventArgument() + { + return (EReference)eventOccurrenceSpecificationEClass.getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + @Override + public EClass getEntityReference() + { + return entityReferenceEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getEntityReference_Entity() + { + return (EReference)entityReferenceEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getEntityReference_Component() + { + return (EReference)entityReferenceEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EClass getEventReference() + { + return eventReferenceEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getEventReference_Event() + { + return (EReference)eventReferenceEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getValue() + { + return valueEClass; + } + + /** + * + * + * @generated + */ + @Override + public EClass getEventArgument() + { + return eventArgumentEClass; + } + + /** + * + * + * @generated + */ + @Override + public EClass getDataReference() + { + return dataReferenceEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getDataReference_Content() + { + return (EReference)dataReferenceEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getContent() + { + return contentEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getContent_Value() + { + return (EReference)contentEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getContent_Content() + { + return (EReference)contentEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EReference getContent_Member() + { + return (EReference)contentEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + @Override + public EClass getLiteralValue() + { + return literalValueEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getLiteralValue_Content() + { + return (EReference)literalValueEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getLiteralValue_DataType() + { + return (EReference)literalValueEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EClass getContentReference() + { + return contentReferenceEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getContentReference_Content() + { + return (EReference)contentReferenceEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getLiteralValueReference() + { + return literalValueReferenceEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getLiteralValueReference_Content() + { + return (EReference)literalValueReferenceEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getRepeatedEventSequence() + { + return repeatedEventSequenceEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getRepeatedEventSequence_Repetitions() + { + return (EReference)repeatedEventSequenceEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getRepeatedEventSequence_Interval() + { + return (EReference)repeatedEventSequenceEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EClass getEventTemplateOccurrence() + { + return eventTemplateOccurrenceEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getEventTemplateOccurrence_EventTemplate() + { + return (EReference)eventTemplateOccurrenceEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getEventTemplateOccurrence_EntityBinding() + { + return (EReference)eventTemplateOccurrenceEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EReference getEventTemplateOccurrence_OccurrenceArgument() + { + return (EReference)eventTemplateOccurrenceEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + @Override + public EClass getEventSpecificationTemplate() + { + return eventSpecificationTemplateEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getEventSpecificationTemplate_EventSpecification() + { + return (EReference)eventSpecificationTemplateEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getEntityBinding() + { + return entityBindingEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getEntityBinding_TemplateEntity() + { + return (EReference)entityBindingEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getEntityBinding_OccurrenceEntity() + { + return (EReference)entityBindingEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EClass getVariants() + { + return variantsEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getVariants_Variants() + { + return (EReference)variantsEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getTestObjectiveVariant() + { + return testObjectiveVariantEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getTestObjectiveVariant_PicsReference() + { + return (EReference)testObjectiveVariantEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getTestObjectiveVariant_Bindings() + { + return (EReference)testObjectiveVariantEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EClass getVariantBinding() + { + return variantBindingEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getVariantBinding_Value() + { + return (EReference)variantBindingEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getVariantBinding_BoundTo() + { + return (EReference)variantBindingEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public StructuredObjectivesFactory getStructuredObjectivesFactory() + { + return (StructuredObjectivesFactory)getEFactoryInstance(); + } + + /** + * + * + * @generated + */ + private boolean isCreated = false; + + /** + * Creates the meta-model objects for the package. This method is + * guarded to have no affect on any invocation but its first. + * + * + * @generated + */ + public void createPackageContents() + { + if (isCreated) return; + isCreated = true; + + // Create classes and their features + elementEClass = createEClass(ELEMENT); + createEOperation(elementEClass, ELEMENT___GET_TEST_OBJECTIVE); + createEOperation(elementEClass, ELEMENT___CONTAINS__ELEMENT); + createEOperation(elementEClass, ELEMENT___GET_NOTES); + + structuredTestObjectiveEClass = createEClass(STRUCTURED_TEST_OBJECTIVE); + createEReference(structuredTestObjectiveEClass, STRUCTURED_TEST_OBJECTIVE__CONFIGURATION); + createEReference(structuredTestObjectiveEClass, STRUCTURED_TEST_OBJECTIVE__INITIAL_CONDITIONS); + createEReference(structuredTestObjectiveEClass, STRUCTURED_TEST_OBJECTIVE__EXPECTED_BEHAVIOUR); + createEReference(structuredTestObjectiveEClass, STRUCTURED_TEST_OBJECTIVE__FINAL_CONDITIONS); + createEReference(structuredTestObjectiveEClass, STRUCTURED_TEST_OBJECTIVE__PICS_REFERENCE); + createEReference(structuredTestObjectiveEClass, STRUCTURED_TEST_OBJECTIVE__VARIANTS); + createEOperation(structuredTestObjectiveEClass, STRUCTURED_TEST_OBJECTIVE___INDEX_OF__ELEMENT); + + initialConditionsEClass = createEClass(INITIAL_CONDITIONS); + createEReference(initialConditionsEClass, INITIAL_CONDITIONS__CONDITIONS); + + eventSequenceEClass = createEClass(EVENT_SEQUENCE); + createEReference(eventSequenceEClass, EVENT_SEQUENCE__EVENTS); + + eventOccurrenceEClass = createEClass(EVENT_OCCURRENCE); + createEReference(eventOccurrenceEClass, EVENT_OCCURRENCE__TIME_CONSTRAINT); + createEReference(eventOccurrenceEClass, EVENT_OCCURRENCE__TIME_LABEL); + + expectedBehaviourEClass = createEClass(EXPECTED_BEHAVIOUR); + createEReference(expectedBehaviourEClass, EXPECTED_BEHAVIOUR__WHEN_CLAUSE); + createEReference(expectedBehaviourEClass, EXPECTED_BEHAVIOUR__THEN_CLAUSE); + + finalConditionsEClass = createEClass(FINAL_CONDITIONS); + createEReference(finalConditionsEClass, FINAL_CONDITIONS__CONDITIONS); + + picsReferenceEClass = createEClass(PICS_REFERENCE); + createEReference(picsReferenceEClass, PICS_REFERENCE__PICS); + + picsEClass = createEClass(PICS); + + entityEClass = createEClass(ENTITY); + + eventEClass = createEClass(EVENT); + + eventOccurrenceSpecificationEClass = createEClass(EVENT_OCCURRENCE_SPECIFICATION); + createEReference(eventOccurrenceSpecificationEClass, EVENT_OCCURRENCE_SPECIFICATION__ENTITY_REFERENCE); + createEReference(eventOccurrenceSpecificationEClass, EVENT_OCCURRENCE_SPECIFICATION__EVENT_REFERENCE); + createEReference(eventOccurrenceSpecificationEClass, EVENT_OCCURRENCE_SPECIFICATION__OPPOSITE_ENTITY_REFERENCE); + createEReference(eventOccurrenceSpecificationEClass, EVENT_OCCURRENCE_SPECIFICATION__EVENT_ARGUMENT); + + entityReferenceEClass = createEClass(ENTITY_REFERENCE); + createEReference(entityReferenceEClass, ENTITY_REFERENCE__ENTITY); + createEReference(entityReferenceEClass, ENTITY_REFERENCE__COMPONENT); + + eventReferenceEClass = createEClass(EVENT_REFERENCE); + createEReference(eventReferenceEClass, EVENT_REFERENCE__EVENT); + + valueEClass = createEClass(VALUE); + + eventArgumentEClass = createEClass(EVENT_ARGUMENT); + + dataReferenceEClass = createEClass(DATA_REFERENCE); + createEReference(dataReferenceEClass, DATA_REFERENCE__CONTENT); + + contentEClass = createEClass(CONTENT); + createEReference(contentEClass, CONTENT__VALUE); + createEReference(contentEClass, CONTENT__CONTENT); + createEReference(contentEClass, CONTENT__MEMBER); + + literalValueEClass = createEClass(LITERAL_VALUE); + createEReference(literalValueEClass, LITERAL_VALUE__CONTENT); + createEReference(literalValueEClass, LITERAL_VALUE__DATA_TYPE); + + contentReferenceEClass = createEClass(CONTENT_REFERENCE); + createEReference(contentReferenceEClass, CONTENT_REFERENCE__CONTENT); + + literalValueReferenceEClass = createEClass(LITERAL_VALUE_REFERENCE); + createEReference(literalValueReferenceEClass, LITERAL_VALUE_REFERENCE__CONTENT); + + repeatedEventSequenceEClass = createEClass(REPEATED_EVENT_SEQUENCE); + createEReference(repeatedEventSequenceEClass, REPEATED_EVENT_SEQUENCE__REPETITIONS); + createEReference(repeatedEventSequenceEClass, REPEATED_EVENT_SEQUENCE__INTERVAL); + + eventTemplateOccurrenceEClass = createEClass(EVENT_TEMPLATE_OCCURRENCE); + createEReference(eventTemplateOccurrenceEClass, EVENT_TEMPLATE_OCCURRENCE__EVENT_TEMPLATE); + createEReference(eventTemplateOccurrenceEClass, EVENT_TEMPLATE_OCCURRENCE__ENTITY_BINDING); + createEReference(eventTemplateOccurrenceEClass, EVENT_TEMPLATE_OCCURRENCE__OCCURRENCE_ARGUMENT); + + eventSpecificationTemplateEClass = createEClass(EVENT_SPECIFICATION_TEMPLATE); + createEReference(eventSpecificationTemplateEClass, EVENT_SPECIFICATION_TEMPLATE__EVENT_SPECIFICATION); + + entityBindingEClass = createEClass(ENTITY_BINDING); + createEReference(entityBindingEClass, ENTITY_BINDING__TEMPLATE_ENTITY); + createEReference(entityBindingEClass, ENTITY_BINDING__OCCURRENCE_ENTITY); + + variantsEClass = createEClass(VARIANTS); + createEReference(variantsEClass, VARIANTS__VARIANTS); + + testObjectiveVariantEClass = createEClass(TEST_OBJECTIVE_VARIANT); + createEReference(testObjectiveVariantEClass, TEST_OBJECTIVE_VARIANT__PICS_REFERENCE); + createEReference(testObjectiveVariantEClass, TEST_OBJECTIVE_VARIANT__BINDINGS); + + variantBindingEClass = createEClass(VARIANT_BINDING); + createEReference(variantBindingEClass, VARIANT_BINDING__VALUE); + createEReference(variantBindingEClass, VARIANT_BINDING__BOUND_TO); + } + + /** + * + * + * @generated + */ + private boolean isInitialized = false; + + /** + * Complete the initialization of the package and its meta-model. This + * method is guarded to have no affect on any invocation but its first. + * + * + * @generated + */ + public void initializePackageContents() + { + if (isInitialized) return; + isInitialized = true; + + // Initialize package + setName(eNAME); + setNsPrefix(eNS_PREFIX); + setNsURI(eNS_URI); + + // Obtain other dependent packages + tdlPackage thetdlPackage = (tdlPackage)EPackage.Registry.INSTANCE.getEPackage(tdlPackage.eNS_URI); + + // Create type parameters + + // Set bounds for type parameters + + // Add supertypes to classes + elementEClass.getESuperTypes().add(thetdlPackage.getElement()); + structuredTestObjectiveEClass.getESuperTypes().add(thetdlPackage.getTestObjective()); + structuredTestObjectiveEClass.getESuperTypes().add(this.getElement()); + initialConditionsEClass.getESuperTypes().add(this.getElement()); + eventSequenceEClass.getESuperTypes().add(this.getElement()); + eventOccurrenceEClass.getESuperTypes().add(this.getElement()); + expectedBehaviourEClass.getESuperTypes().add(this.getElement()); + finalConditionsEClass.getESuperTypes().add(this.getElement()); + picsReferenceEClass.getESuperTypes().add(this.getElement()); + picsEClass.getESuperTypes().add(thetdlPackage.getPackageableElement()); + picsEClass.getESuperTypes().add(this.getElement()); + entityEClass.getESuperTypes().add(thetdlPackage.getPackageableElement()); + entityEClass.getESuperTypes().add(this.getElement()); + eventEClass.getESuperTypes().add(thetdlPackage.getPackageableElement()); + eventEClass.getESuperTypes().add(this.getElement()); + eventOccurrenceSpecificationEClass.getESuperTypes().add(this.getEventOccurrence()); + eventOccurrenceSpecificationEClass.getESuperTypes().add(this.getElement()); + entityReferenceEClass.getESuperTypes().add(this.getElement()); + eventReferenceEClass.getESuperTypes().add(this.getElement()); + valueEClass.getESuperTypes().add(this.getElement()); + eventArgumentEClass.getESuperTypes().add(this.getElement()); + dataReferenceEClass.getESuperTypes().add(this.getValue()); + dataReferenceEClass.getESuperTypes().add(this.getElement()); + contentEClass.getESuperTypes().add(this.getElement()); + literalValueEClass.getESuperTypes().add(this.getValue()); + literalValueEClass.getESuperTypes().add(this.getElement()); + contentReferenceEClass.getESuperTypes().add(this.getValue()); + contentReferenceEClass.getESuperTypes().add(this.getElement()); + literalValueReferenceEClass.getESuperTypes().add(this.getValue()); + literalValueReferenceEClass.getESuperTypes().add(this.getElement()); + repeatedEventSequenceEClass.getESuperTypes().add(this.getEventSequence()); + repeatedEventSequenceEClass.getESuperTypes().add(this.getElement()); + eventTemplateOccurrenceEClass.getESuperTypes().add(this.getEventOccurrence()); + eventTemplateOccurrenceEClass.getESuperTypes().add(this.getElement()); + eventSpecificationTemplateEClass.getESuperTypes().add(thetdlPackage.getPackageableElement()); + eventSpecificationTemplateEClass.getESuperTypes().add(this.getElement()); + entityBindingEClass.getESuperTypes().add(this.getElement()); + variantsEClass.getESuperTypes().add(this.getElement()); + testObjectiveVariantEClass.getESuperTypes().add(thetdlPackage.getTestObjective()); + testObjectiveVariantEClass.getESuperTypes().add(this.getElement()); + variantBindingEClass.getESuperTypes().add(this.getElement()); + + // Initialize classes, features, and operations; add parameters + initEClass(elementEClass, Element.class, "Element", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEOperation(getElement__GetTestObjective(), this.getStructuredTestObjective(), "getTestObjective", 0, 1, IS_UNIQUE, IS_ORDERED); + + EOperation op = initEOperation(getElement__Contains__Element(), ecorePackage.getEBoolean(), "contains", 1, 1, IS_UNIQUE, IS_ORDERED); + addEParameter(op, this.getElement(), "object", 0, 1, IS_UNIQUE, IS_ORDERED); + + initEOperation(getElement__GetNotes(), thetdlPackage.getComment(), "getNotes", 0, -1, IS_UNIQUE, !IS_ORDERED); + + initEClass(structuredTestObjectiveEClass, StructuredTestObjective.class, "StructuredTestObjective", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getStructuredTestObjective_Configuration(), thetdlPackage.getTestConfiguration(), null, "configuration", null, 0, 1, StructuredTestObjective.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getStructuredTestObjective_InitialConditions(), this.getInitialConditions(), null, "initialConditions", null, 0, 1, StructuredTestObjective.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getStructuredTestObjective_ExpectedBehaviour(), this.getExpectedBehaviour(), null, "expectedBehaviour", null, 0, 1, StructuredTestObjective.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getStructuredTestObjective_FinalConditions(), this.getFinalConditions(), null, "finalConditions", null, 0, 1, StructuredTestObjective.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getStructuredTestObjective_PicsReference(), this.getPICSReference(), null, "picsReference", null, 0, -1, StructuredTestObjective.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getStructuredTestObjective_Variants(), this.getVariants(), null, "variants", null, 0, 1, StructuredTestObjective.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + op = initEOperation(getStructuredTestObjective__IndexOf__Element(), ecorePackage.getEInt(), "indexOf", 1, 1, IS_UNIQUE, IS_ORDERED); + addEParameter(op, this.getElement(), "object", 0, 1, IS_UNIQUE, IS_ORDERED); + + initEClass(initialConditionsEClass, InitialConditions.class, "InitialConditions", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getInitialConditions_Conditions(), this.getEventSequence(), null, "conditions", null, 1, 1, InitialConditions.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(eventSequenceEClass, EventSequence.class, "EventSequence", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getEventSequence_Events(), this.getEventOccurrence(), null, "events", null, 0, -1, EventSequence.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(eventOccurrenceEClass, EventOccurrence.class, "EventOccurrence", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getEventOccurrence_TimeConstraint(), thetdlPackage.getTimeConstraint(), null, "timeConstraint", null, 0, -1, EventOccurrence.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getEventOccurrence_TimeLabel(), thetdlPackage.getTimeLabel(), null, "timeLabel", null, 0, 1, EventOccurrence.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(expectedBehaviourEClass, ExpectedBehaviour.class, "ExpectedBehaviour", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getExpectedBehaviour_WhenClause(), this.getEventSequence(), null, "whenClause", null, 0, 1, ExpectedBehaviour.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getExpectedBehaviour_ThenClause(), this.getEventSequence(), null, "thenClause", null, 1, 1, ExpectedBehaviour.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(finalConditionsEClass, FinalConditions.class, "FinalConditions", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getFinalConditions_Conditions(), this.getEventSequence(), null, "conditions", null, 1, 1, FinalConditions.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(picsReferenceEClass, PICSReference.class, "PICSReference", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getPICSReference_Pics(), this.getPICS(), null, "pics", null, 1, 1, PICSReference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(picsEClass, org.etsi.mts.tdl.structuredobjectives.PICS.class, "PICS", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(entityEClass, Entity.class, "Entity", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(eventEClass, Event.class, "Event", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(eventOccurrenceSpecificationEClass, EventOccurrenceSpecification.class, "EventOccurrenceSpecification", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getEventOccurrenceSpecification_EntityReference(), this.getEntityReference(), null, "entityReference", null, 0, 1, EventOccurrenceSpecification.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getEventOccurrenceSpecification_EventReference(), this.getEventReference(), null, "eventReference", null, 1, 1, EventOccurrenceSpecification.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getEventOccurrenceSpecification_OppositeEntityReference(), this.getEntityReference(), null, "oppositeEntityReference", null, 0, -1, EventOccurrenceSpecification.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getEventOccurrenceSpecification_EventArgument(), this.getValue(), null, "eventArgument", null, 0, 1, EventOccurrenceSpecification.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(entityReferenceEClass, EntityReference.class, "EntityReference", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getEntityReference_Entity(), this.getEntity(), null, "entity", null, 0, 1, EntityReference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getEntityReference_Component(), thetdlPackage.getComponentInstance(), null, "component", null, 0, 1, EntityReference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(eventReferenceEClass, EventReference.class, "EventReference", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getEventReference_Event(), this.getEvent(), null, "event", null, 1, 1, EventReference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(valueEClass, Value.class, "Value", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(eventArgumentEClass, EventArgument.class, "EventArgument", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(dataReferenceEClass, DataReference.class, "DataReference", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getDataReference_Content(), thetdlPackage.getStaticDataUse(), null, "content", null, 1, 1, DataReference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(contentEClass, Content.class, "Content", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getContent_Value(), this.getValue(), null, "value", null, 0, 1, Content.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getContent_Content(), this.getContent(), null, "content", null, 0, -1, Content.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + initEReference(getContent_Member(), thetdlPackage.getMember(), null, "member", null, 0, 1, Content.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(literalValueEClass, LiteralValue.class, "LiteralValue", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getLiteralValue_Content(), this.getContent(), null, "content", null, 0, -1, LiteralValue.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + initEReference(getLiteralValue_DataType(), thetdlPackage.getDataType(), null, "dataType", null, 0, 1, LiteralValue.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(contentReferenceEClass, ContentReference.class, "ContentReference", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getContentReference_Content(), this.getContent(), null, "content", null, 1, 1, ContentReference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(literalValueReferenceEClass, LiteralValueReference.class, "LiteralValueReference", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getLiteralValueReference_Content(), this.getLiteralValue(), null, "content", null, 1, 1, LiteralValueReference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(repeatedEventSequenceEClass, RepeatedEventSequence.class, "RepeatedEventSequence", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getRepeatedEventSequence_Repetitions(), this.getValue(), null, "repetitions", null, 0, 1, RepeatedEventSequence.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getRepeatedEventSequence_Interval(), this.getValue(), null, "interval", null, 0, 1, RepeatedEventSequence.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(eventTemplateOccurrenceEClass, EventTemplateOccurrence.class, "EventTemplateOccurrence", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getEventTemplateOccurrence_EventTemplate(), this.getEventSpecificationTemplate(), null, "eventTemplate", null, 1, 1, EventTemplateOccurrence.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getEventTemplateOccurrence_EntityBinding(), this.getEntityBinding(), null, "entityBinding", null, 0, -1, EventTemplateOccurrence.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + initEReference(getEventTemplateOccurrence_OccurrenceArgument(), this.getValue(), null, "occurrenceArgument", null, 0, 1, EventTemplateOccurrence.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(eventSpecificationTemplateEClass, EventSpecificationTemplate.class, "EventSpecificationTemplate", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getEventSpecificationTemplate_EventSpecification(), this.getEventOccurrenceSpecification(), null, "eventSpecification", null, 1, 1, EventSpecificationTemplate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(entityBindingEClass, EntityBinding.class, "EntityBinding", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getEntityBinding_TemplateEntity(), this.getEntityReference(), null, "templateEntity", null, 1, 1, EntityBinding.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getEntityBinding_OccurrenceEntity(), this.getEntityReference(), null, "occurrenceEntity", null, 1, 1, EntityBinding.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(variantsEClass, Variants.class, "Variants", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getVariants_Variants(), this.getTestObjectiveVariant(), null, "variants", null, 0, -1, Variants.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(testObjectiveVariantEClass, TestObjectiveVariant.class, "TestObjectiveVariant", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getTestObjectiveVariant_PicsReference(), this.getPICSReference(), null, "picsReference", null, 0, -1, TestObjectiveVariant.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getTestObjectiveVariant_Bindings(), this.getVariantBinding(), null, "bindings", null, 0, -1, TestObjectiveVariant.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(variantBindingEClass, VariantBinding.class, "VariantBinding", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getVariantBinding_Value(), this.getValue(), null, "value", null, 1, 1, VariantBinding.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getVariantBinding_BoundTo(), this.getValue(), null, "boundTo", null, 1, 1, VariantBinding.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + // Create resource + createResource(eNS_URI); + + // Create annotations + // http://www.eclipse.org/OCL/Import + createImportAnnotations(); + // http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot + createPivotAnnotations(); + // http://www.eclipse.org/OCL/Collection + createCollectionAnnotations(); + } + + /** + * Initializes the annotations for http://www.eclipse.org/OCL/Import. + * + * + * @generated + */ + protected void createImportAnnotations() + { + String source = "http://www.eclipse.org/OCL/Import"; + addAnnotation + (this, + source, + new String[] + { + "tdl", "tdl.ecore#/" + }); + } + + /** + * Initializes the annotations for http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot. + * + * + * @generated + */ + protected void createPivotAnnotations() + { + String source = "http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot"; + addAnnotation + (getElement__GetTestObjective(), + source, + new String[] + { + "body", " \n if (not self.container().oclIsUndefined()) then\n if (self.container().oclIsKindOf(StructuredTestObjective)) then\n self.container().oclAsType(StructuredTestObjective)\n else\n self.container().oclAsType(Element).getTestObjective()\n endif\n else \n null\n endif" + }); + addAnnotation + (getElement__Contains__Element(), + source, + new String[] + { + "body", "self->closure(oclContents())->includes(object)" + }); + addAnnotation + (getElement__GetNotes(), + source, + new String[] + { + "body", "self->closure(oclContents())->select(e | \n\te.oclIsKindOf(tdl::Comment) and not e.oclAsType(tdl::Comment).name.oclIsUndefined()\n).oclAsType(tdl::Comment)->asSet()" + }); + addAnnotation + (getStructuredTestObjective__IndexOf__Element(), + source, + new String[] + { + "body", "self->asOrderedSet()->closure(oclContents())->indexOf(object)" + }); + } + + /** + * Initializes the annotations for http://www.eclipse.org/OCL/Collection. + * + * + * @generated + */ + protected void createCollectionAnnotations() + { + String source = "http://www.eclipse.org/OCL/Collection"; + addAnnotation + (getTestObjectiveVariant_Bindings(), + source, + new String[] + { + "nullFree", "false" + }); + } + +} //StructuredObjectivesPackageImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/StructuredTestObjectiveImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/StructuredTestObjectiveImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..fd14f486e76d46bc79d4987146d94886e4d41776 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/StructuredTestObjectiveImpl.java @@ -0,0 +1,635 @@ +/** + */ +package org.etsi.mts.tdl.structuredobjectives.impl; + +import java.lang.reflect.InvocationTargetException; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.etsi.mts.tdl.Comment; +import org.etsi.mts.tdl.TestConfiguration; + +import org.etsi.mts.tdl.impl.TestObjectiveImpl; + +import org.etsi.mts.tdl.structuredobjectives.Element; +import org.etsi.mts.tdl.structuredobjectives.ExpectedBehaviour; +import org.etsi.mts.tdl.structuredobjectives.FinalConditions; +import org.etsi.mts.tdl.structuredobjectives.InitialConditions; +import org.etsi.mts.tdl.structuredobjectives.PICSReference; +import org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage; +import org.etsi.mts.tdl.structuredobjectives.StructuredTestObjective; +import org.etsi.mts.tdl.structuredobjectives.Variants; + +/** + * + * An implementation of the model object 'Structured Test Objective'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.structuredobjectives.impl.StructuredTestObjectiveImpl#getConfiguration Configuration}
  • + *
  • {@link org.etsi.mts.tdl.structuredobjectives.impl.StructuredTestObjectiveImpl#getInitialConditions Initial Conditions}
  • + *
  • {@link org.etsi.mts.tdl.structuredobjectives.impl.StructuredTestObjectiveImpl#getExpectedBehaviour Expected Behaviour}
  • + *
  • {@link org.etsi.mts.tdl.structuredobjectives.impl.StructuredTestObjectiveImpl#getFinalConditions Final Conditions}
  • + *
  • {@link org.etsi.mts.tdl.structuredobjectives.impl.StructuredTestObjectiveImpl#getPicsReference Pics Reference}
  • + *
  • {@link org.etsi.mts.tdl.structuredobjectives.impl.StructuredTestObjectiveImpl#getVariants Variants}
  • + *
+ * + * @generated + */ +public class StructuredTestObjectiveImpl extends TestObjectiveImpl implements StructuredTestObjective +{ + /** + * The cached value of the '{@link #getConfiguration() Configuration}' reference. + * + * + * @see #getConfiguration() + * @generated + * @ordered + */ + protected TestConfiguration configuration; + + /** + * The cached value of the '{@link #getInitialConditions() Initial Conditions}' containment reference. + * + * + * @see #getInitialConditions() + * @generated + * @ordered + */ + protected InitialConditions initialConditions; + + /** + * The cached value of the '{@link #getExpectedBehaviour() Expected Behaviour}' containment reference. + * + * + * @see #getExpectedBehaviour() + * @generated + * @ordered + */ + protected ExpectedBehaviour expectedBehaviour; + + /** + * The cached value of the '{@link #getFinalConditions() Final Conditions}' containment reference. + * + * + * @see #getFinalConditions() + * @generated + * @ordered + */ + protected FinalConditions finalConditions; + + /** + * The cached value of the '{@link #getPicsReference() Pics Reference}' containment reference list. + * + * + * @see #getPicsReference() + * @generated + * @ordered + */ + protected EList picsReference; + + /** + * The cached value of the '{@link #getVariants() Variants}' containment reference. + * + * + * @see #getVariants() + * @generated + * @ordered + */ + protected Variants variants; + + /** + * + * + * @generated + */ + protected StructuredTestObjectiveImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return StructuredObjectivesPackage.Literals.STRUCTURED_TEST_OBJECTIVE; + } + + /** + * + * + * @generated + */ + @Override + public TestConfiguration getConfiguration() + { + if (configuration != null && configuration.eIsProxy()) + { + InternalEObject oldConfiguration = (InternalEObject)configuration; + configuration = (TestConfiguration)eResolveProxy(oldConfiguration); + if (configuration != oldConfiguration) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__CONFIGURATION, oldConfiguration, configuration)); + } + } + return configuration; + } + + /** + * + * + * @generated + */ + public TestConfiguration basicGetConfiguration() + { + return configuration; + } + + /** + * + * + * @generated + */ + @Override + public void setConfiguration(TestConfiguration newConfiguration) + { + TestConfiguration oldConfiguration = configuration; + configuration = newConfiguration; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__CONFIGURATION, oldConfiguration, configuration)); + } + + /** + * + * + * @generated + */ + @Override + public InitialConditions getInitialConditions() + { + return initialConditions; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetInitialConditions(InitialConditions newInitialConditions, NotificationChain msgs) + { + InitialConditions oldInitialConditions = initialConditions; + initialConditions = newInitialConditions; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__INITIAL_CONDITIONS, oldInitialConditions, newInitialConditions); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + @Override + public void setInitialConditions(InitialConditions newInitialConditions) + { + if (newInitialConditions != initialConditions) + { + NotificationChain msgs = null; + if (initialConditions != null) + msgs = ((InternalEObject)initialConditions).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__INITIAL_CONDITIONS, null, msgs); + if (newInitialConditions != null) + msgs = ((InternalEObject)newInitialConditions).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__INITIAL_CONDITIONS, null, msgs); + msgs = basicSetInitialConditions(newInitialConditions, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__INITIAL_CONDITIONS, newInitialConditions, newInitialConditions)); + } + + /** + * + * + * @generated + */ + @Override + public ExpectedBehaviour getExpectedBehaviour() + { + return expectedBehaviour; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetExpectedBehaviour(ExpectedBehaviour newExpectedBehaviour, NotificationChain msgs) + { + ExpectedBehaviour oldExpectedBehaviour = expectedBehaviour; + expectedBehaviour = newExpectedBehaviour; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__EXPECTED_BEHAVIOUR, oldExpectedBehaviour, newExpectedBehaviour); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + @Override + public void setExpectedBehaviour(ExpectedBehaviour newExpectedBehaviour) + { + if (newExpectedBehaviour != expectedBehaviour) + { + NotificationChain msgs = null; + if (expectedBehaviour != null) + msgs = ((InternalEObject)expectedBehaviour).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__EXPECTED_BEHAVIOUR, null, msgs); + if (newExpectedBehaviour != null) + msgs = ((InternalEObject)newExpectedBehaviour).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__EXPECTED_BEHAVIOUR, null, msgs); + msgs = basicSetExpectedBehaviour(newExpectedBehaviour, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__EXPECTED_BEHAVIOUR, newExpectedBehaviour, newExpectedBehaviour)); + } + + /** + * + * + * @generated + */ + @Override + public FinalConditions getFinalConditions() + { + return finalConditions; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetFinalConditions(FinalConditions newFinalConditions, NotificationChain msgs) + { + FinalConditions oldFinalConditions = finalConditions; + finalConditions = newFinalConditions; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__FINAL_CONDITIONS, oldFinalConditions, newFinalConditions); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + @Override + public void setFinalConditions(FinalConditions newFinalConditions) + { + if (newFinalConditions != finalConditions) + { + NotificationChain msgs = null; + if (finalConditions != null) + msgs = ((InternalEObject)finalConditions).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__FINAL_CONDITIONS, null, msgs); + if (newFinalConditions != null) + msgs = ((InternalEObject)newFinalConditions).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__FINAL_CONDITIONS, null, msgs); + msgs = basicSetFinalConditions(newFinalConditions, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__FINAL_CONDITIONS, newFinalConditions, newFinalConditions)); + } + + /** + * + * + * @generated + */ + @Override + public EList getPicsReference() + { + if (picsReference == null) + { + picsReference = new EObjectContainmentEList(PICSReference.class, this, StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__PICS_REFERENCE); + } + return picsReference; + } + + /** + * + * + * @generated + */ + @Override + public Variants getVariants() + { + return variants; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetVariants(Variants newVariants, NotificationChain msgs) + { + Variants oldVariants = variants; + variants = newVariants; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__VARIANTS, oldVariants, newVariants); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + @Override + public void setVariants(Variants newVariants) + { + if (newVariants != variants) + { + NotificationChain msgs = null; + if (variants != null) + msgs = ((InternalEObject)variants).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__VARIANTS, null, msgs); + if (newVariants != null) + msgs = ((InternalEObject)newVariants).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__VARIANTS, null, msgs); + msgs = basicSetVariants(newVariants, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__VARIANTS, newVariants, newVariants)); + } + + /** + * + * + * @generated + */ + @Override + public int indexOf(Element object) + { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + @Override + public StructuredTestObjective getTestObjective() + { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + @Override + public boolean contains(Element object) + { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + @Override + public EList getNotes() + { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__INITIAL_CONDITIONS: + return basicSetInitialConditions(null, msgs); + case StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__EXPECTED_BEHAVIOUR: + return basicSetExpectedBehaviour(null, msgs); + case StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__FINAL_CONDITIONS: + return basicSetFinalConditions(null, msgs); + case StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__PICS_REFERENCE: + return ((InternalEList)getPicsReference()).basicRemove(otherEnd, msgs); + case StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__VARIANTS: + return basicSetVariants(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__CONFIGURATION: + if (resolve) return getConfiguration(); + return basicGetConfiguration(); + case StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__INITIAL_CONDITIONS: + return getInitialConditions(); + case StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__EXPECTED_BEHAVIOUR: + return getExpectedBehaviour(); + case StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__FINAL_CONDITIONS: + return getFinalConditions(); + case StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__PICS_REFERENCE: + return getPicsReference(); + case StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__VARIANTS: + return getVariants(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__CONFIGURATION: + setConfiguration((TestConfiguration)newValue); + return; + case StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__INITIAL_CONDITIONS: + setInitialConditions((InitialConditions)newValue); + return; + case StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__EXPECTED_BEHAVIOUR: + setExpectedBehaviour((ExpectedBehaviour)newValue); + return; + case StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__FINAL_CONDITIONS: + setFinalConditions((FinalConditions)newValue); + return; + case StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__PICS_REFERENCE: + getPicsReference().clear(); + getPicsReference().addAll((Collection)newValue); + return; + case StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__VARIANTS: + setVariants((Variants)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__CONFIGURATION: + setConfiguration((TestConfiguration)null); + return; + case StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__INITIAL_CONDITIONS: + setInitialConditions((InitialConditions)null); + return; + case StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__EXPECTED_BEHAVIOUR: + setExpectedBehaviour((ExpectedBehaviour)null); + return; + case StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__FINAL_CONDITIONS: + setFinalConditions((FinalConditions)null); + return; + case StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__PICS_REFERENCE: + getPicsReference().clear(); + return; + case StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__VARIANTS: + setVariants((Variants)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__CONFIGURATION: + return configuration != null; + case StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__INITIAL_CONDITIONS: + return initialConditions != null; + case StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__EXPECTED_BEHAVIOUR: + return expectedBehaviour != null; + case StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__FINAL_CONDITIONS: + return finalConditions != null; + case StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__PICS_REFERENCE: + return picsReference != null && !picsReference.isEmpty(); + case StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__VARIANTS: + return variants != null; + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public int eDerivedOperationID(int baseOperationID, Class baseClass) + { + if (baseClass == Element.class) + { + switch (baseOperationID) + { + case StructuredObjectivesPackage.ELEMENT___GET_TEST_OBJECTIVE: return StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE___GET_TEST_OBJECTIVE; + case StructuredObjectivesPackage.ELEMENT___CONTAINS__ELEMENT: return StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE___CONTAINS__ELEMENT; + case StructuredObjectivesPackage.ELEMENT___GET_NOTES: return StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE___GET_NOTES; + default: return -1; + } + } + return super.eDerivedOperationID(baseOperationID, baseClass); + } + + /** + * + * + * @generated + */ + @Override + public Object eInvoke(int operationID, EList arguments) throws InvocationTargetException + { + switch (operationID) + { + case StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE___INDEX_OF__ELEMENT: + return indexOf((Element)arguments.get(0)); + case StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE___GET_TEST_OBJECTIVE: + return getTestObjective(); + case StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE___CONTAINS__ELEMENT: + return contains((Element)arguments.get(0)); + case StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE___GET_NOTES: + return getNotes(); + } + return super.eInvoke(operationID, arguments); + } + +} //StructuredTestObjectiveImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/TestObjectiveVariantImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/TestObjectiveVariantImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..2391df4c77c7f3859b7de496b52523257c863e03 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/TestObjectiveVariantImpl.java @@ -0,0 +1,294 @@ +/** + */ +package org.etsi.mts.tdl.structuredobjectives.impl; + +import java.lang.reflect.InvocationTargetException; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.etsi.mts.tdl.Comment; + +import org.etsi.mts.tdl.impl.TestObjectiveImpl; + +import org.etsi.mts.tdl.structuredobjectives.Element; +import org.etsi.mts.tdl.structuredobjectives.PICSReference; +import org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage; +import org.etsi.mts.tdl.structuredobjectives.StructuredTestObjective; +import org.etsi.mts.tdl.structuredobjectives.TestObjectiveVariant; +import org.etsi.mts.tdl.structuredobjectives.VariantBinding; + +/** + * + * An implementation of the model object 'Test Objective Variant'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.structuredobjectives.impl.TestObjectiveVariantImpl#getPicsReference Pics Reference}
  • + *
  • {@link org.etsi.mts.tdl.structuredobjectives.impl.TestObjectiveVariantImpl#getBindings Bindings}
  • + *
+ * + * @generated + */ +public class TestObjectiveVariantImpl extends TestObjectiveImpl implements TestObjectiveVariant +{ + /** + * The cached value of the '{@link #getPicsReference() Pics Reference}' containment reference list. + * + * + * @see #getPicsReference() + * @generated + * @ordered + */ + protected EList picsReference; + + /** + * The cached value of the '{@link #getBindings() Bindings}' containment reference list. + * + * + * @see #getBindings() + * @generated + * @ordered + */ + protected EList bindings; + + /** + * + * + * @generated + */ + protected TestObjectiveVariantImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return StructuredObjectivesPackage.Literals.TEST_OBJECTIVE_VARIANT; + } + + /** + * + * + * @generated + */ + @Override + public EList getPicsReference() + { + if (picsReference == null) + { + picsReference = new EObjectContainmentEList(PICSReference.class, this, StructuredObjectivesPackage.TEST_OBJECTIVE_VARIANT__PICS_REFERENCE); + } + return picsReference; + } + + /** + * + * + * @generated + */ + @Override + public EList getBindings() + { + if (bindings == null) + { + bindings = new EObjectContainmentEList(VariantBinding.class, this, StructuredObjectivesPackage.TEST_OBJECTIVE_VARIANT__BINDINGS); + } + return bindings; + } + + /** + * + * + * @generated + */ + @Override + public StructuredTestObjective getTestObjective() + { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + @Override + public boolean contains(Element object) + { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + @Override + public EList getNotes() + { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case StructuredObjectivesPackage.TEST_OBJECTIVE_VARIANT__PICS_REFERENCE: + return ((InternalEList)getPicsReference()).basicRemove(otherEnd, msgs); + case StructuredObjectivesPackage.TEST_OBJECTIVE_VARIANT__BINDINGS: + return ((InternalEList)getBindings()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case StructuredObjectivesPackage.TEST_OBJECTIVE_VARIANT__PICS_REFERENCE: + return getPicsReference(); + case StructuredObjectivesPackage.TEST_OBJECTIVE_VARIANT__BINDINGS: + return getBindings(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case StructuredObjectivesPackage.TEST_OBJECTIVE_VARIANT__PICS_REFERENCE: + getPicsReference().clear(); + getPicsReference().addAll((Collection)newValue); + return; + case StructuredObjectivesPackage.TEST_OBJECTIVE_VARIANT__BINDINGS: + getBindings().clear(); + getBindings().addAll((Collection)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case StructuredObjectivesPackage.TEST_OBJECTIVE_VARIANT__PICS_REFERENCE: + getPicsReference().clear(); + return; + case StructuredObjectivesPackage.TEST_OBJECTIVE_VARIANT__BINDINGS: + getBindings().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case StructuredObjectivesPackage.TEST_OBJECTIVE_VARIANT__PICS_REFERENCE: + return picsReference != null && !picsReference.isEmpty(); + case StructuredObjectivesPackage.TEST_OBJECTIVE_VARIANT__BINDINGS: + return bindings != null && !bindings.isEmpty(); + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public int eDerivedOperationID(int baseOperationID, Class baseClass) + { + if (baseClass == Element.class) + { + switch (baseOperationID) + { + case StructuredObjectivesPackage.ELEMENT___GET_TEST_OBJECTIVE: return StructuredObjectivesPackage.TEST_OBJECTIVE_VARIANT___GET_TEST_OBJECTIVE; + case StructuredObjectivesPackage.ELEMENT___CONTAINS__ELEMENT: return StructuredObjectivesPackage.TEST_OBJECTIVE_VARIANT___CONTAINS__ELEMENT; + case StructuredObjectivesPackage.ELEMENT___GET_NOTES: return StructuredObjectivesPackage.TEST_OBJECTIVE_VARIANT___GET_NOTES; + default: return -1; + } + } + return super.eDerivedOperationID(baseOperationID, baseClass); + } + + /** + * + * + * @generated + */ + @Override + public Object eInvoke(int operationID, EList arguments) throws InvocationTargetException + { + switch (operationID) + { + case StructuredObjectivesPackage.TEST_OBJECTIVE_VARIANT___GET_TEST_OBJECTIVE: + return getTestObjective(); + case StructuredObjectivesPackage.TEST_OBJECTIVE_VARIANT___CONTAINS__ELEMENT: + return contains((Element)arguments.get(0)); + case StructuredObjectivesPackage.TEST_OBJECTIVE_VARIANT___GET_NOTES: + return getNotes(); + } + return super.eInvoke(operationID, arguments); + } + +} //TestObjectiveVariantImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/ValueImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/ValueImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..c250c16de3dfa1bed4630211fc2f54b196f7f45c --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/ValueImpl.java @@ -0,0 +1,40 @@ +/** + */ +package org.etsi.mts.tdl.structuredobjectives.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage; +import org.etsi.mts.tdl.structuredobjectives.Value; + +/** + * + * An implementation of the model object 'Value'. + * + * + * @generated + */ +public abstract class ValueImpl extends ElementImpl implements Value +{ + /** + * + * + * @generated + */ + protected ValueImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return StructuredObjectivesPackage.Literals.VALUE; + } + +} //ValueImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/VariantBindingImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/VariantBindingImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..2439573e77995294ac123431d6f226a89d56128d --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/VariantBindingImpl.java @@ -0,0 +1,268 @@ +/** + */ +package org.etsi.mts.tdl.structuredobjectives.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage; +import org.etsi.mts.tdl.structuredobjectives.Value; +import org.etsi.mts.tdl.structuredobjectives.VariantBinding; + +/** + * + * An implementation of the model object 'Variant Binding'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.structuredobjectives.impl.VariantBindingImpl#getValue Value}
  • + *
  • {@link org.etsi.mts.tdl.structuredobjectives.impl.VariantBindingImpl#getBoundTo Bound To}
  • + *
+ * + * @generated + */ +public class VariantBindingImpl extends ElementImpl implements VariantBinding +{ + /** + * The cached value of the '{@link #getValue() Value}' containment reference. + * + * + * @see #getValue() + * @generated + * @ordered + */ + protected Value value; + + /** + * The cached value of the '{@link #getBoundTo() Bound To}' containment reference. + * + * + * @see #getBoundTo() + * @generated + * @ordered + */ + protected Value boundTo; + + /** + * + * + * @generated + */ + protected VariantBindingImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return StructuredObjectivesPackage.Literals.VARIANT_BINDING; + } + + /** + * + * + * @generated + */ + @Override + public Value getValue() + { + return value; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetValue(Value newValue, NotificationChain msgs) + { + Value oldValue = value; + value = newValue; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, StructuredObjectivesPackage.VARIANT_BINDING__VALUE, oldValue, newValue); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + @Override + public void setValue(Value newValue) + { + if (newValue != value) + { + NotificationChain msgs = null; + if (value != null) + msgs = ((InternalEObject)value).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - StructuredObjectivesPackage.VARIANT_BINDING__VALUE, null, msgs); + if (newValue != null) + msgs = ((InternalEObject)newValue).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - StructuredObjectivesPackage.VARIANT_BINDING__VALUE, null, msgs); + msgs = basicSetValue(newValue, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, StructuredObjectivesPackage.VARIANT_BINDING__VALUE, newValue, newValue)); + } + + /** + * + * + * @generated + */ + @Override + public Value getBoundTo() + { + return boundTo; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetBoundTo(Value newBoundTo, NotificationChain msgs) + { + Value oldBoundTo = boundTo; + boundTo = newBoundTo; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, StructuredObjectivesPackage.VARIANT_BINDING__BOUND_TO, oldBoundTo, newBoundTo); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + @Override + public void setBoundTo(Value newBoundTo) + { + if (newBoundTo != boundTo) + { + NotificationChain msgs = null; + if (boundTo != null) + msgs = ((InternalEObject)boundTo).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - StructuredObjectivesPackage.VARIANT_BINDING__BOUND_TO, null, msgs); + if (newBoundTo != null) + msgs = ((InternalEObject)newBoundTo).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - StructuredObjectivesPackage.VARIANT_BINDING__BOUND_TO, null, msgs); + msgs = basicSetBoundTo(newBoundTo, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, StructuredObjectivesPackage.VARIANT_BINDING__BOUND_TO, newBoundTo, newBoundTo)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case StructuredObjectivesPackage.VARIANT_BINDING__VALUE: + return basicSetValue(null, msgs); + case StructuredObjectivesPackage.VARIANT_BINDING__BOUND_TO: + return basicSetBoundTo(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case StructuredObjectivesPackage.VARIANT_BINDING__VALUE: + return getValue(); + case StructuredObjectivesPackage.VARIANT_BINDING__BOUND_TO: + return getBoundTo(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case StructuredObjectivesPackage.VARIANT_BINDING__VALUE: + setValue((Value)newValue); + return; + case StructuredObjectivesPackage.VARIANT_BINDING__BOUND_TO: + setBoundTo((Value)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case StructuredObjectivesPackage.VARIANT_BINDING__VALUE: + setValue((Value)null); + return; + case StructuredObjectivesPackage.VARIANT_BINDING__BOUND_TO: + setBoundTo((Value)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case StructuredObjectivesPackage.VARIANT_BINDING__VALUE: + return value != null; + case StructuredObjectivesPackage.VARIANT_BINDING__BOUND_TO: + return boundTo != null; + } + return super.eIsSet(featureID); + } + +} //VariantBindingImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/VariantsImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/VariantsImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..19af3c7fb36de66b74925b86220a90715bc18202 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/impl/VariantsImpl.java @@ -0,0 +1,166 @@ +/** + */ +package org.etsi.mts.tdl.structuredobjectives.impl; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage; +import org.etsi.mts.tdl.structuredobjectives.TestObjectiveVariant; +import org.etsi.mts.tdl.structuredobjectives.Variants; + +/** + * + * An implementation of the model object 'Variants'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.etsi.mts.tdl.structuredobjectives.impl.VariantsImpl#getVariants Variants}
  • + *
+ * + * @generated + */ +public class VariantsImpl extends ElementImpl implements Variants +{ + /** + * The cached value of the '{@link #getVariants() Variants}' containment reference list. + * + * + * @see #getVariants() + * @generated + * @ordered + */ + protected EList variants; + + /** + * + * + * @generated + */ + protected VariantsImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return StructuredObjectivesPackage.Literals.VARIANTS; + } + + /** + * + * + * @generated + */ + @Override + public EList getVariants() + { + if (variants == null) + { + variants = new EObjectContainmentEList(TestObjectiveVariant.class, this, StructuredObjectivesPackage.VARIANTS__VARIANTS); + } + return variants; + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case StructuredObjectivesPackage.VARIANTS__VARIANTS: + return ((InternalEList)getVariants()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case StructuredObjectivesPackage.VARIANTS__VARIANTS: + return getVariants(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case StructuredObjectivesPackage.VARIANTS__VARIANTS: + getVariants().clear(); + getVariants().addAll((Collection)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case StructuredObjectivesPackage.VARIANTS__VARIANTS: + getVariants().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case StructuredObjectivesPackage.VARIANTS__VARIANTS: + return variants != null && !variants.isEmpty(); + } + return super.eIsSet(featureID); + } + +} //VariantsImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/util/StructuredObjectivesAdapterFactory.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/util/StructuredObjectivesAdapterFactory.java new file mode 100644 index 0000000000000000000000000000000000000000..85a1aa1a40cc032f05c3d709d35ea36aea1d05e7 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/util/StructuredObjectivesAdapterFactory.java @@ -0,0 +1,756 @@ +/** + */ +package org.etsi.mts.tdl.structuredobjectives.util; + +import org.eclipse.emf.common.notify.Adapter; +import org.eclipse.emf.common.notify.Notifier; + +import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl; + +import org.eclipse.emf.ecore.EObject; + +import org.etsi.mts.tdl.NamedElement; +import org.etsi.mts.tdl.PackageableElement; +import org.etsi.mts.tdl.TestObjective; + +import org.etsi.mts.tdl.structuredobjectives.*; + +/** + * + * The Adapter Factory for the model. + * It provides an adapter createXXX method for each class of the model. + * + * @see org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage + * @generated + */ +public class StructuredObjectivesAdapterFactory extends AdapterFactoryImpl +{ + /** + * The cached model package. + * + * + * @generated + */ + protected static StructuredObjectivesPackage modelPackage; + + /** + * Creates an instance of the adapter factory. + * + * + * @generated + */ + public StructuredObjectivesAdapterFactory() + { + if (modelPackage == null) + { + modelPackage = StructuredObjectivesPackage.eINSTANCE; + } + } + + /** + * Returns whether this factory is applicable for the type of the object. + * + * This implementation returns true if the object is either the model's package or is an instance object of the model. + * + * @return whether this factory is applicable for the type of the object. + * @generated + */ + @Override + public boolean isFactoryForType(Object object) + { + if (object == modelPackage) + { + return true; + } + if (object instanceof EObject) + { + return ((EObject)object).eClass().getEPackage() == modelPackage; + } + return false; + } + + /** + * The switch that delegates to the createXXX methods. + * + * + * @generated + */ + protected StructuredObjectivesSwitch modelSwitch = + new StructuredObjectivesSwitch() + { + @Override + public Adapter caseElement(Element object) + { + return createElementAdapter(); + } + @Override + public Adapter caseStructuredTestObjective(StructuredTestObjective object) + { + return createStructuredTestObjectiveAdapter(); + } + @Override + public Adapter caseInitialConditions(InitialConditions object) + { + return createInitialConditionsAdapter(); + } + @Override + public Adapter caseEventSequence(EventSequence object) + { + return createEventSequenceAdapter(); + } + @Override + public Adapter caseEventOccurrence(EventOccurrence object) + { + return createEventOccurrenceAdapter(); + } + @Override + public Adapter caseExpectedBehaviour(ExpectedBehaviour object) + { + return createExpectedBehaviourAdapter(); + } + @Override + public Adapter caseFinalConditions(FinalConditions object) + { + return createFinalConditionsAdapter(); + } + @Override + public Adapter casePICSReference(PICSReference object) + { + return createPICSReferenceAdapter(); + } + @Override + public Adapter casePICS(PICS object) + { + return createPICSAdapter(); + } + @Override + public Adapter caseEntity(Entity object) + { + return createEntityAdapter(); + } + @Override + public Adapter caseEvent(Event object) + { + return createEventAdapter(); + } + @Override + public Adapter caseEventOccurrenceSpecification(EventOccurrenceSpecification object) + { + return createEventOccurrenceSpecificationAdapter(); + } + @Override + public Adapter caseEntityReference(EntityReference object) + { + return createEntityReferenceAdapter(); + } + @Override + public Adapter caseEventReference(EventReference object) + { + return createEventReferenceAdapter(); + } + @Override + public Adapter caseValue(Value object) + { + return createValueAdapter(); + } + @Override + public Adapter caseEventArgument(EventArgument object) + { + return createEventArgumentAdapter(); + } + @Override + public Adapter caseDataReference(DataReference object) + { + return createDataReferenceAdapter(); + } + @Override + public Adapter caseContent(Content object) + { + return createContentAdapter(); + } + @Override + public Adapter caseLiteralValue(LiteralValue object) + { + return createLiteralValueAdapter(); + } + @Override + public Adapter caseContentReference(ContentReference object) + { + return createContentReferenceAdapter(); + } + @Override + public Adapter caseLiteralValueReference(LiteralValueReference object) + { + return createLiteralValueReferenceAdapter(); + } + @Override + public Adapter caseRepeatedEventSequence(RepeatedEventSequence object) + { + return createRepeatedEventSequenceAdapter(); + } + @Override + public Adapter caseEventTemplateOccurrence(EventTemplateOccurrence object) + { + return createEventTemplateOccurrenceAdapter(); + } + @Override + public Adapter caseEventSpecificationTemplate(EventSpecificationTemplate object) + { + return createEventSpecificationTemplateAdapter(); + } + @Override + public Adapter caseEntityBinding(EntityBinding object) + { + return createEntityBindingAdapter(); + } + @Override + public Adapter caseVariants(Variants object) + { + return createVariantsAdapter(); + } + @Override + public Adapter caseTestObjectiveVariant(TestObjectiveVariant object) + { + return createTestObjectiveVariantAdapter(); + } + @Override + public Adapter caseVariantBinding(VariantBinding object) + { + return createVariantBindingAdapter(); + } + @Override + public Adapter casetdl_Element(org.etsi.mts.tdl.Element object) + { + return createtdl_ElementAdapter(); + } + @Override + public Adapter caseNamedElement(NamedElement object) + { + return createNamedElementAdapter(); + } + @Override + public Adapter casePackageableElement(PackageableElement object) + { + return createPackageableElementAdapter(); + } + @Override + public Adapter caseTestObjective(TestObjective object) + { + return createTestObjectiveAdapter(); + } + @Override + public Adapter defaultCase(EObject object) + { + return createEObjectAdapter(); + } + }; + + /** + * Creates an adapter for the target. + * + * + * @param target the object to adapt. + * @return the adapter for the target. + * @generated + */ + @Override + public Adapter createAdapter(Notifier target) + { + return modelSwitch.doSwitch((EObject)target); + } + + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.structuredobjectives.Element Element}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.structuredobjectives.Element + * @generated + */ + public Adapter createElementAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.structuredobjectives.StructuredTestObjective Structured Test Objective}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.structuredobjectives.StructuredTestObjective + * @generated + */ + public Adapter createStructuredTestObjectiveAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.structuredobjectives.InitialConditions Initial Conditions}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.structuredobjectives.InitialConditions + * @generated + */ + public Adapter createInitialConditionsAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.structuredobjectives.EventSequence Event Sequence}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.structuredobjectives.EventSequence + * @generated + */ + public Adapter createEventSequenceAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.structuredobjectives.EventOccurrence Event Occurrence}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.structuredobjectives.EventOccurrence + * @generated + */ + public Adapter createEventOccurrenceAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.structuredobjectives.ExpectedBehaviour Expected Behaviour}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.structuredobjectives.ExpectedBehaviour + * @generated + */ + public Adapter createExpectedBehaviourAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.structuredobjectives.FinalConditions Final Conditions}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.structuredobjectives.FinalConditions + * @generated + */ + public Adapter createFinalConditionsAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.structuredobjectives.PICSReference PICS Reference}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.structuredobjectives.PICSReference + * @generated + */ + public Adapter createPICSReferenceAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.structuredobjectives.PICS PICS}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.structuredobjectives.PICS + * @generated + */ + public Adapter createPICSAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.structuredobjectives.Entity Entity}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.structuredobjectives.Entity + * @generated + */ + public Adapter createEntityAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.structuredobjectives.Event Event}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.structuredobjectives.Event + * @generated + */ + public Adapter createEventAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.structuredobjectives.EventOccurrenceSpecification Event Occurrence Specification}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.structuredobjectives.EventOccurrenceSpecification + * @generated + */ + public Adapter createEventOccurrenceSpecificationAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.structuredobjectives.EntityReference Entity Reference}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.structuredobjectives.EntityReference + * @generated + */ + public Adapter createEntityReferenceAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.structuredobjectives.EventReference Event Reference}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.structuredobjectives.EventReference + * @generated + */ + public Adapter createEventReferenceAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.structuredobjectives.Value Value}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.structuredobjectives.Value + * @generated + */ + public Adapter createValueAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.structuredobjectives.EventArgument Event Argument}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.structuredobjectives.EventArgument + * @generated + */ + public Adapter createEventArgumentAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.structuredobjectives.DataReference Data Reference}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.structuredobjectives.DataReference + * @generated + */ + public Adapter createDataReferenceAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.structuredobjectives.Content Content}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.structuredobjectives.Content + * @generated + */ + public Adapter createContentAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.structuredobjectives.LiteralValue Literal Value}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.structuredobjectives.LiteralValue + * @generated + */ + public Adapter createLiteralValueAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.structuredobjectives.ContentReference Content Reference}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.structuredobjectives.ContentReference + * @generated + */ + public Adapter createContentReferenceAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.structuredobjectives.LiteralValueReference Literal Value Reference}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.structuredobjectives.LiteralValueReference + * @generated + */ + public Adapter createLiteralValueReferenceAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.structuredobjectives.RepeatedEventSequence Repeated Event Sequence}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.structuredobjectives.RepeatedEventSequence + * @generated + */ + public Adapter createRepeatedEventSequenceAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.structuredobjectives.EventTemplateOccurrence Event Template Occurrence}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.structuredobjectives.EventTemplateOccurrence + * @generated + */ + public Adapter createEventTemplateOccurrenceAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.structuredobjectives.EventSpecificationTemplate Event Specification Template}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.structuredobjectives.EventSpecificationTemplate + * @generated + */ + public Adapter createEventSpecificationTemplateAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.structuredobjectives.EntityBinding Entity Binding}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.structuredobjectives.EntityBinding + * @generated + */ + public Adapter createEntityBindingAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.structuredobjectives.Variants Variants}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.structuredobjectives.Variants + * @generated + */ + public Adapter createVariantsAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.structuredobjectives.TestObjectiveVariant Test Objective Variant}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.structuredobjectives.TestObjectiveVariant + * @generated + */ + public Adapter createTestObjectiveVariantAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.structuredobjectives.VariantBinding Variant Binding}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.structuredobjectives.VariantBinding + * @generated + */ + public Adapter createVariantBindingAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.Element Element}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.Element + * @generated + */ + public Adapter createtdl_ElementAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.NamedElement Named Element}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.NamedElement + * @generated + */ + public Adapter createNamedElementAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.PackageableElement Packageable Element}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.PackageableElement + * @generated + */ + public Adapter createPackageableElementAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.TestObjective Test Objective}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.TestObjective + * @generated + */ + public Adapter createTestObjectiveAdapter() + { + return null; + } + + /** + * Creates a new adapter for the default case. + * + * This default implementation returns null. + * + * @return the new adapter. + * @generated + */ + public Adapter createEObjectAdapter() + { + return null; + } + +} //StructuredObjectivesAdapterFactory diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/util/StructuredObjectivesSwitch.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/util/StructuredObjectivesSwitch.java new file mode 100644 index 0000000000000000000000000000000000000000..90fe825e52390c44d8b16f39b68c0ada31ae3f85 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/structuredobjectives/util/StructuredObjectivesSwitch.java @@ -0,0 +1,884 @@ +/** + */ +package org.etsi.mts.tdl.structuredobjectives.util; + +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EPackage; + +import org.eclipse.emf.ecore.util.Switch; + +import org.etsi.mts.tdl.NamedElement; +import org.etsi.mts.tdl.PackageableElement; +import org.etsi.mts.tdl.TestObjective; + +import org.etsi.mts.tdl.structuredobjectives.*; + +/** + * + * The Switch for the model's inheritance hierarchy. + * It supports the call {@link #doSwitch(EObject) doSwitch(object)} + * to invoke the caseXXX method for each class of the model, + * starting with the actual class of the object + * and proceeding up the inheritance hierarchy + * until a non-null result is returned, + * which is the result of the switch. + * + * @see org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage + * @generated + */ +public class StructuredObjectivesSwitch extends Switch +{ + /** + * The cached model package + * + * + * @generated + */ + protected static StructuredObjectivesPackage modelPackage; + + /** + * Creates an instance of the switch. + * + * + * @generated + */ + public StructuredObjectivesSwitch() + { + if (modelPackage == null) + { + modelPackage = StructuredObjectivesPackage.eINSTANCE; + } + } + + /** + * Checks whether this is a switch for the given package. + * + * + * @param ePackage the package in question. + * @return whether this is a switch for the given package. + * @generated + */ + @Override + protected boolean isSwitchFor(EPackage ePackage) + { + return ePackage == modelPackage; + } + + /** + * Calls caseXXX for each class of the model until one returns a non null result; it yields that result. + * + * + * @return the first non-null result returned by a caseXXX call. + * @generated + */ + @Override + protected T doSwitch(int classifierID, EObject theEObject) + { + switch (classifierID) + { + case StructuredObjectivesPackage.ELEMENT: + { + Element element = (Element)theEObject; + T result = caseElement(element); + if (result == null) result = casetdl_Element(element); + if (result == null) result = defaultCase(theEObject); + return result; + } + case StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE: + { + StructuredTestObjective structuredTestObjective = (StructuredTestObjective)theEObject; + T result = caseStructuredTestObjective(structuredTestObjective); + if (result == null) result = caseTestObjective(structuredTestObjective); + if (result == null) result = caseElement(structuredTestObjective); + if (result == null) result = casePackageableElement(structuredTestObjective); + if (result == null) result = caseNamedElement(structuredTestObjective); + if (result == null) result = casetdl_Element(structuredTestObjective); + if (result == null) result = defaultCase(theEObject); + return result; + } + case StructuredObjectivesPackage.INITIAL_CONDITIONS: + { + InitialConditions initialConditions = (InitialConditions)theEObject; + T result = caseInitialConditions(initialConditions); + if (result == null) result = caseElement(initialConditions); + if (result == null) result = casetdl_Element(initialConditions); + if (result == null) result = defaultCase(theEObject); + return result; + } + case StructuredObjectivesPackage.EVENT_SEQUENCE: + { + EventSequence eventSequence = (EventSequence)theEObject; + T result = caseEventSequence(eventSequence); + if (result == null) result = caseElement(eventSequence); + if (result == null) result = casetdl_Element(eventSequence); + if (result == null) result = defaultCase(theEObject); + return result; + } + case StructuredObjectivesPackage.EVENT_OCCURRENCE: + { + EventOccurrence eventOccurrence = (EventOccurrence)theEObject; + T result = caseEventOccurrence(eventOccurrence); + if (result == null) result = caseElement(eventOccurrence); + if (result == null) result = casetdl_Element(eventOccurrence); + if (result == null) result = defaultCase(theEObject); + return result; + } + case StructuredObjectivesPackage.EXPECTED_BEHAVIOUR: + { + ExpectedBehaviour expectedBehaviour = (ExpectedBehaviour)theEObject; + T result = caseExpectedBehaviour(expectedBehaviour); + if (result == null) result = caseElement(expectedBehaviour); + if (result == null) result = casetdl_Element(expectedBehaviour); + if (result == null) result = defaultCase(theEObject); + return result; + } + case StructuredObjectivesPackage.FINAL_CONDITIONS: + { + FinalConditions finalConditions = (FinalConditions)theEObject; + T result = caseFinalConditions(finalConditions); + if (result == null) result = caseElement(finalConditions); + if (result == null) result = casetdl_Element(finalConditions); + if (result == null) result = defaultCase(theEObject); + return result; + } + case StructuredObjectivesPackage.PICS_REFERENCE: + { + PICSReference picsReference = (PICSReference)theEObject; + T result = casePICSReference(picsReference); + if (result == null) result = caseElement(picsReference); + if (result == null) result = casetdl_Element(picsReference); + if (result == null) result = defaultCase(theEObject); + return result; + } + case StructuredObjectivesPackage.PICS: + { + PICS pics = (PICS)theEObject; + T result = casePICS(pics); + if (result == null) result = casePackageableElement(pics); + if (result == null) result = caseElement(pics); + if (result == null) result = caseNamedElement(pics); + if (result == null) result = casetdl_Element(pics); + if (result == null) result = defaultCase(theEObject); + return result; + } + case StructuredObjectivesPackage.ENTITY: + { + Entity entity = (Entity)theEObject; + T result = caseEntity(entity); + if (result == null) result = casePackageableElement(entity); + if (result == null) result = caseElement(entity); + if (result == null) result = caseNamedElement(entity); + if (result == null) result = casetdl_Element(entity); + if (result == null) result = defaultCase(theEObject); + return result; + } + case StructuredObjectivesPackage.EVENT: + { + Event event = (Event)theEObject; + T result = caseEvent(event); + if (result == null) result = casePackageableElement(event); + if (result == null) result = caseElement(event); + if (result == null) result = caseNamedElement(event); + if (result == null) result = casetdl_Element(event); + if (result == null) result = defaultCase(theEObject); + return result; + } + case StructuredObjectivesPackage.EVENT_OCCURRENCE_SPECIFICATION: + { + EventOccurrenceSpecification eventOccurrenceSpecification = (EventOccurrenceSpecification)theEObject; + T result = caseEventOccurrenceSpecification(eventOccurrenceSpecification); + if (result == null) result = caseEventOccurrence(eventOccurrenceSpecification); + if (result == null) result = caseElement(eventOccurrenceSpecification); + if (result == null) result = casetdl_Element(eventOccurrenceSpecification); + if (result == null) result = defaultCase(theEObject); + return result; + } + case StructuredObjectivesPackage.ENTITY_REFERENCE: + { + EntityReference entityReference = (EntityReference)theEObject; + T result = caseEntityReference(entityReference); + if (result == null) result = caseElement(entityReference); + if (result == null) result = casetdl_Element(entityReference); + if (result == null) result = defaultCase(theEObject); + return result; + } + case StructuredObjectivesPackage.EVENT_REFERENCE: + { + EventReference eventReference = (EventReference)theEObject; + T result = caseEventReference(eventReference); + if (result == null) result = caseElement(eventReference); + if (result == null) result = casetdl_Element(eventReference); + if (result == null) result = defaultCase(theEObject); + return result; + } + case StructuredObjectivesPackage.VALUE: + { + Value value = (Value)theEObject; + T result = caseValue(value); + if (result == null) result = caseElement(value); + if (result == null) result = casetdl_Element(value); + if (result == null) result = defaultCase(theEObject); + return result; + } + case StructuredObjectivesPackage.EVENT_ARGUMENT: + { + EventArgument eventArgument = (EventArgument)theEObject; + T result = caseEventArgument(eventArgument); + if (result == null) result = caseElement(eventArgument); + if (result == null) result = casetdl_Element(eventArgument); + if (result == null) result = defaultCase(theEObject); + return result; + } + case StructuredObjectivesPackage.DATA_REFERENCE: + { + DataReference dataReference = (DataReference)theEObject; + T result = caseDataReference(dataReference); + if (result == null) result = caseValue(dataReference); + if (result == null) result = caseElement(dataReference); + if (result == null) result = casetdl_Element(dataReference); + if (result == null) result = defaultCase(theEObject); + return result; + } + case StructuredObjectivesPackage.CONTENT: + { + Content content = (Content)theEObject; + T result = caseContent(content); + if (result == null) result = caseElement(content); + if (result == null) result = casetdl_Element(content); + if (result == null) result = defaultCase(theEObject); + return result; + } + case StructuredObjectivesPackage.LITERAL_VALUE: + { + LiteralValue literalValue = (LiteralValue)theEObject; + T result = caseLiteralValue(literalValue); + if (result == null) result = caseValue(literalValue); + if (result == null) result = caseElement(literalValue); + if (result == null) result = casetdl_Element(literalValue); + if (result == null) result = defaultCase(theEObject); + return result; + } + case StructuredObjectivesPackage.CONTENT_REFERENCE: + { + ContentReference contentReference = (ContentReference)theEObject; + T result = caseContentReference(contentReference); + if (result == null) result = caseValue(contentReference); + if (result == null) result = caseElement(contentReference); + if (result == null) result = casetdl_Element(contentReference); + if (result == null) result = defaultCase(theEObject); + return result; + } + case StructuredObjectivesPackage.LITERAL_VALUE_REFERENCE: + { + LiteralValueReference literalValueReference = (LiteralValueReference)theEObject; + T result = caseLiteralValueReference(literalValueReference); + if (result == null) result = caseValue(literalValueReference); + if (result == null) result = caseElement(literalValueReference); + if (result == null) result = casetdl_Element(literalValueReference); + if (result == null) result = defaultCase(theEObject); + return result; + } + case StructuredObjectivesPackage.REPEATED_EVENT_SEQUENCE: + { + RepeatedEventSequence repeatedEventSequence = (RepeatedEventSequence)theEObject; + T result = caseRepeatedEventSequence(repeatedEventSequence); + if (result == null) result = caseEventSequence(repeatedEventSequence); + if (result == null) result = caseElement(repeatedEventSequence); + if (result == null) result = casetdl_Element(repeatedEventSequence); + if (result == null) result = defaultCase(theEObject); + return result; + } + case StructuredObjectivesPackage.EVENT_TEMPLATE_OCCURRENCE: + { + EventTemplateOccurrence eventTemplateOccurrence = (EventTemplateOccurrence)theEObject; + T result = caseEventTemplateOccurrence(eventTemplateOccurrence); + if (result == null) result = caseEventOccurrence(eventTemplateOccurrence); + if (result == null) result = caseElement(eventTemplateOccurrence); + if (result == null) result = casetdl_Element(eventTemplateOccurrence); + if (result == null) result = defaultCase(theEObject); + return result; + } + case StructuredObjectivesPackage.EVENT_SPECIFICATION_TEMPLATE: + { + EventSpecificationTemplate eventSpecificationTemplate = (EventSpecificationTemplate)theEObject; + T result = caseEventSpecificationTemplate(eventSpecificationTemplate); + if (result == null) result = casePackageableElement(eventSpecificationTemplate); + if (result == null) result = caseElement(eventSpecificationTemplate); + if (result == null) result = caseNamedElement(eventSpecificationTemplate); + if (result == null) result = casetdl_Element(eventSpecificationTemplate); + if (result == null) result = defaultCase(theEObject); + return result; + } + case StructuredObjectivesPackage.ENTITY_BINDING: + { + EntityBinding entityBinding = (EntityBinding)theEObject; + T result = caseEntityBinding(entityBinding); + if (result == null) result = caseElement(entityBinding); + if (result == null) result = casetdl_Element(entityBinding); + if (result == null) result = defaultCase(theEObject); + return result; + } + case StructuredObjectivesPackage.VARIANTS: + { + Variants variants = (Variants)theEObject; + T result = caseVariants(variants); + if (result == null) result = caseElement(variants); + if (result == null) result = casetdl_Element(variants); + if (result == null) result = defaultCase(theEObject); + return result; + } + case StructuredObjectivesPackage.TEST_OBJECTIVE_VARIANT: + { + TestObjectiveVariant testObjectiveVariant = (TestObjectiveVariant)theEObject; + T result = caseTestObjectiveVariant(testObjectiveVariant); + if (result == null) result = caseTestObjective(testObjectiveVariant); + if (result == null) result = caseElement(testObjectiveVariant); + if (result == null) result = casePackageableElement(testObjectiveVariant); + if (result == null) result = caseNamedElement(testObjectiveVariant); + if (result == null) result = casetdl_Element(testObjectiveVariant); + if (result == null) result = defaultCase(theEObject); + return result; + } + case StructuredObjectivesPackage.VARIANT_BINDING: + { + VariantBinding variantBinding = (VariantBinding)theEObject; + T result = caseVariantBinding(variantBinding); + if (result == null) result = caseElement(variantBinding); + if (result == null) result = casetdl_Element(variantBinding); + if (result == null) result = defaultCase(theEObject); + return result; + } + default: return defaultCase(theEObject); + } + } + + /** + * Returns the result of interpreting the object as an instance of 'Element'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Element'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseElement(Element object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Structured Test Objective'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Structured Test Objective'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseStructuredTestObjective(StructuredTestObjective object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Initial Conditions'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Initial Conditions'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseInitialConditions(InitialConditions object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Event Sequence'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Event Sequence'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseEventSequence(EventSequence object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Event Occurrence'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Event Occurrence'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseEventOccurrence(EventOccurrence object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Expected Behaviour'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Expected Behaviour'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseExpectedBehaviour(ExpectedBehaviour object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Final Conditions'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Final Conditions'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseFinalConditions(FinalConditions object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'PICS Reference'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'PICS Reference'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T casePICSReference(PICSReference object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'PICS'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'PICS'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T casePICS(PICS object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Entity'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Entity'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseEntity(Entity object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Event'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Event'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseEvent(Event object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Event Occurrence Specification'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Event Occurrence Specification'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseEventOccurrenceSpecification(EventOccurrenceSpecification object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Entity Reference'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Entity Reference'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseEntityReference(EntityReference object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Event Reference'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Event Reference'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseEventReference(EventReference object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Value'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Value'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseValue(Value object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Event Argument'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Event Argument'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseEventArgument(EventArgument object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Data Reference'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Data Reference'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseDataReference(DataReference object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Content'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Content'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseContent(Content object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Literal Value'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Literal Value'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseLiteralValue(LiteralValue object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Content Reference'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Content Reference'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseContentReference(ContentReference object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Literal Value Reference'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Literal Value Reference'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseLiteralValueReference(LiteralValueReference object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Repeated Event Sequence'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Repeated Event Sequence'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseRepeatedEventSequence(RepeatedEventSequence object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Event Template Occurrence'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Event Template Occurrence'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseEventTemplateOccurrence(EventTemplateOccurrence object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Event Specification Template'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Event Specification Template'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseEventSpecificationTemplate(EventSpecificationTemplate object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Entity Binding'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Entity Binding'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseEntityBinding(EntityBinding object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Variants'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Variants'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseVariants(Variants object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Test Objective Variant'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Test Objective Variant'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseTestObjectiveVariant(TestObjectiveVariant object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Variant Binding'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Variant Binding'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseVariantBinding(VariantBinding object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Element'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Element'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T casetdl_Element(org.etsi.mts.tdl.Element object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Named Element'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Named Element'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseNamedElement(NamedElement object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Packageable Element'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Packageable Element'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T casePackageableElement(PackageableElement object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Test Objective'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Test Objective'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseTestObjective(TestObjective object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'EObject'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch, but this is the last case anyway. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'EObject'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) + * @generated + */ + @Override + public T defaultCase(EObject object) + { + return null; + } + +} //StructuredObjectivesSwitch diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/tdlFactory.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/tdlFactory.java new file mode 100644 index 0000000000000000000000000000000000000000..e402b80add648149c340c9d3fe0093263b74bf5b --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/tdlFactory.java @@ -0,0 +1,799 @@ +/** + */ +package org.etsi.mts.tdl; + +import org.eclipse.emf.ecore.EFactory; + +/** + * + * The Factory for the model. + * It provides a create method for each non-abstract class of the model. + * + * @see org.etsi.mts.tdl.tdlPackage + * @generated + */ +public interface tdlFactory extends EFactory +{ + /** + * The singleton instance of the factory. + * + * + * @generated + */ + tdlFactory eINSTANCE = org.etsi.mts.tdl.impl.tdlFactoryImpl.init(); + + /** + * Returns a new object of class 'Comment'. + * + * + * @return a new object of class 'Comment'. + * @generated + */ + Comment createComment(); + + /** + * Returns a new object of class 'Annotation'. + * + * + * @return a new object of class 'Annotation'. + * @generated + */ + Annotation createAnnotation(); + + /** + * Returns a new object of class 'Annotation Type'. + * + * + * @return a new object of class 'Annotation Type'. + * @generated + */ + AnnotationType createAnnotationType(); + + /** + * Returns a new object of class 'Package'. + * + * + * @return a new object of class 'Package'. + * @generated + */ + Package createPackage(); + + /** + * Returns a new object of class 'Element Import'. + * + * + * @return a new object of class 'Element Import'. + * @generated + */ + ElementImport createElementImport(); + + /** + * Returns a new object of class 'Test Objective'. + * + * + * @return a new object of class 'Test Objective'. + * @generated + */ + TestObjective createTestObjective(); + + /** + * Returns a new object of class 'Data Resource Mapping'. + * + * + * @return a new object of class 'Data Resource Mapping'. + * @generated + */ + DataResourceMapping createDataResourceMapping(); + + /** + * Returns a new object of class 'Data Element Mapping'. + * + * + * @return a new object of class 'Data Element Mapping'. + * @generated + */ + DataElementMapping createDataElementMapping(); + + /** + * Returns a new object of class 'Parameter Mapping'. + * + * + * @return a new object of class 'Parameter Mapping'. + * @generated + */ + ParameterMapping createParameterMapping(); + + /** + * Returns a new object of class 'Simple Data Type'. + * + * + * @return a new object of class 'Simple Data Type'. + * @generated + */ + SimpleDataType createSimpleDataType(); + + /** + * Returns a new object of class 'Simple Data Instance'. + * + * + * @return a new object of class 'Simple Data Instance'. + * @generated + */ + SimpleDataInstance createSimpleDataInstance(); + + /** + * Returns a new object of class 'Structured Data Type'. + * + * + * @return a new object of class 'Structured Data Type'. + * @generated + */ + StructuredDataType createStructuredDataType(); + + /** + * Returns a new object of class 'Member'. + * + * + * @return a new object of class 'Member'. + * @generated + */ + Member createMember(); + + /** + * Returns a new object of class 'Structured Data Instance'. + * + * + * @return a new object of class 'Structured Data Instance'. + * @generated + */ + StructuredDataInstance createStructuredDataInstance(); + + /** + * Returns a new object of class 'Member Assignment'. + * + * + * @return a new object of class 'Member Assignment'. + * @generated + */ + MemberAssignment createMemberAssignment(); + + /** + * Returns a new object of class 'Parameter Binding'. + * + * + * @return a new object of class 'Parameter Binding'. + * @generated + */ + ParameterBinding createParameterBinding(); + + /** + * Returns a new object of class 'Action'. + * + * + * @return a new object of class 'Action'. + * @generated + */ + Action createAction(); + + /** + * Returns a new object of class 'Formal Parameter'. + * + * + * @return a new object of class 'Formal Parameter'. + * @generated + */ + FormalParameter createFormalParameter(); + + /** + * Returns a new object of class 'Function'. + * + * + * @return a new object of class 'Function'. + * @generated + */ + Function createFunction(); + + /** + * Returns a new object of class 'Formal Parameter Use'. + * + * + * @return a new object of class 'Formal Parameter Use'. + * @generated + */ + FormalParameterUse createFormalParameterUse(); + + /** + * Returns a new object of class 'Variable'. + * + * + * @return a new object of class 'Variable'. + * @generated + */ + Variable createVariable(); + + /** + * Returns a new object of class 'Function Call'. + * + * + * @return a new object of class 'Function Call'. + * @generated + */ + FunctionCall createFunctionCall(); + + /** + * Returns a new object of class 'Variable Use'. + * + * + * @return a new object of class 'Variable Use'. + * @generated + */ + VariableUse createVariableUse(); + + /** + * Returns a new object of class 'Component Instance'. + * + * + * @return a new object of class 'Component Instance'. + * @generated + */ + ComponentInstance createComponentInstance(); + + /** + * Returns a new object of class 'Component Type'. + * + * + * @return a new object of class 'Component Type'. + * @generated + */ + ComponentType createComponentType(); + + /** + * Returns a new object of class 'Gate Instance'. + * + * + * @return a new object of class 'Gate Instance'. + * @generated + */ + GateInstance createGateInstance(); + + /** + * Returns a new object of class 'Gate Type'. + * + * + * @return a new object of class 'Gate Type'. + * @generated + */ + GateType createGateType(); + + /** + * Returns a new object of class 'Timer'. + * + * + * @return a new object of class 'Timer'. + * @generated + */ + Timer createTimer(); + + /** + * Returns a new object of class 'Omit Value'. + * + * + * @return a new object of class 'Omit Value'. + * @generated + */ + OmitValue createOmitValue(); + + /** + * Returns a new object of class 'Any Value'. + * + * + * @return a new object of class 'Any Value'. + * @generated + */ + AnyValue createAnyValue(); + + /** + * Returns a new object of class 'Any Value Or Omit'. + * + * + * @return a new object of class 'Any Value Or Omit'. + * @generated + */ + AnyValueOrOmit createAnyValueOrOmit(); + + /** + * Returns a new object of class 'Data Instance Use'. + * + * + * @return a new object of class 'Data Instance Use'. + * @generated + */ + DataInstanceUse createDataInstanceUse(); + + /** + * Returns a new object of class 'Time'. + * + * + * @return a new object of class 'Time'. + * @generated + */ + Time createTime(); + + /** + * Returns a new object of class 'Time Label'. + * + * + * @return a new object of class 'Time Label'. + * @generated + */ + TimeLabel createTimeLabel(); + + /** + * Returns a new object of class 'Time Constraint'. + * + * + * @return a new object of class 'Time Constraint'. + * @generated + */ + TimeConstraint createTimeConstraint(); + + /** + * Returns a new object of class 'Timer Start'. + * + * + * @return a new object of class 'Timer Start'. + * @generated + */ + TimerStart createTimerStart(); + + /** + * Returns a new object of class 'Timer Stop'. + * + * + * @return a new object of class 'Timer Stop'. + * @generated + */ + TimerStop createTimerStop(); + + /** + * Returns a new object of class 'Time Out'. + * + * + * @return a new object of class 'Time Out'. + * @generated + */ + TimeOut createTimeOut(); + + /** + * Returns a new object of class 'Wait'. + * + * + * @return a new object of class 'Wait'. + * @generated + */ + Wait createWait(); + + /** + * Returns a new object of class 'Quiescence'. + * + * + * @return a new object of class 'Quiescence'. + * @generated + */ + Quiescence createQuiescence(); + + /** + * Returns a new object of class 'Gate Reference'. + * + * + * @return a new object of class 'Gate Reference'. + * @generated + */ + GateReference createGateReference(); + + /** + * Returns a new object of class 'Time Label Use'. + * + * + * @return a new object of class 'Time Label Use'. + * @generated + */ + TimeLabelUse createTimeLabelUse(); + + /** + * Returns a new object of class 'Test Configuration'. + * + * + * @return a new object of class 'Test Configuration'. + * @generated + */ + TestConfiguration createTestConfiguration(); + + /** + * Returns a new object of class 'Connection'. + * + * + * @return a new object of class 'Connection'. + * @generated + */ + Connection createConnection(); + + /** + * Returns a new object of class 'Test Description'. + * + * + * @return a new object of class 'Test Description'. + * @generated + */ + TestDescription createTestDescription(); + + /** + * Returns a new object of class 'Behaviour Description'. + * + * + * @return a new object of class 'Behaviour Description'. + * @generated + */ + BehaviourDescription createBehaviourDescription(); + + /** + * Returns a new object of class 'Block'. + * + * + * @return a new object of class 'Block'. + * @generated + */ + Block createBlock(); + + /** + * Returns a new object of class 'Periodic Behaviour'. + * + * + * @return a new object of class 'Periodic Behaviour'. + * @generated + */ + PeriodicBehaviour createPeriodicBehaviour(); + + /** + * Returns a new object of class 'Alternative Behaviour'. + * + * + * @return a new object of class 'Alternative Behaviour'. + * @generated + */ + AlternativeBehaviour createAlternativeBehaviour(); + + /** + * Returns a new object of class 'Parallel Behaviour'. + * + * + * @return a new object of class 'Parallel Behaviour'. + * @generated + */ + ParallelBehaviour createParallelBehaviour(); + + /** + * Returns a new object of class 'Bounded Loop Behaviour'. + * + * + * @return a new object of class 'Bounded Loop Behaviour'. + * @generated + */ + BoundedLoopBehaviour createBoundedLoopBehaviour(); + + /** + * Returns a new object of class 'Optional Behaviour'. + * + * + * @return a new object of class 'Optional Behaviour'. + * @generated + */ + OptionalBehaviour createOptionalBehaviour(); + + /** + * Returns a new object of class 'Unbounded Loop Behaviour'. + * + * + * @return a new object of class 'Unbounded Loop Behaviour'. + * @generated + */ + UnboundedLoopBehaviour createUnboundedLoopBehaviour(); + + /** + * Returns a new object of class 'Conditional Behaviour'. + * + * + * @return a new object of class 'Conditional Behaviour'. + * @generated + */ + ConditionalBehaviour createConditionalBehaviour(); + + /** + * Returns a new object of class 'Compound Behaviour'. + * + * + * @return a new object of class 'Compound Behaviour'. + * @generated + */ + CompoundBehaviour createCompoundBehaviour(); + + /** + * Returns a new object of class 'Default Behaviour'. + * + * + * @return a new object of class 'Default Behaviour'. + * @generated + */ + DefaultBehaviour createDefaultBehaviour(); + + /** + * Returns a new object of class 'Interrupt Behaviour'. + * + * + * @return a new object of class 'Interrupt Behaviour'. + * @generated + */ + InterruptBehaviour createInterruptBehaviour(); + + /** + * Returns a new object of class 'Target'. + * + * + * @return a new object of class 'Target'. + * @generated + */ + Target createTarget(); + + /** + * Returns a new object of class 'Verdict Assignment'. + * + * + * @return a new object of class 'Verdict Assignment'. + * @generated + */ + VerdictAssignment createVerdictAssignment(); + + /** + * Returns a new object of class 'Assertion'. + * + * + * @return a new object of class 'Assertion'. + * @generated + */ + Assertion createAssertion(); + + /** + * Returns a new object of class 'Stop'. + * + * + * @return a new object of class 'Stop'. + * @generated + */ + Stop createStop(); + + /** + * Returns a new object of class 'Break'. + * + * + * @return a new object of class 'Break'. + * @generated + */ + Break createBreak(); + + /** + * Returns a new object of class 'Assignment'. + * + * + * @return a new object of class 'Assignment'. + * @generated + */ + Assignment createAssignment(); + + /** + * Returns a new object of class 'Inline Action'. + * + * + * @return a new object of class 'Inline Action'. + * @generated + */ + InlineAction createInlineAction(); + + /** + * Returns a new object of class 'Action Reference'. + * + * + * @return a new object of class 'Action Reference'. + * @generated + */ + ActionReference createActionReference(); + + /** + * Returns a new object of class 'Test Description Reference'. + * + * + * @return a new object of class 'Test Description Reference'. + * @generated + */ + TestDescriptionReference createTestDescriptionReference(); + + /** + * Returns a new object of class 'Component Instance Binding'. + * + * + * @return a new object of class 'Component Instance Binding'. + * @generated + */ + ComponentInstanceBinding createComponentInstanceBinding(); + + /** + * Returns a new object of class 'Interaction'. + * + * + * @return a new object of class 'Interaction'. + * @generated + */ + Interaction createInteraction(); + + /** + * Returns a new object of class 'Message'. + * + * + * @return a new object of class 'Message'. + * @generated + */ + Message createMessage(); + + /** + * Returns a new object of class 'Predefined Function'. + * + * + * @return a new object of class 'Predefined Function'. + * @generated + */ + PredefinedFunction createPredefinedFunction(); + + /** + * Returns a new object of class 'Member Reference'. + * + * + * @return a new object of class 'Member Reference'. + * @generated + */ + MemberReference createMemberReference(); + + /** + * Returns a new object of class 'Predefined Function Call'. + * + * + * @return a new object of class 'Predefined Function Call'. + * @generated + */ + PredefinedFunctionCall createPredefinedFunctionCall(); + + /** + * Returns a new object of class 'Local Expression'. + * + * + * @return a new object of class 'Local Expression'. + * @generated + */ + LocalExpression createLocalExpression(); + + /** + * Returns a new object of class 'Value Assignment'. + * + * + * @return a new object of class 'Value Assignment'. + * @generated + */ + ValueAssignment createValueAssignment(); + + /** + * Returns a new object of class 'Procedure Call'. + * + * + * @return a new object of class 'Procedure Call'. + * @generated + */ + ProcedureCall createProcedureCall(); + + /** + * Returns a new object of class 'Procedure Signature'. + * + * + * @return a new object of class 'Procedure Signature'. + * @generated + */ + ProcedureSignature createProcedureSignature(); + + /** + * Returns a new object of class 'Procedure Parameter'. + * + * + * @return a new object of class 'Procedure Parameter'. + * @generated + */ + ProcedureParameter createProcedureParameter(); + + /** + * Returns a new object of class 'Collection Data Type'. + * + * + * @return a new object of class 'Collection Data Type'. + * @generated + */ + CollectionDataType createCollectionDataType(); + + /** + * Returns a new object of class 'Collection Data Instance'. + * + * + * @return a new object of class 'Collection Data Instance'. + * @generated + */ + CollectionDataInstance createCollectionDataInstance(); + + /** + * Returns a new object of class 'Extension'. + * + * + * @return a new object of class 'Extension'. + * @generated + */ + Extension createExtension(); + + /** + * Returns a new object of class 'Literal Value Use'. + * + * + * @return a new object of class 'Literal Value Use'. + * @generated + */ + LiteralValueUse createLiteralValueUse(); + + /** + * Returns a new object of class 'Constraint Type'. + * + * + * @return a new object of class 'Constraint Type'. + * @generated + */ + ConstraintType createConstraintType(); + + /** + * Returns a new object of class 'Constraint'. + * + * + * @return a new object of class 'Constraint'. + * @generated + */ + Constraint createConstraint(); + + /** + * Returns a new object of class 'Enum Data Type'. + * + * + * @return a new object of class 'Enum Data Type'. + * @generated + */ + EnumDataType createEnumDataType(); + + /** + * Returns a new object of class 'Data Element Use'. + * + * + * @return a new object of class 'Data Element Use'. + * @generated + */ + DataElementUse createDataElementUse(); + + /** + * Returns the package supported by this factory. + * + * + * @return the package supported by this factory. + * @generated + */ + tdlPackage gettdlPackage(); + +} //tdlFactory diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/tdlPackage.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/tdlPackage.java new file mode 100644 index 0000000000000000000000000000000000000000..b81434f96a7d547f7c7c9afae05474e0be2e8554 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/tdlPackage.java @@ -0,0 +1,18331 @@ +/** + */ +package org.etsi.mts.tdl; + +import org.eclipse.emf.ecore.EAttribute; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EEnum; +import org.eclipse.emf.ecore.EOperation; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.EReference; + +/** + * + * The Package for the model. + * It contains accessors for the meta objects to represent + *
    + *
  • each class,
  • + *
  • each feature of each class,
  • + *
  • each operation of each class,
  • + *
  • each enum,
  • + *
  • and each data type
  • + *
+ * + * @see org.etsi.mts.tdl.tdlFactory + * @model kind="package" + * annotation="http://www.eclipse.org/emf/2002/Ecore invocationDelegates='http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot' settingDelegates='http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot' validationDelegates='http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot'" + * @generated + */ +public interface tdlPackage extends EPackage +{ + /** + * The package name. + * + * + * @generated + */ + String eNAME = "tdl"; + + /** + * The package namespace URI. + * + * + * @generated + */ + String eNS_URI = "http://www.etsi.org/spec/TDL/1.4.1"; + + /** + * The package namespace name. + * + * + * @generated + */ + String eNS_PREFIX = "tdl"; + + /** + * The singleton instance of the package. + * + * + * @generated + */ + tdlPackage eINSTANCE = org.etsi.mts.tdl.impl.tdlPackageImpl.init(); + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.ElementImpl Element}' class. + * + * + * @see org.etsi.mts.tdl.impl.ElementImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getElement() + * @generated + */ + int ELEMENT = 0; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int ELEMENT__COMMENT = 0; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int ELEMENT__ANNOTATION = 1; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int ELEMENT__NAME = 2; + + /** + * The number of structural features of the 'Element' class. + * + * + * @generated + * @ordered + */ + int ELEMENT_FEATURE_COUNT = 3; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int ELEMENT___CONTAINER = 0; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int ELEMENT___GET_PARENT_TEST_DESCRIPTION = 1; + + /** + * The number of operations of the 'Element' class. + * + * + * @generated + * @ordered + */ + int ELEMENT_OPERATION_COUNT = 2; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.CommentImpl Comment}' class. + * + * + * @see org.etsi.mts.tdl.impl.CommentImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getComment() + * @generated + */ + int COMMENT = 1; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int COMMENT__COMMENT = ELEMENT__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int COMMENT__ANNOTATION = ELEMENT__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int COMMENT__NAME = ELEMENT__NAME; + + /** + * The feature id for the 'Body' attribute. + * + * + * @generated + * @ordered + */ + int COMMENT__BODY = ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Commented Element' container reference. + * + * + * @generated + * @ordered + */ + int COMMENT__COMMENTED_ELEMENT = ELEMENT_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Comment' class. + * + * + * @generated + * @ordered + */ + int COMMENT_FEATURE_COUNT = ELEMENT_FEATURE_COUNT + 2; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int COMMENT___CONTAINER = ELEMENT___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int COMMENT___GET_PARENT_TEST_DESCRIPTION = ELEMENT___GET_PARENT_TEST_DESCRIPTION; + + /** + * The number of operations of the 'Comment' class. + * + * + * @generated + * @ordered + */ + int COMMENT_OPERATION_COUNT = ELEMENT_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.AnnotationImpl Annotation}' class. + * + * + * @see org.etsi.mts.tdl.impl.AnnotationImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getAnnotation() + * @generated + */ + int ANNOTATION = 2; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int ANNOTATION__COMMENT = ELEMENT__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int ANNOTATION__ANNOTATION = ELEMENT__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int ANNOTATION__NAME = ELEMENT__NAME; + + /** + * The feature id for the 'Value' attribute. + * + * + * @generated + * @ordered + */ + int ANNOTATION__VALUE = ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Key' reference. + * + * + * @generated + * @ordered + */ + int ANNOTATION__KEY = ELEMENT_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Annotated Element' container reference. + * + * + * @generated + * @ordered + */ + int ANNOTATION__ANNOTATED_ELEMENT = ELEMENT_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'Annotation' class. + * + * + * @generated + * @ordered + */ + int ANNOTATION_FEATURE_COUNT = ELEMENT_FEATURE_COUNT + 3; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int ANNOTATION___CONTAINER = ELEMENT___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int ANNOTATION___GET_PARENT_TEST_DESCRIPTION = ELEMENT___GET_PARENT_TEST_DESCRIPTION; + + /** + * The number of operations of the 'Annotation' class. + * + * + * @generated + * @ordered + */ + int ANNOTATION_OPERATION_COUNT = ELEMENT_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.NamedElementImpl Named Element}' class. + * + * + * @see org.etsi.mts.tdl.impl.NamedElementImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getNamedElement() + * @generated + */ + int NAMED_ELEMENT = 5; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int NAMED_ELEMENT__COMMENT = ELEMENT__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int NAMED_ELEMENT__ANNOTATION = ELEMENT__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int NAMED_ELEMENT__NAME = ELEMENT__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int NAMED_ELEMENT__QUALIFIED_NAME = ELEMENT_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Named Element' class. + * + * + * @generated + * @ordered + */ + int NAMED_ELEMENT_FEATURE_COUNT = ELEMENT_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int NAMED_ELEMENT___CONTAINER = ELEMENT___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int NAMED_ELEMENT___GET_PARENT_TEST_DESCRIPTION = ELEMENT___GET_PARENT_TEST_DESCRIPTION; + + /** + * The number of operations of the 'Named Element' class. + * + * + * @generated + * @ordered + */ + int NAMED_ELEMENT_OPERATION_COUNT = ELEMENT_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.PackageableElementImpl Packageable Element}' class. + * + * + * @see org.etsi.mts.tdl.impl.PackageableElementImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getPackageableElement() + * @generated + */ + int PACKAGEABLE_ELEMENT = 4; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int PACKAGEABLE_ELEMENT__COMMENT = NAMED_ELEMENT__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int PACKAGEABLE_ELEMENT__ANNOTATION = NAMED_ELEMENT__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int PACKAGEABLE_ELEMENT__NAME = NAMED_ELEMENT__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int PACKAGEABLE_ELEMENT__QUALIFIED_NAME = NAMED_ELEMENT__QUALIFIED_NAME; + + /** + * The number of structural features of the 'Packageable Element' class. + * + * + * @generated + * @ordered + */ + int PACKAGEABLE_ELEMENT_FEATURE_COUNT = NAMED_ELEMENT_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int PACKAGEABLE_ELEMENT___CONTAINER = NAMED_ELEMENT___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int PACKAGEABLE_ELEMENT___GET_PARENT_TEST_DESCRIPTION = NAMED_ELEMENT___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Conforms To' operation. + * + * + * @generated + * @ordered + */ + int PACKAGEABLE_ELEMENT___CONFORMS_TO__STRING = NAMED_ELEMENT_OPERATION_COUNT + 0; + + /** + * The operation id for the 'Get Element Named' operation. + * + * + * @generated + * @ordered + */ + int PACKAGEABLE_ELEMENT___GET_ELEMENT_NAMED__STRING = NAMED_ELEMENT_OPERATION_COUNT + 1; + + /** + * The operation id for the 'Conforms To' operation. + * + * + * @generated + * @ordered + */ + int PACKAGEABLE_ELEMENT___CONFORMS_TO__PACKAGEABLEELEMENT = NAMED_ELEMENT_OPERATION_COUNT + 2; + + /** + * The number of operations of the 'Packageable Element' class. + * + * + * @generated + * @ordered + */ + int PACKAGEABLE_ELEMENT_OPERATION_COUNT = NAMED_ELEMENT_OPERATION_COUNT + 3; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.AnnotationTypeImpl Annotation Type}' class. + * + * + * @see org.etsi.mts.tdl.impl.AnnotationTypeImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getAnnotationType() + * @generated + */ + int ANNOTATION_TYPE = 3; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int ANNOTATION_TYPE__COMMENT = PACKAGEABLE_ELEMENT__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int ANNOTATION_TYPE__ANNOTATION = PACKAGEABLE_ELEMENT__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int ANNOTATION_TYPE__NAME = PACKAGEABLE_ELEMENT__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int ANNOTATION_TYPE__QUALIFIED_NAME = PACKAGEABLE_ELEMENT__QUALIFIED_NAME; + + /** + * The feature id for the 'Extension' containment reference. + * + * + * @generated + * @ordered + */ + int ANNOTATION_TYPE__EXTENSION = PACKAGEABLE_ELEMENT_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Annotation Type' class. + * + * + * @generated + * @ordered + */ + int ANNOTATION_TYPE_FEATURE_COUNT = PACKAGEABLE_ELEMENT_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int ANNOTATION_TYPE___CONTAINER = PACKAGEABLE_ELEMENT___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int ANNOTATION_TYPE___GET_PARENT_TEST_DESCRIPTION = PACKAGEABLE_ELEMENT___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Conforms To' operation. + * + * + * @generated + * @ordered + */ + int ANNOTATION_TYPE___CONFORMS_TO__STRING = PACKAGEABLE_ELEMENT___CONFORMS_TO__STRING; + + /** + * The operation id for the 'Get Element Named' operation. + * + * + * @generated + * @ordered + */ + int ANNOTATION_TYPE___GET_ELEMENT_NAMED__STRING = PACKAGEABLE_ELEMENT___GET_ELEMENT_NAMED__STRING; + + /** + * The operation id for the 'Conforms To' operation. + * + * + * @generated + * @ordered + */ + int ANNOTATION_TYPE___CONFORMS_TO__PACKAGEABLEELEMENT = PACKAGEABLE_ELEMENT___CONFORMS_TO__PACKAGEABLEELEMENT; + + /** + * The number of operations of the 'Annotation Type' class. + * + * + * @generated + * @ordered + */ + int ANNOTATION_TYPE_OPERATION_COUNT = PACKAGEABLE_ELEMENT_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.PackageImpl Package}' class. + * + * + * @see org.etsi.mts.tdl.impl.PackageImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getPackage() + * @generated + */ + int PACKAGE = 6; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int PACKAGE__COMMENT = NAMED_ELEMENT__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int PACKAGE__ANNOTATION = NAMED_ELEMENT__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int PACKAGE__NAME = NAMED_ELEMENT__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int PACKAGE__QUALIFIED_NAME = NAMED_ELEMENT__QUALIFIED_NAME; + + /** + * The feature id for the 'Packaged Element' containment reference list. + * + * + * @generated + * @ordered + */ + int PACKAGE__PACKAGED_ELEMENT = NAMED_ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Import' containment reference list. + * + * + * @generated + * @ordered + */ + int PACKAGE__IMPORT = NAMED_ELEMENT_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Nested Package' containment reference list. + * + * + * @generated + * @ordered + */ + int PACKAGE__NESTED_PACKAGE = NAMED_ELEMENT_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'Package' class. + * + * + * @generated + * @ordered + */ + int PACKAGE_FEATURE_COUNT = NAMED_ELEMENT_FEATURE_COUNT + 3; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int PACKAGE___CONTAINER = NAMED_ELEMENT___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int PACKAGE___GET_PARENT_TEST_DESCRIPTION = NAMED_ELEMENT___GET_PARENT_TEST_DESCRIPTION; + + /** + * The number of operations of the 'Package' class. + * + * + * @generated + * @ordered + */ + int PACKAGE_OPERATION_COUNT = NAMED_ELEMENT_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.ElementImportImpl Element Import}' class. + * + * + * @see org.etsi.mts.tdl.impl.ElementImportImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getElementImport() + * @generated + */ + int ELEMENT_IMPORT = 7; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int ELEMENT_IMPORT__COMMENT = ELEMENT__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int ELEMENT_IMPORT__ANNOTATION = ELEMENT__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int ELEMENT_IMPORT__NAME = ELEMENT__NAME; + + /** + * The feature id for the 'Imported Element' reference list. + * + * + * @generated + * @ordered + */ + int ELEMENT_IMPORT__IMPORTED_ELEMENT = ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Imported Package' reference. + * + * + * @generated + * @ordered + */ + int ELEMENT_IMPORT__IMPORTED_PACKAGE = ELEMENT_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Element Import' class. + * + * + * @generated + * @ordered + */ + int ELEMENT_IMPORT_FEATURE_COUNT = ELEMENT_FEATURE_COUNT + 2; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int ELEMENT_IMPORT___CONTAINER = ELEMENT___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int ELEMENT_IMPORT___GET_PARENT_TEST_DESCRIPTION = ELEMENT___GET_PARENT_TEST_DESCRIPTION; + + /** + * The number of operations of the 'Element Import' class. + * + * + * @generated + * @ordered + */ + int ELEMENT_IMPORT_OPERATION_COUNT = ELEMENT_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.TestObjectiveImpl Test Objective}' class. + * + * + * @see org.etsi.mts.tdl.impl.TestObjectiveImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getTestObjective() + * @generated + */ + int TEST_OBJECTIVE = 8; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int TEST_OBJECTIVE__COMMENT = PACKAGEABLE_ELEMENT__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int TEST_OBJECTIVE__ANNOTATION = PACKAGEABLE_ELEMENT__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int TEST_OBJECTIVE__NAME = PACKAGEABLE_ELEMENT__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int TEST_OBJECTIVE__QUALIFIED_NAME = PACKAGEABLE_ELEMENT__QUALIFIED_NAME; + + /** + * The feature id for the 'Objective URI' attribute list. + * + * + * @generated + * @ordered + */ + int TEST_OBJECTIVE__OBJECTIVE_URI = PACKAGEABLE_ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Description' attribute. + * + * + * @generated + * @ordered + */ + int TEST_OBJECTIVE__DESCRIPTION = PACKAGEABLE_ELEMENT_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Test Objective' class. + * + * + * @generated + * @ordered + */ + int TEST_OBJECTIVE_FEATURE_COUNT = PACKAGEABLE_ELEMENT_FEATURE_COUNT + 2; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int TEST_OBJECTIVE___CONTAINER = PACKAGEABLE_ELEMENT___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int TEST_OBJECTIVE___GET_PARENT_TEST_DESCRIPTION = PACKAGEABLE_ELEMENT___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Conforms To' operation. + * + * + * @generated + * @ordered + */ + int TEST_OBJECTIVE___CONFORMS_TO__STRING = PACKAGEABLE_ELEMENT___CONFORMS_TO__STRING; + + /** + * The operation id for the 'Get Element Named' operation. + * + * + * @generated + * @ordered + */ + int TEST_OBJECTIVE___GET_ELEMENT_NAMED__STRING = PACKAGEABLE_ELEMENT___GET_ELEMENT_NAMED__STRING; + + /** + * The operation id for the 'Conforms To' operation. + * + * + * @generated + * @ordered + */ + int TEST_OBJECTIVE___CONFORMS_TO__PACKAGEABLEELEMENT = PACKAGEABLE_ELEMENT___CONFORMS_TO__PACKAGEABLEELEMENT; + + /** + * The number of operations of the 'Test Objective' class. + * + * + * @generated + * @ordered + */ + int TEST_OBJECTIVE_OPERATION_COUNT = PACKAGEABLE_ELEMENT_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.MappableDataElementImpl Mappable Data Element}' class. + * + * + * @see org.etsi.mts.tdl.impl.MappableDataElementImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getMappableDataElement() + * @generated + */ + int MAPPABLE_DATA_ELEMENT = 10; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int MAPPABLE_DATA_ELEMENT__COMMENT = PACKAGEABLE_ELEMENT__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int MAPPABLE_DATA_ELEMENT__ANNOTATION = PACKAGEABLE_ELEMENT__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int MAPPABLE_DATA_ELEMENT__NAME = PACKAGEABLE_ELEMENT__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int MAPPABLE_DATA_ELEMENT__QUALIFIED_NAME = PACKAGEABLE_ELEMENT__QUALIFIED_NAME; + + /** + * The number of structural features of the 'Mappable Data Element' class. + * + * + * @generated + * @ordered + */ + int MAPPABLE_DATA_ELEMENT_FEATURE_COUNT = PACKAGEABLE_ELEMENT_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int MAPPABLE_DATA_ELEMENT___CONTAINER = PACKAGEABLE_ELEMENT___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int MAPPABLE_DATA_ELEMENT___GET_PARENT_TEST_DESCRIPTION = PACKAGEABLE_ELEMENT___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Conforms To' operation. + * + * + * @generated + * @ordered + */ + int MAPPABLE_DATA_ELEMENT___CONFORMS_TO__STRING = PACKAGEABLE_ELEMENT___CONFORMS_TO__STRING; + + /** + * The operation id for the 'Get Element Named' operation. + * + * + * @generated + * @ordered + */ + int MAPPABLE_DATA_ELEMENT___GET_ELEMENT_NAMED__STRING = PACKAGEABLE_ELEMENT___GET_ELEMENT_NAMED__STRING; + + /** + * The operation id for the 'Conforms To' operation. + * + * + * @generated + * @ordered + */ + int MAPPABLE_DATA_ELEMENT___CONFORMS_TO__PACKAGEABLEELEMENT = PACKAGEABLE_ELEMENT___CONFORMS_TO__PACKAGEABLEELEMENT; + + /** + * The number of operations of the 'Mappable Data Element' class. + * + * + * @generated + * @ordered + */ + int MAPPABLE_DATA_ELEMENT_OPERATION_COUNT = PACKAGEABLE_ELEMENT_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.DataInstanceImpl Data Instance}' class. + * + * + * @see org.etsi.mts.tdl.impl.DataInstanceImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getDataInstance() + * @generated + */ + int DATA_INSTANCE = 9; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int DATA_INSTANCE__COMMENT = MAPPABLE_DATA_ELEMENT__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int DATA_INSTANCE__ANNOTATION = MAPPABLE_DATA_ELEMENT__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int DATA_INSTANCE__NAME = MAPPABLE_DATA_ELEMENT__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int DATA_INSTANCE__QUALIFIED_NAME = MAPPABLE_DATA_ELEMENT__QUALIFIED_NAME; + + /** + * The feature id for the 'Data Type' reference. + * + * + * @generated + * @ordered + */ + int DATA_INSTANCE__DATA_TYPE = MAPPABLE_DATA_ELEMENT_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Data Instance' class. + * + * + * @generated + * @ordered + */ + int DATA_INSTANCE_FEATURE_COUNT = MAPPABLE_DATA_ELEMENT_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int DATA_INSTANCE___CONTAINER = MAPPABLE_DATA_ELEMENT___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int DATA_INSTANCE___GET_PARENT_TEST_DESCRIPTION = MAPPABLE_DATA_ELEMENT___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Conforms To' operation. + * + * + * @generated + * @ordered + */ + int DATA_INSTANCE___CONFORMS_TO__STRING = MAPPABLE_DATA_ELEMENT___CONFORMS_TO__STRING; + + /** + * The operation id for the 'Get Element Named' operation. + * + * + * @generated + * @ordered + */ + int DATA_INSTANCE___GET_ELEMENT_NAMED__STRING = MAPPABLE_DATA_ELEMENT___GET_ELEMENT_NAMED__STRING; + + /** + * The operation id for the 'Conforms To' operation. + * + * + * @generated + * @ordered + */ + int DATA_INSTANCE___CONFORMS_TO__PACKAGEABLEELEMENT = MAPPABLE_DATA_ELEMENT___CONFORMS_TO__PACKAGEABLEELEMENT; + + /** + * The number of operations of the 'Data Instance' class. + * + * + * @generated + * @ordered + */ + int DATA_INSTANCE_OPERATION_COUNT = MAPPABLE_DATA_ELEMENT_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.DataTypeImpl Data Type}' class. + * + * + * @see org.etsi.mts.tdl.impl.DataTypeImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getDataType() + * @generated + */ + int DATA_TYPE = 11; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__COMMENT = MAPPABLE_DATA_ELEMENT__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__ANNOTATION = MAPPABLE_DATA_ELEMENT__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__NAME = MAPPABLE_DATA_ELEMENT__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__QUALIFIED_NAME = MAPPABLE_DATA_ELEMENT__QUALIFIED_NAME; + + /** + * The feature id for the 'Constraint' containment reference list. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__CONSTRAINT = MAPPABLE_DATA_ELEMENT_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Data Type' class. + * + * + * @generated + * @ordered + */ + int DATA_TYPE_FEATURE_COUNT = MAPPABLE_DATA_ELEMENT_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int DATA_TYPE___CONTAINER = MAPPABLE_DATA_ELEMENT___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int DATA_TYPE___GET_PARENT_TEST_DESCRIPTION = MAPPABLE_DATA_ELEMENT___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Conforms To' operation. + * + * + * @generated + * @ordered + */ + int DATA_TYPE___CONFORMS_TO__STRING = MAPPABLE_DATA_ELEMENT___CONFORMS_TO__STRING; + + /** + * The operation id for the 'Get Element Named' operation. + * + * + * @generated + * @ordered + */ + int DATA_TYPE___GET_ELEMENT_NAMED__STRING = MAPPABLE_DATA_ELEMENT___GET_ELEMENT_NAMED__STRING; + + /** + * The operation id for the 'Conforms To' operation. + * + * + * @generated + * @ordered + */ + int DATA_TYPE___CONFORMS_TO__PACKAGEABLEELEMENT = MAPPABLE_DATA_ELEMENT___CONFORMS_TO__PACKAGEABLEELEMENT; + + /** + * The operation id for the 'All Constraints' operation. + * + * + * @generated + * @ordered + */ + int DATA_TYPE___ALL_CONSTRAINTS = MAPPABLE_DATA_ELEMENT_OPERATION_COUNT + 0; + + /** + * The number of operations of the 'Data Type' class. + * + * + * @generated + * @ordered + */ + int DATA_TYPE_OPERATION_COUNT = MAPPABLE_DATA_ELEMENT_OPERATION_COUNT + 1; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.DataResourceMappingImpl Data Resource Mapping}' class. + * + * + * @see org.etsi.mts.tdl.impl.DataResourceMappingImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getDataResourceMapping() + * @generated + */ + int DATA_RESOURCE_MAPPING = 12; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int DATA_RESOURCE_MAPPING__COMMENT = PACKAGEABLE_ELEMENT__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int DATA_RESOURCE_MAPPING__ANNOTATION = PACKAGEABLE_ELEMENT__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int DATA_RESOURCE_MAPPING__NAME = PACKAGEABLE_ELEMENT__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int DATA_RESOURCE_MAPPING__QUALIFIED_NAME = PACKAGEABLE_ELEMENT__QUALIFIED_NAME; + + /** + * The feature id for the 'Resource URI' attribute. + * + * + * @generated + * @ordered + */ + int DATA_RESOURCE_MAPPING__RESOURCE_URI = PACKAGEABLE_ELEMENT_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Data Resource Mapping' class. + * + * + * @generated + * @ordered + */ + int DATA_RESOURCE_MAPPING_FEATURE_COUNT = PACKAGEABLE_ELEMENT_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int DATA_RESOURCE_MAPPING___CONTAINER = PACKAGEABLE_ELEMENT___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int DATA_RESOURCE_MAPPING___GET_PARENT_TEST_DESCRIPTION = PACKAGEABLE_ELEMENT___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Conforms To' operation. + * + * + * @generated + * @ordered + */ + int DATA_RESOURCE_MAPPING___CONFORMS_TO__STRING = PACKAGEABLE_ELEMENT___CONFORMS_TO__STRING; + + /** + * The operation id for the 'Get Element Named' operation. + * + * + * @generated + * @ordered + */ + int DATA_RESOURCE_MAPPING___GET_ELEMENT_NAMED__STRING = PACKAGEABLE_ELEMENT___GET_ELEMENT_NAMED__STRING; + + /** + * The operation id for the 'Conforms To' operation. + * + * + * @generated + * @ordered + */ + int DATA_RESOURCE_MAPPING___CONFORMS_TO__PACKAGEABLEELEMENT = PACKAGEABLE_ELEMENT___CONFORMS_TO__PACKAGEABLEELEMENT; + + /** + * The number of operations of the 'Data Resource Mapping' class. + * + * + * @generated + * @ordered + */ + int DATA_RESOURCE_MAPPING_OPERATION_COUNT = PACKAGEABLE_ELEMENT_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.DataElementMappingImpl Data Element Mapping}' class. + * + * + * @see org.etsi.mts.tdl.impl.DataElementMappingImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getDataElementMapping() + * @generated + */ + int DATA_ELEMENT_MAPPING = 13; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int DATA_ELEMENT_MAPPING__COMMENT = PACKAGEABLE_ELEMENT__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int DATA_ELEMENT_MAPPING__ANNOTATION = PACKAGEABLE_ELEMENT__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int DATA_ELEMENT_MAPPING__NAME = PACKAGEABLE_ELEMENT__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int DATA_ELEMENT_MAPPING__QUALIFIED_NAME = PACKAGEABLE_ELEMENT__QUALIFIED_NAME; + + /** + * The feature id for the 'Mappable Data Element' reference. + * + * + * @generated + * @ordered + */ + int DATA_ELEMENT_MAPPING__MAPPABLE_DATA_ELEMENT = PACKAGEABLE_ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Element URI' attribute. + * + * + * @generated + * @ordered + */ + int DATA_ELEMENT_MAPPING__ELEMENT_URI = PACKAGEABLE_ELEMENT_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Data Resource Mapping' reference. + * + * + * @generated + * @ordered + */ + int DATA_ELEMENT_MAPPING__DATA_RESOURCE_MAPPING = PACKAGEABLE_ELEMENT_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Parameter Mapping' containment reference list. + * + * + * @generated + * @ordered + */ + int DATA_ELEMENT_MAPPING__PARAMETER_MAPPING = PACKAGEABLE_ELEMENT_FEATURE_COUNT + 3; + + /** + * The number of structural features of the 'Data Element Mapping' class. + * + * + * @generated + * @ordered + */ + int DATA_ELEMENT_MAPPING_FEATURE_COUNT = PACKAGEABLE_ELEMENT_FEATURE_COUNT + 4; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int DATA_ELEMENT_MAPPING___CONTAINER = PACKAGEABLE_ELEMENT___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int DATA_ELEMENT_MAPPING___GET_PARENT_TEST_DESCRIPTION = PACKAGEABLE_ELEMENT___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Conforms To' operation. + * + * + * @generated + * @ordered + */ + int DATA_ELEMENT_MAPPING___CONFORMS_TO__STRING = PACKAGEABLE_ELEMENT___CONFORMS_TO__STRING; + + /** + * The operation id for the 'Get Element Named' operation. + * + * + * @generated + * @ordered + */ + int DATA_ELEMENT_MAPPING___GET_ELEMENT_NAMED__STRING = PACKAGEABLE_ELEMENT___GET_ELEMENT_NAMED__STRING; + + /** + * The operation id for the 'Conforms To' operation. + * + * + * @generated + * @ordered + */ + int DATA_ELEMENT_MAPPING___CONFORMS_TO__PACKAGEABLEELEMENT = PACKAGEABLE_ELEMENT___CONFORMS_TO__PACKAGEABLEELEMENT; + + /** + * The number of operations of the 'Data Element Mapping' class. + * + * + * @generated + * @ordered + */ + int DATA_ELEMENT_MAPPING_OPERATION_COUNT = PACKAGEABLE_ELEMENT_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.ParameterMappingImpl Parameter Mapping}' class. + * + * + * @see org.etsi.mts.tdl.impl.ParameterMappingImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getParameterMapping() + * @generated + */ + int PARAMETER_MAPPING = 14; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int PARAMETER_MAPPING__COMMENT = ELEMENT__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int PARAMETER_MAPPING__ANNOTATION = ELEMENT__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int PARAMETER_MAPPING__NAME = ELEMENT__NAME; + + /** + * The feature id for the 'Parameter URI' attribute. + * + * + * @generated + * @ordered + */ + int PARAMETER_MAPPING__PARAMETER_URI = ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Parameter' reference. + * + * + * @generated + * @ordered + */ + int PARAMETER_MAPPING__PARAMETER = ELEMENT_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Parameter Mapping' class. + * + * + * @generated + * @ordered + */ + int PARAMETER_MAPPING_FEATURE_COUNT = ELEMENT_FEATURE_COUNT + 2; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int PARAMETER_MAPPING___CONTAINER = ELEMENT___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int PARAMETER_MAPPING___GET_PARENT_TEST_DESCRIPTION = ELEMENT___GET_PARENT_TEST_DESCRIPTION; + + /** + * The number of operations of the 'Parameter Mapping' class. + * + * + * @generated + * @ordered + */ + int PARAMETER_MAPPING_OPERATION_COUNT = ELEMENT_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.ParameterImpl Parameter}' class. + * + * + * @see org.etsi.mts.tdl.impl.ParameterImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getParameter() + * @generated + */ + int PARAMETER = 15; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int PARAMETER__COMMENT = NAMED_ELEMENT__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int PARAMETER__ANNOTATION = NAMED_ELEMENT__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int PARAMETER__NAME = NAMED_ELEMENT__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int PARAMETER__QUALIFIED_NAME = NAMED_ELEMENT__QUALIFIED_NAME; + + /** + * The feature id for the 'Data Type' reference. + * + * + * @generated + * @ordered + */ + int PARAMETER__DATA_TYPE = NAMED_ELEMENT_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Parameter' class. + * + * + * @generated + * @ordered + */ + int PARAMETER_FEATURE_COUNT = NAMED_ELEMENT_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int PARAMETER___CONTAINER = NAMED_ELEMENT___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int PARAMETER___GET_PARENT_TEST_DESCRIPTION = NAMED_ELEMENT___GET_PARENT_TEST_DESCRIPTION; + + /** + * The number of operations of the 'Parameter' class. + * + * + * @generated + * @ordered + */ + int PARAMETER_OPERATION_COUNT = NAMED_ELEMENT_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.SimpleDataTypeImpl Simple Data Type}' class. + * + * + * @see org.etsi.mts.tdl.impl.SimpleDataTypeImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getSimpleDataType() + * @generated + */ + int SIMPLE_DATA_TYPE = 16; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int SIMPLE_DATA_TYPE__COMMENT = DATA_TYPE__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int SIMPLE_DATA_TYPE__ANNOTATION = DATA_TYPE__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int SIMPLE_DATA_TYPE__NAME = DATA_TYPE__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int SIMPLE_DATA_TYPE__QUALIFIED_NAME = DATA_TYPE__QUALIFIED_NAME; + + /** + * The feature id for the 'Constraint' containment reference list. + * + * + * @generated + * @ordered + */ + int SIMPLE_DATA_TYPE__CONSTRAINT = DATA_TYPE__CONSTRAINT; + + /** + * The feature id for the 'Extension' containment reference. + * + * + * @generated + * @ordered + */ + int SIMPLE_DATA_TYPE__EXTENSION = DATA_TYPE_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Simple Data Type' class. + * + * + * @generated + * @ordered + */ + int SIMPLE_DATA_TYPE_FEATURE_COUNT = DATA_TYPE_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int SIMPLE_DATA_TYPE___CONTAINER = DATA_TYPE___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int SIMPLE_DATA_TYPE___GET_PARENT_TEST_DESCRIPTION = DATA_TYPE___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Conforms To' operation. + * + * + * @generated + * @ordered + */ + int SIMPLE_DATA_TYPE___CONFORMS_TO__STRING = DATA_TYPE___CONFORMS_TO__STRING; + + /** + * The operation id for the 'Get Element Named' operation. + * + * + * @generated + * @ordered + */ + int SIMPLE_DATA_TYPE___GET_ELEMENT_NAMED__STRING = DATA_TYPE___GET_ELEMENT_NAMED__STRING; + + /** + * The operation id for the 'Conforms To' operation. + * + * + * @generated + * @ordered + */ + int SIMPLE_DATA_TYPE___CONFORMS_TO__PACKAGEABLEELEMENT = DATA_TYPE___CONFORMS_TO__PACKAGEABLEELEMENT; + + /** + * The operation id for the 'All Constraints' operation. + * + * + * @generated + * @ordered + */ + int SIMPLE_DATA_TYPE___ALL_CONSTRAINTS = DATA_TYPE_OPERATION_COUNT + 0; + + /** + * The number of operations of the 'Simple Data Type' class. + * + * + * @generated + * @ordered + */ + int SIMPLE_DATA_TYPE_OPERATION_COUNT = DATA_TYPE_OPERATION_COUNT + 1; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.SimpleDataInstanceImpl Simple Data Instance}' class. + * + * + * @see org.etsi.mts.tdl.impl.SimpleDataInstanceImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getSimpleDataInstance() + * @generated + */ + int SIMPLE_DATA_INSTANCE = 17; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int SIMPLE_DATA_INSTANCE__COMMENT = DATA_INSTANCE__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int SIMPLE_DATA_INSTANCE__ANNOTATION = DATA_INSTANCE__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int SIMPLE_DATA_INSTANCE__NAME = DATA_INSTANCE__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int SIMPLE_DATA_INSTANCE__QUALIFIED_NAME = DATA_INSTANCE__QUALIFIED_NAME; + + /** + * The feature id for the 'Data Type' reference. + * + * + * @generated + * @ordered + */ + int SIMPLE_DATA_INSTANCE__DATA_TYPE = DATA_INSTANCE__DATA_TYPE; + + /** + * The number of structural features of the 'Simple Data Instance' class. + * + * + * @generated + * @ordered + */ + int SIMPLE_DATA_INSTANCE_FEATURE_COUNT = DATA_INSTANCE_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int SIMPLE_DATA_INSTANCE___CONTAINER = DATA_INSTANCE___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int SIMPLE_DATA_INSTANCE___GET_PARENT_TEST_DESCRIPTION = DATA_INSTANCE___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Conforms To' operation. + * + * + * @generated + * @ordered + */ + int SIMPLE_DATA_INSTANCE___CONFORMS_TO__STRING = DATA_INSTANCE___CONFORMS_TO__STRING; + + /** + * The operation id for the 'Get Element Named' operation. + * + * + * @generated + * @ordered + */ + int SIMPLE_DATA_INSTANCE___GET_ELEMENT_NAMED__STRING = DATA_INSTANCE___GET_ELEMENT_NAMED__STRING; + + /** + * The operation id for the 'Conforms To' operation. + * + * + * @generated + * @ordered + */ + int SIMPLE_DATA_INSTANCE___CONFORMS_TO__PACKAGEABLEELEMENT = DATA_INSTANCE___CONFORMS_TO__PACKAGEABLEELEMENT; + + /** + * The number of operations of the 'Simple Data Instance' class. + * + * + * @generated + * @ordered + */ + int SIMPLE_DATA_INSTANCE_OPERATION_COUNT = DATA_INSTANCE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.StructuredDataTypeImpl Structured Data Type}' class. + * + * + * @see org.etsi.mts.tdl.impl.StructuredDataTypeImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getStructuredDataType() + * @generated + */ + int STRUCTURED_DATA_TYPE = 18; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURED_DATA_TYPE__COMMENT = DATA_TYPE__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURED_DATA_TYPE__ANNOTATION = DATA_TYPE__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int STRUCTURED_DATA_TYPE__NAME = DATA_TYPE__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int STRUCTURED_DATA_TYPE__QUALIFIED_NAME = DATA_TYPE__QUALIFIED_NAME; + + /** + * The feature id for the 'Constraint' containment reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURED_DATA_TYPE__CONSTRAINT = DATA_TYPE__CONSTRAINT; + + /** + * The feature id for the 'Extension' containment reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURED_DATA_TYPE__EXTENSION = DATA_TYPE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Member' containment reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURED_DATA_TYPE__MEMBER = DATA_TYPE_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Structured Data Type' class. + * + * + * @generated + * @ordered + */ + int STRUCTURED_DATA_TYPE_FEATURE_COUNT = DATA_TYPE_FEATURE_COUNT + 2; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int STRUCTURED_DATA_TYPE___CONTAINER = DATA_TYPE___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int STRUCTURED_DATA_TYPE___GET_PARENT_TEST_DESCRIPTION = DATA_TYPE___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Conforms To' operation. + * + * + * @generated + * @ordered + */ + int STRUCTURED_DATA_TYPE___CONFORMS_TO__STRING = DATA_TYPE___CONFORMS_TO__STRING; + + /** + * The operation id for the 'Get Element Named' operation. + * + * + * @generated + * @ordered + */ + int STRUCTURED_DATA_TYPE___GET_ELEMENT_NAMED__STRING = DATA_TYPE___GET_ELEMENT_NAMED__STRING; + + /** + * The operation id for the 'Conforms To' operation. + * + * + * @generated + * @ordered + */ + int STRUCTURED_DATA_TYPE___CONFORMS_TO__PACKAGEABLEELEMENT = DATA_TYPE___CONFORMS_TO__PACKAGEABLEELEMENT; + + /** + * The operation id for the 'All Members' operation. + * + * + * @generated + * @ordered + */ + int STRUCTURED_DATA_TYPE___ALL_MEMBERS = DATA_TYPE_OPERATION_COUNT + 0; + + /** + * The operation id for the 'All Constraints' operation. + * + * + * @generated + * @ordered + */ + int STRUCTURED_DATA_TYPE___ALL_CONSTRAINTS = DATA_TYPE_OPERATION_COUNT + 1; + + /** + * The number of operations of the 'Structured Data Type' class. + * + * + * @generated + * @ordered + */ + int STRUCTURED_DATA_TYPE_OPERATION_COUNT = DATA_TYPE_OPERATION_COUNT + 2; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.MemberImpl Member}' class. + * + * + * @see org.etsi.mts.tdl.impl.MemberImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getMember() + * @generated + */ + int MEMBER = 19; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int MEMBER__COMMENT = PARAMETER__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int MEMBER__ANNOTATION = PARAMETER__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int MEMBER__NAME = PARAMETER__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int MEMBER__QUALIFIED_NAME = PARAMETER__QUALIFIED_NAME; + + /** + * The feature id for the 'Data Type' reference. + * + * + * @generated + * @ordered + */ + int MEMBER__DATA_TYPE = PARAMETER__DATA_TYPE; + + /** + * The feature id for the 'Is Optional' attribute. + * + * + * @generated + * @ordered + */ + int MEMBER__IS_OPTIONAL = PARAMETER_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Constraint' containment reference list. + * + * + * @generated + * @ordered + */ + int MEMBER__CONSTRAINT = PARAMETER_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Member' class. + * + * + * @generated + * @ordered + */ + int MEMBER_FEATURE_COUNT = PARAMETER_FEATURE_COUNT + 2; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int MEMBER___CONTAINER = PARAMETER___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int MEMBER___GET_PARENT_TEST_DESCRIPTION = PARAMETER___GET_PARENT_TEST_DESCRIPTION; + + /** + * The number of operations of the 'Member' class. + * + * + * @generated + * @ordered + */ + int MEMBER_OPERATION_COUNT = PARAMETER_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.StructuredDataInstanceImpl Structured Data Instance}' class. + * + * + * @see org.etsi.mts.tdl.impl.StructuredDataInstanceImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getStructuredDataInstance() + * @generated + */ + int STRUCTURED_DATA_INSTANCE = 20; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURED_DATA_INSTANCE__COMMENT = DATA_INSTANCE__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURED_DATA_INSTANCE__ANNOTATION = DATA_INSTANCE__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int STRUCTURED_DATA_INSTANCE__NAME = DATA_INSTANCE__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int STRUCTURED_DATA_INSTANCE__QUALIFIED_NAME = DATA_INSTANCE__QUALIFIED_NAME; + + /** + * The feature id for the 'Data Type' reference. + * + * + * @generated + * @ordered + */ + int STRUCTURED_DATA_INSTANCE__DATA_TYPE = DATA_INSTANCE__DATA_TYPE; + + /** + * The feature id for the 'Member Assignment' containment reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURED_DATA_INSTANCE__MEMBER_ASSIGNMENT = DATA_INSTANCE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Unassigned Member' attribute. + * + * + * @generated + * @ordered + */ + int STRUCTURED_DATA_INSTANCE__UNASSIGNED_MEMBER = DATA_INSTANCE_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Structured Data Instance' class. + * + * + * @generated + * @ordered + */ + int STRUCTURED_DATA_INSTANCE_FEATURE_COUNT = DATA_INSTANCE_FEATURE_COUNT + 2; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int STRUCTURED_DATA_INSTANCE___CONTAINER = DATA_INSTANCE___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int STRUCTURED_DATA_INSTANCE___GET_PARENT_TEST_DESCRIPTION = DATA_INSTANCE___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Conforms To' operation. + * + * + * @generated + * @ordered + */ + int STRUCTURED_DATA_INSTANCE___CONFORMS_TO__STRING = DATA_INSTANCE___CONFORMS_TO__STRING; + + /** + * The operation id for the 'Get Element Named' operation. + * + * + * @generated + * @ordered + */ + int STRUCTURED_DATA_INSTANCE___GET_ELEMENT_NAMED__STRING = DATA_INSTANCE___GET_ELEMENT_NAMED__STRING; + + /** + * The operation id for the 'Conforms To' operation. + * + * + * @generated + * @ordered + */ + int STRUCTURED_DATA_INSTANCE___CONFORMS_TO__PACKAGEABLEELEMENT = DATA_INSTANCE___CONFORMS_TO__PACKAGEABLEELEMENT; + + /** + * The number of operations of the 'Structured Data Instance' class. + * + * + * @generated + * @ordered + */ + int STRUCTURED_DATA_INSTANCE_OPERATION_COUNT = DATA_INSTANCE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.MemberAssignmentImpl Member Assignment}' class. + * + * + * @see org.etsi.mts.tdl.impl.MemberAssignmentImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getMemberAssignment() + * @generated + */ + int MEMBER_ASSIGNMENT = 21; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int MEMBER_ASSIGNMENT__COMMENT = ELEMENT__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int MEMBER_ASSIGNMENT__ANNOTATION = ELEMENT__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int MEMBER_ASSIGNMENT__NAME = ELEMENT__NAME; + + /** + * The feature id for the 'Member' reference. + * + * + * @generated + * @ordered + */ + int MEMBER_ASSIGNMENT__MEMBER = ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Member Spec' containment reference. + * + * + * @generated + * @ordered + */ + int MEMBER_ASSIGNMENT__MEMBER_SPEC = ELEMENT_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Member Assignment' class. + * + * + * @generated + * @ordered + */ + int MEMBER_ASSIGNMENT_FEATURE_COUNT = ELEMENT_FEATURE_COUNT + 2; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int MEMBER_ASSIGNMENT___CONTAINER = ELEMENT___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int MEMBER_ASSIGNMENT___GET_PARENT_TEST_DESCRIPTION = ELEMENT___GET_PARENT_TEST_DESCRIPTION; + + /** + * The number of operations of the 'Member Assignment' class. + * + * + * @generated + * @ordered + */ + int MEMBER_ASSIGNMENT_OPERATION_COUNT = ELEMENT_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.DataUseImpl Data Use}' class. + * + * + * @see org.etsi.mts.tdl.impl.DataUseImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getDataUse() + * @generated + */ + int DATA_USE = 23; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int DATA_USE__COMMENT = ELEMENT__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int DATA_USE__ANNOTATION = ELEMENT__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int DATA_USE__NAME = ELEMENT__NAME; + + /** + * The feature id for the 'Argument' containment reference list. + * + * + * @generated + * @ordered + */ + int DATA_USE__ARGUMENT = ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Reduction' containment reference list. + * + * + * @generated + * @ordered + */ + int DATA_USE__REDUCTION = ELEMENT_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Data Use' class. + * + * + * @generated + * @ordered + */ + int DATA_USE_FEATURE_COUNT = ELEMENT_FEATURE_COUNT + 2; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int DATA_USE___CONTAINER = ELEMENT___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int DATA_USE___GET_PARENT_TEST_DESCRIPTION = ELEMENT___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Resolve Data Type' operation. + * + * + * @generated + * @ordered + */ + int DATA_USE___RESOLVE_DATA_TYPE = ELEMENT_OPERATION_COUNT + 0; + + /** + * The operation id for the 'Is Effectively Static' operation. + * + * + * @generated + * @ordered + */ + int DATA_USE___IS_EFFECTIVELY_STATIC = ELEMENT_OPERATION_COUNT + 1; + + /** + * The number of operations of the 'Data Use' class. + * + * + * @generated + * @ordered + */ + int DATA_USE_OPERATION_COUNT = ELEMENT_OPERATION_COUNT + 2; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.StaticDataUseImpl Static Data Use}' class. + * + * + * @see org.etsi.mts.tdl.impl.StaticDataUseImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getStaticDataUse() + * @generated + */ + int STATIC_DATA_USE = 22; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int STATIC_DATA_USE__COMMENT = DATA_USE__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int STATIC_DATA_USE__ANNOTATION = DATA_USE__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int STATIC_DATA_USE__NAME = DATA_USE__NAME; + + /** + * The feature id for the 'Argument' containment reference list. + * + * + * @generated + * @ordered + */ + int STATIC_DATA_USE__ARGUMENT = DATA_USE__ARGUMENT; + + /** + * The feature id for the 'Reduction' containment reference list. + * + * + * @generated + * @ordered + */ + int STATIC_DATA_USE__REDUCTION = DATA_USE__REDUCTION; + + /** + * The number of structural features of the 'Static Data Use' class. + * + * + * @generated + * @ordered + */ + int STATIC_DATA_USE_FEATURE_COUNT = DATA_USE_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int STATIC_DATA_USE___CONTAINER = DATA_USE___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int STATIC_DATA_USE___GET_PARENT_TEST_DESCRIPTION = DATA_USE___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Resolve Data Type' operation. + * + * + * @generated + * @ordered + */ + int STATIC_DATA_USE___RESOLVE_DATA_TYPE = DATA_USE___RESOLVE_DATA_TYPE; + + /** + * The operation id for the 'Is Effectively Static' operation. + * + * + * @generated + * @ordered + */ + int STATIC_DATA_USE___IS_EFFECTIVELY_STATIC = DATA_USE___IS_EFFECTIVELY_STATIC; + + /** + * The number of operations of the 'Static Data Use' class. + * + * + * @generated + * @ordered + */ + int STATIC_DATA_USE_OPERATION_COUNT = DATA_USE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.ParameterBindingImpl Parameter Binding}' class. + * + * + * @see org.etsi.mts.tdl.impl.ParameterBindingImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getParameterBinding() + * @generated + */ + int PARAMETER_BINDING = 24; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int PARAMETER_BINDING__COMMENT = ELEMENT__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int PARAMETER_BINDING__ANNOTATION = ELEMENT__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int PARAMETER_BINDING__NAME = ELEMENT__NAME; + + /** + * The feature id for the 'Data Use' containment reference. + * + * + * @generated + * @ordered + */ + int PARAMETER_BINDING__DATA_USE = ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Parameter' reference. + * + * + * @generated + * @ordered + */ + int PARAMETER_BINDING__PARAMETER = ELEMENT_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Parameter Binding' class. + * + * + * @generated + * @ordered + */ + int PARAMETER_BINDING_FEATURE_COUNT = ELEMENT_FEATURE_COUNT + 2; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int PARAMETER_BINDING___CONTAINER = ELEMENT___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int PARAMETER_BINDING___GET_PARENT_TEST_DESCRIPTION = ELEMENT___GET_PARENT_TEST_DESCRIPTION; + + /** + * The number of operations of the 'Parameter Binding' class. + * + * + * @generated + * @ordered + */ + int PARAMETER_BINDING_OPERATION_COUNT = ELEMENT_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.ActionImpl Action}' class. + * + * + * @see org.etsi.mts.tdl.impl.ActionImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getAction() + * @generated + */ + int ACTION = 25; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int ACTION__COMMENT = MAPPABLE_DATA_ELEMENT__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int ACTION__ANNOTATION = MAPPABLE_DATA_ELEMENT__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int ACTION__NAME = MAPPABLE_DATA_ELEMENT__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int ACTION__QUALIFIED_NAME = MAPPABLE_DATA_ELEMENT__QUALIFIED_NAME; + + /** + * The feature id for the 'Body' attribute. + * + * + * @generated + * @ordered + */ + int ACTION__BODY = MAPPABLE_DATA_ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Formal Parameter' containment reference list. + * + * + * @generated + * @ordered + */ + int ACTION__FORMAL_PARAMETER = MAPPABLE_DATA_ELEMENT_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Action' class. + * + * + * @generated + * @ordered + */ + int ACTION_FEATURE_COUNT = MAPPABLE_DATA_ELEMENT_FEATURE_COUNT + 2; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int ACTION___CONTAINER = MAPPABLE_DATA_ELEMENT___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int ACTION___GET_PARENT_TEST_DESCRIPTION = MAPPABLE_DATA_ELEMENT___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Conforms To' operation. + * + * + * @generated + * @ordered + */ + int ACTION___CONFORMS_TO__STRING = MAPPABLE_DATA_ELEMENT___CONFORMS_TO__STRING; + + /** + * The operation id for the 'Get Element Named' operation. + * + * + * @generated + * @ordered + */ + int ACTION___GET_ELEMENT_NAMED__STRING = MAPPABLE_DATA_ELEMENT___GET_ELEMENT_NAMED__STRING; + + /** + * The operation id for the 'Conforms To' operation. + * + * + * @generated + * @ordered + */ + int ACTION___CONFORMS_TO__PACKAGEABLEELEMENT = MAPPABLE_DATA_ELEMENT___CONFORMS_TO__PACKAGEABLEELEMENT; + + /** + * The number of operations of the 'Action' class. + * + * + * @generated + * @ordered + */ + int ACTION_OPERATION_COUNT = MAPPABLE_DATA_ELEMENT_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.FormalParameterImpl Formal Parameter}' class. + * + * + * @see org.etsi.mts.tdl.impl.FormalParameterImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getFormalParameter() + * @generated + */ + int FORMAL_PARAMETER = 26; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int FORMAL_PARAMETER__COMMENT = PARAMETER__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int FORMAL_PARAMETER__ANNOTATION = PARAMETER__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int FORMAL_PARAMETER__NAME = PARAMETER__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int FORMAL_PARAMETER__QUALIFIED_NAME = PARAMETER__QUALIFIED_NAME; + + /** + * The feature id for the 'Data Type' reference. + * + * + * @generated + * @ordered + */ + int FORMAL_PARAMETER__DATA_TYPE = PARAMETER__DATA_TYPE; + + /** + * The number of structural features of the 'Formal Parameter' class. + * + * + * @generated + * @ordered + */ + int FORMAL_PARAMETER_FEATURE_COUNT = PARAMETER_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int FORMAL_PARAMETER___CONTAINER = PARAMETER___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int FORMAL_PARAMETER___GET_PARENT_TEST_DESCRIPTION = PARAMETER___GET_PARENT_TEST_DESCRIPTION; + + /** + * The number of operations of the 'Formal Parameter' class. + * + * + * @generated + * @ordered + */ + int FORMAL_PARAMETER_OPERATION_COUNT = PARAMETER_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.FunctionImpl Function}' class. + * + * + * @see org.etsi.mts.tdl.impl.FunctionImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getFunction() + * @generated + */ + int FUNCTION = 27; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int FUNCTION__COMMENT = ACTION__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int FUNCTION__ANNOTATION = ACTION__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int FUNCTION__NAME = ACTION__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int FUNCTION__QUALIFIED_NAME = ACTION__QUALIFIED_NAME; + + /** + * The feature id for the 'Body' attribute. + * + * + * @generated + * @ordered + */ + int FUNCTION__BODY = ACTION__BODY; + + /** + * The feature id for the 'Formal Parameter' containment reference list. + * + * + * @generated + * @ordered + */ + int FUNCTION__FORMAL_PARAMETER = ACTION__FORMAL_PARAMETER; + + /** + * The feature id for the 'Return Type' reference. + * + * + * @generated + * @ordered + */ + int FUNCTION__RETURN_TYPE = ACTION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Function' class. + * + * + * @generated + * @ordered + */ + int FUNCTION_FEATURE_COUNT = ACTION_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int FUNCTION___CONTAINER = ACTION___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int FUNCTION___GET_PARENT_TEST_DESCRIPTION = ACTION___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Conforms To' operation. + * + * + * @generated + * @ordered + */ + int FUNCTION___CONFORMS_TO__STRING = ACTION___CONFORMS_TO__STRING; + + /** + * The operation id for the 'Get Element Named' operation. + * + * + * @generated + * @ordered + */ + int FUNCTION___GET_ELEMENT_NAMED__STRING = ACTION___GET_ELEMENT_NAMED__STRING; + + /** + * The operation id for the 'Conforms To' operation. + * + * + * @generated + * @ordered + */ + int FUNCTION___CONFORMS_TO__PACKAGEABLEELEMENT = ACTION___CONFORMS_TO__PACKAGEABLEELEMENT; + + /** + * The number of operations of the 'Function' class. + * + * + * @generated + * @ordered + */ + int FUNCTION_OPERATION_COUNT = ACTION_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.DynamicDataUseImpl Dynamic Data Use}' class. + * + * + * @see org.etsi.mts.tdl.impl.DynamicDataUseImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getDynamicDataUse() + * @generated + */ + int DYNAMIC_DATA_USE = 29; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int DYNAMIC_DATA_USE__COMMENT = DATA_USE__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int DYNAMIC_DATA_USE__ANNOTATION = DATA_USE__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int DYNAMIC_DATA_USE__NAME = DATA_USE__NAME; + + /** + * The feature id for the 'Argument' containment reference list. + * + * + * @generated + * @ordered + */ + int DYNAMIC_DATA_USE__ARGUMENT = DATA_USE__ARGUMENT; + + /** + * The feature id for the 'Reduction' containment reference list. + * + * + * @generated + * @ordered + */ + int DYNAMIC_DATA_USE__REDUCTION = DATA_USE__REDUCTION; + + /** + * The number of structural features of the 'Dynamic Data Use' class. + * + * + * @generated + * @ordered + */ + int DYNAMIC_DATA_USE_FEATURE_COUNT = DATA_USE_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int DYNAMIC_DATA_USE___CONTAINER = DATA_USE___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int DYNAMIC_DATA_USE___GET_PARENT_TEST_DESCRIPTION = DATA_USE___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Resolve Data Type' operation. + * + * + * @generated + * @ordered + */ + int DYNAMIC_DATA_USE___RESOLVE_DATA_TYPE = DATA_USE___RESOLVE_DATA_TYPE; + + /** + * The operation id for the 'Is Effectively Static' operation. + * + * + * @generated + * @ordered + */ + int DYNAMIC_DATA_USE___IS_EFFECTIVELY_STATIC = DATA_USE___IS_EFFECTIVELY_STATIC; + + /** + * The number of operations of the 'Dynamic Data Use' class. + * + * + * @generated + * @ordered + */ + int DYNAMIC_DATA_USE_OPERATION_COUNT = DATA_USE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.FormalParameterUseImpl Formal Parameter Use}' class. + * + * + * @see org.etsi.mts.tdl.impl.FormalParameterUseImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getFormalParameterUse() + * @generated + */ + int FORMAL_PARAMETER_USE = 28; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int FORMAL_PARAMETER_USE__COMMENT = DYNAMIC_DATA_USE__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int FORMAL_PARAMETER_USE__ANNOTATION = DYNAMIC_DATA_USE__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int FORMAL_PARAMETER_USE__NAME = DYNAMIC_DATA_USE__NAME; + + /** + * The feature id for the 'Argument' containment reference list. + * + * + * @generated + * @ordered + */ + int FORMAL_PARAMETER_USE__ARGUMENT = DYNAMIC_DATA_USE__ARGUMENT; + + /** + * The feature id for the 'Reduction' containment reference list. + * + * + * @generated + * @ordered + */ + int FORMAL_PARAMETER_USE__REDUCTION = DYNAMIC_DATA_USE__REDUCTION; + + /** + * The feature id for the 'Parameter' reference. + * + * + * @generated + * @ordered + */ + int FORMAL_PARAMETER_USE__PARAMETER = DYNAMIC_DATA_USE_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Formal Parameter Use' class. + * + * + * @generated + * @ordered + */ + int FORMAL_PARAMETER_USE_FEATURE_COUNT = DYNAMIC_DATA_USE_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int FORMAL_PARAMETER_USE___CONTAINER = DYNAMIC_DATA_USE___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int FORMAL_PARAMETER_USE___GET_PARENT_TEST_DESCRIPTION = DYNAMIC_DATA_USE___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Is Effectively Static' operation. + * + * + * @generated + * @ordered + */ + int FORMAL_PARAMETER_USE___IS_EFFECTIVELY_STATIC = DYNAMIC_DATA_USE___IS_EFFECTIVELY_STATIC; + + /** + * The operation id for the 'Resolve Data Type' operation. + * + * + * @generated + * @ordered + */ + int FORMAL_PARAMETER_USE___RESOLVE_DATA_TYPE = DYNAMIC_DATA_USE_OPERATION_COUNT + 0; + + /** + * The number of operations of the 'Formal Parameter Use' class. + * + * + * @generated + * @ordered + */ + int FORMAL_PARAMETER_USE_OPERATION_COUNT = DYNAMIC_DATA_USE_OPERATION_COUNT + 1; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.VariableImpl Variable}' class. + * + * + * @see org.etsi.mts.tdl.impl.VariableImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getVariable() + * @generated + */ + int VARIABLE = 30; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int VARIABLE__COMMENT = NAMED_ELEMENT__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int VARIABLE__ANNOTATION = NAMED_ELEMENT__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int VARIABLE__NAME = NAMED_ELEMENT__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int VARIABLE__QUALIFIED_NAME = NAMED_ELEMENT__QUALIFIED_NAME; + + /** + * The feature id for the 'Data Type' reference. + * + * + * @generated + * @ordered + */ + int VARIABLE__DATA_TYPE = NAMED_ELEMENT_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Variable' class. + * + * + * @generated + * @ordered + */ + int VARIABLE_FEATURE_COUNT = NAMED_ELEMENT_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int VARIABLE___CONTAINER = NAMED_ELEMENT___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int VARIABLE___GET_PARENT_TEST_DESCRIPTION = NAMED_ELEMENT___GET_PARENT_TEST_DESCRIPTION; + + /** + * The number of operations of the 'Variable' class. + * + * + * @generated + * @ordered + */ + int VARIABLE_OPERATION_COUNT = NAMED_ELEMENT_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.FunctionCallImpl Function Call}' class. + * + * + * @see org.etsi.mts.tdl.impl.FunctionCallImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getFunctionCall() + * @generated + */ + int FUNCTION_CALL = 31; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int FUNCTION_CALL__COMMENT = DYNAMIC_DATA_USE__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int FUNCTION_CALL__ANNOTATION = DYNAMIC_DATA_USE__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int FUNCTION_CALL__NAME = DYNAMIC_DATA_USE__NAME; + + /** + * The feature id for the 'Argument' containment reference list. + * + * + * @generated + * @ordered + */ + int FUNCTION_CALL__ARGUMENT = DYNAMIC_DATA_USE__ARGUMENT; + + /** + * The feature id for the 'Reduction' containment reference list. + * + * + * @generated + * @ordered + */ + int FUNCTION_CALL__REDUCTION = DYNAMIC_DATA_USE__REDUCTION; + + /** + * The feature id for the 'Function' reference. + * + * + * @generated + * @ordered + */ + int FUNCTION_CALL__FUNCTION = DYNAMIC_DATA_USE_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Function Call' class. + * + * + * @generated + * @ordered + */ + int FUNCTION_CALL_FEATURE_COUNT = DYNAMIC_DATA_USE_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int FUNCTION_CALL___CONTAINER = DYNAMIC_DATA_USE___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int FUNCTION_CALL___GET_PARENT_TEST_DESCRIPTION = DYNAMIC_DATA_USE___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Is Effectively Static' operation. + * + * + * @generated + * @ordered + */ + int FUNCTION_CALL___IS_EFFECTIVELY_STATIC = DYNAMIC_DATA_USE___IS_EFFECTIVELY_STATIC; + + /** + * The operation id for the 'Resolve Data Type' operation. + * + * + * @generated + * @ordered + */ + int FUNCTION_CALL___RESOLVE_DATA_TYPE = DYNAMIC_DATA_USE_OPERATION_COUNT + 0; + + /** + * The number of operations of the 'Function Call' class. + * + * + * @generated + * @ordered + */ + int FUNCTION_CALL_OPERATION_COUNT = DYNAMIC_DATA_USE_OPERATION_COUNT + 1; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.VariableUseImpl Variable Use}' class. + * + * + * @see org.etsi.mts.tdl.impl.VariableUseImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getVariableUse() + * @generated + */ + int VARIABLE_USE = 32; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int VARIABLE_USE__COMMENT = DYNAMIC_DATA_USE__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int VARIABLE_USE__ANNOTATION = DYNAMIC_DATA_USE__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int VARIABLE_USE__NAME = DYNAMIC_DATA_USE__NAME; + + /** + * The feature id for the 'Argument' containment reference list. + * + * + * @generated + * @ordered + */ + int VARIABLE_USE__ARGUMENT = DYNAMIC_DATA_USE__ARGUMENT; + + /** + * The feature id for the 'Reduction' containment reference list. + * + * + * @generated + * @ordered + */ + int VARIABLE_USE__REDUCTION = DYNAMIC_DATA_USE__REDUCTION; + + /** + * The feature id for the 'Component Instance' reference. + * + * + * @generated + * @ordered + */ + int VARIABLE_USE__COMPONENT_INSTANCE = DYNAMIC_DATA_USE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Variable' reference. + * + * + * @generated + * @ordered + */ + int VARIABLE_USE__VARIABLE = DYNAMIC_DATA_USE_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Variable Use' class. + * + * + * @generated + * @ordered + */ + int VARIABLE_USE_FEATURE_COUNT = DYNAMIC_DATA_USE_FEATURE_COUNT + 2; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int VARIABLE_USE___CONTAINER = DYNAMIC_DATA_USE___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int VARIABLE_USE___GET_PARENT_TEST_DESCRIPTION = DYNAMIC_DATA_USE___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Is Effectively Static' operation. + * + * + * @generated + * @ordered + */ + int VARIABLE_USE___IS_EFFECTIVELY_STATIC = DYNAMIC_DATA_USE___IS_EFFECTIVELY_STATIC; + + /** + * The operation id for the 'Resolve Data Type' operation. + * + * + * @generated + * @ordered + */ + int VARIABLE_USE___RESOLVE_DATA_TYPE = DYNAMIC_DATA_USE_OPERATION_COUNT + 0; + + /** + * The number of operations of the 'Variable Use' class. + * + * + * @generated + * @ordered + */ + int VARIABLE_USE_OPERATION_COUNT = DYNAMIC_DATA_USE_OPERATION_COUNT + 1; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.ComponentInstanceImpl Component Instance}' class. + * + * + * @see org.etsi.mts.tdl.impl.ComponentInstanceImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getComponentInstance() + * @generated + */ + int COMPONENT_INSTANCE = 33; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int COMPONENT_INSTANCE__COMMENT = NAMED_ELEMENT__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int COMPONENT_INSTANCE__ANNOTATION = NAMED_ELEMENT__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int COMPONENT_INSTANCE__NAME = NAMED_ELEMENT__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int COMPONENT_INSTANCE__QUALIFIED_NAME = NAMED_ELEMENT__QUALIFIED_NAME; + + /** + * The feature id for the 'Type' reference. + * + * + * @generated + * @ordered + */ + int COMPONENT_INSTANCE__TYPE = NAMED_ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Role' attribute. + * + * + * @generated + * @ordered + */ + int COMPONENT_INSTANCE__ROLE = NAMED_ELEMENT_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Component Instance' class. + * + * + * @generated + * @ordered + */ + int COMPONENT_INSTANCE_FEATURE_COUNT = NAMED_ELEMENT_FEATURE_COUNT + 2; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int COMPONENT_INSTANCE___CONTAINER = NAMED_ELEMENT___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int COMPONENT_INSTANCE___GET_PARENT_TEST_DESCRIPTION = NAMED_ELEMENT___GET_PARENT_TEST_DESCRIPTION; + + /** + * The number of operations of the 'Component Instance' class. + * + * + * @generated + * @ordered + */ + int COMPONENT_INSTANCE_OPERATION_COUNT = NAMED_ELEMENT_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.ComponentTypeImpl Component Type}' class. + * + * + * @see org.etsi.mts.tdl.impl.ComponentTypeImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getComponentType() + * @generated + */ + int COMPONENT_TYPE = 34; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int COMPONENT_TYPE__COMMENT = PACKAGEABLE_ELEMENT__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int COMPONENT_TYPE__ANNOTATION = PACKAGEABLE_ELEMENT__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int COMPONENT_TYPE__NAME = PACKAGEABLE_ELEMENT__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int COMPONENT_TYPE__QUALIFIED_NAME = PACKAGEABLE_ELEMENT__QUALIFIED_NAME; + + /** + * The feature id for the 'Gate Instance' containment reference list. + * + * + * @generated + * @ordered + */ + int COMPONENT_TYPE__GATE_INSTANCE = PACKAGEABLE_ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Timer' containment reference list. + * + * + * @generated + * @ordered + */ + int COMPONENT_TYPE__TIMER = PACKAGEABLE_ELEMENT_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Variable' containment reference list. + * + * + * @generated + * @ordered + */ + int COMPONENT_TYPE__VARIABLE = PACKAGEABLE_ELEMENT_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Extension' containment reference. + * + * + * @generated + * @ordered + */ + int COMPONENT_TYPE__EXTENSION = PACKAGEABLE_ELEMENT_FEATURE_COUNT + 3; + + /** + * The number of structural features of the 'Component Type' class. + * + * + * @generated + * @ordered + */ + int COMPONENT_TYPE_FEATURE_COUNT = PACKAGEABLE_ELEMENT_FEATURE_COUNT + 4; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int COMPONENT_TYPE___CONTAINER = PACKAGEABLE_ELEMENT___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int COMPONENT_TYPE___GET_PARENT_TEST_DESCRIPTION = PACKAGEABLE_ELEMENT___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Conforms To' operation. + * + * + * @generated + * @ordered + */ + int COMPONENT_TYPE___CONFORMS_TO__STRING = PACKAGEABLE_ELEMENT___CONFORMS_TO__STRING; + + /** + * The operation id for the 'Get Element Named' operation. + * + * + * @generated + * @ordered + */ + int COMPONENT_TYPE___GET_ELEMENT_NAMED__STRING = PACKAGEABLE_ELEMENT___GET_ELEMENT_NAMED__STRING; + + /** + * The operation id for the 'Conforms To' operation. + * + * + * @generated + * @ordered + */ + int COMPONENT_TYPE___CONFORMS_TO__PACKAGEABLEELEMENT = PACKAGEABLE_ELEMENT___CONFORMS_TO__PACKAGEABLEELEMENT; + + /** + * The operation id for the 'All Gates' operation. + * + * + * @generated + * @ordered + */ + int COMPONENT_TYPE___ALL_GATES = PACKAGEABLE_ELEMENT_OPERATION_COUNT + 0; + + /** + * The operation id for the 'All Timers' operation. + * + * + * @generated + * @ordered + */ + int COMPONENT_TYPE___ALL_TIMERS = PACKAGEABLE_ELEMENT_OPERATION_COUNT + 1; + + /** + * The operation id for the 'All Variables' operation. + * + * + * @generated + * @ordered + */ + int COMPONENT_TYPE___ALL_VARIABLES = PACKAGEABLE_ELEMENT_OPERATION_COUNT + 2; + + /** + * The number of operations of the 'Component Type' class. + * + * + * @generated + * @ordered + */ + int COMPONENT_TYPE_OPERATION_COUNT = PACKAGEABLE_ELEMENT_OPERATION_COUNT + 3; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.GateInstanceImpl Gate Instance}' class. + * + * + * @see org.etsi.mts.tdl.impl.GateInstanceImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getGateInstance() + * @generated + */ + int GATE_INSTANCE = 35; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int GATE_INSTANCE__COMMENT = NAMED_ELEMENT__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int GATE_INSTANCE__ANNOTATION = NAMED_ELEMENT__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int GATE_INSTANCE__NAME = NAMED_ELEMENT__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int GATE_INSTANCE__QUALIFIED_NAME = NAMED_ELEMENT__QUALIFIED_NAME; + + /** + * The feature id for the 'Type' reference. + * + * + * @generated + * @ordered + */ + int GATE_INSTANCE__TYPE = NAMED_ELEMENT_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Gate Instance' class. + * + * + * @generated + * @ordered + */ + int GATE_INSTANCE_FEATURE_COUNT = NAMED_ELEMENT_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int GATE_INSTANCE___CONTAINER = NAMED_ELEMENT___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int GATE_INSTANCE___GET_PARENT_TEST_DESCRIPTION = NAMED_ELEMENT___GET_PARENT_TEST_DESCRIPTION; + + /** + * The number of operations of the 'Gate Instance' class. + * + * + * @generated + * @ordered + */ + int GATE_INSTANCE_OPERATION_COUNT = NAMED_ELEMENT_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.GateTypeImpl Gate Type}' class. + * + * + * @see org.etsi.mts.tdl.impl.GateTypeImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getGateType() + * @generated + */ + int GATE_TYPE = 36; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int GATE_TYPE__COMMENT = PACKAGEABLE_ELEMENT__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int GATE_TYPE__ANNOTATION = PACKAGEABLE_ELEMENT__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int GATE_TYPE__NAME = PACKAGEABLE_ELEMENT__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int GATE_TYPE__QUALIFIED_NAME = PACKAGEABLE_ELEMENT__QUALIFIED_NAME; + + /** + * The feature id for the 'Data Type' reference list. + * + * + * @generated + * @ordered + */ + int GATE_TYPE__DATA_TYPE = PACKAGEABLE_ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Kind' attribute. + * + * + * @generated + * @ordered + */ + int GATE_TYPE__KIND = PACKAGEABLE_ELEMENT_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Extension' containment reference. + * + * + * @generated + * @ordered + */ + int GATE_TYPE__EXTENSION = PACKAGEABLE_ELEMENT_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'Gate Type' class. + * + * + * @generated + * @ordered + */ + int GATE_TYPE_FEATURE_COUNT = PACKAGEABLE_ELEMENT_FEATURE_COUNT + 3; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int GATE_TYPE___CONTAINER = PACKAGEABLE_ELEMENT___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int GATE_TYPE___GET_PARENT_TEST_DESCRIPTION = PACKAGEABLE_ELEMENT___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Conforms To' operation. + * + * + * @generated + * @ordered + */ + int GATE_TYPE___CONFORMS_TO__STRING = PACKAGEABLE_ELEMENT___CONFORMS_TO__STRING; + + /** + * The operation id for the 'Get Element Named' operation. + * + * + * @generated + * @ordered + */ + int GATE_TYPE___GET_ELEMENT_NAMED__STRING = PACKAGEABLE_ELEMENT___GET_ELEMENT_NAMED__STRING; + + /** + * The operation id for the 'Conforms To' operation. + * + * + * @generated + * @ordered + */ + int GATE_TYPE___CONFORMS_TO__PACKAGEABLEELEMENT = PACKAGEABLE_ELEMENT___CONFORMS_TO__PACKAGEABLEELEMENT; + + /** + * The operation id for the 'All Data Types' operation. + * + * + * @generated + * @ordered + */ + int GATE_TYPE___ALL_DATA_TYPES = PACKAGEABLE_ELEMENT_OPERATION_COUNT + 0; + + /** + * The number of operations of the 'Gate Type' class. + * + * + * @generated + * @ordered + */ + int GATE_TYPE_OPERATION_COUNT = PACKAGEABLE_ELEMENT_OPERATION_COUNT + 1; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.TimerImpl Timer}' class. + * + * + * @see org.etsi.mts.tdl.impl.TimerImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getTimer() + * @generated + */ + int TIMER = 37; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int TIMER__COMMENT = NAMED_ELEMENT__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int TIMER__ANNOTATION = NAMED_ELEMENT__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int TIMER__NAME = NAMED_ELEMENT__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int TIMER__QUALIFIED_NAME = NAMED_ELEMENT__QUALIFIED_NAME; + + /** + * The number of structural features of the 'Timer' class. + * + * + * @generated + * @ordered + */ + int TIMER_FEATURE_COUNT = NAMED_ELEMENT_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int TIMER___CONTAINER = NAMED_ELEMENT___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int TIMER___GET_PARENT_TEST_DESCRIPTION = NAMED_ELEMENT___GET_PARENT_TEST_DESCRIPTION; + + /** + * The number of operations of the 'Timer' class. + * + * + * @generated + * @ordered + */ + int TIMER_OPERATION_COUNT = NAMED_ELEMENT_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.SpecialValueUseImpl Special Value Use}' class. + * + * + * @see org.etsi.mts.tdl.impl.SpecialValueUseImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getSpecialValueUse() + * @generated + */ + int SPECIAL_VALUE_USE = 39; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int SPECIAL_VALUE_USE__COMMENT = STATIC_DATA_USE__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int SPECIAL_VALUE_USE__ANNOTATION = STATIC_DATA_USE__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int SPECIAL_VALUE_USE__NAME = STATIC_DATA_USE__NAME; + + /** + * The feature id for the 'Argument' containment reference list. + * + * + * @generated + * @ordered + */ + int SPECIAL_VALUE_USE__ARGUMENT = STATIC_DATA_USE__ARGUMENT; + + /** + * The feature id for the 'Reduction' containment reference list. + * + * + * @generated + * @ordered + */ + int SPECIAL_VALUE_USE__REDUCTION = STATIC_DATA_USE__REDUCTION; + + /** + * The number of structural features of the 'Special Value Use' class. + * + * + * @generated + * @ordered + */ + int SPECIAL_VALUE_USE_FEATURE_COUNT = STATIC_DATA_USE_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int SPECIAL_VALUE_USE___CONTAINER = STATIC_DATA_USE___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int SPECIAL_VALUE_USE___GET_PARENT_TEST_DESCRIPTION = STATIC_DATA_USE___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Is Effectively Static' operation. + * + * + * @generated + * @ordered + */ + int SPECIAL_VALUE_USE___IS_EFFECTIVELY_STATIC = STATIC_DATA_USE___IS_EFFECTIVELY_STATIC; + + /** + * The operation id for the 'Resolve Data Type' operation. + * + * + * @generated + * @ordered + */ + int SPECIAL_VALUE_USE___RESOLVE_DATA_TYPE = STATIC_DATA_USE_OPERATION_COUNT + 0; + + /** + * The number of operations of the 'Special Value Use' class. + * + * + * @generated + * @ordered + */ + int SPECIAL_VALUE_USE_OPERATION_COUNT = STATIC_DATA_USE_OPERATION_COUNT + 1; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.OmitValueImpl Omit Value}' class. + * + * + * @see org.etsi.mts.tdl.impl.OmitValueImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getOmitValue() + * @generated + */ + int OMIT_VALUE = 38; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int OMIT_VALUE__COMMENT = SPECIAL_VALUE_USE__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int OMIT_VALUE__ANNOTATION = SPECIAL_VALUE_USE__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int OMIT_VALUE__NAME = SPECIAL_VALUE_USE__NAME; + + /** + * The feature id for the 'Argument' containment reference list. + * + * + * @generated + * @ordered + */ + int OMIT_VALUE__ARGUMENT = SPECIAL_VALUE_USE__ARGUMENT; + + /** + * The feature id for the 'Reduction' containment reference list. + * + * + * @generated + * @ordered + */ + int OMIT_VALUE__REDUCTION = SPECIAL_VALUE_USE__REDUCTION; + + /** + * The number of structural features of the 'Omit Value' class. + * + * + * @generated + * @ordered + */ + int OMIT_VALUE_FEATURE_COUNT = SPECIAL_VALUE_USE_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int OMIT_VALUE___CONTAINER = SPECIAL_VALUE_USE___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int OMIT_VALUE___GET_PARENT_TEST_DESCRIPTION = SPECIAL_VALUE_USE___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Is Effectively Static' operation. + * + * + * @generated + * @ordered + */ + int OMIT_VALUE___IS_EFFECTIVELY_STATIC = SPECIAL_VALUE_USE___IS_EFFECTIVELY_STATIC; + + /** + * The operation id for the 'Resolve Data Type' operation. + * + * + * @generated + * @ordered + */ + int OMIT_VALUE___RESOLVE_DATA_TYPE = SPECIAL_VALUE_USE___RESOLVE_DATA_TYPE; + + /** + * The number of operations of the 'Omit Value' class. + * + * + * @generated + * @ordered + */ + int OMIT_VALUE_OPERATION_COUNT = SPECIAL_VALUE_USE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.AnyValueImpl Any Value}' class. + * + * + * @see org.etsi.mts.tdl.impl.AnyValueImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getAnyValue() + * @generated + */ + int ANY_VALUE = 40; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int ANY_VALUE__COMMENT = SPECIAL_VALUE_USE__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int ANY_VALUE__ANNOTATION = SPECIAL_VALUE_USE__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int ANY_VALUE__NAME = SPECIAL_VALUE_USE__NAME; + + /** + * The feature id for the 'Argument' containment reference list. + * + * + * @generated + * @ordered + */ + int ANY_VALUE__ARGUMENT = SPECIAL_VALUE_USE__ARGUMENT; + + /** + * The feature id for the 'Reduction' containment reference list. + * + * + * @generated + * @ordered + */ + int ANY_VALUE__REDUCTION = SPECIAL_VALUE_USE__REDUCTION; + + /** + * The feature id for the 'Data Type' reference. + * + * + * @generated + * @ordered + */ + int ANY_VALUE__DATA_TYPE = SPECIAL_VALUE_USE_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Any Value' class. + * + * + * @generated + * @ordered + */ + int ANY_VALUE_FEATURE_COUNT = SPECIAL_VALUE_USE_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int ANY_VALUE___CONTAINER = SPECIAL_VALUE_USE___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int ANY_VALUE___GET_PARENT_TEST_DESCRIPTION = SPECIAL_VALUE_USE___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Is Effectively Static' operation. + * + * + * @generated + * @ordered + */ + int ANY_VALUE___IS_EFFECTIVELY_STATIC = SPECIAL_VALUE_USE___IS_EFFECTIVELY_STATIC; + + /** + * The operation id for the 'Resolve Data Type' operation. + * + * + * @generated + * @ordered + */ + int ANY_VALUE___RESOLVE_DATA_TYPE = SPECIAL_VALUE_USE_OPERATION_COUNT + 0; + + /** + * The number of operations of the 'Any Value' class. + * + * + * @generated + * @ordered + */ + int ANY_VALUE_OPERATION_COUNT = SPECIAL_VALUE_USE_OPERATION_COUNT + 1; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.AnyValueOrOmitImpl Any Value Or Omit}' class. + * + * + * @see org.etsi.mts.tdl.impl.AnyValueOrOmitImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getAnyValueOrOmit() + * @generated + */ + int ANY_VALUE_OR_OMIT = 41; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int ANY_VALUE_OR_OMIT__COMMENT = SPECIAL_VALUE_USE__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int ANY_VALUE_OR_OMIT__ANNOTATION = SPECIAL_VALUE_USE__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int ANY_VALUE_OR_OMIT__NAME = SPECIAL_VALUE_USE__NAME; + + /** + * The feature id for the 'Argument' containment reference list. + * + * + * @generated + * @ordered + */ + int ANY_VALUE_OR_OMIT__ARGUMENT = SPECIAL_VALUE_USE__ARGUMENT; + + /** + * The feature id for the 'Reduction' containment reference list. + * + * + * @generated + * @ordered + */ + int ANY_VALUE_OR_OMIT__REDUCTION = SPECIAL_VALUE_USE__REDUCTION; + + /** + * The number of structural features of the 'Any Value Or Omit' class. + * + * + * @generated + * @ordered + */ + int ANY_VALUE_OR_OMIT_FEATURE_COUNT = SPECIAL_VALUE_USE_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int ANY_VALUE_OR_OMIT___CONTAINER = SPECIAL_VALUE_USE___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int ANY_VALUE_OR_OMIT___GET_PARENT_TEST_DESCRIPTION = SPECIAL_VALUE_USE___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Is Effectively Static' operation. + * + * + * @generated + * @ordered + */ + int ANY_VALUE_OR_OMIT___IS_EFFECTIVELY_STATIC = SPECIAL_VALUE_USE___IS_EFFECTIVELY_STATIC; + + /** + * The operation id for the 'Resolve Data Type' operation. + * + * + * @generated + * @ordered + */ + int ANY_VALUE_OR_OMIT___RESOLVE_DATA_TYPE = SPECIAL_VALUE_USE___RESOLVE_DATA_TYPE; + + /** + * The number of operations of the 'Any Value Or Omit' class. + * + * + * @generated + * @ordered + */ + int ANY_VALUE_OR_OMIT_OPERATION_COUNT = SPECIAL_VALUE_USE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.DataInstanceUseImpl Data Instance Use}' class. + * + * + * @see org.etsi.mts.tdl.impl.DataInstanceUseImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getDataInstanceUse() + * @generated + */ + int DATA_INSTANCE_USE = 42; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int DATA_INSTANCE_USE__COMMENT = STATIC_DATA_USE__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int DATA_INSTANCE_USE__ANNOTATION = STATIC_DATA_USE__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int DATA_INSTANCE_USE__NAME = STATIC_DATA_USE__NAME; + + /** + * The feature id for the 'Argument' containment reference list. + * + * + * @generated + * @ordered + */ + int DATA_INSTANCE_USE__ARGUMENT = STATIC_DATA_USE__ARGUMENT; + + /** + * The feature id for the 'Reduction' containment reference list. + * + * + * @generated + * @ordered + */ + int DATA_INSTANCE_USE__REDUCTION = STATIC_DATA_USE__REDUCTION; + + /** + * The feature id for the 'Data Instance' reference. + * + * + * @generated + * @ordered + */ + int DATA_INSTANCE_USE__DATA_INSTANCE = STATIC_DATA_USE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Unassigned Member' attribute. + * + * + * @generated + * @ordered + */ + int DATA_INSTANCE_USE__UNASSIGNED_MEMBER = STATIC_DATA_USE_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Data Type' reference. + * + * + * @generated + * @ordered + */ + int DATA_INSTANCE_USE__DATA_TYPE = STATIC_DATA_USE_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Item' containment reference list. + * + * + * @generated + * @ordered + */ + int DATA_INSTANCE_USE__ITEM = STATIC_DATA_USE_FEATURE_COUNT + 3; + + /** + * The number of structural features of the 'Data Instance Use' class. + * + * + * @generated + * @ordered + */ + int DATA_INSTANCE_USE_FEATURE_COUNT = STATIC_DATA_USE_FEATURE_COUNT + 4; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int DATA_INSTANCE_USE___CONTAINER = STATIC_DATA_USE___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int DATA_INSTANCE_USE___GET_PARENT_TEST_DESCRIPTION = STATIC_DATA_USE___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Is Effectively Static' operation. + * + * + * @generated + * @ordered + */ + int DATA_INSTANCE_USE___IS_EFFECTIVELY_STATIC = STATIC_DATA_USE___IS_EFFECTIVELY_STATIC; + + /** + * The operation id for the 'Resolve Data Type' operation. + * + * + * @generated + * @ordered + */ + int DATA_INSTANCE_USE___RESOLVE_DATA_TYPE = STATIC_DATA_USE_OPERATION_COUNT + 0; + + /** + * The number of operations of the 'Data Instance Use' class. + * + * + * @generated + * @ordered + */ + int DATA_INSTANCE_USE_OPERATION_COUNT = STATIC_DATA_USE_OPERATION_COUNT + 1; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.TimeImpl Time}' class. + * + * + * @see org.etsi.mts.tdl.impl.TimeImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getTime() + * @generated + */ + int TIME = 43; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int TIME__COMMENT = SIMPLE_DATA_TYPE__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int TIME__ANNOTATION = SIMPLE_DATA_TYPE__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int TIME__NAME = SIMPLE_DATA_TYPE__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int TIME__QUALIFIED_NAME = SIMPLE_DATA_TYPE__QUALIFIED_NAME; + + /** + * The feature id for the 'Constraint' containment reference list. + * + * + * @generated + * @ordered + */ + int TIME__CONSTRAINT = SIMPLE_DATA_TYPE__CONSTRAINT; + + /** + * The feature id for the 'Extension' containment reference. + * + * + * @generated + * @ordered + */ + int TIME__EXTENSION = SIMPLE_DATA_TYPE__EXTENSION; + + /** + * The number of structural features of the 'Time' class. + * + * + * @generated + * @ordered + */ + int TIME_FEATURE_COUNT = SIMPLE_DATA_TYPE_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int TIME___CONTAINER = SIMPLE_DATA_TYPE___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int TIME___GET_PARENT_TEST_DESCRIPTION = SIMPLE_DATA_TYPE___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Conforms To' operation. + * + * + * @generated + * @ordered + */ + int TIME___CONFORMS_TO__STRING = SIMPLE_DATA_TYPE___CONFORMS_TO__STRING; + + /** + * The operation id for the 'Get Element Named' operation. + * + * + * @generated + * @ordered + */ + int TIME___GET_ELEMENT_NAMED__STRING = SIMPLE_DATA_TYPE___GET_ELEMENT_NAMED__STRING; + + /** + * The operation id for the 'Conforms To' operation. + * + * + * @generated + * @ordered + */ + int TIME___CONFORMS_TO__PACKAGEABLEELEMENT = SIMPLE_DATA_TYPE___CONFORMS_TO__PACKAGEABLEELEMENT; + + /** + * The operation id for the 'All Constraints' operation. + * + * + * @generated + * @ordered + */ + int TIME___ALL_CONSTRAINTS = SIMPLE_DATA_TYPE___ALL_CONSTRAINTS; + + /** + * The number of operations of the 'Time' class. + * + * + * @generated + * @ordered + */ + int TIME_OPERATION_COUNT = SIMPLE_DATA_TYPE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.TimeLabelImpl Time Label}' class. + * + * + * @see org.etsi.mts.tdl.impl.TimeLabelImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getTimeLabel() + * @generated + */ + int TIME_LABEL = 44; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int TIME_LABEL__COMMENT = NAMED_ELEMENT__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int TIME_LABEL__ANNOTATION = NAMED_ELEMENT__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int TIME_LABEL__NAME = NAMED_ELEMENT__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int TIME_LABEL__QUALIFIED_NAME = NAMED_ELEMENT__QUALIFIED_NAME; + + /** + * The number of structural features of the 'Time Label' class. + * + * + * @generated + * @ordered + */ + int TIME_LABEL_FEATURE_COUNT = NAMED_ELEMENT_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int TIME_LABEL___CONTAINER = NAMED_ELEMENT___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int TIME_LABEL___GET_PARENT_TEST_DESCRIPTION = NAMED_ELEMENT___GET_PARENT_TEST_DESCRIPTION; + + /** + * The number of operations of the 'Time Label' class. + * + * + * @generated + * @ordered + */ + int TIME_LABEL_OPERATION_COUNT = NAMED_ELEMENT_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.BehaviourImpl Behaviour}' class. + * + * + * @see org.etsi.mts.tdl.impl.BehaviourImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getBehaviour() + * @generated + */ + int BEHAVIOUR = 47; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIOUR__COMMENT = ELEMENT__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIOUR__ANNOTATION = ELEMENT__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int BEHAVIOUR__NAME = ELEMENT__NAME; + + /** + * The feature id for the 'Test Objective' reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIOUR__TEST_OBJECTIVE = ELEMENT_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Behaviour' class. + * + * + * @generated + * @ordered + */ + int BEHAVIOUR_FEATURE_COUNT = ELEMENT_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int BEHAVIOUR___CONTAINER = ELEMENT___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int BEHAVIOUR___GET_PARENT_TEST_DESCRIPTION = ELEMENT___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Is Tester Input Event' operation. + * + * + * @generated + * @ordered + */ + int BEHAVIOUR___IS_TESTER_INPUT_EVENT = ELEMENT_OPERATION_COUNT + 0; + + /** + * The operation id for the 'Get Participating Components' operation. + * + * + * @generated + * @ordered + */ + int BEHAVIOUR___GET_PARTICIPATING_COMPONENTS = ELEMENT_OPERATION_COUNT + 1; + + /** + * The number of operations of the 'Behaviour' class. + * + * + * @generated + * @ordered + */ + int BEHAVIOUR_OPERATION_COUNT = ELEMENT_OPERATION_COUNT + 2; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.AtomicBehaviourImpl Atomic Behaviour}' class. + * + * + * @see org.etsi.mts.tdl.impl.AtomicBehaviourImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getAtomicBehaviour() + * @generated + */ + int ATOMIC_BEHAVIOUR = 46; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int ATOMIC_BEHAVIOUR__COMMENT = BEHAVIOUR__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int ATOMIC_BEHAVIOUR__ANNOTATION = BEHAVIOUR__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int ATOMIC_BEHAVIOUR__NAME = BEHAVIOUR__NAME; + + /** + * The feature id for the 'Test Objective' reference list. + * + * + * @generated + * @ordered + */ + int ATOMIC_BEHAVIOUR__TEST_OBJECTIVE = BEHAVIOUR__TEST_OBJECTIVE; + + /** + * The feature id for the 'Time Constraint' containment reference list. + * + * + * @generated + * @ordered + */ + int ATOMIC_BEHAVIOUR__TIME_CONSTRAINT = BEHAVIOUR_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Time Label' containment reference. + * + * + * @generated + * @ordered + */ + int ATOMIC_BEHAVIOUR__TIME_LABEL = BEHAVIOUR_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Atomic Behaviour' class. + * + * + * @generated + * @ordered + */ + int ATOMIC_BEHAVIOUR_FEATURE_COUNT = BEHAVIOUR_FEATURE_COUNT + 2; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int ATOMIC_BEHAVIOUR___CONTAINER = BEHAVIOUR___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int ATOMIC_BEHAVIOUR___GET_PARENT_TEST_DESCRIPTION = BEHAVIOUR___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Is Tester Input Event' operation. + * + * + * @generated + * @ordered + */ + int ATOMIC_BEHAVIOUR___IS_TESTER_INPUT_EVENT = BEHAVIOUR___IS_TESTER_INPUT_EVENT; + + /** + * The operation id for the 'Get Participating Components' operation. + * + * + * @generated + * @ordered + */ + int ATOMIC_BEHAVIOUR___GET_PARTICIPATING_COMPONENTS = BEHAVIOUR_OPERATION_COUNT + 0; + + /** + * The number of operations of the 'Atomic Behaviour' class. + * + * + * @generated + * @ordered + */ + int ATOMIC_BEHAVIOUR_OPERATION_COUNT = BEHAVIOUR_OPERATION_COUNT + 1; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.TimerOperationImpl Timer Operation}' class. + * + * + * @see org.etsi.mts.tdl.impl.TimerOperationImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getTimerOperation() + * @generated + */ + int TIMER_OPERATION = 45; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int TIMER_OPERATION__COMMENT = ATOMIC_BEHAVIOUR__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int TIMER_OPERATION__ANNOTATION = ATOMIC_BEHAVIOUR__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int TIMER_OPERATION__NAME = ATOMIC_BEHAVIOUR__NAME; + + /** + * The feature id for the 'Test Objective' reference list. + * + * + * @generated + * @ordered + */ + int TIMER_OPERATION__TEST_OBJECTIVE = ATOMIC_BEHAVIOUR__TEST_OBJECTIVE; + + /** + * The feature id for the 'Time Constraint' containment reference list. + * + * + * @generated + * @ordered + */ + int TIMER_OPERATION__TIME_CONSTRAINT = ATOMIC_BEHAVIOUR__TIME_CONSTRAINT; + + /** + * The feature id for the 'Time Label' containment reference. + * + * + * @generated + * @ordered + */ + int TIMER_OPERATION__TIME_LABEL = ATOMIC_BEHAVIOUR__TIME_LABEL; + + /** + * The feature id for the 'Timer' reference. + * + * + * @generated + * @ordered + */ + int TIMER_OPERATION__TIMER = ATOMIC_BEHAVIOUR_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Component Instance' reference. + * + * + * @generated + * @ordered + */ + int TIMER_OPERATION__COMPONENT_INSTANCE = ATOMIC_BEHAVIOUR_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Timer Operation' class. + * + * + * @generated + * @ordered + */ + int TIMER_OPERATION_FEATURE_COUNT = ATOMIC_BEHAVIOUR_FEATURE_COUNT + 2; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int TIMER_OPERATION___CONTAINER = ATOMIC_BEHAVIOUR___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int TIMER_OPERATION___GET_PARENT_TEST_DESCRIPTION = ATOMIC_BEHAVIOUR___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Is Tester Input Event' operation. + * + * + * @generated + * @ordered + */ + int TIMER_OPERATION___IS_TESTER_INPUT_EVENT = ATOMIC_BEHAVIOUR___IS_TESTER_INPUT_EVENT; + + /** + * The operation id for the 'Get Participating Components' operation. + * + * + * @generated + * @ordered + */ + int TIMER_OPERATION___GET_PARTICIPATING_COMPONENTS = ATOMIC_BEHAVIOUR_OPERATION_COUNT + 0; + + /** + * The number of operations of the 'Timer Operation' class. + * + * + * @generated + * @ordered + */ + int TIMER_OPERATION_OPERATION_COUNT = ATOMIC_BEHAVIOUR_OPERATION_COUNT + 1; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.TimeConstraintImpl Time Constraint}' class. + * + * + * @see org.etsi.mts.tdl.impl.TimeConstraintImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getTimeConstraint() + * @generated + */ + int TIME_CONSTRAINT = 48; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int TIME_CONSTRAINT__COMMENT = ELEMENT__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int TIME_CONSTRAINT__ANNOTATION = ELEMENT__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int TIME_CONSTRAINT__NAME = ELEMENT__NAME; + + /** + * The feature id for the 'Time Constraint Expression' containment reference. + * + * + * @generated + * @ordered + */ + int TIME_CONSTRAINT__TIME_CONSTRAINT_EXPRESSION = ELEMENT_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Time Constraint' class. + * + * + * @generated + * @ordered + */ + int TIME_CONSTRAINT_FEATURE_COUNT = ELEMENT_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int TIME_CONSTRAINT___CONTAINER = ELEMENT___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int TIME_CONSTRAINT___GET_PARENT_TEST_DESCRIPTION = ELEMENT___GET_PARENT_TEST_DESCRIPTION; + + /** + * The number of operations of the 'Time Constraint' class. + * + * + * @generated + * @ordered + */ + int TIME_CONSTRAINT_OPERATION_COUNT = ELEMENT_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.TimerStartImpl Timer Start}' class. + * + * + * @see org.etsi.mts.tdl.impl.TimerStartImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getTimerStart() + * @generated + */ + int TIMER_START = 49; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int TIMER_START__COMMENT = TIMER_OPERATION__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int TIMER_START__ANNOTATION = TIMER_OPERATION__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int TIMER_START__NAME = TIMER_OPERATION__NAME; + + /** + * The feature id for the 'Test Objective' reference list. + * + * + * @generated + * @ordered + */ + int TIMER_START__TEST_OBJECTIVE = TIMER_OPERATION__TEST_OBJECTIVE; + + /** + * The feature id for the 'Time Constraint' containment reference list. + * + * + * @generated + * @ordered + */ + int TIMER_START__TIME_CONSTRAINT = TIMER_OPERATION__TIME_CONSTRAINT; + + /** + * The feature id for the 'Time Label' containment reference. + * + * + * @generated + * @ordered + */ + int TIMER_START__TIME_LABEL = TIMER_OPERATION__TIME_LABEL; + + /** + * The feature id for the 'Timer' reference. + * + * + * @generated + * @ordered + */ + int TIMER_START__TIMER = TIMER_OPERATION__TIMER; + + /** + * The feature id for the 'Component Instance' reference. + * + * + * @generated + * @ordered + */ + int TIMER_START__COMPONENT_INSTANCE = TIMER_OPERATION__COMPONENT_INSTANCE; + + /** + * The feature id for the 'Period' containment reference. + * + * + * @generated + * @ordered + */ + int TIMER_START__PERIOD = TIMER_OPERATION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Timer Start' class. + * + * + * @generated + * @ordered + */ + int TIMER_START_FEATURE_COUNT = TIMER_OPERATION_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int TIMER_START___CONTAINER = TIMER_OPERATION___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int TIMER_START___GET_PARENT_TEST_DESCRIPTION = TIMER_OPERATION___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Is Tester Input Event' operation. + * + * + * @generated + * @ordered + */ + int TIMER_START___IS_TESTER_INPUT_EVENT = TIMER_OPERATION___IS_TESTER_INPUT_EVENT; + + /** + * The operation id for the 'Get Participating Components' operation. + * + * + * @generated + * @ordered + */ + int TIMER_START___GET_PARTICIPATING_COMPONENTS = TIMER_OPERATION___GET_PARTICIPATING_COMPONENTS; + + /** + * The number of operations of the 'Timer Start' class. + * + * + * @generated + * @ordered + */ + int TIMER_START_OPERATION_COUNT = TIMER_OPERATION_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.TimerStopImpl Timer Stop}' class. + * + * + * @see org.etsi.mts.tdl.impl.TimerStopImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getTimerStop() + * @generated + */ + int TIMER_STOP = 50; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int TIMER_STOP__COMMENT = TIMER_OPERATION__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int TIMER_STOP__ANNOTATION = TIMER_OPERATION__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int TIMER_STOP__NAME = TIMER_OPERATION__NAME; + + /** + * The feature id for the 'Test Objective' reference list. + * + * + * @generated + * @ordered + */ + int TIMER_STOP__TEST_OBJECTIVE = TIMER_OPERATION__TEST_OBJECTIVE; + + /** + * The feature id for the 'Time Constraint' containment reference list. + * + * + * @generated + * @ordered + */ + int TIMER_STOP__TIME_CONSTRAINT = TIMER_OPERATION__TIME_CONSTRAINT; + + /** + * The feature id for the 'Time Label' containment reference. + * + * + * @generated + * @ordered + */ + int TIMER_STOP__TIME_LABEL = TIMER_OPERATION__TIME_LABEL; + + /** + * The feature id for the 'Timer' reference. + * + * + * @generated + * @ordered + */ + int TIMER_STOP__TIMER = TIMER_OPERATION__TIMER; + + /** + * The feature id for the 'Component Instance' reference. + * + * + * @generated + * @ordered + */ + int TIMER_STOP__COMPONENT_INSTANCE = TIMER_OPERATION__COMPONENT_INSTANCE; + + /** + * The number of structural features of the 'Timer Stop' class. + * + * + * @generated + * @ordered + */ + int TIMER_STOP_FEATURE_COUNT = TIMER_OPERATION_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int TIMER_STOP___CONTAINER = TIMER_OPERATION___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int TIMER_STOP___GET_PARENT_TEST_DESCRIPTION = TIMER_OPERATION___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Is Tester Input Event' operation. + * + * + * @generated + * @ordered + */ + int TIMER_STOP___IS_TESTER_INPUT_EVENT = TIMER_OPERATION___IS_TESTER_INPUT_EVENT; + + /** + * The operation id for the 'Get Participating Components' operation. + * + * + * @generated + * @ordered + */ + int TIMER_STOP___GET_PARTICIPATING_COMPONENTS = TIMER_OPERATION___GET_PARTICIPATING_COMPONENTS; + + /** + * The number of operations of the 'Timer Stop' class. + * + * + * @generated + * @ordered + */ + int TIMER_STOP_OPERATION_COUNT = TIMER_OPERATION_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.TimeOutImpl Time Out}' class. + * + * + * @see org.etsi.mts.tdl.impl.TimeOutImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getTimeOut() + * @generated + */ + int TIME_OUT = 51; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int TIME_OUT__COMMENT = TIMER_OPERATION__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int TIME_OUT__ANNOTATION = TIMER_OPERATION__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int TIME_OUT__NAME = TIMER_OPERATION__NAME; + + /** + * The feature id for the 'Test Objective' reference list. + * + * + * @generated + * @ordered + */ + int TIME_OUT__TEST_OBJECTIVE = TIMER_OPERATION__TEST_OBJECTIVE; + + /** + * The feature id for the 'Time Constraint' containment reference list. + * + * + * @generated + * @ordered + */ + int TIME_OUT__TIME_CONSTRAINT = TIMER_OPERATION__TIME_CONSTRAINT; + + /** + * The feature id for the 'Time Label' containment reference. + * + * + * @generated + * @ordered + */ + int TIME_OUT__TIME_LABEL = TIMER_OPERATION__TIME_LABEL; + + /** + * The feature id for the 'Timer' reference. + * + * + * @generated + * @ordered + */ + int TIME_OUT__TIMER = TIMER_OPERATION__TIMER; + + /** + * The feature id for the 'Component Instance' reference. + * + * + * @generated + * @ordered + */ + int TIME_OUT__COMPONENT_INSTANCE = TIMER_OPERATION__COMPONENT_INSTANCE; + + /** + * The number of structural features of the 'Time Out' class. + * + * + * @generated + * @ordered + */ + int TIME_OUT_FEATURE_COUNT = TIMER_OPERATION_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int TIME_OUT___CONTAINER = TIMER_OPERATION___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int TIME_OUT___GET_PARENT_TEST_DESCRIPTION = TIMER_OPERATION___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Is Tester Input Event' operation. + * + * + * @generated + * @ordered + */ + int TIME_OUT___IS_TESTER_INPUT_EVENT = TIMER_OPERATION___IS_TESTER_INPUT_EVENT; + + /** + * The operation id for the 'Get Participating Components' operation. + * + * + * @generated + * @ordered + */ + int TIME_OUT___GET_PARTICIPATING_COMPONENTS = TIMER_OPERATION___GET_PARTICIPATING_COMPONENTS; + + /** + * The number of operations of the 'Time Out' class. + * + * + * @generated + * @ordered + */ + int TIME_OUT_OPERATION_COUNT = TIMER_OPERATION_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.TimeOperationImpl Time Operation}' class. + * + * + * @see org.etsi.mts.tdl.impl.TimeOperationImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getTimeOperation() + * @generated + */ + int TIME_OPERATION = 52; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int TIME_OPERATION__COMMENT = ATOMIC_BEHAVIOUR__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int TIME_OPERATION__ANNOTATION = ATOMIC_BEHAVIOUR__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int TIME_OPERATION__NAME = ATOMIC_BEHAVIOUR__NAME; + + /** + * The feature id for the 'Test Objective' reference list. + * + * + * @generated + * @ordered + */ + int TIME_OPERATION__TEST_OBJECTIVE = ATOMIC_BEHAVIOUR__TEST_OBJECTIVE; + + /** + * The feature id for the 'Time Constraint' containment reference list. + * + * + * @generated + * @ordered + */ + int TIME_OPERATION__TIME_CONSTRAINT = ATOMIC_BEHAVIOUR__TIME_CONSTRAINT; + + /** + * The feature id for the 'Time Label' containment reference. + * + * + * @generated + * @ordered + */ + int TIME_OPERATION__TIME_LABEL = ATOMIC_BEHAVIOUR__TIME_LABEL; + + /** + * The feature id for the 'Component Instance' reference. + * + * + * @generated + * @ordered + */ + int TIME_OPERATION__COMPONENT_INSTANCE = ATOMIC_BEHAVIOUR_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Period' containment reference. + * + * + * @generated + * @ordered + */ + int TIME_OPERATION__PERIOD = ATOMIC_BEHAVIOUR_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Time Operation' class. + * + * + * @generated + * @ordered + */ + int TIME_OPERATION_FEATURE_COUNT = ATOMIC_BEHAVIOUR_FEATURE_COUNT + 2; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int TIME_OPERATION___CONTAINER = ATOMIC_BEHAVIOUR___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int TIME_OPERATION___GET_PARENT_TEST_DESCRIPTION = ATOMIC_BEHAVIOUR___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Is Tester Input Event' operation. + * + * + * @generated + * @ordered + */ + int TIME_OPERATION___IS_TESTER_INPUT_EVENT = ATOMIC_BEHAVIOUR___IS_TESTER_INPUT_EVENT; + + /** + * The operation id for the 'Get Participating Components' operation. + * + * + * @generated + * @ordered + */ + int TIME_OPERATION___GET_PARTICIPATING_COMPONENTS = ATOMIC_BEHAVIOUR_OPERATION_COUNT + 0; + + /** + * The number of operations of the 'Time Operation' class. + * + * + * @generated + * @ordered + */ + int TIME_OPERATION_OPERATION_COUNT = ATOMIC_BEHAVIOUR_OPERATION_COUNT + 1; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.WaitImpl Wait}' class. + * + * + * @see org.etsi.mts.tdl.impl.WaitImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getWait() + * @generated + */ + int WAIT = 53; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int WAIT__COMMENT = TIME_OPERATION__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int WAIT__ANNOTATION = TIME_OPERATION__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int WAIT__NAME = TIME_OPERATION__NAME; + + /** + * The feature id for the 'Test Objective' reference list. + * + * + * @generated + * @ordered + */ + int WAIT__TEST_OBJECTIVE = TIME_OPERATION__TEST_OBJECTIVE; + + /** + * The feature id for the 'Time Constraint' containment reference list. + * + * + * @generated + * @ordered + */ + int WAIT__TIME_CONSTRAINT = TIME_OPERATION__TIME_CONSTRAINT; + + /** + * The feature id for the 'Time Label' containment reference. + * + * + * @generated + * @ordered + */ + int WAIT__TIME_LABEL = TIME_OPERATION__TIME_LABEL; + + /** + * The feature id for the 'Component Instance' reference. + * + * + * @generated + * @ordered + */ + int WAIT__COMPONENT_INSTANCE = TIME_OPERATION__COMPONENT_INSTANCE; + + /** + * The feature id for the 'Period' containment reference. + * + * + * @generated + * @ordered + */ + int WAIT__PERIOD = TIME_OPERATION__PERIOD; + + /** + * The number of structural features of the 'Wait' class. + * + * + * @generated + * @ordered + */ + int WAIT_FEATURE_COUNT = TIME_OPERATION_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int WAIT___CONTAINER = TIME_OPERATION___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int WAIT___GET_PARENT_TEST_DESCRIPTION = TIME_OPERATION___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Is Tester Input Event' operation. + * + * + * @generated + * @ordered + */ + int WAIT___IS_TESTER_INPUT_EVENT = TIME_OPERATION___IS_TESTER_INPUT_EVENT; + + /** + * The operation id for the 'Get Participating Components' operation. + * + * + * @generated + * @ordered + */ + int WAIT___GET_PARTICIPATING_COMPONENTS = TIME_OPERATION___GET_PARTICIPATING_COMPONENTS; + + /** + * The number of operations of the 'Wait' class. + * + * + * @generated + * @ordered + */ + int WAIT_OPERATION_COUNT = TIME_OPERATION_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.QuiescenceImpl Quiescence}' class. + * + * + * @see org.etsi.mts.tdl.impl.QuiescenceImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getQuiescence() + * @generated + */ + int QUIESCENCE = 54; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int QUIESCENCE__COMMENT = TIME_OPERATION__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int QUIESCENCE__ANNOTATION = TIME_OPERATION__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int QUIESCENCE__NAME = TIME_OPERATION__NAME; + + /** + * The feature id for the 'Test Objective' reference list. + * + * + * @generated + * @ordered + */ + int QUIESCENCE__TEST_OBJECTIVE = TIME_OPERATION__TEST_OBJECTIVE; + + /** + * The feature id for the 'Time Constraint' containment reference list. + * + * + * @generated + * @ordered + */ + int QUIESCENCE__TIME_CONSTRAINT = TIME_OPERATION__TIME_CONSTRAINT; + + /** + * The feature id for the 'Time Label' containment reference. + * + * + * @generated + * @ordered + */ + int QUIESCENCE__TIME_LABEL = TIME_OPERATION__TIME_LABEL; + + /** + * The feature id for the 'Component Instance' reference. + * + * + * @generated + * @ordered + */ + int QUIESCENCE__COMPONENT_INSTANCE = TIME_OPERATION__COMPONENT_INSTANCE; + + /** + * The feature id for the 'Period' containment reference. + * + * + * @generated + * @ordered + */ + int QUIESCENCE__PERIOD = TIME_OPERATION__PERIOD; + + /** + * The feature id for the 'Gate Reference' reference. + * + * + * @generated + * @ordered + */ + int QUIESCENCE__GATE_REFERENCE = TIME_OPERATION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Quiescence' class. + * + * + * @generated + * @ordered + */ + int QUIESCENCE_FEATURE_COUNT = TIME_OPERATION_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int QUIESCENCE___CONTAINER = TIME_OPERATION___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int QUIESCENCE___GET_PARENT_TEST_DESCRIPTION = TIME_OPERATION___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Is Tester Input Event' operation. + * + * + * @generated + * @ordered + */ + int QUIESCENCE___IS_TESTER_INPUT_EVENT = TIME_OPERATION___IS_TESTER_INPUT_EVENT; + + /** + * The operation id for the 'Get Participating Components' operation. + * + * + * @generated + * @ordered + */ + int QUIESCENCE___GET_PARTICIPATING_COMPONENTS = TIME_OPERATION_OPERATION_COUNT + 0; + + /** + * The number of operations of the 'Quiescence' class. + * + * + * @generated + * @ordered + */ + int QUIESCENCE_OPERATION_COUNT = TIME_OPERATION_OPERATION_COUNT + 1; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.GateReferenceImpl Gate Reference}' class. + * + * + * @see org.etsi.mts.tdl.impl.GateReferenceImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getGateReference() + * @generated + */ + int GATE_REFERENCE = 55; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int GATE_REFERENCE__COMMENT = ELEMENT__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int GATE_REFERENCE__ANNOTATION = ELEMENT__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int GATE_REFERENCE__NAME = ELEMENT__NAME; + + /** + * The feature id for the 'Component' reference. + * + * + * @generated + * @ordered + */ + int GATE_REFERENCE__COMPONENT = ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Gate' reference. + * + * + * @generated + * @ordered + */ + int GATE_REFERENCE__GATE = ELEMENT_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Gate Reference' class. + * + * + * @generated + * @ordered + */ + int GATE_REFERENCE_FEATURE_COUNT = ELEMENT_FEATURE_COUNT + 2; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int GATE_REFERENCE___CONTAINER = ELEMENT___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int GATE_REFERENCE___GET_PARENT_TEST_DESCRIPTION = ELEMENT___GET_PARENT_TEST_DESCRIPTION; + + /** + * The number of operations of the 'Gate Reference' class. + * + * + * @generated + * @ordered + */ + int GATE_REFERENCE_OPERATION_COUNT = ELEMENT_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.TimeLabelUseImpl Time Label Use}' class. + * + * + * @see org.etsi.mts.tdl.impl.TimeLabelUseImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getTimeLabelUse() + * @generated + */ + int TIME_LABEL_USE = 56; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int TIME_LABEL_USE__COMMENT = DYNAMIC_DATA_USE__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int TIME_LABEL_USE__ANNOTATION = DYNAMIC_DATA_USE__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int TIME_LABEL_USE__NAME = DYNAMIC_DATA_USE__NAME; + + /** + * The feature id for the 'Argument' containment reference list. + * + * + * @generated + * @ordered + */ + int TIME_LABEL_USE__ARGUMENT = DYNAMIC_DATA_USE__ARGUMENT; + + /** + * The feature id for the 'Reduction' containment reference list. + * + * + * @generated + * @ordered + */ + int TIME_LABEL_USE__REDUCTION = DYNAMIC_DATA_USE__REDUCTION; + + /** + * The feature id for the 'Time Label' reference. + * + * + * @generated + * @ordered + */ + int TIME_LABEL_USE__TIME_LABEL = DYNAMIC_DATA_USE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Kind' attribute. + * + * + * @generated + * @ordered + */ + int TIME_LABEL_USE__KIND = DYNAMIC_DATA_USE_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Time Label Use' class. + * + * + * @generated + * @ordered + */ + int TIME_LABEL_USE_FEATURE_COUNT = DYNAMIC_DATA_USE_FEATURE_COUNT + 2; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int TIME_LABEL_USE___CONTAINER = DYNAMIC_DATA_USE___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int TIME_LABEL_USE___GET_PARENT_TEST_DESCRIPTION = DYNAMIC_DATA_USE___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Is Effectively Static' operation. + * + * + * @generated + * @ordered + */ + int TIME_LABEL_USE___IS_EFFECTIVELY_STATIC = DYNAMIC_DATA_USE___IS_EFFECTIVELY_STATIC; + + /** + * The operation id for the 'Resolve Data Type' operation. + * + * + * @generated + * @ordered + */ + int TIME_LABEL_USE___RESOLVE_DATA_TYPE = DYNAMIC_DATA_USE_OPERATION_COUNT + 0; + + /** + * The number of operations of the 'Time Label Use' class. + * + * + * @generated + * @ordered + */ + int TIME_LABEL_USE_OPERATION_COUNT = DYNAMIC_DATA_USE_OPERATION_COUNT + 1; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.TestConfigurationImpl Test Configuration}' class. + * + * + * @see org.etsi.mts.tdl.impl.TestConfigurationImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getTestConfiguration() + * @generated + */ + int TEST_CONFIGURATION = 57; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int TEST_CONFIGURATION__COMMENT = PACKAGEABLE_ELEMENT__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int TEST_CONFIGURATION__ANNOTATION = PACKAGEABLE_ELEMENT__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int TEST_CONFIGURATION__NAME = PACKAGEABLE_ELEMENT__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int TEST_CONFIGURATION__QUALIFIED_NAME = PACKAGEABLE_ELEMENT__QUALIFIED_NAME; + + /** + * The feature id for the 'Component Instance' containment reference list. + * + * + * @generated + * @ordered + */ + int TEST_CONFIGURATION__COMPONENT_INSTANCE = PACKAGEABLE_ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Connection' containment reference list. + * + * + * @generated + * @ordered + */ + int TEST_CONFIGURATION__CONNECTION = PACKAGEABLE_ELEMENT_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Test Configuration' class. + * + * + * @generated + * @ordered + */ + int TEST_CONFIGURATION_FEATURE_COUNT = PACKAGEABLE_ELEMENT_FEATURE_COUNT + 2; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int TEST_CONFIGURATION___CONTAINER = PACKAGEABLE_ELEMENT___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int TEST_CONFIGURATION___GET_PARENT_TEST_DESCRIPTION = PACKAGEABLE_ELEMENT___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Conforms To' operation. + * + * + * @generated + * @ordered + */ + int TEST_CONFIGURATION___CONFORMS_TO__STRING = PACKAGEABLE_ELEMENT___CONFORMS_TO__STRING; + + /** + * The operation id for the 'Get Element Named' operation. + * + * + * @generated + * @ordered + */ + int TEST_CONFIGURATION___GET_ELEMENT_NAMED__STRING = PACKAGEABLE_ELEMENT___GET_ELEMENT_NAMED__STRING; + + /** + * The operation id for the 'Conforms To' operation. + * + * + * @generated + * @ordered + */ + int TEST_CONFIGURATION___CONFORMS_TO__PACKAGEABLEELEMENT = PACKAGEABLE_ELEMENT___CONFORMS_TO__PACKAGEABLEELEMENT; + + /** + * The operation id for the 'Compatible With' operation. + * + * + * @generated + * @ordered + */ + int TEST_CONFIGURATION___COMPATIBLE_WITH__TESTCONFIGURATION_ELIST = PACKAGEABLE_ELEMENT_OPERATION_COUNT + 0; + + /** + * The number of operations of the 'Test Configuration' class. + * + * + * @generated + * @ordered + */ + int TEST_CONFIGURATION_OPERATION_COUNT = PACKAGEABLE_ELEMENT_OPERATION_COUNT + 1; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.ConnectionImpl Connection}' class. + * + * + * @see org.etsi.mts.tdl.impl.ConnectionImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getConnection() + * @generated + */ + int CONNECTION = 58; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION__COMMENT = ELEMENT__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION__ANNOTATION = ELEMENT__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTION__NAME = ELEMENT__NAME; + + /** + * The feature id for the 'End Point' containment reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION__END_POINT = ELEMENT_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Connection' class. + * + * + * @generated + * @ordered + */ + int CONNECTION_FEATURE_COUNT = ELEMENT_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int CONNECTION___CONTAINER = ELEMENT___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int CONNECTION___GET_PARENT_TEST_DESCRIPTION = ELEMENT___GET_PARENT_TEST_DESCRIPTION; + + /** + * The number of operations of the 'Connection' class. + * + * + * @generated + * @ordered + */ + int CONNECTION_OPERATION_COUNT = ELEMENT_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.TestDescriptionImpl Test Description}' class. + * + * + * @see org.etsi.mts.tdl.impl.TestDescriptionImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getTestDescription() + * @generated + */ + int TEST_DESCRIPTION = 59; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int TEST_DESCRIPTION__COMMENT = PACKAGEABLE_ELEMENT__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int TEST_DESCRIPTION__ANNOTATION = PACKAGEABLE_ELEMENT__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int TEST_DESCRIPTION__NAME = PACKAGEABLE_ELEMENT__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int TEST_DESCRIPTION__QUALIFIED_NAME = PACKAGEABLE_ELEMENT__QUALIFIED_NAME; + + /** + * The feature id for the 'Test Configuration' reference. + * + * + * @generated + * @ordered + */ + int TEST_DESCRIPTION__TEST_CONFIGURATION = PACKAGEABLE_ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Formal Parameter' containment reference list. + * + * + * @generated + * @ordered + */ + int TEST_DESCRIPTION__FORMAL_PARAMETER = PACKAGEABLE_ELEMENT_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Behaviour Description' containment reference. + * + * + * @generated + * @ordered + */ + int TEST_DESCRIPTION__BEHAVIOUR_DESCRIPTION = PACKAGEABLE_ELEMENT_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Test Objective' reference list. + * + * + * @generated + * @ordered + */ + int TEST_DESCRIPTION__TEST_OBJECTIVE = PACKAGEABLE_ELEMENT_FEATURE_COUNT + 3; + + /** + * The feature id for the 'Is Locally Ordered' attribute. + * + * + * @generated + * @ordered + */ + int TEST_DESCRIPTION__IS_LOCALLY_ORDERED = PACKAGEABLE_ELEMENT_FEATURE_COUNT + 4; + + /** + * The number of structural features of the 'Test Description' class. + * + * + * @generated + * @ordered + */ + int TEST_DESCRIPTION_FEATURE_COUNT = PACKAGEABLE_ELEMENT_FEATURE_COUNT + 5; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int TEST_DESCRIPTION___CONTAINER = PACKAGEABLE_ELEMENT___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int TEST_DESCRIPTION___GET_PARENT_TEST_DESCRIPTION = PACKAGEABLE_ELEMENT___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Conforms To' operation. + * + * + * @generated + * @ordered + */ + int TEST_DESCRIPTION___CONFORMS_TO__STRING = PACKAGEABLE_ELEMENT___CONFORMS_TO__STRING; + + /** + * The operation id for the 'Get Element Named' operation. + * + * + * @generated + * @ordered + */ + int TEST_DESCRIPTION___GET_ELEMENT_NAMED__STRING = PACKAGEABLE_ELEMENT___GET_ELEMENT_NAMED__STRING; + + /** + * The operation id for the 'Conforms To' operation. + * + * + * @generated + * @ordered + */ + int TEST_DESCRIPTION___CONFORMS_TO__PACKAGEABLEELEMENT = PACKAGEABLE_ELEMENT___CONFORMS_TO__PACKAGEABLEELEMENT; + + /** + * The number of operations of the 'Test Description' class. + * + * + * @generated + * @ordered + */ + int TEST_DESCRIPTION_OPERATION_COUNT = PACKAGEABLE_ELEMENT_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.BehaviourDescriptionImpl Behaviour Description}' class. + * + * + * @see org.etsi.mts.tdl.impl.BehaviourDescriptionImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getBehaviourDescription() + * @generated + */ + int BEHAVIOUR_DESCRIPTION = 60; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIOUR_DESCRIPTION__COMMENT = ELEMENT__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIOUR_DESCRIPTION__ANNOTATION = ELEMENT__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int BEHAVIOUR_DESCRIPTION__NAME = ELEMENT__NAME; + + /** + * The feature id for the 'Behaviour' containment reference. + * + * + * @generated + * @ordered + */ + int BEHAVIOUR_DESCRIPTION__BEHAVIOUR = ELEMENT_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Behaviour Description' class. + * + * + * @generated + * @ordered + */ + int BEHAVIOUR_DESCRIPTION_FEATURE_COUNT = ELEMENT_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int BEHAVIOUR_DESCRIPTION___CONTAINER = ELEMENT___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int BEHAVIOUR_DESCRIPTION___GET_PARENT_TEST_DESCRIPTION = ELEMENT___GET_PARENT_TEST_DESCRIPTION; + + /** + * The number of operations of the 'Behaviour Description' class. + * + * + * @generated + * @ordered + */ + int BEHAVIOUR_DESCRIPTION_OPERATION_COUNT = ELEMENT_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.BlockImpl Block}' class. + * + * + * @see org.etsi.mts.tdl.impl.BlockImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getBlock() + * @generated + */ + int BLOCK = 61; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int BLOCK__COMMENT = ELEMENT__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int BLOCK__ANNOTATION = ELEMENT__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int BLOCK__NAME = ELEMENT__NAME; + + /** + * The feature id for the 'Behaviour' containment reference list. + * + * + * @generated + * @ordered + */ + int BLOCK__BEHAVIOUR = ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Guard' containment reference list. + * + * + * @generated + * @ordered + */ + int BLOCK__GUARD = ELEMENT_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Block' class. + * + * + * @generated + * @ordered + */ + int BLOCK_FEATURE_COUNT = ELEMENT_FEATURE_COUNT + 2; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int BLOCK___CONTAINER = ELEMENT___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int BLOCK___GET_PARENT_TEST_DESCRIPTION = ELEMENT___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Get Participating Components' operation. + * + * + * @generated + * @ordered + */ + int BLOCK___GET_PARTICIPATING_COMPONENTS = ELEMENT_OPERATION_COUNT + 0; + + /** + * The operation id for the 'Get Participating Components Excluding' operation. + * + * + * @generated + * @ordered + */ + int BLOCK___GET_PARTICIPATING_COMPONENTS_EXCLUDING__BEHAVIOUR = ELEMENT_OPERATION_COUNT + 1; + + /** + * The number of operations of the 'Block' class. + * + * + * @generated + * @ordered + */ + int BLOCK_OPERATION_COUNT = ELEMENT_OPERATION_COUNT + 2; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.CombinedBehaviourImpl Combined Behaviour}' class. + * + * + * @see org.etsi.mts.tdl.impl.CombinedBehaviourImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getCombinedBehaviour() + * @generated + */ + int COMBINED_BEHAVIOUR = 62; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int COMBINED_BEHAVIOUR__COMMENT = BEHAVIOUR__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int COMBINED_BEHAVIOUR__ANNOTATION = BEHAVIOUR__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int COMBINED_BEHAVIOUR__NAME = BEHAVIOUR__NAME; + + /** + * The feature id for the 'Test Objective' reference list. + * + * + * @generated + * @ordered + */ + int COMBINED_BEHAVIOUR__TEST_OBJECTIVE = BEHAVIOUR__TEST_OBJECTIVE; + + /** + * The feature id for the 'Periodic' containment reference list. + * + * + * @generated + * @ordered + */ + int COMBINED_BEHAVIOUR__PERIODIC = BEHAVIOUR_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Exceptional' containment reference list. + * + * + * @generated + * @ordered + */ + int COMBINED_BEHAVIOUR__EXCEPTIONAL = BEHAVIOUR_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Combined Behaviour' class. + * + * + * @generated + * @ordered + */ + int COMBINED_BEHAVIOUR_FEATURE_COUNT = BEHAVIOUR_FEATURE_COUNT + 2; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int COMBINED_BEHAVIOUR___CONTAINER = BEHAVIOUR___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int COMBINED_BEHAVIOUR___GET_PARENT_TEST_DESCRIPTION = BEHAVIOUR___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Is Tester Input Event' operation. + * + * + * @generated + * @ordered + */ + int COMBINED_BEHAVIOUR___IS_TESTER_INPUT_EVENT = BEHAVIOUR___IS_TESTER_INPUT_EVENT; + + /** + * The operation id for the 'Get Participating Components' operation. + * + * + * @generated + * @ordered + */ + int COMBINED_BEHAVIOUR___GET_PARTICIPATING_COMPONENTS = BEHAVIOUR___GET_PARTICIPATING_COMPONENTS; + + /** + * The number of operations of the 'Combined Behaviour' class. + * + * + * @generated + * @ordered + */ + int COMBINED_BEHAVIOUR_OPERATION_COUNT = BEHAVIOUR_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.PeriodicBehaviourImpl Periodic Behaviour}' class. + * + * + * @see org.etsi.mts.tdl.impl.PeriodicBehaviourImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getPeriodicBehaviour() + * @generated + */ + int PERIODIC_BEHAVIOUR = 63; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int PERIODIC_BEHAVIOUR__COMMENT = BEHAVIOUR__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int PERIODIC_BEHAVIOUR__ANNOTATION = BEHAVIOUR__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int PERIODIC_BEHAVIOUR__NAME = BEHAVIOUR__NAME; + + /** + * The feature id for the 'Test Objective' reference list. + * + * + * @generated + * @ordered + */ + int PERIODIC_BEHAVIOUR__TEST_OBJECTIVE = BEHAVIOUR__TEST_OBJECTIVE; + + /** + * The feature id for the 'Block' containment reference. + * + * + * @generated + * @ordered + */ + int PERIODIC_BEHAVIOUR__BLOCK = BEHAVIOUR_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Period' containment reference list. + * + * + * @generated + * @ordered + */ + int PERIODIC_BEHAVIOUR__PERIOD = BEHAVIOUR_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Periodic Behaviour' class. + * + * + * @generated + * @ordered + */ + int PERIODIC_BEHAVIOUR_FEATURE_COUNT = BEHAVIOUR_FEATURE_COUNT + 2; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int PERIODIC_BEHAVIOUR___CONTAINER = BEHAVIOUR___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int PERIODIC_BEHAVIOUR___GET_PARENT_TEST_DESCRIPTION = BEHAVIOUR___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Is Tester Input Event' operation. + * + * + * @generated + * @ordered + */ + int PERIODIC_BEHAVIOUR___IS_TESTER_INPUT_EVENT = BEHAVIOUR___IS_TESTER_INPUT_EVENT; + + /** + * The operation id for the 'Get Participating Components' operation. + * + * + * @generated + * @ordered + */ + int PERIODIC_BEHAVIOUR___GET_PARTICIPATING_COMPONENTS = BEHAVIOUR_OPERATION_COUNT + 0; + + /** + * The number of operations of the 'Periodic Behaviour' class. + * + * + * @generated + * @ordered + */ + int PERIODIC_BEHAVIOUR_OPERATION_COUNT = BEHAVIOUR_OPERATION_COUNT + 1; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.ExceptionalBehaviourImpl Exceptional Behaviour}' class. + * + * + * @see org.etsi.mts.tdl.impl.ExceptionalBehaviourImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getExceptionalBehaviour() + * @generated + */ + int EXCEPTIONAL_BEHAVIOUR = 64; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int EXCEPTIONAL_BEHAVIOUR__COMMENT = BEHAVIOUR__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int EXCEPTIONAL_BEHAVIOUR__ANNOTATION = BEHAVIOUR__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int EXCEPTIONAL_BEHAVIOUR__NAME = BEHAVIOUR__NAME; + + /** + * The feature id for the 'Test Objective' reference list. + * + * + * @generated + * @ordered + */ + int EXCEPTIONAL_BEHAVIOUR__TEST_OBJECTIVE = BEHAVIOUR__TEST_OBJECTIVE; + + /** + * The feature id for the 'Block' containment reference. + * + * + * @generated + * @ordered + */ + int EXCEPTIONAL_BEHAVIOUR__BLOCK = BEHAVIOUR_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Guarded Component' reference. + * + * + * @generated + * @ordered + */ + int EXCEPTIONAL_BEHAVIOUR__GUARDED_COMPONENT = BEHAVIOUR_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Exceptional Behaviour' class. + * + * + * @generated + * @ordered + */ + int EXCEPTIONAL_BEHAVIOUR_FEATURE_COUNT = BEHAVIOUR_FEATURE_COUNT + 2; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int EXCEPTIONAL_BEHAVIOUR___CONTAINER = BEHAVIOUR___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int EXCEPTIONAL_BEHAVIOUR___GET_PARENT_TEST_DESCRIPTION = BEHAVIOUR___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Is Tester Input Event' operation. + * + * + * @generated + * @ordered + */ + int EXCEPTIONAL_BEHAVIOUR___IS_TESTER_INPUT_EVENT = BEHAVIOUR___IS_TESTER_INPUT_EVENT; + + /** + * The operation id for the 'Get Participating Components' operation. + * + * + * @generated + * @ordered + */ + int EXCEPTIONAL_BEHAVIOUR___GET_PARTICIPATING_COMPONENTS = BEHAVIOUR_OPERATION_COUNT + 0; + + /** + * The number of operations of the 'Exceptional Behaviour' class. + * + * + * @generated + * @ordered + */ + int EXCEPTIONAL_BEHAVIOUR_OPERATION_COUNT = BEHAVIOUR_OPERATION_COUNT + 1; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.MultipleCombinedBehaviourImpl Multiple Combined Behaviour}' class. + * + * + * @see org.etsi.mts.tdl.impl.MultipleCombinedBehaviourImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getMultipleCombinedBehaviour() + * @generated + */ + int MULTIPLE_COMBINED_BEHAVIOUR = 66; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLE_COMBINED_BEHAVIOUR__COMMENT = COMBINED_BEHAVIOUR__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLE_COMBINED_BEHAVIOUR__ANNOTATION = COMBINED_BEHAVIOUR__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int MULTIPLE_COMBINED_BEHAVIOUR__NAME = COMBINED_BEHAVIOUR__NAME; + + /** + * The feature id for the 'Test Objective' reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLE_COMBINED_BEHAVIOUR__TEST_OBJECTIVE = COMBINED_BEHAVIOUR__TEST_OBJECTIVE; + + /** + * The feature id for the 'Periodic' containment reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLE_COMBINED_BEHAVIOUR__PERIODIC = COMBINED_BEHAVIOUR__PERIODIC; + + /** + * The feature id for the 'Exceptional' containment reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLE_COMBINED_BEHAVIOUR__EXCEPTIONAL = COMBINED_BEHAVIOUR__EXCEPTIONAL; + + /** + * The feature id for the 'Block' containment reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLE_COMBINED_BEHAVIOUR__BLOCK = COMBINED_BEHAVIOUR_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Multiple Combined Behaviour' class. + * + * + * @generated + * @ordered + */ + int MULTIPLE_COMBINED_BEHAVIOUR_FEATURE_COUNT = COMBINED_BEHAVIOUR_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLE_COMBINED_BEHAVIOUR___CONTAINER = COMBINED_BEHAVIOUR___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLE_COMBINED_BEHAVIOUR___GET_PARENT_TEST_DESCRIPTION = COMBINED_BEHAVIOUR___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Is Tester Input Event' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLE_COMBINED_BEHAVIOUR___IS_TESTER_INPUT_EVENT = COMBINED_BEHAVIOUR___IS_TESTER_INPUT_EVENT; + + /** + * The operation id for the 'Get Participating Components' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLE_COMBINED_BEHAVIOUR___GET_PARTICIPATING_COMPONENTS = COMBINED_BEHAVIOUR_OPERATION_COUNT + 0; + + /** + * The number of operations of the 'Multiple Combined Behaviour' class. + * + * + * @generated + * @ordered + */ + int MULTIPLE_COMBINED_BEHAVIOUR_OPERATION_COUNT = COMBINED_BEHAVIOUR_OPERATION_COUNT + 1; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.AlternativeBehaviourImpl Alternative Behaviour}' class. + * + * + * @see org.etsi.mts.tdl.impl.AlternativeBehaviourImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getAlternativeBehaviour() + * @generated + */ + int ALTERNATIVE_BEHAVIOUR = 65; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int ALTERNATIVE_BEHAVIOUR__COMMENT = MULTIPLE_COMBINED_BEHAVIOUR__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int ALTERNATIVE_BEHAVIOUR__ANNOTATION = MULTIPLE_COMBINED_BEHAVIOUR__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int ALTERNATIVE_BEHAVIOUR__NAME = MULTIPLE_COMBINED_BEHAVIOUR__NAME; + + /** + * The feature id for the 'Test Objective' reference list. + * + * + * @generated + * @ordered + */ + int ALTERNATIVE_BEHAVIOUR__TEST_OBJECTIVE = MULTIPLE_COMBINED_BEHAVIOUR__TEST_OBJECTIVE; + + /** + * The feature id for the 'Periodic' containment reference list. + * + * + * @generated + * @ordered + */ + int ALTERNATIVE_BEHAVIOUR__PERIODIC = MULTIPLE_COMBINED_BEHAVIOUR__PERIODIC; + + /** + * The feature id for the 'Exceptional' containment reference list. + * + * + * @generated + * @ordered + */ + int ALTERNATIVE_BEHAVIOUR__EXCEPTIONAL = MULTIPLE_COMBINED_BEHAVIOUR__EXCEPTIONAL; + + /** + * The feature id for the 'Block' containment reference list. + * + * + * @generated + * @ordered + */ + int ALTERNATIVE_BEHAVIOUR__BLOCK = MULTIPLE_COMBINED_BEHAVIOUR__BLOCK; + + /** + * The number of structural features of the 'Alternative Behaviour' class. + * + * + * @generated + * @ordered + */ + int ALTERNATIVE_BEHAVIOUR_FEATURE_COUNT = MULTIPLE_COMBINED_BEHAVIOUR_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int ALTERNATIVE_BEHAVIOUR___CONTAINER = MULTIPLE_COMBINED_BEHAVIOUR___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int ALTERNATIVE_BEHAVIOUR___GET_PARENT_TEST_DESCRIPTION = MULTIPLE_COMBINED_BEHAVIOUR___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Is Tester Input Event' operation. + * + * + * @generated + * @ordered + */ + int ALTERNATIVE_BEHAVIOUR___IS_TESTER_INPUT_EVENT = MULTIPLE_COMBINED_BEHAVIOUR___IS_TESTER_INPUT_EVENT; + + /** + * The operation id for the 'Get Participating Components' operation. + * + * + * @generated + * @ordered + */ + int ALTERNATIVE_BEHAVIOUR___GET_PARTICIPATING_COMPONENTS = MULTIPLE_COMBINED_BEHAVIOUR___GET_PARTICIPATING_COMPONENTS; + + /** + * The number of operations of the 'Alternative Behaviour' class. + * + * + * @generated + * @ordered + */ + int ALTERNATIVE_BEHAVIOUR_OPERATION_COUNT = MULTIPLE_COMBINED_BEHAVIOUR_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.ParallelBehaviourImpl Parallel Behaviour}' class. + * + * + * @see org.etsi.mts.tdl.impl.ParallelBehaviourImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getParallelBehaviour() + * @generated + */ + int PARALLEL_BEHAVIOUR = 67; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int PARALLEL_BEHAVIOUR__COMMENT = MULTIPLE_COMBINED_BEHAVIOUR__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int PARALLEL_BEHAVIOUR__ANNOTATION = MULTIPLE_COMBINED_BEHAVIOUR__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int PARALLEL_BEHAVIOUR__NAME = MULTIPLE_COMBINED_BEHAVIOUR__NAME; + + /** + * The feature id for the 'Test Objective' reference list. + * + * + * @generated + * @ordered + */ + int PARALLEL_BEHAVIOUR__TEST_OBJECTIVE = MULTIPLE_COMBINED_BEHAVIOUR__TEST_OBJECTIVE; + + /** + * The feature id for the 'Periodic' containment reference list. + * + * + * @generated + * @ordered + */ + int PARALLEL_BEHAVIOUR__PERIODIC = MULTIPLE_COMBINED_BEHAVIOUR__PERIODIC; + + /** + * The feature id for the 'Exceptional' containment reference list. + * + * + * @generated + * @ordered + */ + int PARALLEL_BEHAVIOUR__EXCEPTIONAL = MULTIPLE_COMBINED_BEHAVIOUR__EXCEPTIONAL; + + /** + * The feature id for the 'Block' containment reference list. + * + * + * @generated + * @ordered + */ + int PARALLEL_BEHAVIOUR__BLOCK = MULTIPLE_COMBINED_BEHAVIOUR__BLOCK; + + /** + * The number of structural features of the 'Parallel Behaviour' class. + * + * + * @generated + * @ordered + */ + int PARALLEL_BEHAVIOUR_FEATURE_COUNT = MULTIPLE_COMBINED_BEHAVIOUR_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int PARALLEL_BEHAVIOUR___CONTAINER = MULTIPLE_COMBINED_BEHAVIOUR___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int PARALLEL_BEHAVIOUR___GET_PARENT_TEST_DESCRIPTION = MULTIPLE_COMBINED_BEHAVIOUR___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Is Tester Input Event' operation. + * + * + * @generated + * @ordered + */ + int PARALLEL_BEHAVIOUR___IS_TESTER_INPUT_EVENT = MULTIPLE_COMBINED_BEHAVIOUR___IS_TESTER_INPUT_EVENT; + + /** + * The operation id for the 'Get Participating Components' operation. + * + * + * @generated + * @ordered + */ + int PARALLEL_BEHAVIOUR___GET_PARTICIPATING_COMPONENTS = MULTIPLE_COMBINED_BEHAVIOUR___GET_PARTICIPATING_COMPONENTS; + + /** + * The number of operations of the 'Parallel Behaviour' class. + * + * + * @generated + * @ordered + */ + int PARALLEL_BEHAVIOUR_OPERATION_COUNT = MULTIPLE_COMBINED_BEHAVIOUR_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.SingleCombinedBehaviourImpl Single Combined Behaviour}' class. + * + * + * @see org.etsi.mts.tdl.impl.SingleCombinedBehaviourImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getSingleCombinedBehaviour() + * @generated + */ + int SINGLE_COMBINED_BEHAVIOUR = 69; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int SINGLE_COMBINED_BEHAVIOUR__COMMENT = COMBINED_BEHAVIOUR__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int SINGLE_COMBINED_BEHAVIOUR__ANNOTATION = COMBINED_BEHAVIOUR__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int SINGLE_COMBINED_BEHAVIOUR__NAME = COMBINED_BEHAVIOUR__NAME; + + /** + * The feature id for the 'Test Objective' reference list. + * + * + * @generated + * @ordered + */ + int SINGLE_COMBINED_BEHAVIOUR__TEST_OBJECTIVE = COMBINED_BEHAVIOUR__TEST_OBJECTIVE; + + /** + * The feature id for the 'Periodic' containment reference list. + * + * + * @generated + * @ordered + */ + int SINGLE_COMBINED_BEHAVIOUR__PERIODIC = COMBINED_BEHAVIOUR__PERIODIC; + + /** + * The feature id for the 'Exceptional' containment reference list. + * + * + * @generated + * @ordered + */ + int SINGLE_COMBINED_BEHAVIOUR__EXCEPTIONAL = COMBINED_BEHAVIOUR__EXCEPTIONAL; + + /** + * The feature id for the 'Block' containment reference. + * + * + * @generated + * @ordered + */ + int SINGLE_COMBINED_BEHAVIOUR__BLOCK = COMBINED_BEHAVIOUR_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Single Combined Behaviour' class. + * + * + * @generated + * @ordered + */ + int SINGLE_COMBINED_BEHAVIOUR_FEATURE_COUNT = COMBINED_BEHAVIOUR_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int SINGLE_COMBINED_BEHAVIOUR___CONTAINER = COMBINED_BEHAVIOUR___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int SINGLE_COMBINED_BEHAVIOUR___GET_PARENT_TEST_DESCRIPTION = COMBINED_BEHAVIOUR___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Is Tester Input Event' operation. + * + * + * @generated + * @ordered + */ + int SINGLE_COMBINED_BEHAVIOUR___IS_TESTER_INPUT_EVENT = COMBINED_BEHAVIOUR___IS_TESTER_INPUT_EVENT; + + /** + * The operation id for the 'Get Participating Components' operation. + * + * + * @generated + * @ordered + */ + int SINGLE_COMBINED_BEHAVIOUR___GET_PARTICIPATING_COMPONENTS = COMBINED_BEHAVIOUR_OPERATION_COUNT + 0; + + /** + * The number of operations of the 'Single Combined Behaviour' class. + * + * + * @generated + * @ordered + */ + int SINGLE_COMBINED_BEHAVIOUR_OPERATION_COUNT = COMBINED_BEHAVIOUR_OPERATION_COUNT + 1; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.BoundedLoopBehaviourImpl Bounded Loop Behaviour}' class. + * + * + * @see org.etsi.mts.tdl.impl.BoundedLoopBehaviourImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getBoundedLoopBehaviour() + * @generated + */ + int BOUNDED_LOOP_BEHAVIOUR = 68; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int BOUNDED_LOOP_BEHAVIOUR__COMMENT = SINGLE_COMBINED_BEHAVIOUR__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int BOUNDED_LOOP_BEHAVIOUR__ANNOTATION = SINGLE_COMBINED_BEHAVIOUR__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int BOUNDED_LOOP_BEHAVIOUR__NAME = SINGLE_COMBINED_BEHAVIOUR__NAME; + + /** + * The feature id for the 'Test Objective' reference list. + * + * + * @generated + * @ordered + */ + int BOUNDED_LOOP_BEHAVIOUR__TEST_OBJECTIVE = SINGLE_COMBINED_BEHAVIOUR__TEST_OBJECTIVE; + + /** + * The feature id for the 'Periodic' containment reference list. + * + * + * @generated + * @ordered + */ + int BOUNDED_LOOP_BEHAVIOUR__PERIODIC = SINGLE_COMBINED_BEHAVIOUR__PERIODIC; + + /** + * The feature id for the 'Exceptional' containment reference list. + * + * + * @generated + * @ordered + */ + int BOUNDED_LOOP_BEHAVIOUR__EXCEPTIONAL = SINGLE_COMBINED_BEHAVIOUR__EXCEPTIONAL; + + /** + * The feature id for the 'Block' containment reference. + * + * + * @generated + * @ordered + */ + int BOUNDED_LOOP_BEHAVIOUR__BLOCK = SINGLE_COMBINED_BEHAVIOUR__BLOCK; + + /** + * The feature id for the 'Num Iteration' containment reference list. + * + * + * @generated + * @ordered + */ + int BOUNDED_LOOP_BEHAVIOUR__NUM_ITERATION = SINGLE_COMBINED_BEHAVIOUR_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Bounded Loop Behaviour' class. + * + * + * @generated + * @ordered + */ + int BOUNDED_LOOP_BEHAVIOUR_FEATURE_COUNT = SINGLE_COMBINED_BEHAVIOUR_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int BOUNDED_LOOP_BEHAVIOUR___CONTAINER = SINGLE_COMBINED_BEHAVIOUR___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int BOUNDED_LOOP_BEHAVIOUR___GET_PARENT_TEST_DESCRIPTION = SINGLE_COMBINED_BEHAVIOUR___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Is Tester Input Event' operation. + * + * + * @generated + * @ordered + */ + int BOUNDED_LOOP_BEHAVIOUR___IS_TESTER_INPUT_EVENT = SINGLE_COMBINED_BEHAVIOUR___IS_TESTER_INPUT_EVENT; + + /** + * The operation id for the 'Get Participating Components' operation. + * + * + * @generated + * @ordered + */ + int BOUNDED_LOOP_BEHAVIOUR___GET_PARTICIPATING_COMPONENTS = SINGLE_COMBINED_BEHAVIOUR___GET_PARTICIPATING_COMPONENTS; + + /** + * The number of operations of the 'Bounded Loop Behaviour' class. + * + * + * @generated + * @ordered + */ + int BOUNDED_LOOP_BEHAVIOUR_OPERATION_COUNT = SINGLE_COMBINED_BEHAVIOUR_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.OptionalBehaviourImpl Optional Behaviour}' class. + * + * + * @see org.etsi.mts.tdl.impl.OptionalBehaviourImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getOptionalBehaviour() + * @generated + */ + int OPTIONAL_BEHAVIOUR = 70; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int OPTIONAL_BEHAVIOUR__COMMENT = SINGLE_COMBINED_BEHAVIOUR__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int OPTIONAL_BEHAVIOUR__ANNOTATION = SINGLE_COMBINED_BEHAVIOUR__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int OPTIONAL_BEHAVIOUR__NAME = SINGLE_COMBINED_BEHAVIOUR__NAME; + + /** + * The feature id for the 'Test Objective' reference list. + * + * + * @generated + * @ordered + */ + int OPTIONAL_BEHAVIOUR__TEST_OBJECTIVE = SINGLE_COMBINED_BEHAVIOUR__TEST_OBJECTIVE; + + /** + * The feature id for the 'Periodic' containment reference list. + * + * + * @generated + * @ordered + */ + int OPTIONAL_BEHAVIOUR__PERIODIC = SINGLE_COMBINED_BEHAVIOUR__PERIODIC; + + /** + * The feature id for the 'Exceptional' containment reference list. + * + * + * @generated + * @ordered + */ + int OPTIONAL_BEHAVIOUR__EXCEPTIONAL = SINGLE_COMBINED_BEHAVIOUR__EXCEPTIONAL; + + /** + * The feature id for the 'Block' containment reference. + * + * + * @generated + * @ordered + */ + int OPTIONAL_BEHAVIOUR__BLOCK = SINGLE_COMBINED_BEHAVIOUR__BLOCK; + + /** + * The number of structural features of the 'Optional Behaviour' class. + * + * + * @generated + * @ordered + */ + int OPTIONAL_BEHAVIOUR_FEATURE_COUNT = SINGLE_COMBINED_BEHAVIOUR_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int OPTIONAL_BEHAVIOUR___CONTAINER = SINGLE_COMBINED_BEHAVIOUR___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int OPTIONAL_BEHAVIOUR___GET_PARENT_TEST_DESCRIPTION = SINGLE_COMBINED_BEHAVIOUR___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Is Tester Input Event' operation. + * + * + * @generated + * @ordered + */ + int OPTIONAL_BEHAVIOUR___IS_TESTER_INPUT_EVENT = SINGLE_COMBINED_BEHAVIOUR___IS_TESTER_INPUT_EVENT; + + /** + * The operation id for the 'Get Participating Components' operation. + * + * + * @generated + * @ordered + */ + int OPTIONAL_BEHAVIOUR___GET_PARTICIPATING_COMPONENTS = SINGLE_COMBINED_BEHAVIOUR___GET_PARTICIPATING_COMPONENTS; + + /** + * The number of operations of the 'Optional Behaviour' class. + * + * + * @generated + * @ordered + */ + int OPTIONAL_BEHAVIOUR_OPERATION_COUNT = SINGLE_COMBINED_BEHAVIOUR_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.UnboundedLoopBehaviourImpl Unbounded Loop Behaviour}' class. + * + * + * @see org.etsi.mts.tdl.impl.UnboundedLoopBehaviourImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getUnboundedLoopBehaviour() + * @generated + */ + int UNBOUNDED_LOOP_BEHAVIOUR = 71; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int UNBOUNDED_LOOP_BEHAVIOUR__COMMENT = SINGLE_COMBINED_BEHAVIOUR__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int UNBOUNDED_LOOP_BEHAVIOUR__ANNOTATION = SINGLE_COMBINED_BEHAVIOUR__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int UNBOUNDED_LOOP_BEHAVIOUR__NAME = SINGLE_COMBINED_BEHAVIOUR__NAME; + + /** + * The feature id for the 'Test Objective' reference list. + * + * + * @generated + * @ordered + */ + int UNBOUNDED_LOOP_BEHAVIOUR__TEST_OBJECTIVE = SINGLE_COMBINED_BEHAVIOUR__TEST_OBJECTIVE; + + /** + * The feature id for the 'Periodic' containment reference list. + * + * + * @generated + * @ordered + */ + int UNBOUNDED_LOOP_BEHAVIOUR__PERIODIC = SINGLE_COMBINED_BEHAVIOUR__PERIODIC; + + /** + * The feature id for the 'Exceptional' containment reference list. + * + * + * @generated + * @ordered + */ + int UNBOUNDED_LOOP_BEHAVIOUR__EXCEPTIONAL = SINGLE_COMBINED_BEHAVIOUR__EXCEPTIONAL; + + /** + * The feature id for the 'Block' containment reference. + * + * + * @generated + * @ordered + */ + int UNBOUNDED_LOOP_BEHAVIOUR__BLOCK = SINGLE_COMBINED_BEHAVIOUR__BLOCK; + + /** + * The number of structural features of the 'Unbounded Loop Behaviour' class. + * + * + * @generated + * @ordered + */ + int UNBOUNDED_LOOP_BEHAVIOUR_FEATURE_COUNT = SINGLE_COMBINED_BEHAVIOUR_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int UNBOUNDED_LOOP_BEHAVIOUR___CONTAINER = SINGLE_COMBINED_BEHAVIOUR___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int UNBOUNDED_LOOP_BEHAVIOUR___GET_PARENT_TEST_DESCRIPTION = SINGLE_COMBINED_BEHAVIOUR___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Is Tester Input Event' operation. + * + * + * @generated + * @ordered + */ + int UNBOUNDED_LOOP_BEHAVIOUR___IS_TESTER_INPUT_EVENT = SINGLE_COMBINED_BEHAVIOUR___IS_TESTER_INPUT_EVENT; + + /** + * The operation id for the 'Get Participating Components' operation. + * + * + * @generated + * @ordered + */ + int UNBOUNDED_LOOP_BEHAVIOUR___GET_PARTICIPATING_COMPONENTS = SINGLE_COMBINED_BEHAVIOUR___GET_PARTICIPATING_COMPONENTS; + + /** + * The number of operations of the 'Unbounded Loop Behaviour' class. + * + * + * @generated + * @ordered + */ + int UNBOUNDED_LOOP_BEHAVIOUR_OPERATION_COUNT = SINGLE_COMBINED_BEHAVIOUR_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.ConditionalBehaviourImpl Conditional Behaviour}' class. + * + * + * @see org.etsi.mts.tdl.impl.ConditionalBehaviourImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getConditionalBehaviour() + * @generated + */ + int CONDITIONAL_BEHAVIOUR = 72; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int CONDITIONAL_BEHAVIOUR__COMMENT = MULTIPLE_COMBINED_BEHAVIOUR__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int CONDITIONAL_BEHAVIOUR__ANNOTATION = MULTIPLE_COMBINED_BEHAVIOUR__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int CONDITIONAL_BEHAVIOUR__NAME = MULTIPLE_COMBINED_BEHAVIOUR__NAME; + + /** + * The feature id for the 'Test Objective' reference list. + * + * + * @generated + * @ordered + */ + int CONDITIONAL_BEHAVIOUR__TEST_OBJECTIVE = MULTIPLE_COMBINED_BEHAVIOUR__TEST_OBJECTIVE; + + /** + * The feature id for the 'Periodic' containment reference list. + * + * + * @generated + * @ordered + */ + int CONDITIONAL_BEHAVIOUR__PERIODIC = MULTIPLE_COMBINED_BEHAVIOUR__PERIODIC; + + /** + * The feature id for the 'Exceptional' containment reference list. + * + * + * @generated + * @ordered + */ + int CONDITIONAL_BEHAVIOUR__EXCEPTIONAL = MULTIPLE_COMBINED_BEHAVIOUR__EXCEPTIONAL; + + /** + * The feature id for the 'Block' containment reference list. + * + * + * @generated + * @ordered + */ + int CONDITIONAL_BEHAVIOUR__BLOCK = MULTIPLE_COMBINED_BEHAVIOUR__BLOCK; + + /** + * The number of structural features of the 'Conditional Behaviour' class. + * + * + * @generated + * @ordered + */ + int CONDITIONAL_BEHAVIOUR_FEATURE_COUNT = MULTIPLE_COMBINED_BEHAVIOUR_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int CONDITIONAL_BEHAVIOUR___CONTAINER = MULTIPLE_COMBINED_BEHAVIOUR___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int CONDITIONAL_BEHAVIOUR___GET_PARENT_TEST_DESCRIPTION = MULTIPLE_COMBINED_BEHAVIOUR___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Is Tester Input Event' operation. + * + * + * @generated + * @ordered + */ + int CONDITIONAL_BEHAVIOUR___IS_TESTER_INPUT_EVENT = MULTIPLE_COMBINED_BEHAVIOUR___IS_TESTER_INPUT_EVENT; + + /** + * The operation id for the 'Get Participating Components' operation. + * + * + * @generated + * @ordered + */ + int CONDITIONAL_BEHAVIOUR___GET_PARTICIPATING_COMPONENTS = MULTIPLE_COMBINED_BEHAVIOUR___GET_PARTICIPATING_COMPONENTS; + + /** + * The number of operations of the 'Conditional Behaviour' class. + * + * + * @generated + * @ordered + */ + int CONDITIONAL_BEHAVIOUR_OPERATION_COUNT = MULTIPLE_COMBINED_BEHAVIOUR_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.CompoundBehaviourImpl Compound Behaviour}' class. + * + * + * @see org.etsi.mts.tdl.impl.CompoundBehaviourImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getCompoundBehaviour() + * @generated + */ + int COMPOUND_BEHAVIOUR = 73; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int COMPOUND_BEHAVIOUR__COMMENT = SINGLE_COMBINED_BEHAVIOUR__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int COMPOUND_BEHAVIOUR__ANNOTATION = SINGLE_COMBINED_BEHAVIOUR__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int COMPOUND_BEHAVIOUR__NAME = SINGLE_COMBINED_BEHAVIOUR__NAME; + + /** + * The feature id for the 'Test Objective' reference list. + * + * + * @generated + * @ordered + */ + int COMPOUND_BEHAVIOUR__TEST_OBJECTIVE = SINGLE_COMBINED_BEHAVIOUR__TEST_OBJECTIVE; + + /** + * The feature id for the 'Periodic' containment reference list. + * + * + * @generated + * @ordered + */ + int COMPOUND_BEHAVIOUR__PERIODIC = SINGLE_COMBINED_BEHAVIOUR__PERIODIC; + + /** + * The feature id for the 'Exceptional' containment reference list. + * + * + * @generated + * @ordered + */ + int COMPOUND_BEHAVIOUR__EXCEPTIONAL = SINGLE_COMBINED_BEHAVIOUR__EXCEPTIONAL; + + /** + * The feature id for the 'Block' containment reference. + * + * + * @generated + * @ordered + */ + int COMPOUND_BEHAVIOUR__BLOCK = SINGLE_COMBINED_BEHAVIOUR__BLOCK; + + /** + * The number of structural features of the 'Compound Behaviour' class. + * + * + * @generated + * @ordered + */ + int COMPOUND_BEHAVIOUR_FEATURE_COUNT = SINGLE_COMBINED_BEHAVIOUR_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int COMPOUND_BEHAVIOUR___CONTAINER = SINGLE_COMBINED_BEHAVIOUR___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int COMPOUND_BEHAVIOUR___GET_PARENT_TEST_DESCRIPTION = SINGLE_COMBINED_BEHAVIOUR___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Is Tester Input Event' operation. + * + * + * @generated + * @ordered + */ + int COMPOUND_BEHAVIOUR___IS_TESTER_INPUT_EVENT = SINGLE_COMBINED_BEHAVIOUR___IS_TESTER_INPUT_EVENT; + + /** + * The operation id for the 'Get Participating Components' operation. + * + * + * @generated + * @ordered + */ + int COMPOUND_BEHAVIOUR___GET_PARTICIPATING_COMPONENTS = SINGLE_COMBINED_BEHAVIOUR___GET_PARTICIPATING_COMPONENTS; + + /** + * The number of operations of the 'Compound Behaviour' class. + * + * + * @generated + * @ordered + */ + int COMPOUND_BEHAVIOUR_OPERATION_COUNT = SINGLE_COMBINED_BEHAVIOUR_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.DefaultBehaviourImpl Default Behaviour}' class. + * + * + * @see org.etsi.mts.tdl.impl.DefaultBehaviourImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getDefaultBehaviour() + * @generated + */ + int DEFAULT_BEHAVIOUR = 74; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int DEFAULT_BEHAVIOUR__COMMENT = EXCEPTIONAL_BEHAVIOUR__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int DEFAULT_BEHAVIOUR__ANNOTATION = EXCEPTIONAL_BEHAVIOUR__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int DEFAULT_BEHAVIOUR__NAME = EXCEPTIONAL_BEHAVIOUR__NAME; + + /** + * The feature id for the 'Test Objective' reference list. + * + * + * @generated + * @ordered + */ + int DEFAULT_BEHAVIOUR__TEST_OBJECTIVE = EXCEPTIONAL_BEHAVIOUR__TEST_OBJECTIVE; + + /** + * The feature id for the 'Block' containment reference. + * + * + * @generated + * @ordered + */ + int DEFAULT_BEHAVIOUR__BLOCK = EXCEPTIONAL_BEHAVIOUR__BLOCK; + + /** + * The feature id for the 'Guarded Component' reference. + * + * + * @generated + * @ordered + */ + int DEFAULT_BEHAVIOUR__GUARDED_COMPONENT = EXCEPTIONAL_BEHAVIOUR__GUARDED_COMPONENT; + + /** + * The number of structural features of the 'Default Behaviour' class. + * + * + * @generated + * @ordered + */ + int DEFAULT_BEHAVIOUR_FEATURE_COUNT = EXCEPTIONAL_BEHAVIOUR_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int DEFAULT_BEHAVIOUR___CONTAINER = EXCEPTIONAL_BEHAVIOUR___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int DEFAULT_BEHAVIOUR___GET_PARENT_TEST_DESCRIPTION = EXCEPTIONAL_BEHAVIOUR___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Is Tester Input Event' operation. + * + * + * @generated + * @ordered + */ + int DEFAULT_BEHAVIOUR___IS_TESTER_INPUT_EVENT = EXCEPTIONAL_BEHAVIOUR___IS_TESTER_INPUT_EVENT; + + /** + * The operation id for the 'Get Participating Components' operation. + * + * + * @generated + * @ordered + */ + int DEFAULT_BEHAVIOUR___GET_PARTICIPATING_COMPONENTS = EXCEPTIONAL_BEHAVIOUR___GET_PARTICIPATING_COMPONENTS; + + /** + * The number of operations of the 'Default Behaviour' class. + * + * + * @generated + * @ordered + */ + int DEFAULT_BEHAVIOUR_OPERATION_COUNT = EXCEPTIONAL_BEHAVIOUR_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.InterruptBehaviourImpl Interrupt Behaviour}' class. + * + * + * @see org.etsi.mts.tdl.impl.InterruptBehaviourImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getInterruptBehaviour() + * @generated + */ + int INTERRUPT_BEHAVIOUR = 75; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int INTERRUPT_BEHAVIOUR__COMMENT = EXCEPTIONAL_BEHAVIOUR__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int INTERRUPT_BEHAVIOUR__ANNOTATION = EXCEPTIONAL_BEHAVIOUR__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int INTERRUPT_BEHAVIOUR__NAME = EXCEPTIONAL_BEHAVIOUR__NAME; + + /** + * The feature id for the 'Test Objective' reference list. + * + * + * @generated + * @ordered + */ + int INTERRUPT_BEHAVIOUR__TEST_OBJECTIVE = EXCEPTIONAL_BEHAVIOUR__TEST_OBJECTIVE; + + /** + * The feature id for the 'Block' containment reference. + * + * + * @generated + * @ordered + */ + int INTERRUPT_BEHAVIOUR__BLOCK = EXCEPTIONAL_BEHAVIOUR__BLOCK; + + /** + * The feature id for the 'Guarded Component' reference. + * + * + * @generated + * @ordered + */ + int INTERRUPT_BEHAVIOUR__GUARDED_COMPONENT = EXCEPTIONAL_BEHAVIOUR__GUARDED_COMPONENT; + + /** + * The number of structural features of the 'Interrupt Behaviour' class. + * + * + * @generated + * @ordered + */ + int INTERRUPT_BEHAVIOUR_FEATURE_COUNT = EXCEPTIONAL_BEHAVIOUR_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int INTERRUPT_BEHAVIOUR___CONTAINER = EXCEPTIONAL_BEHAVIOUR___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int INTERRUPT_BEHAVIOUR___GET_PARENT_TEST_DESCRIPTION = EXCEPTIONAL_BEHAVIOUR___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Is Tester Input Event' operation. + * + * + * @generated + * @ordered + */ + int INTERRUPT_BEHAVIOUR___IS_TESTER_INPUT_EVENT = EXCEPTIONAL_BEHAVIOUR___IS_TESTER_INPUT_EVENT; + + /** + * The operation id for the 'Get Participating Components' operation. + * + * + * @generated + * @ordered + */ + int INTERRUPT_BEHAVIOUR___GET_PARTICIPATING_COMPONENTS = EXCEPTIONAL_BEHAVIOUR___GET_PARTICIPATING_COMPONENTS; + + /** + * The number of operations of the 'Interrupt Behaviour' class. + * + * + * @generated + * @ordered + */ + int INTERRUPT_BEHAVIOUR_OPERATION_COUNT = EXCEPTIONAL_BEHAVIOUR_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.TargetImpl Target}' class. + * + * + * @see org.etsi.mts.tdl.impl.TargetImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getTarget() + * @generated + */ + int TARGET = 76; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int TARGET__COMMENT = ELEMENT__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int TARGET__ANNOTATION = ELEMENT__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int TARGET__NAME = ELEMENT__NAME; + + /** + * The feature id for the 'Target Gate' reference. + * + * + * @generated + * @ordered + */ + int TARGET__TARGET_GATE = ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Value Assignment' containment reference list. + * + * + * @generated + * @ordered + */ + int TARGET__VALUE_ASSIGNMENT = ELEMENT_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Target' class. + * + * + * @generated + * @ordered + */ + int TARGET_FEATURE_COUNT = ELEMENT_FEATURE_COUNT + 2; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int TARGET___CONTAINER = ELEMENT___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int TARGET___GET_PARENT_TEST_DESCRIPTION = ELEMENT___GET_PARENT_TEST_DESCRIPTION; + + /** + * The number of operations of the 'Target' class. + * + * + * @generated + * @ordered + */ + int TARGET_OPERATION_COUNT = ELEMENT_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.VerdictAssignmentImpl Verdict Assignment}' class. + * + * + * @see org.etsi.mts.tdl.impl.VerdictAssignmentImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getVerdictAssignment() + * @generated + */ + int VERDICT_ASSIGNMENT = 77; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int VERDICT_ASSIGNMENT__COMMENT = ATOMIC_BEHAVIOUR__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int VERDICT_ASSIGNMENT__ANNOTATION = ATOMIC_BEHAVIOUR__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int VERDICT_ASSIGNMENT__NAME = ATOMIC_BEHAVIOUR__NAME; + + /** + * The feature id for the 'Test Objective' reference list. + * + * + * @generated + * @ordered + */ + int VERDICT_ASSIGNMENT__TEST_OBJECTIVE = ATOMIC_BEHAVIOUR__TEST_OBJECTIVE; + + /** + * The feature id for the 'Time Constraint' containment reference list. + * + * + * @generated + * @ordered + */ + int VERDICT_ASSIGNMENT__TIME_CONSTRAINT = ATOMIC_BEHAVIOUR__TIME_CONSTRAINT; + + /** + * The feature id for the 'Time Label' containment reference. + * + * + * @generated + * @ordered + */ + int VERDICT_ASSIGNMENT__TIME_LABEL = ATOMIC_BEHAVIOUR__TIME_LABEL; + + /** + * The feature id for the 'Verdict' containment reference. + * + * + * @generated + * @ordered + */ + int VERDICT_ASSIGNMENT__VERDICT = ATOMIC_BEHAVIOUR_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Verdict Assignment' class. + * + * + * @generated + * @ordered + */ + int VERDICT_ASSIGNMENT_FEATURE_COUNT = ATOMIC_BEHAVIOUR_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int VERDICT_ASSIGNMENT___CONTAINER = ATOMIC_BEHAVIOUR___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int VERDICT_ASSIGNMENT___GET_PARENT_TEST_DESCRIPTION = ATOMIC_BEHAVIOUR___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Is Tester Input Event' operation. + * + * + * @generated + * @ordered + */ + int VERDICT_ASSIGNMENT___IS_TESTER_INPUT_EVENT = ATOMIC_BEHAVIOUR___IS_TESTER_INPUT_EVENT; + + /** + * The operation id for the 'Get Participating Components' operation. + * + * + * @generated + * @ordered + */ + int VERDICT_ASSIGNMENT___GET_PARTICIPATING_COMPONENTS = ATOMIC_BEHAVIOUR___GET_PARTICIPATING_COMPONENTS; + + /** + * The number of operations of the 'Verdict Assignment' class. + * + * + * @generated + * @ordered + */ + int VERDICT_ASSIGNMENT_OPERATION_COUNT = ATOMIC_BEHAVIOUR_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.ActionBehaviourImpl Action Behaviour}' class. + * + * + * @see org.etsi.mts.tdl.impl.ActionBehaviourImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getActionBehaviour() + * @generated + */ + int ACTION_BEHAVIOUR = 82; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int ACTION_BEHAVIOUR__COMMENT = ATOMIC_BEHAVIOUR__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int ACTION_BEHAVIOUR__ANNOTATION = ATOMIC_BEHAVIOUR__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int ACTION_BEHAVIOUR__NAME = ATOMIC_BEHAVIOUR__NAME; + + /** + * The feature id for the 'Test Objective' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_BEHAVIOUR__TEST_OBJECTIVE = ATOMIC_BEHAVIOUR__TEST_OBJECTIVE; + + /** + * The feature id for the 'Time Constraint' containment reference list. + * + * + * @generated + * @ordered + */ + int ACTION_BEHAVIOUR__TIME_CONSTRAINT = ATOMIC_BEHAVIOUR__TIME_CONSTRAINT; + + /** + * The feature id for the 'Time Label' containment reference. + * + * + * @generated + * @ordered + */ + int ACTION_BEHAVIOUR__TIME_LABEL = ATOMIC_BEHAVIOUR__TIME_LABEL; + + /** + * The feature id for the 'Component Instance' reference. + * + * + * @generated + * @ordered + */ + int ACTION_BEHAVIOUR__COMPONENT_INSTANCE = ATOMIC_BEHAVIOUR_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Action Behaviour' class. + * + * + * @generated + * @ordered + */ + int ACTION_BEHAVIOUR_FEATURE_COUNT = ATOMIC_BEHAVIOUR_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int ACTION_BEHAVIOUR___CONTAINER = ATOMIC_BEHAVIOUR___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int ACTION_BEHAVIOUR___GET_PARENT_TEST_DESCRIPTION = ATOMIC_BEHAVIOUR___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Is Tester Input Event' operation. + * + * + * @generated + * @ordered + */ + int ACTION_BEHAVIOUR___IS_TESTER_INPUT_EVENT = ATOMIC_BEHAVIOUR___IS_TESTER_INPUT_EVENT; + + /** + * The operation id for the 'Get Participating Components' operation. + * + * + * @generated + * @ordered + */ + int ACTION_BEHAVIOUR___GET_PARTICIPATING_COMPONENTS = ATOMIC_BEHAVIOUR_OPERATION_COUNT + 0; + + /** + * The number of operations of the 'Action Behaviour' class. + * + * + * @generated + * @ordered + */ + int ACTION_BEHAVIOUR_OPERATION_COUNT = ATOMIC_BEHAVIOUR_OPERATION_COUNT + 1; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.AssertionImpl Assertion}' class. + * + * + * @see org.etsi.mts.tdl.impl.AssertionImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getAssertion() + * @generated + */ + int ASSERTION = 78; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int ASSERTION__COMMENT = ACTION_BEHAVIOUR__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int ASSERTION__ANNOTATION = ACTION_BEHAVIOUR__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int ASSERTION__NAME = ACTION_BEHAVIOUR__NAME; + + /** + * The feature id for the 'Test Objective' reference list. + * + * + * @generated + * @ordered + */ + int ASSERTION__TEST_OBJECTIVE = ACTION_BEHAVIOUR__TEST_OBJECTIVE; + + /** + * The feature id for the 'Time Constraint' containment reference list. + * + * + * @generated + * @ordered + */ + int ASSERTION__TIME_CONSTRAINT = ACTION_BEHAVIOUR__TIME_CONSTRAINT; + + /** + * The feature id for the 'Time Label' containment reference. + * + * + * @generated + * @ordered + */ + int ASSERTION__TIME_LABEL = ACTION_BEHAVIOUR__TIME_LABEL; + + /** + * The feature id for the 'Component Instance' reference. + * + * + * @generated + * @ordered + */ + int ASSERTION__COMPONENT_INSTANCE = ACTION_BEHAVIOUR__COMPONENT_INSTANCE; + + /** + * The feature id for the 'Otherwise' containment reference. + * + * + * @generated + * @ordered + */ + int ASSERTION__OTHERWISE = ACTION_BEHAVIOUR_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Condition' containment reference. + * + * + * @generated + * @ordered + */ + int ASSERTION__CONDITION = ACTION_BEHAVIOUR_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Assertion' class. + * + * + * @generated + * @ordered + */ + int ASSERTION_FEATURE_COUNT = ACTION_BEHAVIOUR_FEATURE_COUNT + 2; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int ASSERTION___CONTAINER = ACTION_BEHAVIOUR___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int ASSERTION___GET_PARENT_TEST_DESCRIPTION = ACTION_BEHAVIOUR___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Is Tester Input Event' operation. + * + * + * @generated + * @ordered + */ + int ASSERTION___IS_TESTER_INPUT_EVENT = ACTION_BEHAVIOUR___IS_TESTER_INPUT_EVENT; + + /** + * The operation id for the 'Get Participating Components' operation. + * + * + * @generated + * @ordered + */ + int ASSERTION___GET_PARTICIPATING_COMPONENTS = ACTION_BEHAVIOUR___GET_PARTICIPATING_COMPONENTS; + + /** + * The number of operations of the 'Assertion' class. + * + * + * @generated + * @ordered + */ + int ASSERTION_OPERATION_COUNT = ACTION_BEHAVIOUR_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.StopImpl Stop}' class. + * + * + * @see org.etsi.mts.tdl.impl.StopImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getStop() + * @generated + */ + int STOP = 79; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int STOP__COMMENT = ATOMIC_BEHAVIOUR__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int STOP__ANNOTATION = ATOMIC_BEHAVIOUR__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int STOP__NAME = ATOMIC_BEHAVIOUR__NAME; + + /** + * The feature id for the 'Test Objective' reference list. + * + * + * @generated + * @ordered + */ + int STOP__TEST_OBJECTIVE = ATOMIC_BEHAVIOUR__TEST_OBJECTIVE; + + /** + * The feature id for the 'Time Constraint' containment reference list. + * + * + * @generated + * @ordered + */ + int STOP__TIME_CONSTRAINT = ATOMIC_BEHAVIOUR__TIME_CONSTRAINT; + + /** + * The feature id for the 'Time Label' containment reference. + * + * + * @generated + * @ordered + */ + int STOP__TIME_LABEL = ATOMIC_BEHAVIOUR__TIME_LABEL; + + /** + * The number of structural features of the 'Stop' class. + * + * + * @generated + * @ordered + */ + int STOP_FEATURE_COUNT = ATOMIC_BEHAVIOUR_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int STOP___CONTAINER = ATOMIC_BEHAVIOUR___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int STOP___GET_PARENT_TEST_DESCRIPTION = ATOMIC_BEHAVIOUR___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Is Tester Input Event' operation. + * + * + * @generated + * @ordered + */ + int STOP___IS_TESTER_INPUT_EVENT = ATOMIC_BEHAVIOUR___IS_TESTER_INPUT_EVENT; + + /** + * The operation id for the 'Get Participating Components' operation. + * + * + * @generated + * @ordered + */ + int STOP___GET_PARTICIPATING_COMPONENTS = ATOMIC_BEHAVIOUR___GET_PARTICIPATING_COMPONENTS; + + /** + * The number of operations of the 'Stop' class. + * + * + * @generated + * @ordered + */ + int STOP_OPERATION_COUNT = ATOMIC_BEHAVIOUR_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.BreakImpl Break}' class. + * + * + * @see org.etsi.mts.tdl.impl.BreakImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getBreak() + * @generated + */ + int BREAK = 80; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int BREAK__COMMENT = ATOMIC_BEHAVIOUR__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int BREAK__ANNOTATION = ATOMIC_BEHAVIOUR__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int BREAK__NAME = ATOMIC_BEHAVIOUR__NAME; + + /** + * The feature id for the 'Test Objective' reference list. + * + * + * @generated + * @ordered + */ + int BREAK__TEST_OBJECTIVE = ATOMIC_BEHAVIOUR__TEST_OBJECTIVE; + + /** + * The feature id for the 'Time Constraint' containment reference list. + * + * + * @generated + * @ordered + */ + int BREAK__TIME_CONSTRAINT = ATOMIC_BEHAVIOUR__TIME_CONSTRAINT; + + /** + * The feature id for the 'Time Label' containment reference. + * + * + * @generated + * @ordered + */ + int BREAK__TIME_LABEL = ATOMIC_BEHAVIOUR__TIME_LABEL; + + /** + * The number of structural features of the 'Break' class. + * + * + * @generated + * @ordered + */ + int BREAK_FEATURE_COUNT = ATOMIC_BEHAVIOUR_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int BREAK___CONTAINER = ATOMIC_BEHAVIOUR___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int BREAK___GET_PARENT_TEST_DESCRIPTION = ATOMIC_BEHAVIOUR___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Is Tester Input Event' operation. + * + * + * @generated + * @ordered + */ + int BREAK___IS_TESTER_INPUT_EVENT = ATOMIC_BEHAVIOUR___IS_TESTER_INPUT_EVENT; + + /** + * The operation id for the 'Get Participating Components' operation. + * + * + * @generated + * @ordered + */ + int BREAK___GET_PARTICIPATING_COMPONENTS = ATOMIC_BEHAVIOUR___GET_PARTICIPATING_COMPONENTS; + + /** + * The number of operations of the 'Break' class. + * + * + * @generated + * @ordered + */ + int BREAK_OPERATION_COUNT = ATOMIC_BEHAVIOUR_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.AssignmentImpl Assignment}' class. + * + * + * @see org.etsi.mts.tdl.impl.AssignmentImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getAssignment() + * @generated + */ + int ASSIGNMENT = 81; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT__COMMENT = ATOMIC_BEHAVIOUR__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT__ANNOTATION = ATOMIC_BEHAVIOUR__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT__NAME = ATOMIC_BEHAVIOUR__NAME; + + /** + * The feature id for the 'Test Objective' reference list. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT__TEST_OBJECTIVE = ATOMIC_BEHAVIOUR__TEST_OBJECTIVE; + + /** + * The feature id for the 'Time Constraint' containment reference list. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT__TIME_CONSTRAINT = ATOMIC_BEHAVIOUR__TIME_CONSTRAINT; + + /** + * The feature id for the 'Time Label' containment reference. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT__TIME_LABEL = ATOMIC_BEHAVIOUR__TIME_LABEL; + + /** + * The feature id for the 'Variable' containment reference. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT__VARIABLE = ATOMIC_BEHAVIOUR_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Expression' containment reference. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT__EXPRESSION = ATOMIC_BEHAVIOUR_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Assignment' class. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_FEATURE_COUNT = ATOMIC_BEHAVIOUR_FEATURE_COUNT + 2; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT___CONTAINER = ATOMIC_BEHAVIOUR___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT___GET_PARENT_TEST_DESCRIPTION = ATOMIC_BEHAVIOUR___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Is Tester Input Event' operation. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT___IS_TESTER_INPUT_EVENT = ATOMIC_BEHAVIOUR___IS_TESTER_INPUT_EVENT; + + /** + * The operation id for the 'Get Participating Components' operation. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT___GET_PARTICIPATING_COMPONENTS = ATOMIC_BEHAVIOUR_OPERATION_COUNT + 0; + + /** + * The number of operations of the 'Assignment' class. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_OPERATION_COUNT = ATOMIC_BEHAVIOUR_OPERATION_COUNT + 1; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.InlineActionImpl Inline Action}' class. + * + * + * @see org.etsi.mts.tdl.impl.InlineActionImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getInlineAction() + * @generated + */ + int INLINE_ACTION = 83; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int INLINE_ACTION__COMMENT = ACTION_BEHAVIOUR__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int INLINE_ACTION__ANNOTATION = ACTION_BEHAVIOUR__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int INLINE_ACTION__NAME = ACTION_BEHAVIOUR__NAME; + + /** + * The feature id for the 'Test Objective' reference list. + * + * + * @generated + * @ordered + */ + int INLINE_ACTION__TEST_OBJECTIVE = ACTION_BEHAVIOUR__TEST_OBJECTIVE; + + /** + * The feature id for the 'Time Constraint' containment reference list. + * + * + * @generated + * @ordered + */ + int INLINE_ACTION__TIME_CONSTRAINT = ACTION_BEHAVIOUR__TIME_CONSTRAINT; + + /** + * The feature id for the 'Time Label' containment reference. + * + * + * @generated + * @ordered + */ + int INLINE_ACTION__TIME_LABEL = ACTION_BEHAVIOUR__TIME_LABEL; + + /** + * The feature id for the 'Component Instance' reference. + * + * + * @generated + * @ordered + */ + int INLINE_ACTION__COMPONENT_INSTANCE = ACTION_BEHAVIOUR__COMPONENT_INSTANCE; + + /** + * The feature id for the 'Body' attribute. + * + * + * @generated + * @ordered + */ + int INLINE_ACTION__BODY = ACTION_BEHAVIOUR_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Inline Action' class. + * + * + * @generated + * @ordered + */ + int INLINE_ACTION_FEATURE_COUNT = ACTION_BEHAVIOUR_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int INLINE_ACTION___CONTAINER = ACTION_BEHAVIOUR___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int INLINE_ACTION___GET_PARENT_TEST_DESCRIPTION = ACTION_BEHAVIOUR___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Is Tester Input Event' operation. + * + * + * @generated + * @ordered + */ + int INLINE_ACTION___IS_TESTER_INPUT_EVENT = ACTION_BEHAVIOUR___IS_TESTER_INPUT_EVENT; + + /** + * The operation id for the 'Get Participating Components' operation. + * + * + * @generated + * @ordered + */ + int INLINE_ACTION___GET_PARTICIPATING_COMPONENTS = ACTION_BEHAVIOUR___GET_PARTICIPATING_COMPONENTS; + + /** + * The number of operations of the 'Inline Action' class. + * + * + * @generated + * @ordered + */ + int INLINE_ACTION_OPERATION_COUNT = ACTION_BEHAVIOUR_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.ActionReferenceImpl Action Reference}' class. + * + * + * @see org.etsi.mts.tdl.impl.ActionReferenceImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getActionReference() + * @generated + */ + int ACTION_REFERENCE = 84; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int ACTION_REFERENCE__COMMENT = ACTION_BEHAVIOUR__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int ACTION_REFERENCE__ANNOTATION = ACTION_BEHAVIOUR__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int ACTION_REFERENCE__NAME = ACTION_BEHAVIOUR__NAME; + + /** + * The feature id for the 'Test Objective' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_REFERENCE__TEST_OBJECTIVE = ACTION_BEHAVIOUR__TEST_OBJECTIVE; + + /** + * The feature id for the 'Time Constraint' containment reference list. + * + * + * @generated + * @ordered + */ + int ACTION_REFERENCE__TIME_CONSTRAINT = ACTION_BEHAVIOUR__TIME_CONSTRAINT; + + /** + * The feature id for the 'Time Label' containment reference. + * + * + * @generated + * @ordered + */ + int ACTION_REFERENCE__TIME_LABEL = ACTION_BEHAVIOUR__TIME_LABEL; + + /** + * The feature id for the 'Component Instance' reference. + * + * + * @generated + * @ordered + */ + int ACTION_REFERENCE__COMPONENT_INSTANCE = ACTION_BEHAVIOUR__COMPONENT_INSTANCE; + + /** + * The feature id for the 'Action' reference. + * + * + * @generated + * @ordered + */ + int ACTION_REFERENCE__ACTION = ACTION_BEHAVIOUR_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Argument' containment reference list. + * + * + * @generated + * @ordered + */ + int ACTION_REFERENCE__ARGUMENT = ACTION_BEHAVIOUR_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Action Reference' class. + * + * + * @generated + * @ordered + */ + int ACTION_REFERENCE_FEATURE_COUNT = ACTION_BEHAVIOUR_FEATURE_COUNT + 2; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int ACTION_REFERENCE___CONTAINER = ACTION_BEHAVIOUR___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int ACTION_REFERENCE___GET_PARENT_TEST_DESCRIPTION = ACTION_BEHAVIOUR___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Is Tester Input Event' operation. + * + * + * @generated + * @ordered + */ + int ACTION_REFERENCE___IS_TESTER_INPUT_EVENT = ACTION_BEHAVIOUR___IS_TESTER_INPUT_EVENT; + + /** + * The operation id for the 'Get Participating Components' operation. + * + * + * @generated + * @ordered + */ + int ACTION_REFERENCE___GET_PARTICIPATING_COMPONENTS = ACTION_BEHAVIOUR___GET_PARTICIPATING_COMPONENTS; + + /** + * The number of operations of the 'Action Reference' class. + * + * + * @generated + * @ordered + */ + int ACTION_REFERENCE_OPERATION_COUNT = ACTION_BEHAVIOUR_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.TestDescriptionReferenceImpl Test Description Reference}' class. + * + * + * @see org.etsi.mts.tdl.impl.TestDescriptionReferenceImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getTestDescriptionReference() + * @generated + */ + int TEST_DESCRIPTION_REFERENCE = 85; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int TEST_DESCRIPTION_REFERENCE__COMMENT = ATOMIC_BEHAVIOUR__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int TEST_DESCRIPTION_REFERENCE__ANNOTATION = ATOMIC_BEHAVIOUR__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int TEST_DESCRIPTION_REFERENCE__NAME = ATOMIC_BEHAVIOUR__NAME; + + /** + * The feature id for the 'Test Objective' reference list. + * + * + * @generated + * @ordered + */ + int TEST_DESCRIPTION_REFERENCE__TEST_OBJECTIVE = ATOMIC_BEHAVIOUR__TEST_OBJECTIVE; + + /** + * The feature id for the 'Time Constraint' containment reference list. + * + * + * @generated + * @ordered + */ + int TEST_DESCRIPTION_REFERENCE__TIME_CONSTRAINT = ATOMIC_BEHAVIOUR__TIME_CONSTRAINT; + + /** + * The feature id for the 'Time Label' containment reference. + * + * + * @generated + * @ordered + */ + int TEST_DESCRIPTION_REFERENCE__TIME_LABEL = ATOMIC_BEHAVIOUR__TIME_LABEL; + + /** + * The feature id for the 'Test Description' reference. + * + * + * @generated + * @ordered + */ + int TEST_DESCRIPTION_REFERENCE__TEST_DESCRIPTION = ATOMIC_BEHAVIOUR_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Component Instance Binding' containment reference list. + * + * + * @generated + * @ordered + */ + int TEST_DESCRIPTION_REFERENCE__COMPONENT_INSTANCE_BINDING = ATOMIC_BEHAVIOUR_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Argument' containment reference list. + * + * + * @generated + * @ordered + */ + int TEST_DESCRIPTION_REFERENCE__ARGUMENT = ATOMIC_BEHAVIOUR_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'Test Description Reference' class. + * + * + * @generated + * @ordered + */ + int TEST_DESCRIPTION_REFERENCE_FEATURE_COUNT = ATOMIC_BEHAVIOUR_FEATURE_COUNT + 3; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int TEST_DESCRIPTION_REFERENCE___CONTAINER = ATOMIC_BEHAVIOUR___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int TEST_DESCRIPTION_REFERENCE___GET_PARENT_TEST_DESCRIPTION = ATOMIC_BEHAVIOUR___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Is Tester Input Event' operation. + * + * + * @generated + * @ordered + */ + int TEST_DESCRIPTION_REFERENCE___IS_TESTER_INPUT_EVENT = ATOMIC_BEHAVIOUR___IS_TESTER_INPUT_EVENT; + + /** + * The operation id for the 'Get Participating Components' operation. + * + * + * @generated + * @ordered + */ + int TEST_DESCRIPTION_REFERENCE___GET_PARTICIPATING_COMPONENTS = ATOMIC_BEHAVIOUR_OPERATION_COUNT + 0; + + /** + * The number of operations of the 'Test Description Reference' class. + * + * + * @generated + * @ordered + */ + int TEST_DESCRIPTION_REFERENCE_OPERATION_COUNT = ATOMIC_BEHAVIOUR_OPERATION_COUNT + 1; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.ComponentInstanceBindingImpl Component Instance Binding}' class. + * + * + * @see org.etsi.mts.tdl.impl.ComponentInstanceBindingImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getComponentInstanceBinding() + * @generated + */ + int COMPONENT_INSTANCE_BINDING = 86; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int COMPONENT_INSTANCE_BINDING__COMMENT = ELEMENT__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int COMPONENT_INSTANCE_BINDING__ANNOTATION = ELEMENT__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int COMPONENT_INSTANCE_BINDING__NAME = ELEMENT__NAME; + + /** + * The feature id for the 'Formal Component' reference. + * + * + * @generated + * @ordered + */ + int COMPONENT_INSTANCE_BINDING__FORMAL_COMPONENT = ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Actual Component' reference. + * + * + * @generated + * @ordered + */ + int COMPONENT_INSTANCE_BINDING__ACTUAL_COMPONENT = ELEMENT_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Component Instance Binding' class. + * + * + * @generated + * @ordered + */ + int COMPONENT_INSTANCE_BINDING_FEATURE_COUNT = ELEMENT_FEATURE_COUNT + 2; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int COMPONENT_INSTANCE_BINDING___CONTAINER = ELEMENT___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int COMPONENT_INSTANCE_BINDING___GET_PARENT_TEST_DESCRIPTION = ELEMENT___GET_PARENT_TEST_DESCRIPTION; + + /** + * The number of operations of the 'Component Instance Binding' class. + * + * + * @generated + * @ordered + */ + int COMPONENT_INSTANCE_BINDING_OPERATION_COUNT = ELEMENT_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.InteractionImpl Interaction}' class. + * + * + * @see org.etsi.mts.tdl.impl.InteractionImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getInteraction() + * @generated + */ + int INTERACTION = 87; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__COMMENT = ATOMIC_BEHAVIOUR__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__ANNOTATION = ATOMIC_BEHAVIOUR__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int INTERACTION__NAME = ATOMIC_BEHAVIOUR__NAME; + + /** + * The feature id for the 'Test Objective' reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__TEST_OBJECTIVE = ATOMIC_BEHAVIOUR__TEST_OBJECTIVE; + + /** + * The feature id for the 'Time Constraint' containment reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__TIME_CONSTRAINT = ATOMIC_BEHAVIOUR__TIME_CONSTRAINT; + + /** + * The feature id for the 'Time Label' containment reference. + * + * + * @generated + * @ordered + */ + int INTERACTION__TIME_LABEL = ATOMIC_BEHAVIOUR__TIME_LABEL; + + /** + * The feature id for the 'Source Gate' reference. + * + * + * @generated + * @ordered + */ + int INTERACTION__SOURCE_GATE = ATOMIC_BEHAVIOUR_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Target' containment reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__TARGET = ATOMIC_BEHAVIOUR_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Interaction' class. + * + * + * @generated + * @ordered + */ + int INTERACTION_FEATURE_COUNT = ATOMIC_BEHAVIOUR_FEATURE_COUNT + 2; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int INTERACTION___CONTAINER = ATOMIC_BEHAVIOUR___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int INTERACTION___GET_PARENT_TEST_DESCRIPTION = ATOMIC_BEHAVIOUR___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Is Tester Input Event' operation. + * + * + * @generated + * @ordered + */ + int INTERACTION___IS_TESTER_INPUT_EVENT = ATOMIC_BEHAVIOUR___IS_TESTER_INPUT_EVENT; + + /** + * The operation id for the 'Get Participating Components' operation. + * + * + * @generated + * @ordered + */ + int INTERACTION___GET_PARTICIPATING_COMPONENTS = ATOMIC_BEHAVIOUR_OPERATION_COUNT + 0; + + /** + * The number of operations of the 'Interaction' class. + * + * + * @generated + * @ordered + */ + int INTERACTION_OPERATION_COUNT = ATOMIC_BEHAVIOUR_OPERATION_COUNT + 1; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.MessageImpl Message}' class. + * + * + * @see org.etsi.mts.tdl.impl.MessageImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getMessage() + * @generated + */ + int MESSAGE = 88; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int MESSAGE__COMMENT = INTERACTION__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int MESSAGE__ANNOTATION = INTERACTION__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int MESSAGE__NAME = INTERACTION__NAME; + + /** + * The feature id for the 'Test Objective' reference list. + * + * + * @generated + * @ordered + */ + int MESSAGE__TEST_OBJECTIVE = INTERACTION__TEST_OBJECTIVE; + + /** + * The feature id for the 'Time Constraint' containment reference list. + * + * + * @generated + * @ordered + */ + int MESSAGE__TIME_CONSTRAINT = INTERACTION__TIME_CONSTRAINT; + + /** + * The feature id for the 'Time Label' containment reference. + * + * + * @generated + * @ordered + */ + int MESSAGE__TIME_LABEL = INTERACTION__TIME_LABEL; + + /** + * The feature id for the 'Source Gate' reference. + * + * + * @generated + * @ordered + */ + int MESSAGE__SOURCE_GATE = INTERACTION__SOURCE_GATE; + + /** + * The feature id for the 'Target' containment reference list. + * + * + * @generated + * @ordered + */ + int MESSAGE__TARGET = INTERACTION__TARGET; + + /** + * The feature id for the 'Is Trigger' attribute. + * + * + * @generated + * @ordered + */ + int MESSAGE__IS_TRIGGER = INTERACTION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Argument' containment reference. + * + * + * @generated + * @ordered + */ + int MESSAGE__ARGUMENT = INTERACTION_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Message' class. + * + * + * @generated + * @ordered + */ + int MESSAGE_FEATURE_COUNT = INTERACTION_FEATURE_COUNT + 2; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int MESSAGE___CONTAINER = INTERACTION___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int MESSAGE___GET_PARENT_TEST_DESCRIPTION = INTERACTION___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Is Tester Input Event' operation. + * + * + * @generated + * @ordered + */ + int MESSAGE___IS_TESTER_INPUT_EVENT = INTERACTION___IS_TESTER_INPUT_EVENT; + + /** + * The operation id for the 'Get Participating Components' operation. + * + * + * @generated + * @ordered + */ + int MESSAGE___GET_PARTICIPATING_COMPONENTS = INTERACTION___GET_PARTICIPATING_COMPONENTS; + + /** + * The number of operations of the 'Message' class. + * + * + * @generated + * @ordered + */ + int MESSAGE_OPERATION_COUNT = INTERACTION_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.PredefinedFunctionImpl Predefined Function}' class. + * + * + * @see org.etsi.mts.tdl.impl.PredefinedFunctionImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getPredefinedFunction() + * @generated + */ + int PREDEFINED_FUNCTION = 89; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int PREDEFINED_FUNCTION__COMMENT = PACKAGEABLE_ELEMENT__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int PREDEFINED_FUNCTION__ANNOTATION = PACKAGEABLE_ELEMENT__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int PREDEFINED_FUNCTION__NAME = PACKAGEABLE_ELEMENT__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int PREDEFINED_FUNCTION__QUALIFIED_NAME = PACKAGEABLE_ELEMENT__QUALIFIED_NAME; + + /** + * The feature id for the 'Return Type' reference. + * + * + * @generated + * @ordered + */ + int PREDEFINED_FUNCTION__RETURN_TYPE = PACKAGEABLE_ELEMENT_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Predefined Function' class. + * + * + * @generated + * @ordered + */ + int PREDEFINED_FUNCTION_FEATURE_COUNT = PACKAGEABLE_ELEMENT_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int PREDEFINED_FUNCTION___CONTAINER = PACKAGEABLE_ELEMENT___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int PREDEFINED_FUNCTION___GET_PARENT_TEST_DESCRIPTION = PACKAGEABLE_ELEMENT___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Conforms To' operation. + * + * + * @generated + * @ordered + */ + int PREDEFINED_FUNCTION___CONFORMS_TO__STRING = PACKAGEABLE_ELEMENT___CONFORMS_TO__STRING; + + /** + * The operation id for the 'Get Element Named' operation. + * + * + * @generated + * @ordered + */ + int PREDEFINED_FUNCTION___GET_ELEMENT_NAMED__STRING = PACKAGEABLE_ELEMENT___GET_ELEMENT_NAMED__STRING; + + /** + * The operation id for the 'Conforms To' operation. + * + * + * @generated + * @ordered + */ + int PREDEFINED_FUNCTION___CONFORMS_TO__PACKAGEABLEELEMENT = PACKAGEABLE_ELEMENT___CONFORMS_TO__PACKAGEABLEELEMENT; + + /** + * The number of operations of the 'Predefined Function' class. + * + * + * @generated + * @ordered + */ + int PREDEFINED_FUNCTION_OPERATION_COUNT = PACKAGEABLE_ELEMENT_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.MemberReferenceImpl Member Reference}' class. + * + * + * @see org.etsi.mts.tdl.impl.MemberReferenceImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getMemberReference() + * @generated + */ + int MEMBER_REFERENCE = 90; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int MEMBER_REFERENCE__COMMENT = ELEMENT__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int MEMBER_REFERENCE__ANNOTATION = ELEMENT__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int MEMBER_REFERENCE__NAME = ELEMENT__NAME; + + /** + * The feature id for the 'Member' reference. + * + * + * @generated + * @ordered + */ + int MEMBER_REFERENCE__MEMBER = ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Collection Index' containment reference. + * + * + * @generated + * @ordered + */ + int MEMBER_REFERENCE__COLLECTION_INDEX = ELEMENT_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Member Reference' class. + * + * + * @generated + * @ordered + */ + int MEMBER_REFERENCE_FEATURE_COUNT = ELEMENT_FEATURE_COUNT + 2; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int MEMBER_REFERENCE___CONTAINER = ELEMENT___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int MEMBER_REFERENCE___GET_PARENT_TEST_DESCRIPTION = ELEMENT___GET_PARENT_TEST_DESCRIPTION; + + /** + * The number of operations of the 'Member Reference' class. + * + * + * @generated + * @ordered + */ + int MEMBER_REFERENCE_OPERATION_COUNT = ELEMENT_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.PredefinedFunctionCallImpl Predefined Function Call}' class. + * + * + * @see org.etsi.mts.tdl.impl.PredefinedFunctionCallImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getPredefinedFunctionCall() + * @generated + */ + int PREDEFINED_FUNCTION_CALL = 91; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int PREDEFINED_FUNCTION_CALL__COMMENT = DYNAMIC_DATA_USE__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int PREDEFINED_FUNCTION_CALL__ANNOTATION = DYNAMIC_DATA_USE__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int PREDEFINED_FUNCTION_CALL__NAME = DYNAMIC_DATA_USE__NAME; + + /** + * The feature id for the 'Argument' containment reference list. + * + * + * @generated + * @ordered + */ + int PREDEFINED_FUNCTION_CALL__ARGUMENT = DYNAMIC_DATA_USE__ARGUMENT; + + /** + * The feature id for the 'Reduction' containment reference list. + * + * + * @generated + * @ordered + */ + int PREDEFINED_FUNCTION_CALL__REDUCTION = DYNAMIC_DATA_USE__REDUCTION; + + /** + * The feature id for the 'Function' reference. + * + * + * @generated + * @ordered + */ + int PREDEFINED_FUNCTION_CALL__FUNCTION = DYNAMIC_DATA_USE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Actual Parameters' containment reference list. + * + * + * @generated + * @ordered + */ + int PREDEFINED_FUNCTION_CALL__ACTUAL_PARAMETERS = DYNAMIC_DATA_USE_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Predefined Function Call' class. + * + * + * @generated + * @ordered + */ + int PREDEFINED_FUNCTION_CALL_FEATURE_COUNT = DYNAMIC_DATA_USE_FEATURE_COUNT + 2; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int PREDEFINED_FUNCTION_CALL___CONTAINER = DYNAMIC_DATA_USE___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int PREDEFINED_FUNCTION_CALL___GET_PARENT_TEST_DESCRIPTION = DYNAMIC_DATA_USE___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Is Effectively Static' operation. + * + * + * @generated + * @ordered + */ + int PREDEFINED_FUNCTION_CALL___IS_EFFECTIVELY_STATIC = DYNAMIC_DATA_USE___IS_EFFECTIVELY_STATIC; + + /** + * The operation id for the 'Resolve Data Type' operation. + * + * + * @generated + * @ordered + */ + int PREDEFINED_FUNCTION_CALL___RESOLVE_DATA_TYPE = DYNAMIC_DATA_USE_OPERATION_COUNT + 0; + + /** + * The number of operations of the 'Predefined Function Call' class. + * + * + * @generated + * @ordered + */ + int PREDEFINED_FUNCTION_CALL_OPERATION_COUNT = DYNAMIC_DATA_USE_OPERATION_COUNT + 1; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.LocalExpressionImpl Local Expression}' class. + * + * + * @see org.etsi.mts.tdl.impl.LocalExpressionImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getLocalExpression() + * @generated + */ + int LOCAL_EXPRESSION = 92; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int LOCAL_EXPRESSION__COMMENT = ELEMENT__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int LOCAL_EXPRESSION__ANNOTATION = ELEMENT__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int LOCAL_EXPRESSION__NAME = ELEMENT__NAME; + + /** + * The feature id for the 'Expression' containment reference. + * + * + * @generated + * @ordered + */ + int LOCAL_EXPRESSION__EXPRESSION = ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Component Instance' reference. + * + * + * @generated + * @ordered + */ + int LOCAL_EXPRESSION__COMPONENT_INSTANCE = ELEMENT_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Local Expression' class. + * + * + * @generated + * @ordered + */ + int LOCAL_EXPRESSION_FEATURE_COUNT = ELEMENT_FEATURE_COUNT + 2; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int LOCAL_EXPRESSION___CONTAINER = ELEMENT___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int LOCAL_EXPRESSION___GET_PARENT_TEST_DESCRIPTION = ELEMENT___GET_PARENT_TEST_DESCRIPTION; + + /** + * The number of operations of the 'Local Expression' class. + * + * + * @generated + * @ordered + */ + int LOCAL_EXPRESSION_OPERATION_COUNT = ELEMENT_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.ValueAssignmentImpl Value Assignment}' class. + * + * + * @see org.etsi.mts.tdl.impl.ValueAssignmentImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getValueAssignment() + * @generated + */ + int VALUE_ASSIGNMENT = 93; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int VALUE_ASSIGNMENT__COMMENT = ELEMENT__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int VALUE_ASSIGNMENT__ANNOTATION = ELEMENT__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int VALUE_ASSIGNMENT__NAME = ELEMENT__NAME; + + /** + * The feature id for the 'Variable' reference. + * + * + * @generated + * @ordered + */ + int VALUE_ASSIGNMENT__VARIABLE = ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Parameter' reference. + * + * + * @generated + * @ordered + */ + int VALUE_ASSIGNMENT__PARAMETER = ELEMENT_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Value Assignment' class. + * + * + * @generated + * @ordered + */ + int VALUE_ASSIGNMENT_FEATURE_COUNT = ELEMENT_FEATURE_COUNT + 2; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int VALUE_ASSIGNMENT___CONTAINER = ELEMENT___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int VALUE_ASSIGNMENT___GET_PARENT_TEST_DESCRIPTION = ELEMENT___GET_PARENT_TEST_DESCRIPTION; + + /** + * The number of operations of the 'Value Assignment' class. + * + * + * @generated + * @ordered + */ + int VALUE_ASSIGNMENT_OPERATION_COUNT = ELEMENT_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.ProcedureCallImpl Procedure Call}' class. + * + * + * @see org.etsi.mts.tdl.impl.ProcedureCallImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getProcedureCall() + * @generated + */ + int PROCEDURE_CALL = 94; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int PROCEDURE_CALL__COMMENT = INTERACTION__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int PROCEDURE_CALL__ANNOTATION = INTERACTION__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int PROCEDURE_CALL__NAME = INTERACTION__NAME; + + /** + * The feature id for the 'Test Objective' reference list. + * + * + * @generated + * @ordered + */ + int PROCEDURE_CALL__TEST_OBJECTIVE = INTERACTION__TEST_OBJECTIVE; + + /** + * The feature id for the 'Time Constraint' containment reference list. + * + * + * @generated + * @ordered + */ + int PROCEDURE_CALL__TIME_CONSTRAINT = INTERACTION__TIME_CONSTRAINT; + + /** + * The feature id for the 'Time Label' containment reference. + * + * + * @generated + * @ordered + */ + int PROCEDURE_CALL__TIME_LABEL = INTERACTION__TIME_LABEL; + + /** + * The feature id for the 'Source Gate' reference. + * + * + * @generated + * @ordered + */ + int PROCEDURE_CALL__SOURCE_GATE = INTERACTION__SOURCE_GATE; + + /** + * The feature id for the 'Target' containment reference list. + * + * + * @generated + * @ordered + */ + int PROCEDURE_CALL__TARGET = INTERACTION__TARGET; + + /** + * The feature id for the 'Signature' reference. + * + * + * @generated + * @ordered + */ + int PROCEDURE_CALL__SIGNATURE = INTERACTION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Argument' containment reference list. + * + * + * @generated + * @ordered + */ + int PROCEDURE_CALL__ARGUMENT = INTERACTION_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Reply To' reference. + * + * + * @generated + * @ordered + */ + int PROCEDURE_CALL__REPLY_TO = INTERACTION_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'Procedure Call' class. + * + * + * @generated + * @ordered + */ + int PROCEDURE_CALL_FEATURE_COUNT = INTERACTION_FEATURE_COUNT + 3; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int PROCEDURE_CALL___CONTAINER = INTERACTION___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int PROCEDURE_CALL___GET_PARENT_TEST_DESCRIPTION = INTERACTION___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Is Tester Input Event' operation. + * + * + * @generated + * @ordered + */ + int PROCEDURE_CALL___IS_TESTER_INPUT_EVENT = INTERACTION___IS_TESTER_INPUT_EVENT; + + /** + * The operation id for the 'Get Participating Components' operation. + * + * + * @generated + * @ordered + */ + int PROCEDURE_CALL___GET_PARTICIPATING_COMPONENTS = INTERACTION___GET_PARTICIPATING_COMPONENTS; + + /** + * The number of operations of the 'Procedure Call' class. + * + * + * @generated + * @ordered + */ + int PROCEDURE_CALL_OPERATION_COUNT = INTERACTION_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.ProcedureSignatureImpl Procedure Signature}' class. + * + * + * @see org.etsi.mts.tdl.impl.ProcedureSignatureImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getProcedureSignature() + * @generated + */ + int PROCEDURE_SIGNATURE = 95; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int PROCEDURE_SIGNATURE__COMMENT = DATA_TYPE__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int PROCEDURE_SIGNATURE__ANNOTATION = DATA_TYPE__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int PROCEDURE_SIGNATURE__NAME = DATA_TYPE__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int PROCEDURE_SIGNATURE__QUALIFIED_NAME = DATA_TYPE__QUALIFIED_NAME; + + /** + * The feature id for the 'Constraint' containment reference list. + * + * + * @generated + * @ordered + */ + int PROCEDURE_SIGNATURE__CONSTRAINT = DATA_TYPE__CONSTRAINT; + + /** + * The feature id for the 'Parameter' containment reference list. + * + * + * @generated + * @ordered + */ + int PROCEDURE_SIGNATURE__PARAMETER = DATA_TYPE_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Procedure Signature' class. + * + * + * @generated + * @ordered + */ + int PROCEDURE_SIGNATURE_FEATURE_COUNT = DATA_TYPE_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int PROCEDURE_SIGNATURE___CONTAINER = DATA_TYPE___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int PROCEDURE_SIGNATURE___GET_PARENT_TEST_DESCRIPTION = DATA_TYPE___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Conforms To' operation. + * + * + * @generated + * @ordered + */ + int PROCEDURE_SIGNATURE___CONFORMS_TO__STRING = DATA_TYPE___CONFORMS_TO__STRING; + + /** + * The operation id for the 'Get Element Named' operation. + * + * + * @generated + * @ordered + */ + int PROCEDURE_SIGNATURE___GET_ELEMENT_NAMED__STRING = DATA_TYPE___GET_ELEMENT_NAMED__STRING; + + /** + * The operation id for the 'Conforms To' operation. + * + * + * @generated + * @ordered + */ + int PROCEDURE_SIGNATURE___CONFORMS_TO__PACKAGEABLEELEMENT = DATA_TYPE___CONFORMS_TO__PACKAGEABLEELEMENT; + + /** + * The operation id for the 'All Constraints' operation. + * + * + * @generated + * @ordered + */ + int PROCEDURE_SIGNATURE___ALL_CONSTRAINTS = DATA_TYPE___ALL_CONSTRAINTS; + + /** + * The number of operations of the 'Procedure Signature' class. + * + * + * @generated + * @ordered + */ + int PROCEDURE_SIGNATURE_OPERATION_COUNT = DATA_TYPE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.ProcedureParameterImpl Procedure Parameter}' class. + * + * + * @see org.etsi.mts.tdl.impl.ProcedureParameterImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getProcedureParameter() + * @generated + */ + int PROCEDURE_PARAMETER = 96; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int PROCEDURE_PARAMETER__COMMENT = PARAMETER__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int PROCEDURE_PARAMETER__ANNOTATION = PARAMETER__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int PROCEDURE_PARAMETER__NAME = PARAMETER__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int PROCEDURE_PARAMETER__QUALIFIED_NAME = PARAMETER__QUALIFIED_NAME; + + /** + * The feature id for the 'Data Type' reference. + * + * + * @generated + * @ordered + */ + int PROCEDURE_PARAMETER__DATA_TYPE = PARAMETER__DATA_TYPE; + + /** + * The feature id for the 'Kind' attribute. + * + * + * @generated + * @ordered + */ + int PROCEDURE_PARAMETER__KIND = PARAMETER_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Procedure Parameter' class. + * + * + * @generated + * @ordered + */ + int PROCEDURE_PARAMETER_FEATURE_COUNT = PARAMETER_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int PROCEDURE_PARAMETER___CONTAINER = PARAMETER___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int PROCEDURE_PARAMETER___GET_PARENT_TEST_DESCRIPTION = PARAMETER___GET_PARENT_TEST_DESCRIPTION; + + /** + * The number of operations of the 'Procedure Parameter' class. + * + * + * @generated + * @ordered + */ + int PROCEDURE_PARAMETER_OPERATION_COUNT = PARAMETER_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.CollectionDataTypeImpl Collection Data Type}' class. + * + * + * @see org.etsi.mts.tdl.impl.CollectionDataTypeImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getCollectionDataType() + * @generated + */ + int COLLECTION_DATA_TYPE = 97; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int COLLECTION_DATA_TYPE__COMMENT = DATA_TYPE__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int COLLECTION_DATA_TYPE__ANNOTATION = DATA_TYPE__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int COLLECTION_DATA_TYPE__NAME = DATA_TYPE__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int COLLECTION_DATA_TYPE__QUALIFIED_NAME = DATA_TYPE__QUALIFIED_NAME; + + /** + * The feature id for the 'Constraint' containment reference list. + * + * + * @generated + * @ordered + */ + int COLLECTION_DATA_TYPE__CONSTRAINT = DATA_TYPE__CONSTRAINT; + + /** + * The feature id for the 'Item Type' reference. + * + * + * @generated + * @ordered + */ + int COLLECTION_DATA_TYPE__ITEM_TYPE = DATA_TYPE_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Collection Data Type' class. + * + * + * @generated + * @ordered + */ + int COLLECTION_DATA_TYPE_FEATURE_COUNT = DATA_TYPE_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int COLLECTION_DATA_TYPE___CONTAINER = DATA_TYPE___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int COLLECTION_DATA_TYPE___GET_PARENT_TEST_DESCRIPTION = DATA_TYPE___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Conforms To' operation. + * + * + * @generated + * @ordered + */ + int COLLECTION_DATA_TYPE___CONFORMS_TO__STRING = DATA_TYPE___CONFORMS_TO__STRING; + + /** + * The operation id for the 'Get Element Named' operation. + * + * + * @generated + * @ordered + */ + int COLLECTION_DATA_TYPE___GET_ELEMENT_NAMED__STRING = DATA_TYPE___GET_ELEMENT_NAMED__STRING; + + /** + * The operation id for the 'Conforms To' operation. + * + * + * @generated + * @ordered + */ + int COLLECTION_DATA_TYPE___CONFORMS_TO__PACKAGEABLEELEMENT = DATA_TYPE___CONFORMS_TO__PACKAGEABLEELEMENT; + + /** + * The operation id for the 'All Constraints' operation. + * + * + * @generated + * @ordered + */ + int COLLECTION_DATA_TYPE___ALL_CONSTRAINTS = DATA_TYPE___ALL_CONSTRAINTS; + + /** + * The number of operations of the 'Collection Data Type' class. + * + * + * @generated + * @ordered + */ + int COLLECTION_DATA_TYPE_OPERATION_COUNT = DATA_TYPE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.CollectionDataInstanceImpl Collection Data Instance}' class. + * + * + * @see org.etsi.mts.tdl.impl.CollectionDataInstanceImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getCollectionDataInstance() + * @generated + */ + int COLLECTION_DATA_INSTANCE = 98; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int COLLECTION_DATA_INSTANCE__COMMENT = DATA_INSTANCE__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int COLLECTION_DATA_INSTANCE__ANNOTATION = DATA_INSTANCE__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int COLLECTION_DATA_INSTANCE__NAME = DATA_INSTANCE__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int COLLECTION_DATA_INSTANCE__QUALIFIED_NAME = DATA_INSTANCE__QUALIFIED_NAME; + + /** + * The feature id for the 'Data Type' reference. + * + * + * @generated + * @ordered + */ + int COLLECTION_DATA_INSTANCE__DATA_TYPE = DATA_INSTANCE__DATA_TYPE; + + /** + * The feature id for the 'Item' containment reference list. + * + * + * @generated + * @ordered + */ + int COLLECTION_DATA_INSTANCE__ITEM = DATA_INSTANCE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Unassigned Member' attribute. + * + * + * @generated + * @ordered + */ + int COLLECTION_DATA_INSTANCE__UNASSIGNED_MEMBER = DATA_INSTANCE_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Collection Data Instance' class. + * + * + * @generated + * @ordered + */ + int COLLECTION_DATA_INSTANCE_FEATURE_COUNT = DATA_INSTANCE_FEATURE_COUNT + 2; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int COLLECTION_DATA_INSTANCE___CONTAINER = DATA_INSTANCE___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int COLLECTION_DATA_INSTANCE___GET_PARENT_TEST_DESCRIPTION = DATA_INSTANCE___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Conforms To' operation. + * + * + * @generated + * @ordered + */ + int COLLECTION_DATA_INSTANCE___CONFORMS_TO__STRING = DATA_INSTANCE___CONFORMS_TO__STRING; + + /** + * The operation id for the 'Get Element Named' operation. + * + * + * @generated + * @ordered + */ + int COLLECTION_DATA_INSTANCE___GET_ELEMENT_NAMED__STRING = DATA_INSTANCE___GET_ELEMENT_NAMED__STRING; + + /** + * The operation id for the 'Conforms To' operation. + * + * + * @generated + * @ordered + */ + int COLLECTION_DATA_INSTANCE___CONFORMS_TO__PACKAGEABLEELEMENT = DATA_INSTANCE___CONFORMS_TO__PACKAGEABLEELEMENT; + + /** + * The number of operations of the 'Collection Data Instance' class. + * + * + * @generated + * @ordered + */ + int COLLECTION_DATA_INSTANCE_OPERATION_COUNT = DATA_INSTANCE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.ExtensionImpl Extension}' class. + * + * + * @see org.etsi.mts.tdl.impl.ExtensionImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getExtension() + * @generated + */ + int EXTENSION = 99; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int EXTENSION__COMMENT = ELEMENT__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int EXTENSION__ANNOTATION = ELEMENT__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int EXTENSION__NAME = ELEMENT__NAME; + + /** + * The feature id for the 'Extending' reference. + * + * + * @generated + * @ordered + */ + int EXTENSION__EXTENDING = ELEMENT_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Extension' class. + * + * + * @generated + * @ordered + */ + int EXTENSION_FEATURE_COUNT = ELEMENT_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int EXTENSION___CONTAINER = ELEMENT___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int EXTENSION___GET_PARENT_TEST_DESCRIPTION = ELEMENT___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Transitive Extending' operation. + * + * + * @generated + * @ordered + */ + int EXTENSION___TRANSITIVE_EXTENDING = ELEMENT_OPERATION_COUNT + 0; + + /** + * The operation id for the 'Is Extending' operation. + * + * + * @generated + * @ordered + */ + int EXTENSION___IS_EXTENDING__PACKAGEABLEELEMENT = ELEMENT_OPERATION_COUNT + 1; + + /** + * The number of operations of the 'Extension' class. + * + * + * @generated + * @ordered + */ + int EXTENSION_OPERATION_COUNT = ELEMENT_OPERATION_COUNT + 2; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.LiteralValueUseImpl Literal Value Use}' class. + * + * + * @see org.etsi.mts.tdl.impl.LiteralValueUseImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getLiteralValueUse() + * @generated + */ + int LITERAL_VALUE_USE = 100; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_VALUE_USE__COMMENT = STATIC_DATA_USE__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_VALUE_USE__ANNOTATION = STATIC_DATA_USE__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_VALUE_USE__NAME = STATIC_DATA_USE__NAME; + + /** + * The feature id for the 'Argument' containment reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_VALUE_USE__ARGUMENT = STATIC_DATA_USE__ARGUMENT; + + /** + * The feature id for the 'Reduction' containment reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_VALUE_USE__REDUCTION = STATIC_DATA_USE__REDUCTION; + + /** + * The feature id for the 'Value' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_VALUE_USE__VALUE = STATIC_DATA_USE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Int Value' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_VALUE_USE__INT_VALUE = STATIC_DATA_USE_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Bool Value' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_VALUE_USE__BOOL_VALUE = STATIC_DATA_USE_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Data Type' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_VALUE_USE__DATA_TYPE = STATIC_DATA_USE_FEATURE_COUNT + 3; + + /** + * The number of structural features of the 'Literal Value Use' class. + * + * + * @generated + * @ordered + */ + int LITERAL_VALUE_USE_FEATURE_COUNT = STATIC_DATA_USE_FEATURE_COUNT + 4; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_VALUE_USE___CONTAINER = STATIC_DATA_USE___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_VALUE_USE___GET_PARENT_TEST_DESCRIPTION = STATIC_DATA_USE___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Is Effectively Static' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_VALUE_USE___IS_EFFECTIVELY_STATIC = STATIC_DATA_USE___IS_EFFECTIVELY_STATIC; + + /** + * The operation id for the 'Resolve Data Type' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_VALUE_USE___RESOLVE_DATA_TYPE = STATIC_DATA_USE_OPERATION_COUNT + 0; + + /** + * The number of operations of the 'Literal Value Use' class. + * + * + * @generated + * @ordered + */ + int LITERAL_VALUE_USE_OPERATION_COUNT = STATIC_DATA_USE_OPERATION_COUNT + 1; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.ConstraintTypeImpl Constraint Type}' class. + * + * + * @see org.etsi.mts.tdl.impl.ConstraintTypeImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getConstraintType() + * @generated + */ + int CONSTRAINT_TYPE = 101; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_TYPE__COMMENT = PACKAGEABLE_ELEMENT__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_TYPE__ANNOTATION = PACKAGEABLE_ELEMENT__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_TYPE__NAME = PACKAGEABLE_ELEMENT__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_TYPE__QUALIFIED_NAME = PACKAGEABLE_ELEMENT__QUALIFIED_NAME; + + /** + * The number of structural features of the 'Constraint Type' class. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_TYPE_FEATURE_COUNT = PACKAGEABLE_ELEMENT_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_TYPE___CONTAINER = PACKAGEABLE_ELEMENT___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_TYPE___GET_PARENT_TEST_DESCRIPTION = PACKAGEABLE_ELEMENT___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Conforms To' operation. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_TYPE___CONFORMS_TO__STRING = PACKAGEABLE_ELEMENT___CONFORMS_TO__STRING; + + /** + * The operation id for the 'Get Element Named' operation. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_TYPE___GET_ELEMENT_NAMED__STRING = PACKAGEABLE_ELEMENT___GET_ELEMENT_NAMED__STRING; + + /** + * The operation id for the 'Conforms To' operation. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_TYPE___CONFORMS_TO__PACKAGEABLEELEMENT = PACKAGEABLE_ELEMENT___CONFORMS_TO__PACKAGEABLEELEMENT; + + /** + * The number of operations of the 'Constraint Type' class. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_TYPE_OPERATION_COUNT = PACKAGEABLE_ELEMENT_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.ConstraintImpl Constraint}' class. + * + * + * @see org.etsi.mts.tdl.impl.ConstraintImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getConstraint() + * @generated + */ + int CONSTRAINT = 102; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT__COMMENT = ELEMENT__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT__ANNOTATION = ELEMENT__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int CONSTRAINT__NAME = ELEMENT__NAME; + + /** + * The feature id for the 'Type' reference. + * + * + * @generated + * @ordered + */ + int CONSTRAINT__TYPE = ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Quantifier' containment reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT__QUANTIFIER = ELEMENT_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Constraint' class. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_FEATURE_COUNT = ELEMENT_FEATURE_COUNT + 2; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int CONSTRAINT___CONTAINER = ELEMENT___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int CONSTRAINT___GET_PARENT_TEST_DESCRIPTION = ELEMENT___GET_PARENT_TEST_DESCRIPTION; + + /** + * The number of operations of the 'Constraint' class. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_OPERATION_COUNT = ELEMENT_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.EnumDataTypeImpl Enum Data Type}' class. + * + * + * @see org.etsi.mts.tdl.impl.EnumDataTypeImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getEnumDataType() + * @generated + */ + int ENUM_DATA_TYPE = 103; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int ENUM_DATA_TYPE__COMMENT = SIMPLE_DATA_TYPE__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int ENUM_DATA_TYPE__ANNOTATION = SIMPLE_DATA_TYPE__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int ENUM_DATA_TYPE__NAME = SIMPLE_DATA_TYPE__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int ENUM_DATA_TYPE__QUALIFIED_NAME = SIMPLE_DATA_TYPE__QUALIFIED_NAME; + + /** + * The feature id for the 'Constraint' containment reference list. + * + * + * @generated + * @ordered + */ + int ENUM_DATA_TYPE__CONSTRAINT = SIMPLE_DATA_TYPE__CONSTRAINT; + + /** + * The feature id for the 'Extension' containment reference. + * + * + * @generated + * @ordered + */ + int ENUM_DATA_TYPE__EXTENSION = SIMPLE_DATA_TYPE__EXTENSION; + + /** + * The feature id for the 'Value' containment reference list. + * + * + * @generated + * @ordered + */ + int ENUM_DATA_TYPE__VALUE = SIMPLE_DATA_TYPE_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Enum Data Type' class. + * + * + * @generated + * @ordered + */ + int ENUM_DATA_TYPE_FEATURE_COUNT = SIMPLE_DATA_TYPE_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int ENUM_DATA_TYPE___CONTAINER = SIMPLE_DATA_TYPE___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int ENUM_DATA_TYPE___GET_PARENT_TEST_DESCRIPTION = SIMPLE_DATA_TYPE___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Conforms To' operation. + * + * + * @generated + * @ordered + */ + int ENUM_DATA_TYPE___CONFORMS_TO__STRING = SIMPLE_DATA_TYPE___CONFORMS_TO__STRING; + + /** + * The operation id for the 'Get Element Named' operation. + * + * + * @generated + * @ordered + */ + int ENUM_DATA_TYPE___GET_ELEMENT_NAMED__STRING = SIMPLE_DATA_TYPE___GET_ELEMENT_NAMED__STRING; + + /** + * The operation id for the 'Conforms To' operation. + * + * + * @generated + * @ordered + */ + int ENUM_DATA_TYPE___CONFORMS_TO__PACKAGEABLEELEMENT = SIMPLE_DATA_TYPE___CONFORMS_TO__PACKAGEABLEELEMENT; + + /** + * The operation id for the 'All Constraints' operation. + * + * + * @generated + * @ordered + */ + int ENUM_DATA_TYPE___ALL_CONSTRAINTS = SIMPLE_DATA_TYPE___ALL_CONSTRAINTS; + + /** + * The number of operations of the 'Enum Data Type' class. + * + * + * @generated + * @ordered + */ + int ENUM_DATA_TYPE_OPERATION_COUNT = SIMPLE_DATA_TYPE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.impl.DataElementUseImpl Data Element Use}' class. + * + * + * @see org.etsi.mts.tdl.impl.DataElementUseImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getDataElementUse() + * @generated + */ + int DATA_ELEMENT_USE = 104; + + /** + * The feature id for the 'Comment' containment reference list. + * + * + * @generated + * @ordered + */ + int DATA_ELEMENT_USE__COMMENT = DATA_USE__COMMENT; + + /** + * The feature id for the 'Annotation' containment reference list. + * + * + * @generated + * @ordered + */ + int DATA_ELEMENT_USE__ANNOTATION = DATA_USE__ANNOTATION; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int DATA_ELEMENT_USE__NAME = DATA_USE__NAME; + + /** + * The feature id for the 'Argument' containment reference list. + * + * + * @generated + * @ordered + */ + int DATA_ELEMENT_USE__ARGUMENT = DATA_USE__ARGUMENT; + + /** + * The feature id for the 'Reduction' containment reference list. + * + * + * @generated + * @ordered + */ + int DATA_ELEMENT_USE__REDUCTION = DATA_USE__REDUCTION; + + /** + * The feature id for the 'Unassigned Member' attribute. + * + * + * @generated + * @ordered + */ + int DATA_ELEMENT_USE__UNASSIGNED_MEMBER = DATA_USE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Data Element' reference. + * + * + * @generated + * @ordered + */ + int DATA_ELEMENT_USE__DATA_ELEMENT = DATA_USE_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Item' containment reference list. + * + * + * @generated + * @ordered + */ + int DATA_ELEMENT_USE__ITEM = DATA_USE_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'Data Element Use' class. + * + * + * @generated + * @ordered + */ + int DATA_ELEMENT_USE_FEATURE_COUNT = DATA_USE_FEATURE_COUNT + 3; + + /** + * The operation id for the 'Container' operation. + * + * + * @generated + * @ordered + */ + int DATA_ELEMENT_USE___CONTAINER = DATA_USE___CONTAINER; + + /** + * The operation id for the 'Get Parent Test Description' operation. + * + * + * @generated + * @ordered + */ + int DATA_ELEMENT_USE___GET_PARENT_TEST_DESCRIPTION = DATA_USE___GET_PARENT_TEST_DESCRIPTION; + + /** + * The operation id for the 'Is Effectively Static' operation. + * + * + * @generated + * @ordered + */ + int DATA_ELEMENT_USE___IS_EFFECTIVELY_STATIC = DATA_USE___IS_EFFECTIVELY_STATIC; + + /** + * The operation id for the 'Resolve Data Type' operation. + * + * + * @generated + * @ordered + */ + int DATA_ELEMENT_USE___RESOLVE_DATA_TYPE = DATA_USE_OPERATION_COUNT + 0; + + /** + * The number of operations of the 'Data Element Use' class. + * + * + * @generated + * @ordered + */ + int DATA_ELEMENT_USE_OPERATION_COUNT = DATA_USE_OPERATION_COUNT + 1; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.UnassignedMemberTreatment Unassigned Member Treatment}' enum. + * + * + * @see org.etsi.mts.tdl.UnassignedMemberTreatment + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getUnassignedMemberTreatment() + * @generated + */ + int UNASSIGNED_MEMBER_TREATMENT = 105; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.ComponentInstanceRole Component Instance Role}' enum. + * + * + * @see org.etsi.mts.tdl.ComponentInstanceRole + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getComponentInstanceRole() + * @generated + */ + int COMPONENT_INSTANCE_ROLE = 106; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.GateTypeKind Gate Type Kind}' enum. + * + * + * @see org.etsi.mts.tdl.GateTypeKind + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getGateTypeKind() + * @generated + */ + int GATE_TYPE_KIND = 107; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.TimeLabelUseKind Time Label Use Kind}' enum. + * + * + * @see org.etsi.mts.tdl.TimeLabelUseKind + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getTimeLabelUseKind() + * @generated + */ + int TIME_LABEL_USE_KIND = 108; + + /** + * The meta object id for the '{@link org.etsi.mts.tdl.ParameterKind Parameter Kind}' enum. + * + * + * @see org.etsi.mts.tdl.ParameterKind + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getParameterKind() + * @generated + */ + int PARAMETER_KIND = 109; + + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.Element Element}'. + * + * + * @return the meta object for class 'Element'. + * @see org.etsi.mts.tdl.Element + * @generated + */ + EClass getElement(); + + /** + * Returns the meta object for the containment reference list '{@link org.etsi.mts.tdl.Element#getComment Comment}'. + * + * + * @return the meta object for the containment reference list 'Comment'. + * @see org.etsi.mts.tdl.Element#getComment() + * @see #getElement() + * @generated + */ + EReference getElement_Comment(); + + /** + * Returns the meta object for the containment reference list '{@link org.etsi.mts.tdl.Element#getAnnotation Annotation}'. + * + * + * @return the meta object for the containment reference list 'Annotation'. + * @see org.etsi.mts.tdl.Element#getAnnotation() + * @see #getElement() + * @generated + */ + EReference getElement_Annotation(); + + /** + * Returns the meta object for the attribute '{@link org.etsi.mts.tdl.Element#getName Name}'. + * + * + * @return the meta object for the attribute 'Name'. + * @see org.etsi.mts.tdl.Element#getName() + * @see #getElement() + * @generated + */ + EAttribute getElement_Name(); + + /** + * Returns the meta object for the '{@link org.etsi.mts.tdl.Element#container() Container}' operation. + * + * + * @return the meta object for the 'Container' operation. + * @see org.etsi.mts.tdl.Element#container() + * @generated + */ + EOperation getElement__Container(); + + /** + * Returns the meta object for the '{@link org.etsi.mts.tdl.Element#getParentTestDescription() Get Parent Test Description}' operation. + * + * + * @return the meta object for the 'Get Parent Test Description' operation. + * @see org.etsi.mts.tdl.Element#getParentTestDescription() + * @generated + */ + EOperation getElement__GetParentTestDescription(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.Comment Comment}'. + * + * + * @return the meta object for class 'Comment'. + * @see org.etsi.mts.tdl.Comment + * @generated + */ + EClass getComment(); + + /** + * Returns the meta object for the attribute '{@link org.etsi.mts.tdl.Comment#getBody Body}'. + * + * + * @return the meta object for the attribute 'Body'. + * @see org.etsi.mts.tdl.Comment#getBody() + * @see #getComment() + * @generated + */ + EAttribute getComment_Body(); + + /** + * Returns the meta object for the container reference '{@link org.etsi.mts.tdl.Comment#getCommentedElement Commented Element}'. + * + * + * @return the meta object for the container reference 'Commented Element'. + * @see org.etsi.mts.tdl.Comment#getCommentedElement() + * @see #getComment() + * @generated + */ + EReference getComment_CommentedElement(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.Annotation Annotation}'. + * + * + * @return the meta object for class 'Annotation'. + * @see org.etsi.mts.tdl.Annotation + * @generated + */ + EClass getAnnotation(); + + /** + * Returns the meta object for the attribute '{@link org.etsi.mts.tdl.Annotation#getValue Value}'. + * + * + * @return the meta object for the attribute 'Value'. + * @see org.etsi.mts.tdl.Annotation#getValue() + * @see #getAnnotation() + * @generated + */ + EAttribute getAnnotation_Value(); + + /** + * Returns the meta object for the reference '{@link org.etsi.mts.tdl.Annotation#getKey Key}'. + * + * + * @return the meta object for the reference 'Key'. + * @see org.etsi.mts.tdl.Annotation#getKey() + * @see #getAnnotation() + * @generated + */ + EReference getAnnotation_Key(); + + /** + * Returns the meta object for the container reference '{@link org.etsi.mts.tdl.Annotation#getAnnotatedElement Annotated Element}'. + * + * + * @return the meta object for the container reference 'Annotated Element'. + * @see org.etsi.mts.tdl.Annotation#getAnnotatedElement() + * @see #getAnnotation() + * @generated + */ + EReference getAnnotation_AnnotatedElement(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.AnnotationType Annotation Type}'. + * + * + * @return the meta object for class 'Annotation Type'. + * @see org.etsi.mts.tdl.AnnotationType + * @generated + */ + EClass getAnnotationType(); + + /** + * Returns the meta object for the containment reference '{@link org.etsi.mts.tdl.AnnotationType#getExtension Extension}'. + * + * + * @return the meta object for the containment reference 'Extension'. + * @see org.etsi.mts.tdl.AnnotationType#getExtension() + * @see #getAnnotationType() + * @generated + */ + EReference getAnnotationType_Extension(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.PackageableElement Packageable Element}'. + * + * + * @return the meta object for class 'Packageable Element'. + * @see org.etsi.mts.tdl.PackageableElement + * @generated + */ + EClass getPackageableElement(); + + /** + * Returns the meta object for the '{@link org.etsi.mts.tdl.PackageableElement#conformsTo(java.lang.String) Conforms To}' operation. + * + * + * @return the meta object for the 'Conforms To' operation. + * @see org.etsi.mts.tdl.PackageableElement#conformsTo(java.lang.String) + * @generated + */ + EOperation getPackageableElement__ConformsTo__String(); + + /** + * Returns the meta object for the '{@link org.etsi.mts.tdl.PackageableElement#getElementNamed(java.lang.String) Get Element Named}' operation. + * + * + * @return the meta object for the 'Get Element Named' operation. + * @see org.etsi.mts.tdl.PackageableElement#getElementNamed(java.lang.String) + * @generated + */ + EOperation getPackageableElement__GetElementNamed__String(); + + /** + * Returns the meta object for the '{@link org.etsi.mts.tdl.PackageableElement#conformsTo(org.etsi.mts.tdl.PackageableElement) Conforms To}' operation. + * + * + * @return the meta object for the 'Conforms To' operation. + * @see org.etsi.mts.tdl.PackageableElement#conformsTo(org.etsi.mts.tdl.PackageableElement) + * @generated + */ + EOperation getPackageableElement__ConformsTo__PackageableElement(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.NamedElement Named Element}'. + * + * + * @return the meta object for class 'Named Element'. + * @see org.etsi.mts.tdl.NamedElement + * @generated + */ + EClass getNamedElement(); + + /** + * Returns the meta object for the attribute '{@link org.etsi.mts.tdl.NamedElement#getQualifiedName Qualified Name}'. + * + * + * @return the meta object for the attribute 'Qualified Name'. + * @see org.etsi.mts.tdl.NamedElement#getQualifiedName() + * @see #getNamedElement() + * @generated + */ + EAttribute getNamedElement_QualifiedName(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.Package Package}'. + * + * + * @return the meta object for class 'Package'. + * @see org.etsi.mts.tdl.Package + * @generated + */ + EClass getPackage(); + + /** + * Returns the meta object for the containment reference list '{@link org.etsi.mts.tdl.Package#getPackagedElement Packaged Element}'. + * + * + * @return the meta object for the containment reference list 'Packaged Element'. + * @see org.etsi.mts.tdl.Package#getPackagedElement() + * @see #getPackage() + * @generated + */ + EReference getPackage_PackagedElement(); + + /** + * Returns the meta object for the containment reference list '{@link org.etsi.mts.tdl.Package#getImport Import}'. + * + * + * @return the meta object for the containment reference list 'Import'. + * @see org.etsi.mts.tdl.Package#getImport() + * @see #getPackage() + * @generated + */ + EReference getPackage_Import(); + + /** + * Returns the meta object for the containment reference list '{@link org.etsi.mts.tdl.Package#getNestedPackage Nested Package}'. + * + * + * @return the meta object for the containment reference list 'Nested Package'. + * @see org.etsi.mts.tdl.Package#getNestedPackage() + * @see #getPackage() + * @generated + */ + EReference getPackage_NestedPackage(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.ElementImport Element Import}'. + * + * + * @return the meta object for class 'Element Import'. + * @see org.etsi.mts.tdl.ElementImport + * @generated + */ + EClass getElementImport(); + + /** + * Returns the meta object for the reference list '{@link org.etsi.mts.tdl.ElementImport#getImportedElement Imported Element}'. + * + * + * @return the meta object for the reference list 'Imported Element'. + * @see org.etsi.mts.tdl.ElementImport#getImportedElement() + * @see #getElementImport() + * @generated + */ + EReference getElementImport_ImportedElement(); + + /** + * Returns the meta object for the reference '{@link org.etsi.mts.tdl.ElementImport#getImportedPackage Imported Package}'. + * + * + * @return the meta object for the reference 'Imported Package'. + * @see org.etsi.mts.tdl.ElementImport#getImportedPackage() + * @see #getElementImport() + * @generated + */ + EReference getElementImport_ImportedPackage(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.TestObjective Test Objective}'. + * + * + * @return the meta object for class 'Test Objective'. + * @see org.etsi.mts.tdl.TestObjective + * @generated + */ + EClass getTestObjective(); + + /** + * Returns the meta object for the attribute list '{@link org.etsi.mts.tdl.TestObjective#getObjectiveURI Objective URI}'. + * + * + * @return the meta object for the attribute list 'Objective URI'. + * @see org.etsi.mts.tdl.TestObjective#getObjectiveURI() + * @see #getTestObjective() + * @generated + */ + EAttribute getTestObjective_ObjectiveURI(); + + /** + * Returns the meta object for the attribute '{@link org.etsi.mts.tdl.TestObjective#getDescription Description}'. + * + * + * @return the meta object for the attribute 'Description'. + * @see org.etsi.mts.tdl.TestObjective#getDescription() + * @see #getTestObjective() + * @generated + */ + EAttribute getTestObjective_Description(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.DataInstance Data Instance}'. + * + * + * @return the meta object for class 'Data Instance'. + * @see org.etsi.mts.tdl.DataInstance + * @generated + */ + EClass getDataInstance(); + + /** + * Returns the meta object for the reference '{@link org.etsi.mts.tdl.DataInstance#getDataType Data Type}'. + * + * + * @return the meta object for the reference 'Data Type'. + * @see org.etsi.mts.tdl.DataInstance#getDataType() + * @see #getDataInstance() + * @generated + */ + EReference getDataInstance_DataType(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.MappableDataElement Mappable Data Element}'. + * + * + * @return the meta object for class 'Mappable Data Element'. + * @see org.etsi.mts.tdl.MappableDataElement + * @generated + */ + EClass getMappableDataElement(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.DataType Data Type}'. + * + * + * @return the meta object for class 'Data Type'. + * @see org.etsi.mts.tdl.DataType + * @generated + */ + EClass getDataType(); + + /** + * Returns the meta object for the containment reference list '{@link org.etsi.mts.tdl.DataType#getConstraint Constraint}'. + * + * + * @return the meta object for the containment reference list 'Constraint'. + * @see org.etsi.mts.tdl.DataType#getConstraint() + * @see #getDataType() + * @generated + */ + EReference getDataType_Constraint(); + + /** + * Returns the meta object for the '{@link org.etsi.mts.tdl.DataType#allConstraints() All Constraints}' operation. + * + * + * @return the meta object for the 'All Constraints' operation. + * @see org.etsi.mts.tdl.DataType#allConstraints() + * @generated + */ + EOperation getDataType__AllConstraints(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.DataResourceMapping Data Resource Mapping}'. + * + * + * @return the meta object for class 'Data Resource Mapping'. + * @see org.etsi.mts.tdl.DataResourceMapping + * @generated + */ + EClass getDataResourceMapping(); + + /** + * Returns the meta object for the attribute '{@link org.etsi.mts.tdl.DataResourceMapping#getResourceURI Resource URI}'. + * + * + * @return the meta object for the attribute 'Resource URI'. + * @see org.etsi.mts.tdl.DataResourceMapping#getResourceURI() + * @see #getDataResourceMapping() + * @generated + */ + EAttribute getDataResourceMapping_ResourceURI(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.DataElementMapping Data Element Mapping}'. + * + * + * @return the meta object for class 'Data Element Mapping'. + * @see org.etsi.mts.tdl.DataElementMapping + * @generated + */ + EClass getDataElementMapping(); + + /** + * Returns the meta object for the reference '{@link org.etsi.mts.tdl.DataElementMapping#getMappableDataElement Mappable Data Element}'. + * + * + * @return the meta object for the reference 'Mappable Data Element'. + * @see org.etsi.mts.tdl.DataElementMapping#getMappableDataElement() + * @see #getDataElementMapping() + * @generated + */ + EReference getDataElementMapping_MappableDataElement(); + + /** + * Returns the meta object for the attribute '{@link org.etsi.mts.tdl.DataElementMapping#getElementURI Element URI}'. + * + * + * @return the meta object for the attribute 'Element URI'. + * @see org.etsi.mts.tdl.DataElementMapping#getElementURI() + * @see #getDataElementMapping() + * @generated + */ + EAttribute getDataElementMapping_ElementURI(); + + /** + * Returns the meta object for the reference '{@link org.etsi.mts.tdl.DataElementMapping#getDataResourceMapping Data Resource Mapping}'. + * + * + * @return the meta object for the reference 'Data Resource Mapping'. + * @see org.etsi.mts.tdl.DataElementMapping#getDataResourceMapping() + * @see #getDataElementMapping() + * @generated + */ + EReference getDataElementMapping_DataResourceMapping(); + + /** + * Returns the meta object for the containment reference list '{@link org.etsi.mts.tdl.DataElementMapping#getParameterMapping Parameter Mapping}'. + * + * + * @return the meta object for the containment reference list 'Parameter Mapping'. + * @see org.etsi.mts.tdl.DataElementMapping#getParameterMapping() + * @see #getDataElementMapping() + * @generated + */ + EReference getDataElementMapping_ParameterMapping(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.ParameterMapping Parameter Mapping}'. + * + * + * @return the meta object for class 'Parameter Mapping'. + * @see org.etsi.mts.tdl.ParameterMapping + * @generated + */ + EClass getParameterMapping(); + + /** + * Returns the meta object for the attribute '{@link org.etsi.mts.tdl.ParameterMapping#getParameterURI Parameter URI}'. + * + * + * @return the meta object for the attribute 'Parameter URI'. + * @see org.etsi.mts.tdl.ParameterMapping#getParameterURI() + * @see #getParameterMapping() + * @generated + */ + EAttribute getParameterMapping_ParameterURI(); + + /** + * Returns the meta object for the reference '{@link org.etsi.mts.tdl.ParameterMapping#getParameter Parameter}'. + * + * + * @return the meta object for the reference 'Parameter'. + * @see org.etsi.mts.tdl.ParameterMapping#getParameter() + * @see #getParameterMapping() + * @generated + */ + EReference getParameterMapping_Parameter(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.Parameter Parameter}'. + * + * + * @return the meta object for class 'Parameter'. + * @see org.etsi.mts.tdl.Parameter + * @generated + */ + EClass getParameter(); + + /** + * Returns the meta object for the reference '{@link org.etsi.mts.tdl.Parameter#getDataType Data Type}'. + * + * + * @return the meta object for the reference 'Data Type'. + * @see org.etsi.mts.tdl.Parameter#getDataType() + * @see #getParameter() + * @generated + */ + EReference getParameter_DataType(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.SimpleDataType Simple Data Type}'. + * + * + * @return the meta object for class 'Simple Data Type'. + * @see org.etsi.mts.tdl.SimpleDataType + * @generated + */ + EClass getSimpleDataType(); + + /** + * Returns the meta object for the containment reference '{@link org.etsi.mts.tdl.SimpleDataType#getExtension Extension}'. + * + * + * @return the meta object for the containment reference 'Extension'. + * @see org.etsi.mts.tdl.SimpleDataType#getExtension() + * @see #getSimpleDataType() + * @generated + */ + EReference getSimpleDataType_Extension(); + + /** + * Returns the meta object for the '{@link org.etsi.mts.tdl.SimpleDataType#allConstraints() All Constraints}' operation. + * + * + * @return the meta object for the 'All Constraints' operation. + * @see org.etsi.mts.tdl.SimpleDataType#allConstraints() + * @generated + */ + EOperation getSimpleDataType__AllConstraints(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.SimpleDataInstance Simple Data Instance}'. + * + * + * @return the meta object for class 'Simple Data Instance'. + * @see org.etsi.mts.tdl.SimpleDataInstance + * @generated + */ + EClass getSimpleDataInstance(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.StructuredDataType Structured Data Type}'. + * + * + * @return the meta object for class 'Structured Data Type'. + * @see org.etsi.mts.tdl.StructuredDataType + * @generated + */ + EClass getStructuredDataType(); + + /** + * Returns the meta object for the containment reference list '{@link org.etsi.mts.tdl.StructuredDataType#getExtension Extension}'. + * + * + * @return the meta object for the containment reference list 'Extension'. + * @see org.etsi.mts.tdl.StructuredDataType#getExtension() + * @see #getStructuredDataType() + * @generated + */ + EReference getStructuredDataType_Extension(); + + /** + * Returns the meta object for the containment reference list '{@link org.etsi.mts.tdl.StructuredDataType#getMember Member}'. + * + * + * @return the meta object for the containment reference list 'Member'. + * @see org.etsi.mts.tdl.StructuredDataType#getMember() + * @see #getStructuredDataType() + * @generated + */ + EReference getStructuredDataType_Member(); + + /** + * Returns the meta object for the '{@link org.etsi.mts.tdl.StructuredDataType#allMembers() All Members}' operation. + * + * + * @return the meta object for the 'All Members' operation. + * @see org.etsi.mts.tdl.StructuredDataType#allMembers() + * @generated + */ + EOperation getStructuredDataType__AllMembers(); + + /** + * Returns the meta object for the '{@link org.etsi.mts.tdl.StructuredDataType#allConstraints() All Constraints}' operation. + * + * + * @return the meta object for the 'All Constraints' operation. + * @see org.etsi.mts.tdl.StructuredDataType#allConstraints() + * @generated + */ + EOperation getStructuredDataType__AllConstraints(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.Member Member}'. + * + * + * @return the meta object for class 'Member'. + * @see org.etsi.mts.tdl.Member + * @generated + */ + EClass getMember(); + + /** + * Returns the meta object for the attribute '{@link org.etsi.mts.tdl.Member#isIsOptional Is Optional}'. + * + * + * @return the meta object for the attribute 'Is Optional'. + * @see org.etsi.mts.tdl.Member#isIsOptional() + * @see #getMember() + * @generated + */ + EAttribute getMember_IsOptional(); + + /** + * Returns the meta object for the containment reference list '{@link org.etsi.mts.tdl.Member#getConstraint Constraint}'. + * + * + * @return the meta object for the containment reference list 'Constraint'. + * @see org.etsi.mts.tdl.Member#getConstraint() + * @see #getMember() + * @generated + */ + EReference getMember_Constraint(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.StructuredDataInstance Structured Data Instance}'. + * + * + * @return the meta object for class 'Structured Data Instance'. + * @see org.etsi.mts.tdl.StructuredDataInstance + * @generated + */ + EClass getStructuredDataInstance(); + + /** + * Returns the meta object for the containment reference list '{@link org.etsi.mts.tdl.StructuredDataInstance#getMemberAssignment Member Assignment}'. + * + * + * @return the meta object for the containment reference list 'Member Assignment'. + * @see org.etsi.mts.tdl.StructuredDataInstance#getMemberAssignment() + * @see #getStructuredDataInstance() + * @generated + */ + EReference getStructuredDataInstance_MemberAssignment(); + + /** + * Returns the meta object for the attribute '{@link org.etsi.mts.tdl.StructuredDataInstance#getUnassignedMember Unassigned Member}'. + * + * + * @return the meta object for the attribute 'Unassigned Member'. + * @see org.etsi.mts.tdl.StructuredDataInstance#getUnassignedMember() + * @see #getStructuredDataInstance() + * @generated + */ + EAttribute getStructuredDataInstance_UnassignedMember(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.MemberAssignment Member Assignment}'. + * + * + * @return the meta object for class 'Member Assignment'. + * @see org.etsi.mts.tdl.MemberAssignment + * @generated + */ + EClass getMemberAssignment(); + + /** + * Returns the meta object for the reference '{@link org.etsi.mts.tdl.MemberAssignment#getMember Member}'. + * + * + * @return the meta object for the reference 'Member'. + * @see org.etsi.mts.tdl.MemberAssignment#getMember() + * @see #getMemberAssignment() + * @generated + */ + EReference getMemberAssignment_Member(); + + /** + * Returns the meta object for the containment reference '{@link org.etsi.mts.tdl.MemberAssignment#getMemberSpec Member Spec}'. + * + * + * @return the meta object for the containment reference 'Member Spec'. + * @see org.etsi.mts.tdl.MemberAssignment#getMemberSpec() + * @see #getMemberAssignment() + * @generated + */ + EReference getMemberAssignment_MemberSpec(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.StaticDataUse Static Data Use}'. + * + * + * @return the meta object for class 'Static Data Use'. + * @see org.etsi.mts.tdl.StaticDataUse + * @generated + */ + EClass getStaticDataUse(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.DataUse Data Use}'. + * + * + * @return the meta object for class 'Data Use'. + * @see org.etsi.mts.tdl.DataUse + * @generated + */ + EClass getDataUse(); + + /** + * Returns the meta object for the containment reference list '{@link org.etsi.mts.tdl.DataUse#getArgument Argument}'. + * + * + * @return the meta object for the containment reference list 'Argument'. + * @see org.etsi.mts.tdl.DataUse#getArgument() + * @see #getDataUse() + * @generated + */ + EReference getDataUse_Argument(); + + /** + * Returns the meta object for the containment reference list '{@link org.etsi.mts.tdl.DataUse#getReduction Reduction}'. + * + * + * @return the meta object for the containment reference list 'Reduction'. + * @see org.etsi.mts.tdl.DataUse#getReduction() + * @see #getDataUse() + * @generated + */ + EReference getDataUse_Reduction(); + + /** + * Returns the meta object for the '{@link org.etsi.mts.tdl.DataUse#resolveDataType() Resolve Data Type}' operation. + * + * + * @return the meta object for the 'Resolve Data Type' operation. + * @see org.etsi.mts.tdl.DataUse#resolveDataType() + * @generated + */ + EOperation getDataUse__ResolveDataType(); + + /** + * Returns the meta object for the '{@link org.etsi.mts.tdl.DataUse#isEffectivelyStatic() Is Effectively Static}' operation. + * + * + * @return the meta object for the 'Is Effectively Static' operation. + * @see org.etsi.mts.tdl.DataUse#isEffectivelyStatic() + * @generated + */ + EOperation getDataUse__IsEffectivelyStatic(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.ParameterBinding Parameter Binding}'. + * + * + * @return the meta object for class 'Parameter Binding'. + * @see org.etsi.mts.tdl.ParameterBinding + * @generated + */ + EClass getParameterBinding(); + + /** + * Returns the meta object for the containment reference '{@link org.etsi.mts.tdl.ParameterBinding#getDataUse Data Use}'. + * + * + * @return the meta object for the containment reference 'Data Use'. + * @see org.etsi.mts.tdl.ParameterBinding#getDataUse() + * @see #getParameterBinding() + * @generated + */ + EReference getParameterBinding_DataUse(); + + /** + * Returns the meta object for the reference '{@link org.etsi.mts.tdl.ParameterBinding#getParameter Parameter}'. + * + * + * @return the meta object for the reference 'Parameter'. + * @see org.etsi.mts.tdl.ParameterBinding#getParameter() + * @see #getParameterBinding() + * @generated + */ + EReference getParameterBinding_Parameter(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.Action Action}'. + * + * + * @return the meta object for class 'Action'. + * @see org.etsi.mts.tdl.Action + * @generated + */ + EClass getAction(); + + /** + * Returns the meta object for the attribute '{@link org.etsi.mts.tdl.Action#getBody Body}'. + * + * + * @return the meta object for the attribute 'Body'. + * @see org.etsi.mts.tdl.Action#getBody() + * @see #getAction() + * @generated + */ + EAttribute getAction_Body(); + + /** + * Returns the meta object for the containment reference list '{@link org.etsi.mts.tdl.Action#getFormalParameter Formal Parameter}'. + * + * + * @return the meta object for the containment reference list 'Formal Parameter'. + * @see org.etsi.mts.tdl.Action#getFormalParameter() + * @see #getAction() + * @generated + */ + EReference getAction_FormalParameter(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.FormalParameter Formal Parameter}'. + * + * + * @return the meta object for class 'Formal Parameter'. + * @see org.etsi.mts.tdl.FormalParameter + * @generated + */ + EClass getFormalParameter(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.Function Function}'. + * + * + * @return the meta object for class 'Function'. + * @see org.etsi.mts.tdl.Function + * @generated + */ + EClass getFunction(); + + /** + * Returns the meta object for the reference '{@link org.etsi.mts.tdl.Function#getReturnType Return Type}'. + * + * + * @return the meta object for the reference 'Return Type'. + * @see org.etsi.mts.tdl.Function#getReturnType() + * @see #getFunction() + * @generated + */ + EReference getFunction_ReturnType(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.FormalParameterUse Formal Parameter Use}'. + * + * + * @return the meta object for class 'Formal Parameter Use'. + * @see org.etsi.mts.tdl.FormalParameterUse + * @generated + */ + EClass getFormalParameterUse(); + + /** + * Returns the meta object for the reference '{@link org.etsi.mts.tdl.FormalParameterUse#getParameter Parameter}'. + * + * + * @return the meta object for the reference 'Parameter'. + * @see org.etsi.mts.tdl.FormalParameterUse#getParameter() + * @see #getFormalParameterUse() + * @generated + */ + EReference getFormalParameterUse_Parameter(); + + /** + * Returns the meta object for the '{@link org.etsi.mts.tdl.FormalParameterUse#resolveDataType() Resolve Data Type}' operation. + * + * + * @return the meta object for the 'Resolve Data Type' operation. + * @see org.etsi.mts.tdl.FormalParameterUse#resolveDataType() + * @generated + */ + EOperation getFormalParameterUse__ResolveDataType(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.DynamicDataUse Dynamic Data Use}'. + * + * + * @return the meta object for class 'Dynamic Data Use'. + * @see org.etsi.mts.tdl.DynamicDataUse + * @generated + */ + EClass getDynamicDataUse(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.Variable Variable}'. + * + * + * @return the meta object for class 'Variable'. + * @see org.etsi.mts.tdl.Variable + * @generated + */ + EClass getVariable(); + + /** + * Returns the meta object for the reference '{@link org.etsi.mts.tdl.Variable#getDataType Data Type}'. + * + * + * @return the meta object for the reference 'Data Type'. + * @see org.etsi.mts.tdl.Variable#getDataType() + * @see #getVariable() + * @generated + */ + EReference getVariable_DataType(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.FunctionCall Function Call}'. + * + * + * @return the meta object for class 'Function Call'. + * @see org.etsi.mts.tdl.FunctionCall + * @generated + */ + EClass getFunctionCall(); + + /** + * Returns the meta object for the reference '{@link org.etsi.mts.tdl.FunctionCall#getFunction Function}'. + * + * + * @return the meta object for the reference 'Function'. + * @see org.etsi.mts.tdl.FunctionCall#getFunction() + * @see #getFunctionCall() + * @generated + */ + EReference getFunctionCall_Function(); + + /** + * Returns the meta object for the '{@link org.etsi.mts.tdl.FunctionCall#resolveDataType() Resolve Data Type}' operation. + * + * + * @return the meta object for the 'Resolve Data Type' operation. + * @see org.etsi.mts.tdl.FunctionCall#resolveDataType() + * @generated + */ + EOperation getFunctionCall__ResolveDataType(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.VariableUse Variable Use}'. + * + * + * @return the meta object for class 'Variable Use'. + * @see org.etsi.mts.tdl.VariableUse + * @generated + */ + EClass getVariableUse(); + + /** + * Returns the meta object for the reference '{@link org.etsi.mts.tdl.VariableUse#getComponentInstance Component Instance}'. + * + * + * @return the meta object for the reference 'Component Instance'. + * @see org.etsi.mts.tdl.VariableUse#getComponentInstance() + * @see #getVariableUse() + * @generated + */ + EReference getVariableUse_ComponentInstance(); + + /** + * Returns the meta object for the reference '{@link org.etsi.mts.tdl.VariableUse#getVariable Variable}'. + * + * + * @return the meta object for the reference 'Variable'. + * @see org.etsi.mts.tdl.VariableUse#getVariable() + * @see #getVariableUse() + * @generated + */ + EReference getVariableUse_Variable(); + + /** + * Returns the meta object for the '{@link org.etsi.mts.tdl.VariableUse#resolveDataType() Resolve Data Type}' operation. + * + * + * @return the meta object for the 'Resolve Data Type' operation. + * @see org.etsi.mts.tdl.VariableUse#resolveDataType() + * @generated + */ + EOperation getVariableUse__ResolveDataType(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.ComponentInstance Component Instance}'. + * + * + * @return the meta object for class 'Component Instance'. + * @see org.etsi.mts.tdl.ComponentInstance + * @generated + */ + EClass getComponentInstance(); + + /** + * Returns the meta object for the reference '{@link org.etsi.mts.tdl.ComponentInstance#getType Type}'. + * + * + * @return the meta object for the reference 'Type'. + * @see org.etsi.mts.tdl.ComponentInstance#getType() + * @see #getComponentInstance() + * @generated + */ + EReference getComponentInstance_Type(); + + /** + * Returns the meta object for the attribute '{@link org.etsi.mts.tdl.ComponentInstance#getRole Role}'. + * + * + * @return the meta object for the attribute 'Role'. + * @see org.etsi.mts.tdl.ComponentInstance#getRole() + * @see #getComponentInstance() + * @generated + */ + EAttribute getComponentInstance_Role(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.ComponentType Component Type}'. + * + * + * @return the meta object for class 'Component Type'. + * @see org.etsi.mts.tdl.ComponentType + * @generated + */ + EClass getComponentType(); + + /** + * Returns the meta object for the containment reference list '{@link org.etsi.mts.tdl.ComponentType#getGateInstance Gate Instance}'. + * + * + * @return the meta object for the containment reference list 'Gate Instance'. + * @see org.etsi.mts.tdl.ComponentType#getGateInstance() + * @see #getComponentType() + * @generated + */ + EReference getComponentType_GateInstance(); + + /** + * Returns the meta object for the containment reference list '{@link org.etsi.mts.tdl.ComponentType#getTimer Timer}'. + * + * + * @return the meta object for the containment reference list 'Timer'. + * @see org.etsi.mts.tdl.ComponentType#getTimer() + * @see #getComponentType() + * @generated + */ + EReference getComponentType_Timer(); + + /** + * Returns the meta object for the containment reference list '{@link org.etsi.mts.tdl.ComponentType#getVariable Variable}'. + * + * + * @return the meta object for the containment reference list 'Variable'. + * @see org.etsi.mts.tdl.ComponentType#getVariable() + * @see #getComponentType() + * @generated + */ + EReference getComponentType_Variable(); + + /** + * Returns the meta object for the containment reference '{@link org.etsi.mts.tdl.ComponentType#getExtension Extension}'. + * + * + * @return the meta object for the containment reference 'Extension'. + * @see org.etsi.mts.tdl.ComponentType#getExtension() + * @see #getComponentType() + * @generated + */ + EReference getComponentType_Extension(); + + /** + * Returns the meta object for the '{@link org.etsi.mts.tdl.ComponentType#allGates() All Gates}' operation. + * + * + * @return the meta object for the 'All Gates' operation. + * @see org.etsi.mts.tdl.ComponentType#allGates() + * @generated + */ + EOperation getComponentType__AllGates(); + + /** + * Returns the meta object for the '{@link org.etsi.mts.tdl.ComponentType#allTimers() All Timers}' operation. + * + * + * @return the meta object for the 'All Timers' operation. + * @see org.etsi.mts.tdl.ComponentType#allTimers() + * @generated + */ + EOperation getComponentType__AllTimers(); + + /** + * Returns the meta object for the '{@link org.etsi.mts.tdl.ComponentType#allVariables() All Variables}' operation. + * + * + * @return the meta object for the 'All Variables' operation. + * @see org.etsi.mts.tdl.ComponentType#allVariables() + * @generated + */ + EOperation getComponentType__AllVariables(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.GateInstance Gate Instance}'. + * + * + * @return the meta object for class 'Gate Instance'. + * @see org.etsi.mts.tdl.GateInstance + * @generated + */ + EClass getGateInstance(); + + /** + * Returns the meta object for the reference '{@link org.etsi.mts.tdl.GateInstance#getType Type}'. + * + * + * @return the meta object for the reference 'Type'. + * @see org.etsi.mts.tdl.GateInstance#getType() + * @see #getGateInstance() + * @generated + */ + EReference getGateInstance_Type(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.GateType Gate Type}'. + * + * + * @return the meta object for class 'Gate Type'. + * @see org.etsi.mts.tdl.GateType + * @generated + */ + EClass getGateType(); + + /** + * Returns the meta object for the reference list '{@link org.etsi.mts.tdl.GateType#getDataType Data Type}'. + * + * + * @return the meta object for the reference list 'Data Type'. + * @see org.etsi.mts.tdl.GateType#getDataType() + * @see #getGateType() + * @generated + */ + EReference getGateType_DataType(); + + /** + * Returns the meta object for the attribute '{@link org.etsi.mts.tdl.GateType#getKind Kind}'. + * + * + * @return the meta object for the attribute 'Kind'. + * @see org.etsi.mts.tdl.GateType#getKind() + * @see #getGateType() + * @generated + */ + EAttribute getGateType_Kind(); + + /** + * Returns the meta object for the containment reference '{@link org.etsi.mts.tdl.GateType#getExtension Extension}'. + * + * + * @return the meta object for the containment reference 'Extension'. + * @see org.etsi.mts.tdl.GateType#getExtension() + * @see #getGateType() + * @generated + */ + EReference getGateType_Extension(); + + /** + * Returns the meta object for the '{@link org.etsi.mts.tdl.GateType#allDataTypes() All Data Types}' operation. + * + * + * @return the meta object for the 'All Data Types' operation. + * @see org.etsi.mts.tdl.GateType#allDataTypes() + * @generated + */ + EOperation getGateType__AllDataTypes(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.Timer Timer}'. + * + * + * @return the meta object for class 'Timer'. + * @see org.etsi.mts.tdl.Timer + * @generated + */ + EClass getTimer(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.OmitValue Omit Value}'. + * + * + * @return the meta object for class 'Omit Value'. + * @see org.etsi.mts.tdl.OmitValue + * @generated + */ + EClass getOmitValue(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.SpecialValueUse Special Value Use}'. + * + * + * @return the meta object for class 'Special Value Use'. + * @see org.etsi.mts.tdl.SpecialValueUse + * @generated + */ + EClass getSpecialValueUse(); + + /** + * Returns the meta object for the '{@link org.etsi.mts.tdl.SpecialValueUse#resolveDataType() Resolve Data Type}' operation. + * + * + * @return the meta object for the 'Resolve Data Type' operation. + * @see org.etsi.mts.tdl.SpecialValueUse#resolveDataType() + * @generated + */ + EOperation getSpecialValueUse__ResolveDataType(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.AnyValue Any Value}'. + * + * + * @return the meta object for class 'Any Value'. + * @see org.etsi.mts.tdl.AnyValue + * @generated + */ + EClass getAnyValue(); + + /** + * Returns the meta object for the reference '{@link org.etsi.mts.tdl.AnyValue#getDataType Data Type}'. + * + * + * @return the meta object for the reference 'Data Type'. + * @see org.etsi.mts.tdl.AnyValue#getDataType() + * @see #getAnyValue() + * @generated + */ + EReference getAnyValue_DataType(); + + /** + * Returns the meta object for the '{@link org.etsi.mts.tdl.AnyValue#resolveDataType() Resolve Data Type}' operation. + * + * + * @return the meta object for the 'Resolve Data Type' operation. + * @see org.etsi.mts.tdl.AnyValue#resolveDataType() + * @generated + */ + EOperation getAnyValue__ResolveDataType(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.AnyValueOrOmit Any Value Or Omit}'. + * + * + * @return the meta object for class 'Any Value Or Omit'. + * @see org.etsi.mts.tdl.AnyValueOrOmit + * @generated + */ + EClass getAnyValueOrOmit(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.DataInstanceUse Data Instance Use}'. + * + * + * @return the meta object for class 'Data Instance Use'. + * @see org.etsi.mts.tdl.DataInstanceUse + * @generated + */ + EClass getDataInstanceUse(); + + /** + * Returns the meta object for the reference '{@link org.etsi.mts.tdl.DataInstanceUse#getDataInstance Data Instance}'. + * + * + * @return the meta object for the reference 'Data Instance'. + * @see org.etsi.mts.tdl.DataInstanceUse#getDataInstance() + * @see #getDataInstanceUse() + * @generated + */ + EReference getDataInstanceUse_DataInstance(); + + /** + * Returns the meta object for the attribute '{@link org.etsi.mts.tdl.DataInstanceUse#getUnassignedMember Unassigned Member}'. + * + * + * @return the meta object for the attribute 'Unassigned Member'. + * @see org.etsi.mts.tdl.DataInstanceUse#getUnassignedMember() + * @see #getDataInstanceUse() + * @generated + */ + EAttribute getDataInstanceUse_UnassignedMember(); + + /** + * Returns the meta object for the reference '{@link org.etsi.mts.tdl.DataInstanceUse#getDataType Data Type}'. + * + * + * @return the meta object for the reference 'Data Type'. + * @see org.etsi.mts.tdl.DataInstanceUse#getDataType() + * @see #getDataInstanceUse() + * @generated + */ + EReference getDataInstanceUse_DataType(); + + /** + * Returns the meta object for the containment reference list '{@link org.etsi.mts.tdl.DataInstanceUse#getItem Item}'. + * + * + * @return the meta object for the containment reference list 'Item'. + * @see org.etsi.mts.tdl.DataInstanceUse#getItem() + * @see #getDataInstanceUse() + * @generated + */ + EReference getDataInstanceUse_Item(); + + /** + * Returns the meta object for the '{@link org.etsi.mts.tdl.DataInstanceUse#resolveDataType() Resolve Data Type}' operation. + * + * + * @return the meta object for the 'Resolve Data Type' operation. + * @see org.etsi.mts.tdl.DataInstanceUse#resolveDataType() + * @generated + */ + EOperation getDataInstanceUse__ResolveDataType(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.Time Time}'. + * + * + * @return the meta object for class 'Time'. + * @see org.etsi.mts.tdl.Time + * @generated + */ + EClass getTime(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.TimeLabel Time Label}'. + * + * + * @return the meta object for class 'Time Label'. + * @see org.etsi.mts.tdl.TimeLabel + * @generated + */ + EClass getTimeLabel(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.TimerOperation Timer Operation}'. + * + * + * @return the meta object for class 'Timer Operation'. + * @see org.etsi.mts.tdl.TimerOperation + * @generated + */ + EClass getTimerOperation(); + + /** + * Returns the meta object for the reference '{@link org.etsi.mts.tdl.TimerOperation#getTimer Timer}'. + * + * + * @return the meta object for the reference 'Timer'. + * @see org.etsi.mts.tdl.TimerOperation#getTimer() + * @see #getTimerOperation() + * @generated + */ + EReference getTimerOperation_Timer(); + + /** + * Returns the meta object for the reference '{@link org.etsi.mts.tdl.TimerOperation#getComponentInstance Component Instance}'. + * + * + * @return the meta object for the reference 'Component Instance'. + * @see org.etsi.mts.tdl.TimerOperation#getComponentInstance() + * @see #getTimerOperation() + * @generated + */ + EReference getTimerOperation_ComponentInstance(); + + /** + * Returns the meta object for the '{@link org.etsi.mts.tdl.TimerOperation#getParticipatingComponents() Get Participating Components}' operation. + * + * + * @return the meta object for the 'Get Participating Components' operation. + * @see org.etsi.mts.tdl.TimerOperation#getParticipatingComponents() + * @generated + */ + EOperation getTimerOperation__GetParticipatingComponents(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.AtomicBehaviour Atomic Behaviour}'. + * + * + * @return the meta object for class 'Atomic Behaviour'. + * @see org.etsi.mts.tdl.AtomicBehaviour + * @generated + */ + EClass getAtomicBehaviour(); + + /** + * Returns the meta object for the containment reference list '{@link org.etsi.mts.tdl.AtomicBehaviour#getTimeConstraint Time Constraint}'. + * + * + * @return the meta object for the containment reference list 'Time Constraint'. + * @see org.etsi.mts.tdl.AtomicBehaviour#getTimeConstraint() + * @see #getAtomicBehaviour() + * @generated + */ + EReference getAtomicBehaviour_TimeConstraint(); + + /** + * Returns the meta object for the containment reference '{@link org.etsi.mts.tdl.AtomicBehaviour#getTimeLabel Time Label}'. + * + * + * @return the meta object for the containment reference 'Time Label'. + * @see org.etsi.mts.tdl.AtomicBehaviour#getTimeLabel() + * @see #getAtomicBehaviour() + * @generated + */ + EReference getAtomicBehaviour_TimeLabel(); + + /** + * Returns the meta object for the '{@link org.etsi.mts.tdl.AtomicBehaviour#getParticipatingComponents() Get Participating Components}' operation. + * + * + * @return the meta object for the 'Get Participating Components' operation. + * @see org.etsi.mts.tdl.AtomicBehaviour#getParticipatingComponents() + * @generated + */ + EOperation getAtomicBehaviour__GetParticipatingComponents(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.Behaviour Behaviour}'. + * + * + * @return the meta object for class 'Behaviour'. + * @see org.etsi.mts.tdl.Behaviour + * @generated + */ + EClass getBehaviour(); + + /** + * Returns the meta object for the reference list '{@link org.etsi.mts.tdl.Behaviour#getTestObjective Test Objective}'. + * + * + * @return the meta object for the reference list 'Test Objective'. + * @see org.etsi.mts.tdl.Behaviour#getTestObjective() + * @see #getBehaviour() + * @generated + */ + EReference getBehaviour_TestObjective(); + + /** + * Returns the meta object for the '{@link org.etsi.mts.tdl.Behaviour#isTesterInputEvent() Is Tester Input Event}' operation. + * + * + * @return the meta object for the 'Is Tester Input Event' operation. + * @see org.etsi.mts.tdl.Behaviour#isTesterInputEvent() + * @generated + */ + EOperation getBehaviour__IsTesterInputEvent(); + + /** + * Returns the meta object for the '{@link org.etsi.mts.tdl.Behaviour#getParticipatingComponents() Get Participating Components}' operation. + * + * + * @return the meta object for the 'Get Participating Components' operation. + * @see org.etsi.mts.tdl.Behaviour#getParticipatingComponents() + * @generated + */ + EOperation getBehaviour__GetParticipatingComponents(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.TimeConstraint Time Constraint}'. + * + * + * @return the meta object for class 'Time Constraint'. + * @see org.etsi.mts.tdl.TimeConstraint + * @generated + */ + EClass getTimeConstraint(); + + /** + * Returns the meta object for the containment reference '{@link org.etsi.mts.tdl.TimeConstraint#getTimeConstraintExpression Time Constraint Expression}'. + * + * + * @return the meta object for the containment reference 'Time Constraint Expression'. + * @see org.etsi.mts.tdl.TimeConstraint#getTimeConstraintExpression() + * @see #getTimeConstraint() + * @generated + */ + EReference getTimeConstraint_TimeConstraintExpression(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.TimerStart Timer Start}'. + * + * + * @return the meta object for class 'Timer Start'. + * @see org.etsi.mts.tdl.TimerStart + * @generated + */ + EClass getTimerStart(); + + /** + * Returns the meta object for the containment reference '{@link org.etsi.mts.tdl.TimerStart#getPeriod Period}'. + * + * + * @return the meta object for the containment reference 'Period'. + * @see org.etsi.mts.tdl.TimerStart#getPeriod() + * @see #getTimerStart() + * @generated + */ + EReference getTimerStart_Period(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.TimerStop Timer Stop}'. + * + * + * @return the meta object for class 'Timer Stop'. + * @see org.etsi.mts.tdl.TimerStop + * @generated + */ + EClass getTimerStop(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.TimeOut Time Out}'. + * + * + * @return the meta object for class 'Time Out'. + * @see org.etsi.mts.tdl.TimeOut + * @generated + */ + EClass getTimeOut(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.TimeOperation Time Operation}'. + * + * + * @return the meta object for class 'Time Operation'. + * @see org.etsi.mts.tdl.TimeOperation + * @generated + */ + EClass getTimeOperation(); + + /** + * Returns the meta object for the reference '{@link org.etsi.mts.tdl.TimeOperation#getComponentInstance Component Instance}'. + * + * + * @return the meta object for the reference 'Component Instance'. + * @see org.etsi.mts.tdl.TimeOperation#getComponentInstance() + * @see #getTimeOperation() + * @generated + */ + EReference getTimeOperation_ComponentInstance(); + + /** + * Returns the meta object for the containment reference '{@link org.etsi.mts.tdl.TimeOperation#getPeriod Period}'. + * + * + * @return the meta object for the containment reference 'Period'. + * @see org.etsi.mts.tdl.TimeOperation#getPeriod() + * @see #getTimeOperation() + * @generated + */ + EReference getTimeOperation_Period(); + + /** + * Returns the meta object for the '{@link org.etsi.mts.tdl.TimeOperation#getParticipatingComponents() Get Participating Components}' operation. + * + * + * @return the meta object for the 'Get Participating Components' operation. + * @see org.etsi.mts.tdl.TimeOperation#getParticipatingComponents() + * @generated + */ + EOperation getTimeOperation__GetParticipatingComponents(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.Wait Wait}'. + * + * + * @return the meta object for class 'Wait'. + * @see org.etsi.mts.tdl.Wait + * @generated + */ + EClass getWait(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.Quiescence Quiescence}'. + * + * + * @return the meta object for class 'Quiescence'. + * @see org.etsi.mts.tdl.Quiescence + * @generated + */ + EClass getQuiescence(); + + /** + * Returns the meta object for the reference '{@link org.etsi.mts.tdl.Quiescence#getGateReference Gate Reference}'. + * + * + * @return the meta object for the reference 'Gate Reference'. + * @see org.etsi.mts.tdl.Quiescence#getGateReference() + * @see #getQuiescence() + * @generated + */ + EReference getQuiescence_GateReference(); + + /** + * Returns the meta object for the '{@link org.etsi.mts.tdl.Quiescence#getParticipatingComponents() Get Participating Components}' operation. + * + * + * @return the meta object for the 'Get Participating Components' operation. + * @see org.etsi.mts.tdl.Quiescence#getParticipatingComponents() + * @generated + */ + EOperation getQuiescence__GetParticipatingComponents(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.GateReference Gate Reference}'. + * + * + * @return the meta object for class 'Gate Reference'. + * @see org.etsi.mts.tdl.GateReference + * @generated + */ + EClass getGateReference(); + + /** + * Returns the meta object for the reference '{@link org.etsi.mts.tdl.GateReference#getComponent Component}'. + * + * + * @return the meta object for the reference 'Component'. + * @see org.etsi.mts.tdl.GateReference#getComponent() + * @see #getGateReference() + * @generated + */ + EReference getGateReference_Component(); + + /** + * Returns the meta object for the reference '{@link org.etsi.mts.tdl.GateReference#getGate Gate}'. + * + * + * @return the meta object for the reference 'Gate'. + * @see org.etsi.mts.tdl.GateReference#getGate() + * @see #getGateReference() + * @generated + */ + EReference getGateReference_Gate(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.TimeLabelUse Time Label Use}'. + * + * + * @return the meta object for class 'Time Label Use'. + * @see org.etsi.mts.tdl.TimeLabelUse + * @generated + */ + EClass getTimeLabelUse(); + + /** + * Returns the meta object for the reference '{@link org.etsi.mts.tdl.TimeLabelUse#getTimeLabel Time Label}'. + * + * + * @return the meta object for the reference 'Time Label'. + * @see org.etsi.mts.tdl.TimeLabelUse#getTimeLabel() + * @see #getTimeLabelUse() + * @generated + */ + EReference getTimeLabelUse_TimeLabel(); + + /** + * Returns the meta object for the attribute '{@link org.etsi.mts.tdl.TimeLabelUse#getKind Kind}'. + * + * + * @return the meta object for the attribute 'Kind'. + * @see org.etsi.mts.tdl.TimeLabelUse#getKind() + * @see #getTimeLabelUse() + * @generated + */ + EAttribute getTimeLabelUse_Kind(); + + /** + * Returns the meta object for the '{@link org.etsi.mts.tdl.TimeLabelUse#resolveDataType() Resolve Data Type}' operation. + * + * + * @return the meta object for the 'Resolve Data Type' operation. + * @see org.etsi.mts.tdl.TimeLabelUse#resolveDataType() + * @generated + */ + EOperation getTimeLabelUse__ResolveDataType(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.TestConfiguration Test Configuration}'. + * + * + * @return the meta object for class 'Test Configuration'. + * @see org.etsi.mts.tdl.TestConfiguration + * @generated + */ + EClass getTestConfiguration(); + + /** + * Returns the meta object for the containment reference list '{@link org.etsi.mts.tdl.TestConfiguration#getComponentInstance Component Instance}'. + * + * + * @return the meta object for the containment reference list 'Component Instance'. + * @see org.etsi.mts.tdl.TestConfiguration#getComponentInstance() + * @see #getTestConfiguration() + * @generated + */ + EReference getTestConfiguration_ComponentInstance(); + + /** + * Returns the meta object for the containment reference list '{@link org.etsi.mts.tdl.TestConfiguration#getConnection Connection}'. + * + * + * @return the meta object for the containment reference list 'Connection'. + * @see org.etsi.mts.tdl.TestConfiguration#getConnection() + * @see #getTestConfiguration() + * @generated + */ + EReference getTestConfiguration_Connection(); + + /** + * Returns the meta object for the '{@link org.etsi.mts.tdl.TestConfiguration#compatibleWith(org.etsi.mts.tdl.TestConfiguration, org.eclipse.emf.common.util.EList) Compatible With}' operation. + * + * + * @return the meta object for the 'Compatible With' operation. + * @see org.etsi.mts.tdl.TestConfiguration#compatibleWith(org.etsi.mts.tdl.TestConfiguration, org.eclipse.emf.common.util.EList) + * @generated + */ + EOperation getTestConfiguration__CompatibleWith__TestConfiguration_EList(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.Connection Connection}'. + * + * + * @return the meta object for class 'Connection'. + * @see org.etsi.mts.tdl.Connection + * @generated + */ + EClass getConnection(); + + /** + * Returns the meta object for the containment reference list '{@link org.etsi.mts.tdl.Connection#getEndPoint End Point}'. + * + * + * @return the meta object for the containment reference list 'End Point'. + * @see org.etsi.mts.tdl.Connection#getEndPoint() + * @see #getConnection() + * @generated + */ + EReference getConnection_EndPoint(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.TestDescription Test Description}'. + * + * + * @return the meta object for class 'Test Description'. + * @see org.etsi.mts.tdl.TestDescription + * @generated + */ + EClass getTestDescription(); + + /** + * Returns the meta object for the reference '{@link org.etsi.mts.tdl.TestDescription#getTestConfiguration Test Configuration}'. + * + * + * @return the meta object for the reference 'Test Configuration'. + * @see org.etsi.mts.tdl.TestDescription#getTestConfiguration() + * @see #getTestDescription() + * @generated + */ + EReference getTestDescription_TestConfiguration(); + + /** + * Returns the meta object for the containment reference list '{@link org.etsi.mts.tdl.TestDescription#getFormalParameter Formal Parameter}'. + * + * + * @return the meta object for the containment reference list 'Formal Parameter'. + * @see org.etsi.mts.tdl.TestDescription#getFormalParameter() + * @see #getTestDescription() + * @generated + */ + EReference getTestDescription_FormalParameter(); + + /** + * Returns the meta object for the containment reference '{@link org.etsi.mts.tdl.TestDescription#getBehaviourDescription Behaviour Description}'. + * + * + * @return the meta object for the containment reference 'Behaviour Description'. + * @see org.etsi.mts.tdl.TestDescription#getBehaviourDescription() + * @see #getTestDescription() + * @generated + */ + EReference getTestDescription_BehaviourDescription(); + + /** + * Returns the meta object for the reference list '{@link org.etsi.mts.tdl.TestDescription#getTestObjective Test Objective}'. + * + * + * @return the meta object for the reference list 'Test Objective'. + * @see org.etsi.mts.tdl.TestDescription#getTestObjective() + * @see #getTestDescription() + * @generated + */ + EReference getTestDescription_TestObjective(); + + /** + * Returns the meta object for the attribute '{@link org.etsi.mts.tdl.TestDescription#isIsLocallyOrdered Is Locally Ordered}'. + * + * + * @return the meta object for the attribute 'Is Locally Ordered'. + * @see org.etsi.mts.tdl.TestDescription#isIsLocallyOrdered() + * @see #getTestDescription() + * @generated + */ + EAttribute getTestDescription_IsLocallyOrdered(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.BehaviourDescription Behaviour Description}'. + * + * + * @return the meta object for class 'Behaviour Description'. + * @see org.etsi.mts.tdl.BehaviourDescription + * @generated + */ + EClass getBehaviourDescription(); + + /** + * Returns the meta object for the containment reference '{@link org.etsi.mts.tdl.BehaviourDescription#getBehaviour Behaviour}'. + * + * + * @return the meta object for the containment reference 'Behaviour'. + * @see org.etsi.mts.tdl.BehaviourDescription#getBehaviour() + * @see #getBehaviourDescription() + * @generated + */ + EReference getBehaviourDescription_Behaviour(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.Block Block}'. + * + * + * @return the meta object for class 'Block'. + * @see org.etsi.mts.tdl.Block + * @generated + */ + EClass getBlock(); + + /** + * Returns the meta object for the containment reference list '{@link org.etsi.mts.tdl.Block#getBehaviour Behaviour}'. + * + * + * @return the meta object for the containment reference list 'Behaviour'. + * @see org.etsi.mts.tdl.Block#getBehaviour() + * @see #getBlock() + * @generated + */ + EReference getBlock_Behaviour(); + + /** + * Returns the meta object for the containment reference list '{@link org.etsi.mts.tdl.Block#getGuard Guard}'. + * + * + * @return the meta object for the containment reference list 'Guard'. + * @see org.etsi.mts.tdl.Block#getGuard() + * @see #getBlock() + * @generated + */ + EReference getBlock_Guard(); + + /** + * Returns the meta object for the '{@link org.etsi.mts.tdl.Block#getParticipatingComponents() Get Participating Components}' operation. + * + * + * @return the meta object for the 'Get Participating Components' operation. + * @see org.etsi.mts.tdl.Block#getParticipatingComponents() + * @generated + */ + EOperation getBlock__GetParticipatingComponents(); + + /** + * Returns the meta object for the '{@link org.etsi.mts.tdl.Block#getParticipatingComponentsExcluding(org.etsi.mts.tdl.Behaviour) Get Participating Components Excluding}' operation. + * + * + * @return the meta object for the 'Get Participating Components Excluding' operation. + * @see org.etsi.mts.tdl.Block#getParticipatingComponentsExcluding(org.etsi.mts.tdl.Behaviour) + * @generated + */ + EOperation getBlock__GetParticipatingComponentsExcluding__Behaviour(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.CombinedBehaviour Combined Behaviour}'. + * + * + * @return the meta object for class 'Combined Behaviour'. + * @see org.etsi.mts.tdl.CombinedBehaviour + * @generated + */ + EClass getCombinedBehaviour(); + + /** + * Returns the meta object for the containment reference list '{@link org.etsi.mts.tdl.CombinedBehaviour#getPeriodic Periodic}'. + * + * + * @return the meta object for the containment reference list 'Periodic'. + * @see org.etsi.mts.tdl.CombinedBehaviour#getPeriodic() + * @see #getCombinedBehaviour() + * @generated + */ + EReference getCombinedBehaviour_Periodic(); + + /** + * Returns the meta object for the containment reference list '{@link org.etsi.mts.tdl.CombinedBehaviour#getExceptional Exceptional}'. + * + * + * @return the meta object for the containment reference list 'Exceptional'. + * @see org.etsi.mts.tdl.CombinedBehaviour#getExceptional() + * @see #getCombinedBehaviour() + * @generated + */ + EReference getCombinedBehaviour_Exceptional(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.PeriodicBehaviour Periodic Behaviour}'. + * + * + * @return the meta object for class 'Periodic Behaviour'. + * @see org.etsi.mts.tdl.PeriodicBehaviour + * @generated + */ + EClass getPeriodicBehaviour(); + + /** + * Returns the meta object for the containment reference '{@link org.etsi.mts.tdl.PeriodicBehaviour#getBlock Block}'. + * + * + * @return the meta object for the containment reference 'Block'. + * @see org.etsi.mts.tdl.PeriodicBehaviour#getBlock() + * @see #getPeriodicBehaviour() + * @generated + */ + EReference getPeriodicBehaviour_Block(); + + /** + * Returns the meta object for the containment reference list '{@link org.etsi.mts.tdl.PeriodicBehaviour#getPeriod Period}'. + * + * + * @return the meta object for the containment reference list 'Period'. + * @see org.etsi.mts.tdl.PeriodicBehaviour#getPeriod() + * @see #getPeriodicBehaviour() + * @generated + */ + EReference getPeriodicBehaviour_Period(); + + /** + * Returns the meta object for the '{@link org.etsi.mts.tdl.PeriodicBehaviour#getParticipatingComponents() Get Participating Components}' operation. + * + * + * @return the meta object for the 'Get Participating Components' operation. + * @see org.etsi.mts.tdl.PeriodicBehaviour#getParticipatingComponents() + * @generated + */ + EOperation getPeriodicBehaviour__GetParticipatingComponents(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.ExceptionalBehaviour Exceptional Behaviour}'. + * + * + * @return the meta object for class 'Exceptional Behaviour'. + * @see org.etsi.mts.tdl.ExceptionalBehaviour + * @generated + */ + EClass getExceptionalBehaviour(); + + /** + * Returns the meta object for the containment reference '{@link org.etsi.mts.tdl.ExceptionalBehaviour#getBlock Block}'. + * + * + * @return the meta object for the containment reference 'Block'. + * @see org.etsi.mts.tdl.ExceptionalBehaviour#getBlock() + * @see #getExceptionalBehaviour() + * @generated + */ + EReference getExceptionalBehaviour_Block(); + + /** + * Returns the meta object for the reference '{@link org.etsi.mts.tdl.ExceptionalBehaviour#getGuardedComponent Guarded Component}'. + * + * + * @return the meta object for the reference 'Guarded Component'. + * @see org.etsi.mts.tdl.ExceptionalBehaviour#getGuardedComponent() + * @see #getExceptionalBehaviour() + * @generated + */ + EReference getExceptionalBehaviour_GuardedComponent(); + + /** + * Returns the meta object for the '{@link org.etsi.mts.tdl.ExceptionalBehaviour#getParticipatingComponents() Get Participating Components}' operation. + * + * + * @return the meta object for the 'Get Participating Components' operation. + * @see org.etsi.mts.tdl.ExceptionalBehaviour#getParticipatingComponents() + * @generated + */ + EOperation getExceptionalBehaviour__GetParticipatingComponents(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.AlternativeBehaviour Alternative Behaviour}'. + * + * + * @return the meta object for class 'Alternative Behaviour'. + * @see org.etsi.mts.tdl.AlternativeBehaviour + * @generated + */ + EClass getAlternativeBehaviour(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.MultipleCombinedBehaviour Multiple Combined Behaviour}'. + * + * + * @return the meta object for class 'Multiple Combined Behaviour'. + * @see org.etsi.mts.tdl.MultipleCombinedBehaviour + * @generated + */ + EClass getMultipleCombinedBehaviour(); + + /** + * Returns the meta object for the containment reference list '{@link org.etsi.mts.tdl.MultipleCombinedBehaviour#getBlock Block}'. + * + * + * @return the meta object for the containment reference list 'Block'. + * @see org.etsi.mts.tdl.MultipleCombinedBehaviour#getBlock() + * @see #getMultipleCombinedBehaviour() + * @generated + */ + EReference getMultipleCombinedBehaviour_Block(); + + /** + * Returns the meta object for the '{@link org.etsi.mts.tdl.MultipleCombinedBehaviour#getParticipatingComponents() Get Participating Components}' operation. + * + * + * @return the meta object for the 'Get Participating Components' operation. + * @see org.etsi.mts.tdl.MultipleCombinedBehaviour#getParticipatingComponents() + * @generated + */ + EOperation getMultipleCombinedBehaviour__GetParticipatingComponents(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.ParallelBehaviour Parallel Behaviour}'. + * + * + * @return the meta object for class 'Parallel Behaviour'. + * @see org.etsi.mts.tdl.ParallelBehaviour + * @generated + */ + EClass getParallelBehaviour(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.BoundedLoopBehaviour Bounded Loop Behaviour}'. + * + * + * @return the meta object for class 'Bounded Loop Behaviour'. + * @see org.etsi.mts.tdl.BoundedLoopBehaviour + * @generated + */ + EClass getBoundedLoopBehaviour(); + + /** + * Returns the meta object for the containment reference list '{@link org.etsi.mts.tdl.BoundedLoopBehaviour#getNumIteration Num Iteration}'. + * + * + * @return the meta object for the containment reference list 'Num Iteration'. + * @see org.etsi.mts.tdl.BoundedLoopBehaviour#getNumIteration() + * @see #getBoundedLoopBehaviour() + * @generated + */ + EReference getBoundedLoopBehaviour_NumIteration(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.SingleCombinedBehaviour Single Combined Behaviour}'. + * + * + * @return the meta object for class 'Single Combined Behaviour'. + * @see org.etsi.mts.tdl.SingleCombinedBehaviour + * @generated + */ + EClass getSingleCombinedBehaviour(); + + /** + * Returns the meta object for the containment reference '{@link org.etsi.mts.tdl.SingleCombinedBehaviour#getBlock Block}'. + * + * + * @return the meta object for the containment reference 'Block'. + * @see org.etsi.mts.tdl.SingleCombinedBehaviour#getBlock() + * @see #getSingleCombinedBehaviour() + * @generated + */ + EReference getSingleCombinedBehaviour_Block(); + + /** + * Returns the meta object for the '{@link org.etsi.mts.tdl.SingleCombinedBehaviour#getParticipatingComponents() Get Participating Components}' operation. + * + * + * @return the meta object for the 'Get Participating Components' operation. + * @see org.etsi.mts.tdl.SingleCombinedBehaviour#getParticipatingComponents() + * @generated + */ + EOperation getSingleCombinedBehaviour__GetParticipatingComponents(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.OptionalBehaviour Optional Behaviour}'. + * + * + * @return the meta object for class 'Optional Behaviour'. + * @see org.etsi.mts.tdl.OptionalBehaviour + * @generated + */ + EClass getOptionalBehaviour(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.UnboundedLoopBehaviour Unbounded Loop Behaviour}'. + * + * + * @return the meta object for class 'Unbounded Loop Behaviour'. + * @see org.etsi.mts.tdl.UnboundedLoopBehaviour + * @generated + */ + EClass getUnboundedLoopBehaviour(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.ConditionalBehaviour Conditional Behaviour}'. + * + * + * @return the meta object for class 'Conditional Behaviour'. + * @see org.etsi.mts.tdl.ConditionalBehaviour + * @generated + */ + EClass getConditionalBehaviour(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.CompoundBehaviour Compound Behaviour}'. + * + * + * @return the meta object for class 'Compound Behaviour'. + * @see org.etsi.mts.tdl.CompoundBehaviour + * @generated + */ + EClass getCompoundBehaviour(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.DefaultBehaviour Default Behaviour}'. + * + * + * @return the meta object for class 'Default Behaviour'. + * @see org.etsi.mts.tdl.DefaultBehaviour + * @generated + */ + EClass getDefaultBehaviour(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.InterruptBehaviour Interrupt Behaviour}'. + * + * + * @return the meta object for class 'Interrupt Behaviour'. + * @see org.etsi.mts.tdl.InterruptBehaviour + * @generated + */ + EClass getInterruptBehaviour(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.Target Target}'. + * + * + * @return the meta object for class 'Target'. + * @see org.etsi.mts.tdl.Target + * @generated + */ + EClass getTarget(); + + /** + * Returns the meta object for the reference '{@link org.etsi.mts.tdl.Target#getTargetGate Target Gate}'. + * + * + * @return the meta object for the reference 'Target Gate'. + * @see org.etsi.mts.tdl.Target#getTargetGate() + * @see #getTarget() + * @generated + */ + EReference getTarget_TargetGate(); + + /** + * Returns the meta object for the containment reference list '{@link org.etsi.mts.tdl.Target#getValueAssignment Value Assignment}'. + * + * + * @return the meta object for the containment reference list 'Value Assignment'. + * @see org.etsi.mts.tdl.Target#getValueAssignment() + * @see #getTarget() + * @generated + */ + EReference getTarget_ValueAssignment(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.VerdictAssignment Verdict Assignment}'. + * + * + * @return the meta object for class 'Verdict Assignment'. + * @see org.etsi.mts.tdl.VerdictAssignment + * @generated + */ + EClass getVerdictAssignment(); + + /** + * Returns the meta object for the containment reference '{@link org.etsi.mts.tdl.VerdictAssignment#getVerdict Verdict}'. + * + * + * @return the meta object for the containment reference 'Verdict'. + * @see org.etsi.mts.tdl.VerdictAssignment#getVerdict() + * @see #getVerdictAssignment() + * @generated + */ + EReference getVerdictAssignment_Verdict(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.Assertion Assertion}'. + * + * + * @return the meta object for class 'Assertion'. + * @see org.etsi.mts.tdl.Assertion + * @generated + */ + EClass getAssertion(); + + /** + * Returns the meta object for the containment reference '{@link org.etsi.mts.tdl.Assertion#getOtherwise Otherwise}'. + * + * + * @return the meta object for the containment reference 'Otherwise'. + * @see org.etsi.mts.tdl.Assertion#getOtherwise() + * @see #getAssertion() + * @generated + */ + EReference getAssertion_Otherwise(); + + /** + * Returns the meta object for the containment reference '{@link org.etsi.mts.tdl.Assertion#getCondition Condition}'. + * + * + * @return the meta object for the containment reference 'Condition'. + * @see org.etsi.mts.tdl.Assertion#getCondition() + * @see #getAssertion() + * @generated + */ + EReference getAssertion_Condition(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.Stop Stop}'. + * + * + * @return the meta object for class 'Stop'. + * @see org.etsi.mts.tdl.Stop + * @generated + */ + EClass getStop(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.Break Break}'. + * + * + * @return the meta object for class 'Break'. + * @see org.etsi.mts.tdl.Break + * @generated + */ + EClass getBreak(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.Assignment Assignment}'. + * + * + * @return the meta object for class 'Assignment'. + * @see org.etsi.mts.tdl.Assignment + * @generated + */ + EClass getAssignment(); + + /** + * Returns the meta object for the containment reference '{@link org.etsi.mts.tdl.Assignment#getVariable Variable}'. + * + * + * @return the meta object for the containment reference 'Variable'. + * @see org.etsi.mts.tdl.Assignment#getVariable() + * @see #getAssignment() + * @generated + */ + EReference getAssignment_Variable(); + + /** + * Returns the meta object for the containment reference '{@link org.etsi.mts.tdl.Assignment#getExpression Expression}'. + * + * + * @return the meta object for the containment reference 'Expression'. + * @see org.etsi.mts.tdl.Assignment#getExpression() + * @see #getAssignment() + * @generated + */ + EReference getAssignment_Expression(); + + /** + * Returns the meta object for the '{@link org.etsi.mts.tdl.Assignment#getParticipatingComponents() Get Participating Components}' operation. + * + * + * @return the meta object for the 'Get Participating Components' operation. + * @see org.etsi.mts.tdl.Assignment#getParticipatingComponents() + * @generated + */ + EOperation getAssignment__GetParticipatingComponents(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.ActionBehaviour Action Behaviour}'. + * + * + * @return the meta object for class 'Action Behaviour'. + * @see org.etsi.mts.tdl.ActionBehaviour + * @generated + */ + EClass getActionBehaviour(); + + /** + * Returns the meta object for the reference '{@link org.etsi.mts.tdl.ActionBehaviour#getComponentInstance Component Instance}'. + * + * + * @return the meta object for the reference 'Component Instance'. + * @see org.etsi.mts.tdl.ActionBehaviour#getComponentInstance() + * @see #getActionBehaviour() + * @generated + */ + EReference getActionBehaviour_ComponentInstance(); + + /** + * Returns the meta object for the '{@link org.etsi.mts.tdl.ActionBehaviour#getParticipatingComponents() Get Participating Components}' operation. + * + * + * @return the meta object for the 'Get Participating Components' operation. + * @see org.etsi.mts.tdl.ActionBehaviour#getParticipatingComponents() + * @generated + */ + EOperation getActionBehaviour__GetParticipatingComponents(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.InlineAction Inline Action}'. + * + * + * @return the meta object for class 'Inline Action'. + * @see org.etsi.mts.tdl.InlineAction + * @generated + */ + EClass getInlineAction(); + + /** + * Returns the meta object for the attribute '{@link org.etsi.mts.tdl.InlineAction#getBody Body}'. + * + * + * @return the meta object for the attribute 'Body'. + * @see org.etsi.mts.tdl.InlineAction#getBody() + * @see #getInlineAction() + * @generated + */ + EAttribute getInlineAction_Body(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.ActionReference Action Reference}'. + * + * + * @return the meta object for class 'Action Reference'. + * @see org.etsi.mts.tdl.ActionReference + * @generated + */ + EClass getActionReference(); + + /** + * Returns the meta object for the reference '{@link org.etsi.mts.tdl.ActionReference#getAction Action}'. + * + * + * @return the meta object for the reference 'Action'. + * @see org.etsi.mts.tdl.ActionReference#getAction() + * @see #getActionReference() + * @generated + */ + EReference getActionReference_Action(); + + /** + * Returns the meta object for the containment reference list '{@link org.etsi.mts.tdl.ActionReference#getArgument Argument}'. + * + * + * @return the meta object for the containment reference list 'Argument'. + * @see org.etsi.mts.tdl.ActionReference#getArgument() + * @see #getActionReference() + * @generated + */ + EReference getActionReference_Argument(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.TestDescriptionReference Test Description Reference}'. + * + * + * @return the meta object for class 'Test Description Reference'. + * @see org.etsi.mts.tdl.TestDescriptionReference + * @generated + */ + EClass getTestDescriptionReference(); + + /** + * Returns the meta object for the reference '{@link org.etsi.mts.tdl.TestDescriptionReference#getTestDescription Test Description}'. + * + * + * @return the meta object for the reference 'Test Description'. + * @see org.etsi.mts.tdl.TestDescriptionReference#getTestDescription() + * @see #getTestDescriptionReference() + * @generated + */ + EReference getTestDescriptionReference_TestDescription(); + + /** + * Returns the meta object for the containment reference list '{@link org.etsi.mts.tdl.TestDescriptionReference#getComponentInstanceBinding Component Instance Binding}'. + * + * + * @return the meta object for the containment reference list 'Component Instance Binding'. + * @see org.etsi.mts.tdl.TestDescriptionReference#getComponentInstanceBinding() + * @see #getTestDescriptionReference() + * @generated + */ + EReference getTestDescriptionReference_ComponentInstanceBinding(); + + /** + * Returns the meta object for the containment reference list '{@link org.etsi.mts.tdl.TestDescriptionReference#getArgument Argument}'. + * + * + * @return the meta object for the containment reference list 'Argument'. + * @see org.etsi.mts.tdl.TestDescriptionReference#getArgument() + * @see #getTestDescriptionReference() + * @generated + */ + EReference getTestDescriptionReference_Argument(); + + /** + * Returns the meta object for the '{@link org.etsi.mts.tdl.TestDescriptionReference#getParticipatingComponents() Get Participating Components}' operation. + * + * + * @return the meta object for the 'Get Participating Components' operation. + * @see org.etsi.mts.tdl.TestDescriptionReference#getParticipatingComponents() + * @generated + */ + EOperation getTestDescriptionReference__GetParticipatingComponents(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.ComponentInstanceBinding Component Instance Binding}'. + * + * + * @return the meta object for class 'Component Instance Binding'. + * @see org.etsi.mts.tdl.ComponentInstanceBinding + * @generated + */ + EClass getComponentInstanceBinding(); + + /** + * Returns the meta object for the reference '{@link org.etsi.mts.tdl.ComponentInstanceBinding#getFormalComponent Formal Component}'. + * + * + * @return the meta object for the reference 'Formal Component'. + * @see org.etsi.mts.tdl.ComponentInstanceBinding#getFormalComponent() + * @see #getComponentInstanceBinding() + * @generated + */ + EReference getComponentInstanceBinding_FormalComponent(); + + /** + * Returns the meta object for the reference '{@link org.etsi.mts.tdl.ComponentInstanceBinding#getActualComponent Actual Component}'. + * + * + * @return the meta object for the reference 'Actual Component'. + * @see org.etsi.mts.tdl.ComponentInstanceBinding#getActualComponent() + * @see #getComponentInstanceBinding() + * @generated + */ + EReference getComponentInstanceBinding_ActualComponent(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.Interaction Interaction}'. + * + * + * @return the meta object for class 'Interaction'. + * @see org.etsi.mts.tdl.Interaction + * @generated + */ + EClass getInteraction(); + + /** + * Returns the meta object for the reference '{@link org.etsi.mts.tdl.Interaction#getSourceGate Source Gate}'. + * + * + * @return the meta object for the reference 'Source Gate'. + * @see org.etsi.mts.tdl.Interaction#getSourceGate() + * @see #getInteraction() + * @generated + */ + EReference getInteraction_SourceGate(); + + /** + * Returns the meta object for the containment reference list '{@link org.etsi.mts.tdl.Interaction#getTarget Target}'. + * + * + * @return the meta object for the containment reference list 'Target'. + * @see org.etsi.mts.tdl.Interaction#getTarget() + * @see #getInteraction() + * @generated + */ + EReference getInteraction_Target(); + + /** + * Returns the meta object for the '{@link org.etsi.mts.tdl.Interaction#getParticipatingComponents() Get Participating Components}' operation. + * + * + * @return the meta object for the 'Get Participating Components' operation. + * @see org.etsi.mts.tdl.Interaction#getParticipatingComponents() + * @generated + */ + EOperation getInteraction__GetParticipatingComponents(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.Message Message}'. + * + * + * @return the meta object for class 'Message'. + * @see org.etsi.mts.tdl.Message + * @generated + */ + EClass getMessage(); + + /** + * Returns the meta object for the attribute '{@link org.etsi.mts.tdl.Message#isIsTrigger Is Trigger}'. + * + * + * @return the meta object for the attribute 'Is Trigger'. + * @see org.etsi.mts.tdl.Message#isIsTrigger() + * @see #getMessage() + * @generated + */ + EAttribute getMessage_IsTrigger(); + + /** + * Returns the meta object for the containment reference '{@link org.etsi.mts.tdl.Message#getArgument Argument}'. + * + * + * @return the meta object for the containment reference 'Argument'. + * @see org.etsi.mts.tdl.Message#getArgument() + * @see #getMessage() + * @generated + */ + EReference getMessage_Argument(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.PredefinedFunction Predefined Function}'. + * + * + * @return the meta object for class 'Predefined Function'. + * @see org.etsi.mts.tdl.PredefinedFunction + * @generated + */ + EClass getPredefinedFunction(); + + /** + * Returns the meta object for the reference '{@link org.etsi.mts.tdl.PredefinedFunction#getReturnType Return Type}'. + * + * + * @return the meta object for the reference 'Return Type'. + * @see org.etsi.mts.tdl.PredefinedFunction#getReturnType() + * @see #getPredefinedFunction() + * @generated + */ + EReference getPredefinedFunction_ReturnType(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.MemberReference Member Reference}'. + * + * + * @return the meta object for class 'Member Reference'. + * @see org.etsi.mts.tdl.MemberReference + * @generated + */ + EClass getMemberReference(); + + /** + * Returns the meta object for the reference '{@link org.etsi.mts.tdl.MemberReference#getMember Member}'. + * + * + * @return the meta object for the reference 'Member'. + * @see org.etsi.mts.tdl.MemberReference#getMember() + * @see #getMemberReference() + * @generated + */ + EReference getMemberReference_Member(); + + /** + * Returns the meta object for the containment reference '{@link org.etsi.mts.tdl.MemberReference#getCollectionIndex Collection Index}'. + * + * + * @return the meta object for the containment reference 'Collection Index'. + * @see org.etsi.mts.tdl.MemberReference#getCollectionIndex() + * @see #getMemberReference() + * @generated + */ + EReference getMemberReference_CollectionIndex(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.PredefinedFunctionCall Predefined Function Call}'. + * + * + * @return the meta object for class 'Predefined Function Call'. + * @see org.etsi.mts.tdl.PredefinedFunctionCall + * @generated + */ + EClass getPredefinedFunctionCall(); + + /** + * Returns the meta object for the reference '{@link org.etsi.mts.tdl.PredefinedFunctionCall#getFunction Function}'. + * + * + * @return the meta object for the reference 'Function'. + * @see org.etsi.mts.tdl.PredefinedFunctionCall#getFunction() + * @see #getPredefinedFunctionCall() + * @generated + */ + EReference getPredefinedFunctionCall_Function(); + + /** + * Returns the meta object for the containment reference list '{@link org.etsi.mts.tdl.PredefinedFunctionCall#getActualParameters Actual Parameters}'. + * + * + * @return the meta object for the containment reference list 'Actual Parameters'. + * @see org.etsi.mts.tdl.PredefinedFunctionCall#getActualParameters() + * @see #getPredefinedFunctionCall() + * @generated + */ + EReference getPredefinedFunctionCall_ActualParameters(); + + /** + * Returns the meta object for the '{@link org.etsi.mts.tdl.PredefinedFunctionCall#resolveDataType() Resolve Data Type}' operation. + * + * + * @return the meta object for the 'Resolve Data Type' operation. + * @see org.etsi.mts.tdl.PredefinedFunctionCall#resolveDataType() + * @generated + */ + EOperation getPredefinedFunctionCall__ResolveDataType(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.LocalExpression Local Expression}'. + * + * + * @return the meta object for class 'Local Expression'. + * @see org.etsi.mts.tdl.LocalExpression + * @generated + */ + EClass getLocalExpression(); + + /** + * Returns the meta object for the containment reference '{@link org.etsi.mts.tdl.LocalExpression#getExpression Expression}'. + * + * + * @return the meta object for the containment reference 'Expression'. + * @see org.etsi.mts.tdl.LocalExpression#getExpression() + * @see #getLocalExpression() + * @generated + */ + EReference getLocalExpression_Expression(); + + /** + * Returns the meta object for the reference '{@link org.etsi.mts.tdl.LocalExpression#getComponentInstance Component Instance}'. + * + * + * @return the meta object for the reference 'Component Instance'. + * @see org.etsi.mts.tdl.LocalExpression#getComponentInstance() + * @see #getLocalExpression() + * @generated + */ + EReference getLocalExpression_ComponentInstance(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.ValueAssignment Value Assignment}'. + * + * + * @return the meta object for class 'Value Assignment'. + * @see org.etsi.mts.tdl.ValueAssignment + * @generated + */ + EClass getValueAssignment(); + + /** + * Returns the meta object for the reference '{@link org.etsi.mts.tdl.ValueAssignment#getVariable Variable}'. + * + * + * @return the meta object for the reference 'Variable'. + * @see org.etsi.mts.tdl.ValueAssignment#getVariable() + * @see #getValueAssignment() + * @generated + */ + EReference getValueAssignment_Variable(); + + /** + * Returns the meta object for the reference '{@link org.etsi.mts.tdl.ValueAssignment#getParameter Parameter}'. + * + * + * @return the meta object for the reference 'Parameter'. + * @see org.etsi.mts.tdl.ValueAssignment#getParameter() + * @see #getValueAssignment() + * @generated + */ + EReference getValueAssignment_Parameter(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.ProcedureCall Procedure Call}'. + * + * + * @return the meta object for class 'Procedure Call'. + * @see org.etsi.mts.tdl.ProcedureCall + * @generated + */ + EClass getProcedureCall(); + + /** + * Returns the meta object for the reference '{@link org.etsi.mts.tdl.ProcedureCall#getSignature Signature}'. + * + * + * @return the meta object for the reference 'Signature'. + * @see org.etsi.mts.tdl.ProcedureCall#getSignature() + * @see #getProcedureCall() + * @generated + */ + EReference getProcedureCall_Signature(); + + /** + * Returns the meta object for the containment reference list '{@link org.etsi.mts.tdl.ProcedureCall#getArgument Argument}'. + * + * + * @return the meta object for the containment reference list 'Argument'. + * @see org.etsi.mts.tdl.ProcedureCall#getArgument() + * @see #getProcedureCall() + * @generated + */ + EReference getProcedureCall_Argument(); + + /** + * Returns the meta object for the reference '{@link org.etsi.mts.tdl.ProcedureCall#getReplyTo Reply To}'. + * + * + * @return the meta object for the reference 'Reply To'. + * @see org.etsi.mts.tdl.ProcedureCall#getReplyTo() + * @see #getProcedureCall() + * @generated + */ + EReference getProcedureCall_ReplyTo(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.ProcedureSignature Procedure Signature}'. + * + * + * @return the meta object for class 'Procedure Signature'. + * @see org.etsi.mts.tdl.ProcedureSignature + * @generated + */ + EClass getProcedureSignature(); + + /** + * Returns the meta object for the containment reference list '{@link org.etsi.mts.tdl.ProcedureSignature#getParameter Parameter}'. + * + * + * @return the meta object for the containment reference list 'Parameter'. + * @see org.etsi.mts.tdl.ProcedureSignature#getParameter() + * @see #getProcedureSignature() + * @generated + */ + EReference getProcedureSignature_Parameter(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.ProcedureParameter Procedure Parameter}'. + * + * + * @return the meta object for class 'Procedure Parameter'. + * @see org.etsi.mts.tdl.ProcedureParameter + * @generated + */ + EClass getProcedureParameter(); + + /** + * Returns the meta object for the attribute '{@link org.etsi.mts.tdl.ProcedureParameter#getKind Kind}'. + * + * + * @return the meta object for the attribute 'Kind'. + * @see org.etsi.mts.tdl.ProcedureParameter#getKind() + * @see #getProcedureParameter() + * @generated + */ + EAttribute getProcedureParameter_Kind(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.CollectionDataType Collection Data Type}'. + * + * + * @return the meta object for class 'Collection Data Type'. + * @see org.etsi.mts.tdl.CollectionDataType + * @generated + */ + EClass getCollectionDataType(); + + /** + * Returns the meta object for the reference '{@link org.etsi.mts.tdl.CollectionDataType#getItemType Item Type}'. + * + * + * @return the meta object for the reference 'Item Type'. + * @see org.etsi.mts.tdl.CollectionDataType#getItemType() + * @see #getCollectionDataType() + * @generated + */ + EReference getCollectionDataType_ItemType(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.CollectionDataInstance Collection Data Instance}'. + * + * + * @return the meta object for class 'Collection Data Instance'. + * @see org.etsi.mts.tdl.CollectionDataInstance + * @generated + */ + EClass getCollectionDataInstance(); + + /** + * Returns the meta object for the containment reference list '{@link org.etsi.mts.tdl.CollectionDataInstance#getItem Item}'. + * + * + * @return the meta object for the containment reference list 'Item'. + * @see org.etsi.mts.tdl.CollectionDataInstance#getItem() + * @see #getCollectionDataInstance() + * @generated + */ + EReference getCollectionDataInstance_Item(); + + /** + * Returns the meta object for the attribute '{@link org.etsi.mts.tdl.CollectionDataInstance#getUnassignedMember Unassigned Member}'. + * + * + * @return the meta object for the attribute 'Unassigned Member'. + * @see org.etsi.mts.tdl.CollectionDataInstance#getUnassignedMember() + * @see #getCollectionDataInstance() + * @generated + */ + EAttribute getCollectionDataInstance_UnassignedMember(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.Extension Extension}'. + * + * + * @return the meta object for class 'Extension'. + * @see org.etsi.mts.tdl.Extension + * @generated + */ + EClass getExtension(); + + /** + * Returns the meta object for the reference '{@link org.etsi.mts.tdl.Extension#getExtending Extending}'. + * + * + * @return the meta object for the reference 'Extending'. + * @see org.etsi.mts.tdl.Extension#getExtending() + * @see #getExtension() + * @generated + */ + EReference getExtension_Extending(); + + /** + * Returns the meta object for the '{@link org.etsi.mts.tdl.Extension#transitiveExtending() Transitive Extending}' operation. + * + * + * @return the meta object for the 'Transitive Extending' operation. + * @see org.etsi.mts.tdl.Extension#transitiveExtending() + * @generated + */ + EOperation getExtension__TransitiveExtending(); + + /** + * Returns the meta object for the '{@link org.etsi.mts.tdl.Extension#isExtending(org.etsi.mts.tdl.PackageableElement) Is Extending}' operation. + * + * + * @return the meta object for the 'Is Extending' operation. + * @see org.etsi.mts.tdl.Extension#isExtending(org.etsi.mts.tdl.PackageableElement) + * @generated + */ + EOperation getExtension__IsExtending__PackageableElement(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.LiteralValueUse Literal Value Use}'. + * + * + * @return the meta object for class 'Literal Value Use'. + * @see org.etsi.mts.tdl.LiteralValueUse + * @generated + */ + EClass getLiteralValueUse(); + + /** + * Returns the meta object for the attribute '{@link org.etsi.mts.tdl.LiteralValueUse#getValue Value}'. + * + * + * @return the meta object for the attribute 'Value'. + * @see org.etsi.mts.tdl.LiteralValueUse#getValue() + * @see #getLiteralValueUse() + * @generated + */ + EAttribute getLiteralValueUse_Value(); + + /** + * Returns the meta object for the attribute '{@link org.etsi.mts.tdl.LiteralValueUse#getIntValue Int Value}'. + * + * + * @return the meta object for the attribute 'Int Value'. + * @see org.etsi.mts.tdl.LiteralValueUse#getIntValue() + * @see #getLiteralValueUse() + * @generated + */ + EAttribute getLiteralValueUse_IntValue(); + + /** + * Returns the meta object for the attribute '{@link org.etsi.mts.tdl.LiteralValueUse#getBoolValue Bool Value}'. + * + * + * @return the meta object for the attribute 'Bool Value'. + * @see org.etsi.mts.tdl.LiteralValueUse#getBoolValue() + * @see #getLiteralValueUse() + * @generated + */ + EAttribute getLiteralValueUse_BoolValue(); + + /** + * Returns the meta object for the reference '{@link org.etsi.mts.tdl.LiteralValueUse#getDataType Data Type}'. + * + * + * @return the meta object for the reference 'Data Type'. + * @see org.etsi.mts.tdl.LiteralValueUse#getDataType() + * @see #getLiteralValueUse() + * @generated + */ + EReference getLiteralValueUse_DataType(); + + /** + * Returns the meta object for the '{@link org.etsi.mts.tdl.LiteralValueUse#resolveDataType() Resolve Data Type}' operation. + * + * + * @return the meta object for the 'Resolve Data Type' operation. + * @see org.etsi.mts.tdl.LiteralValueUse#resolveDataType() + * @generated + */ + EOperation getLiteralValueUse__ResolveDataType(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.ConstraintType Constraint Type}'. + * + * + * @return the meta object for class 'Constraint Type'. + * @see org.etsi.mts.tdl.ConstraintType + * @generated + */ + EClass getConstraintType(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.Constraint Constraint}'. + * + * + * @return the meta object for class 'Constraint'. + * @see org.etsi.mts.tdl.Constraint + * @generated + */ + EClass getConstraint(); + + /** + * Returns the meta object for the reference '{@link org.etsi.mts.tdl.Constraint#getType Type}'. + * + * + * @return the meta object for the reference 'Type'. + * @see org.etsi.mts.tdl.Constraint#getType() + * @see #getConstraint() + * @generated + */ + EReference getConstraint_Type(); + + /** + * Returns the meta object for the containment reference list '{@link org.etsi.mts.tdl.Constraint#getQuantifier Quantifier}'. + * + * + * @return the meta object for the containment reference list 'Quantifier'. + * @see org.etsi.mts.tdl.Constraint#getQuantifier() + * @see #getConstraint() + * @generated + */ + EReference getConstraint_Quantifier(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.EnumDataType Enum Data Type}'. + * + * + * @return the meta object for class 'Enum Data Type'. + * @see org.etsi.mts.tdl.EnumDataType + * @generated + */ + EClass getEnumDataType(); + + /** + * Returns the meta object for the containment reference list '{@link org.etsi.mts.tdl.EnumDataType#getValue Value}'. + * + * + * @return the meta object for the containment reference list 'Value'. + * @see org.etsi.mts.tdl.EnumDataType#getValue() + * @see #getEnumDataType() + * @generated + */ + EReference getEnumDataType_Value(); + + /** + * Returns the meta object for class '{@link org.etsi.mts.tdl.DataElementUse Data Element Use}'. + * + * + * @return the meta object for class 'Data Element Use'. + * @see org.etsi.mts.tdl.DataElementUse + * @generated + */ + EClass getDataElementUse(); + + /** + * Returns the meta object for the attribute '{@link org.etsi.mts.tdl.DataElementUse#getUnassignedMember Unassigned Member}'. + * + * + * @return the meta object for the attribute 'Unassigned Member'. + * @see org.etsi.mts.tdl.DataElementUse#getUnassignedMember() + * @see #getDataElementUse() + * @generated + */ + EAttribute getDataElementUse_UnassignedMember(); + + /** + * Returns the meta object for the reference '{@link org.etsi.mts.tdl.DataElementUse#getDataElement Data Element}'. + * + * + * @return the meta object for the reference 'Data Element'. + * @see org.etsi.mts.tdl.DataElementUse#getDataElement() + * @see #getDataElementUse() + * @generated + */ + EReference getDataElementUse_DataElement(); + + /** + * Returns the meta object for the containment reference list '{@link org.etsi.mts.tdl.DataElementUse#getItem Item}'. + * + * + * @return the meta object for the containment reference list 'Item'. + * @see org.etsi.mts.tdl.DataElementUse#getItem() + * @see #getDataElementUse() + * @generated + */ + EReference getDataElementUse_Item(); + + /** + * Returns the meta object for the '{@link org.etsi.mts.tdl.DataElementUse#resolveDataType() Resolve Data Type}' operation. + * + * + * @return the meta object for the 'Resolve Data Type' operation. + * @see org.etsi.mts.tdl.DataElementUse#resolveDataType() + * @generated + */ + EOperation getDataElementUse__ResolveDataType(); + + /** + * Returns the meta object for enum '{@link org.etsi.mts.tdl.UnassignedMemberTreatment Unassigned Member Treatment}'. + * + * + * @return the meta object for enum 'Unassigned Member Treatment'. + * @see org.etsi.mts.tdl.UnassignedMemberTreatment + * @generated + */ + EEnum getUnassignedMemberTreatment(); + + /** + * Returns the meta object for enum '{@link org.etsi.mts.tdl.ComponentInstanceRole Component Instance Role}'. + * + * + * @return the meta object for enum 'Component Instance Role'. + * @see org.etsi.mts.tdl.ComponentInstanceRole + * @generated + */ + EEnum getComponentInstanceRole(); + + /** + * Returns the meta object for enum '{@link org.etsi.mts.tdl.GateTypeKind Gate Type Kind}'. + * + * + * @return the meta object for enum 'Gate Type Kind'. + * @see org.etsi.mts.tdl.GateTypeKind + * @generated + */ + EEnum getGateTypeKind(); + + /** + * Returns the meta object for enum '{@link org.etsi.mts.tdl.TimeLabelUseKind Time Label Use Kind}'. + * + * + * @return the meta object for enum 'Time Label Use Kind'. + * @see org.etsi.mts.tdl.TimeLabelUseKind + * @generated + */ + EEnum getTimeLabelUseKind(); + + /** + * Returns the meta object for enum '{@link org.etsi.mts.tdl.ParameterKind Parameter Kind}'. + * + * + * @return the meta object for enum 'Parameter Kind'. + * @see org.etsi.mts.tdl.ParameterKind + * @generated + */ + EEnum getParameterKind(); + + /** + * Returns the factory that creates the instances of the model. + * + * + * @return the factory that creates the instances of the model. + * @generated + */ + tdlFactory gettdlFactory(); + + /** + * + * Defines literals for the meta objects that represent + *
    + *
  • each class,
  • + *
  • each feature of each class,
  • + *
  • each operation of each class,
  • + *
  • each enum,
  • + *
  • and each data type
  • + *
+ * + * @generated + */ + interface Literals + { + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.ElementImpl Element}' class. + * + * + * @see org.etsi.mts.tdl.impl.ElementImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getElement() + * @generated + */ + EClass ELEMENT = eINSTANCE.getElement(); + + /** + * The meta object literal for the 'Comment' containment reference list feature. + * + * + * @generated + */ + EReference ELEMENT__COMMENT = eINSTANCE.getElement_Comment(); + + /** + * The meta object literal for the 'Annotation' containment reference list feature. + * + * + * @generated + */ + EReference ELEMENT__ANNOTATION = eINSTANCE.getElement_Annotation(); + + /** + * The meta object literal for the 'Name' attribute feature. + * + * + * @generated + */ + EAttribute ELEMENT__NAME = eINSTANCE.getElement_Name(); + + /** + * The meta object literal for the 'Container' operation. + * + * + * @generated + */ + EOperation ELEMENT___CONTAINER = eINSTANCE.getElement__Container(); + + /** + * The meta object literal for the 'Get Parent Test Description' operation. + * + * + * @generated + */ + EOperation ELEMENT___GET_PARENT_TEST_DESCRIPTION = eINSTANCE.getElement__GetParentTestDescription(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.CommentImpl Comment}' class. + * + * + * @see org.etsi.mts.tdl.impl.CommentImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getComment() + * @generated + */ + EClass COMMENT = eINSTANCE.getComment(); + + /** + * The meta object literal for the 'Body' attribute feature. + * + * + * @generated + */ + EAttribute COMMENT__BODY = eINSTANCE.getComment_Body(); + + /** + * The meta object literal for the 'Commented Element' container reference feature. + * + * + * @generated + */ + EReference COMMENT__COMMENTED_ELEMENT = eINSTANCE.getComment_CommentedElement(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.AnnotationImpl Annotation}' class. + * + * + * @see org.etsi.mts.tdl.impl.AnnotationImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getAnnotation() + * @generated + */ + EClass ANNOTATION = eINSTANCE.getAnnotation(); + + /** + * The meta object literal for the 'Value' attribute feature. + * + * + * @generated + */ + EAttribute ANNOTATION__VALUE = eINSTANCE.getAnnotation_Value(); + + /** + * The meta object literal for the 'Key' reference feature. + * + * + * @generated + */ + EReference ANNOTATION__KEY = eINSTANCE.getAnnotation_Key(); + + /** + * The meta object literal for the 'Annotated Element' container reference feature. + * + * + * @generated + */ + EReference ANNOTATION__ANNOTATED_ELEMENT = eINSTANCE.getAnnotation_AnnotatedElement(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.AnnotationTypeImpl Annotation Type}' class. + * + * + * @see org.etsi.mts.tdl.impl.AnnotationTypeImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getAnnotationType() + * @generated + */ + EClass ANNOTATION_TYPE = eINSTANCE.getAnnotationType(); + + /** + * The meta object literal for the 'Extension' containment reference feature. + * + * + * @generated + */ + EReference ANNOTATION_TYPE__EXTENSION = eINSTANCE.getAnnotationType_Extension(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.PackageableElementImpl Packageable Element}' class. + * + * + * @see org.etsi.mts.tdl.impl.PackageableElementImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getPackageableElement() + * @generated + */ + EClass PACKAGEABLE_ELEMENT = eINSTANCE.getPackageableElement(); + + /** + * The meta object literal for the 'Conforms To' operation. + * + * + * @generated + */ + EOperation PACKAGEABLE_ELEMENT___CONFORMS_TO__STRING = eINSTANCE.getPackageableElement__ConformsTo__String(); + + /** + * The meta object literal for the 'Get Element Named' operation. + * + * + * @generated + */ + EOperation PACKAGEABLE_ELEMENT___GET_ELEMENT_NAMED__STRING = eINSTANCE.getPackageableElement__GetElementNamed__String(); + + /** + * The meta object literal for the 'Conforms To' operation. + * + * + * @generated + */ + EOperation PACKAGEABLE_ELEMENT___CONFORMS_TO__PACKAGEABLEELEMENT = eINSTANCE.getPackageableElement__ConformsTo__PackageableElement(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.NamedElementImpl Named Element}' class. + * + * + * @see org.etsi.mts.tdl.impl.NamedElementImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getNamedElement() + * @generated + */ + EClass NAMED_ELEMENT = eINSTANCE.getNamedElement(); + + /** + * The meta object literal for the 'Qualified Name' attribute feature. + * + * + * @generated + */ + EAttribute NAMED_ELEMENT__QUALIFIED_NAME = eINSTANCE.getNamedElement_QualifiedName(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.PackageImpl Package}' class. + * + * + * @see org.etsi.mts.tdl.impl.PackageImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getPackage() + * @generated + */ + EClass PACKAGE = eINSTANCE.getPackage(); + + /** + * The meta object literal for the 'Packaged Element' containment reference list feature. + * + * + * @generated + */ + EReference PACKAGE__PACKAGED_ELEMENT = eINSTANCE.getPackage_PackagedElement(); + + /** + * The meta object literal for the 'Import' containment reference list feature. + * + * + * @generated + */ + EReference PACKAGE__IMPORT = eINSTANCE.getPackage_Import(); + + /** + * The meta object literal for the 'Nested Package' containment reference list feature. + * + * + * @generated + */ + EReference PACKAGE__NESTED_PACKAGE = eINSTANCE.getPackage_NestedPackage(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.ElementImportImpl Element Import}' class. + * + * + * @see org.etsi.mts.tdl.impl.ElementImportImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getElementImport() + * @generated + */ + EClass ELEMENT_IMPORT = eINSTANCE.getElementImport(); + + /** + * The meta object literal for the 'Imported Element' reference list feature. + * + * + * @generated + */ + EReference ELEMENT_IMPORT__IMPORTED_ELEMENT = eINSTANCE.getElementImport_ImportedElement(); + + /** + * The meta object literal for the 'Imported Package' reference feature. + * + * + * @generated + */ + EReference ELEMENT_IMPORT__IMPORTED_PACKAGE = eINSTANCE.getElementImport_ImportedPackage(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.TestObjectiveImpl Test Objective}' class. + * + * + * @see org.etsi.mts.tdl.impl.TestObjectiveImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getTestObjective() + * @generated + */ + EClass TEST_OBJECTIVE = eINSTANCE.getTestObjective(); + + /** + * The meta object literal for the 'Objective URI' attribute list feature. + * + * + * @generated + */ + EAttribute TEST_OBJECTIVE__OBJECTIVE_URI = eINSTANCE.getTestObjective_ObjectiveURI(); + + /** + * The meta object literal for the 'Description' attribute feature. + * + * + * @generated + */ + EAttribute TEST_OBJECTIVE__DESCRIPTION = eINSTANCE.getTestObjective_Description(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.DataInstanceImpl Data Instance}' class. + * + * + * @see org.etsi.mts.tdl.impl.DataInstanceImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getDataInstance() + * @generated + */ + EClass DATA_INSTANCE = eINSTANCE.getDataInstance(); + + /** + * The meta object literal for the 'Data Type' reference feature. + * + * + * @generated + */ + EReference DATA_INSTANCE__DATA_TYPE = eINSTANCE.getDataInstance_DataType(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.MappableDataElementImpl Mappable Data Element}' class. + * + * + * @see org.etsi.mts.tdl.impl.MappableDataElementImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getMappableDataElement() + * @generated + */ + EClass MAPPABLE_DATA_ELEMENT = eINSTANCE.getMappableDataElement(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.DataTypeImpl Data Type}' class. + * + * + * @see org.etsi.mts.tdl.impl.DataTypeImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getDataType() + * @generated + */ + EClass DATA_TYPE = eINSTANCE.getDataType(); + + /** + * The meta object literal for the 'Constraint' containment reference list feature. + * + * + * @generated + */ + EReference DATA_TYPE__CONSTRAINT = eINSTANCE.getDataType_Constraint(); + + /** + * The meta object literal for the 'All Constraints' operation. + * + * + * @generated + */ + EOperation DATA_TYPE___ALL_CONSTRAINTS = eINSTANCE.getDataType__AllConstraints(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.DataResourceMappingImpl Data Resource Mapping}' class. + * + * + * @see org.etsi.mts.tdl.impl.DataResourceMappingImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getDataResourceMapping() + * @generated + */ + EClass DATA_RESOURCE_MAPPING = eINSTANCE.getDataResourceMapping(); + + /** + * The meta object literal for the 'Resource URI' attribute feature. + * + * + * @generated + */ + EAttribute DATA_RESOURCE_MAPPING__RESOURCE_URI = eINSTANCE.getDataResourceMapping_ResourceURI(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.DataElementMappingImpl Data Element Mapping}' class. + * + * + * @see org.etsi.mts.tdl.impl.DataElementMappingImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getDataElementMapping() + * @generated + */ + EClass DATA_ELEMENT_MAPPING = eINSTANCE.getDataElementMapping(); + + /** + * The meta object literal for the 'Mappable Data Element' reference feature. + * + * + * @generated + */ + EReference DATA_ELEMENT_MAPPING__MAPPABLE_DATA_ELEMENT = eINSTANCE.getDataElementMapping_MappableDataElement(); + + /** + * The meta object literal for the 'Element URI' attribute feature. + * + * + * @generated + */ + EAttribute DATA_ELEMENT_MAPPING__ELEMENT_URI = eINSTANCE.getDataElementMapping_ElementURI(); + + /** + * The meta object literal for the 'Data Resource Mapping' reference feature. + * + * + * @generated + */ + EReference DATA_ELEMENT_MAPPING__DATA_RESOURCE_MAPPING = eINSTANCE.getDataElementMapping_DataResourceMapping(); + + /** + * The meta object literal for the 'Parameter Mapping' containment reference list feature. + * + * + * @generated + */ + EReference DATA_ELEMENT_MAPPING__PARAMETER_MAPPING = eINSTANCE.getDataElementMapping_ParameterMapping(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.ParameterMappingImpl Parameter Mapping}' class. + * + * + * @see org.etsi.mts.tdl.impl.ParameterMappingImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getParameterMapping() + * @generated + */ + EClass PARAMETER_MAPPING = eINSTANCE.getParameterMapping(); + + /** + * The meta object literal for the 'Parameter URI' attribute feature. + * + * + * @generated + */ + EAttribute PARAMETER_MAPPING__PARAMETER_URI = eINSTANCE.getParameterMapping_ParameterURI(); + + /** + * The meta object literal for the 'Parameter' reference feature. + * + * + * @generated + */ + EReference PARAMETER_MAPPING__PARAMETER = eINSTANCE.getParameterMapping_Parameter(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.ParameterImpl Parameter}' class. + * + * + * @see org.etsi.mts.tdl.impl.ParameterImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getParameter() + * @generated + */ + EClass PARAMETER = eINSTANCE.getParameter(); + + /** + * The meta object literal for the 'Data Type' reference feature. + * + * + * @generated + */ + EReference PARAMETER__DATA_TYPE = eINSTANCE.getParameter_DataType(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.SimpleDataTypeImpl Simple Data Type}' class. + * + * + * @see org.etsi.mts.tdl.impl.SimpleDataTypeImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getSimpleDataType() + * @generated + */ + EClass SIMPLE_DATA_TYPE = eINSTANCE.getSimpleDataType(); + + /** + * The meta object literal for the 'Extension' containment reference feature. + * + * + * @generated + */ + EReference SIMPLE_DATA_TYPE__EXTENSION = eINSTANCE.getSimpleDataType_Extension(); + + /** + * The meta object literal for the 'All Constraints' operation. + * + * + * @generated + */ + EOperation SIMPLE_DATA_TYPE___ALL_CONSTRAINTS = eINSTANCE.getSimpleDataType__AllConstraints(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.SimpleDataInstanceImpl Simple Data Instance}' class. + * + * + * @see org.etsi.mts.tdl.impl.SimpleDataInstanceImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getSimpleDataInstance() + * @generated + */ + EClass SIMPLE_DATA_INSTANCE = eINSTANCE.getSimpleDataInstance(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.StructuredDataTypeImpl Structured Data Type}' class. + * + * + * @see org.etsi.mts.tdl.impl.StructuredDataTypeImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getStructuredDataType() + * @generated + */ + EClass STRUCTURED_DATA_TYPE = eINSTANCE.getStructuredDataType(); + + /** + * The meta object literal for the 'Extension' containment reference list feature. + * + * + * @generated + */ + EReference STRUCTURED_DATA_TYPE__EXTENSION = eINSTANCE.getStructuredDataType_Extension(); + + /** + * The meta object literal for the 'Member' containment reference list feature. + * + * + * @generated + */ + EReference STRUCTURED_DATA_TYPE__MEMBER = eINSTANCE.getStructuredDataType_Member(); + + /** + * The meta object literal for the 'All Members' operation. + * + * + * @generated + */ + EOperation STRUCTURED_DATA_TYPE___ALL_MEMBERS = eINSTANCE.getStructuredDataType__AllMembers(); + + /** + * The meta object literal for the 'All Constraints' operation. + * + * + * @generated + */ + EOperation STRUCTURED_DATA_TYPE___ALL_CONSTRAINTS = eINSTANCE.getStructuredDataType__AllConstraints(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.MemberImpl Member}' class. + * + * + * @see org.etsi.mts.tdl.impl.MemberImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getMember() + * @generated + */ + EClass MEMBER = eINSTANCE.getMember(); + + /** + * The meta object literal for the 'Is Optional' attribute feature. + * + * + * @generated + */ + EAttribute MEMBER__IS_OPTIONAL = eINSTANCE.getMember_IsOptional(); + + /** + * The meta object literal for the 'Constraint' containment reference list feature. + * + * + * @generated + */ + EReference MEMBER__CONSTRAINT = eINSTANCE.getMember_Constraint(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.StructuredDataInstanceImpl Structured Data Instance}' class. + * + * + * @see org.etsi.mts.tdl.impl.StructuredDataInstanceImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getStructuredDataInstance() + * @generated + */ + EClass STRUCTURED_DATA_INSTANCE = eINSTANCE.getStructuredDataInstance(); + + /** + * The meta object literal for the 'Member Assignment' containment reference list feature. + * + * + * @generated + */ + EReference STRUCTURED_DATA_INSTANCE__MEMBER_ASSIGNMENT = eINSTANCE.getStructuredDataInstance_MemberAssignment(); + + /** + * The meta object literal for the 'Unassigned Member' attribute feature. + * + * + * @generated + */ + EAttribute STRUCTURED_DATA_INSTANCE__UNASSIGNED_MEMBER = eINSTANCE.getStructuredDataInstance_UnassignedMember(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.MemberAssignmentImpl Member Assignment}' class. + * + * + * @see org.etsi.mts.tdl.impl.MemberAssignmentImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getMemberAssignment() + * @generated + */ + EClass MEMBER_ASSIGNMENT = eINSTANCE.getMemberAssignment(); + + /** + * The meta object literal for the 'Member' reference feature. + * + * + * @generated + */ + EReference MEMBER_ASSIGNMENT__MEMBER = eINSTANCE.getMemberAssignment_Member(); + + /** + * The meta object literal for the 'Member Spec' containment reference feature. + * + * + * @generated + */ + EReference MEMBER_ASSIGNMENT__MEMBER_SPEC = eINSTANCE.getMemberAssignment_MemberSpec(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.StaticDataUseImpl Static Data Use}' class. + * + * + * @see org.etsi.mts.tdl.impl.StaticDataUseImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getStaticDataUse() + * @generated + */ + EClass STATIC_DATA_USE = eINSTANCE.getStaticDataUse(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.DataUseImpl Data Use}' class. + * + * + * @see org.etsi.mts.tdl.impl.DataUseImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getDataUse() + * @generated + */ + EClass DATA_USE = eINSTANCE.getDataUse(); + + /** + * The meta object literal for the 'Argument' containment reference list feature. + * + * + * @generated + */ + EReference DATA_USE__ARGUMENT = eINSTANCE.getDataUse_Argument(); + + /** + * The meta object literal for the 'Reduction' containment reference list feature. + * + * + * @generated + */ + EReference DATA_USE__REDUCTION = eINSTANCE.getDataUse_Reduction(); + + /** + * The meta object literal for the 'Resolve Data Type' operation. + * + * + * @generated + */ + EOperation DATA_USE___RESOLVE_DATA_TYPE = eINSTANCE.getDataUse__ResolveDataType(); + + /** + * The meta object literal for the 'Is Effectively Static' operation. + * + * + * @generated + */ + EOperation DATA_USE___IS_EFFECTIVELY_STATIC = eINSTANCE.getDataUse__IsEffectivelyStatic(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.ParameterBindingImpl Parameter Binding}' class. + * + * + * @see org.etsi.mts.tdl.impl.ParameterBindingImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getParameterBinding() + * @generated + */ + EClass PARAMETER_BINDING = eINSTANCE.getParameterBinding(); + + /** + * The meta object literal for the 'Data Use' containment reference feature. + * + * + * @generated + */ + EReference PARAMETER_BINDING__DATA_USE = eINSTANCE.getParameterBinding_DataUse(); + + /** + * The meta object literal for the 'Parameter' reference feature. + * + * + * @generated + */ + EReference PARAMETER_BINDING__PARAMETER = eINSTANCE.getParameterBinding_Parameter(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.ActionImpl Action}' class. + * + * + * @see org.etsi.mts.tdl.impl.ActionImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getAction() + * @generated + */ + EClass ACTION = eINSTANCE.getAction(); + + /** + * The meta object literal for the 'Body' attribute feature. + * + * + * @generated + */ + EAttribute ACTION__BODY = eINSTANCE.getAction_Body(); + + /** + * The meta object literal for the 'Formal Parameter' containment reference list feature. + * + * + * @generated + */ + EReference ACTION__FORMAL_PARAMETER = eINSTANCE.getAction_FormalParameter(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.FormalParameterImpl Formal Parameter}' class. + * + * + * @see org.etsi.mts.tdl.impl.FormalParameterImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getFormalParameter() + * @generated + */ + EClass FORMAL_PARAMETER = eINSTANCE.getFormalParameter(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.FunctionImpl Function}' class. + * + * + * @see org.etsi.mts.tdl.impl.FunctionImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getFunction() + * @generated + */ + EClass FUNCTION = eINSTANCE.getFunction(); + + /** + * The meta object literal for the 'Return Type' reference feature. + * + * + * @generated + */ + EReference FUNCTION__RETURN_TYPE = eINSTANCE.getFunction_ReturnType(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.FormalParameterUseImpl Formal Parameter Use}' class. + * + * + * @see org.etsi.mts.tdl.impl.FormalParameterUseImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getFormalParameterUse() + * @generated + */ + EClass FORMAL_PARAMETER_USE = eINSTANCE.getFormalParameterUse(); + + /** + * The meta object literal for the 'Parameter' reference feature. + * + * + * @generated + */ + EReference FORMAL_PARAMETER_USE__PARAMETER = eINSTANCE.getFormalParameterUse_Parameter(); + + /** + * The meta object literal for the 'Resolve Data Type' operation. + * + * + * @generated + */ + EOperation FORMAL_PARAMETER_USE___RESOLVE_DATA_TYPE = eINSTANCE.getFormalParameterUse__ResolveDataType(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.DynamicDataUseImpl Dynamic Data Use}' class. + * + * + * @see org.etsi.mts.tdl.impl.DynamicDataUseImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getDynamicDataUse() + * @generated + */ + EClass DYNAMIC_DATA_USE = eINSTANCE.getDynamicDataUse(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.VariableImpl Variable}' class. + * + * + * @see org.etsi.mts.tdl.impl.VariableImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getVariable() + * @generated + */ + EClass VARIABLE = eINSTANCE.getVariable(); + + /** + * The meta object literal for the 'Data Type' reference feature. + * + * + * @generated + */ + EReference VARIABLE__DATA_TYPE = eINSTANCE.getVariable_DataType(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.FunctionCallImpl Function Call}' class. + * + * + * @see org.etsi.mts.tdl.impl.FunctionCallImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getFunctionCall() + * @generated + */ + EClass FUNCTION_CALL = eINSTANCE.getFunctionCall(); + + /** + * The meta object literal for the 'Function' reference feature. + * + * + * @generated + */ + EReference FUNCTION_CALL__FUNCTION = eINSTANCE.getFunctionCall_Function(); + + /** + * The meta object literal for the 'Resolve Data Type' operation. + * + * + * @generated + */ + EOperation FUNCTION_CALL___RESOLVE_DATA_TYPE = eINSTANCE.getFunctionCall__ResolveDataType(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.VariableUseImpl Variable Use}' class. + * + * + * @see org.etsi.mts.tdl.impl.VariableUseImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getVariableUse() + * @generated + */ + EClass VARIABLE_USE = eINSTANCE.getVariableUse(); + + /** + * The meta object literal for the 'Component Instance' reference feature. + * + * + * @generated + */ + EReference VARIABLE_USE__COMPONENT_INSTANCE = eINSTANCE.getVariableUse_ComponentInstance(); + + /** + * The meta object literal for the 'Variable' reference feature. + * + * + * @generated + */ + EReference VARIABLE_USE__VARIABLE = eINSTANCE.getVariableUse_Variable(); + + /** + * The meta object literal for the 'Resolve Data Type' operation. + * + * + * @generated + */ + EOperation VARIABLE_USE___RESOLVE_DATA_TYPE = eINSTANCE.getVariableUse__ResolveDataType(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.ComponentInstanceImpl Component Instance}' class. + * + * + * @see org.etsi.mts.tdl.impl.ComponentInstanceImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getComponentInstance() + * @generated + */ + EClass COMPONENT_INSTANCE = eINSTANCE.getComponentInstance(); + + /** + * The meta object literal for the 'Type' reference feature. + * + * + * @generated + */ + EReference COMPONENT_INSTANCE__TYPE = eINSTANCE.getComponentInstance_Type(); + + /** + * The meta object literal for the 'Role' attribute feature. + * + * + * @generated + */ + EAttribute COMPONENT_INSTANCE__ROLE = eINSTANCE.getComponentInstance_Role(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.ComponentTypeImpl Component Type}' class. + * + * + * @see org.etsi.mts.tdl.impl.ComponentTypeImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getComponentType() + * @generated + */ + EClass COMPONENT_TYPE = eINSTANCE.getComponentType(); + + /** + * The meta object literal for the 'Gate Instance' containment reference list feature. + * + * + * @generated + */ + EReference COMPONENT_TYPE__GATE_INSTANCE = eINSTANCE.getComponentType_GateInstance(); + + /** + * The meta object literal for the 'Timer' containment reference list feature. + * + * + * @generated + */ + EReference COMPONENT_TYPE__TIMER = eINSTANCE.getComponentType_Timer(); + + /** + * The meta object literal for the 'Variable' containment reference list feature. + * + * + * @generated + */ + EReference COMPONENT_TYPE__VARIABLE = eINSTANCE.getComponentType_Variable(); + + /** + * The meta object literal for the 'Extension' containment reference feature. + * + * + * @generated + */ + EReference COMPONENT_TYPE__EXTENSION = eINSTANCE.getComponentType_Extension(); + + /** + * The meta object literal for the 'All Gates' operation. + * + * + * @generated + */ + EOperation COMPONENT_TYPE___ALL_GATES = eINSTANCE.getComponentType__AllGates(); + + /** + * The meta object literal for the 'All Timers' operation. + * + * + * @generated + */ + EOperation COMPONENT_TYPE___ALL_TIMERS = eINSTANCE.getComponentType__AllTimers(); + + /** + * The meta object literal for the 'All Variables' operation. + * + * + * @generated + */ + EOperation COMPONENT_TYPE___ALL_VARIABLES = eINSTANCE.getComponentType__AllVariables(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.GateInstanceImpl Gate Instance}' class. + * + * + * @see org.etsi.mts.tdl.impl.GateInstanceImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getGateInstance() + * @generated + */ + EClass GATE_INSTANCE = eINSTANCE.getGateInstance(); + + /** + * The meta object literal for the 'Type' reference feature. + * + * + * @generated + */ + EReference GATE_INSTANCE__TYPE = eINSTANCE.getGateInstance_Type(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.GateTypeImpl Gate Type}' class. + * + * + * @see org.etsi.mts.tdl.impl.GateTypeImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getGateType() + * @generated + */ + EClass GATE_TYPE = eINSTANCE.getGateType(); + + /** + * The meta object literal for the 'Data Type' reference list feature. + * + * + * @generated + */ + EReference GATE_TYPE__DATA_TYPE = eINSTANCE.getGateType_DataType(); + + /** + * The meta object literal for the 'Kind' attribute feature. + * + * + * @generated + */ + EAttribute GATE_TYPE__KIND = eINSTANCE.getGateType_Kind(); + + /** + * The meta object literal for the 'Extension' containment reference feature. + * + * + * @generated + */ + EReference GATE_TYPE__EXTENSION = eINSTANCE.getGateType_Extension(); + + /** + * The meta object literal for the 'All Data Types' operation. + * + * + * @generated + */ + EOperation GATE_TYPE___ALL_DATA_TYPES = eINSTANCE.getGateType__AllDataTypes(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.TimerImpl Timer}' class. + * + * + * @see org.etsi.mts.tdl.impl.TimerImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getTimer() + * @generated + */ + EClass TIMER = eINSTANCE.getTimer(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.OmitValueImpl Omit Value}' class. + * + * + * @see org.etsi.mts.tdl.impl.OmitValueImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getOmitValue() + * @generated + */ + EClass OMIT_VALUE = eINSTANCE.getOmitValue(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.SpecialValueUseImpl Special Value Use}' class. + * + * + * @see org.etsi.mts.tdl.impl.SpecialValueUseImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getSpecialValueUse() + * @generated + */ + EClass SPECIAL_VALUE_USE = eINSTANCE.getSpecialValueUse(); + + /** + * The meta object literal for the 'Resolve Data Type' operation. + * + * + * @generated + */ + EOperation SPECIAL_VALUE_USE___RESOLVE_DATA_TYPE = eINSTANCE.getSpecialValueUse__ResolveDataType(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.AnyValueImpl Any Value}' class. + * + * + * @see org.etsi.mts.tdl.impl.AnyValueImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getAnyValue() + * @generated + */ + EClass ANY_VALUE = eINSTANCE.getAnyValue(); + + /** + * The meta object literal for the 'Data Type' reference feature. + * + * + * @generated + */ + EReference ANY_VALUE__DATA_TYPE = eINSTANCE.getAnyValue_DataType(); + + /** + * The meta object literal for the 'Resolve Data Type' operation. + * + * + * @generated + */ + EOperation ANY_VALUE___RESOLVE_DATA_TYPE = eINSTANCE.getAnyValue__ResolveDataType(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.AnyValueOrOmitImpl Any Value Or Omit}' class. + * + * + * @see org.etsi.mts.tdl.impl.AnyValueOrOmitImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getAnyValueOrOmit() + * @generated + */ + EClass ANY_VALUE_OR_OMIT = eINSTANCE.getAnyValueOrOmit(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.DataInstanceUseImpl Data Instance Use}' class. + * + * + * @see org.etsi.mts.tdl.impl.DataInstanceUseImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getDataInstanceUse() + * @generated + */ + EClass DATA_INSTANCE_USE = eINSTANCE.getDataInstanceUse(); + + /** + * The meta object literal for the 'Data Instance' reference feature. + * + * + * @generated + */ + EReference DATA_INSTANCE_USE__DATA_INSTANCE = eINSTANCE.getDataInstanceUse_DataInstance(); + + /** + * The meta object literal for the 'Unassigned Member' attribute feature. + * + * + * @generated + */ + EAttribute DATA_INSTANCE_USE__UNASSIGNED_MEMBER = eINSTANCE.getDataInstanceUse_UnassignedMember(); + + /** + * The meta object literal for the 'Data Type' reference feature. + * + * + * @generated + */ + EReference DATA_INSTANCE_USE__DATA_TYPE = eINSTANCE.getDataInstanceUse_DataType(); + + /** + * The meta object literal for the 'Item' containment reference list feature. + * + * + * @generated + */ + EReference DATA_INSTANCE_USE__ITEM = eINSTANCE.getDataInstanceUse_Item(); + + /** + * The meta object literal for the 'Resolve Data Type' operation. + * + * + * @generated + */ + EOperation DATA_INSTANCE_USE___RESOLVE_DATA_TYPE = eINSTANCE.getDataInstanceUse__ResolveDataType(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.TimeImpl Time}' class. + * + * + * @see org.etsi.mts.tdl.impl.TimeImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getTime() + * @generated + */ + EClass TIME = eINSTANCE.getTime(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.TimeLabelImpl Time Label}' class. + * + * + * @see org.etsi.mts.tdl.impl.TimeLabelImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getTimeLabel() + * @generated + */ + EClass TIME_LABEL = eINSTANCE.getTimeLabel(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.TimerOperationImpl Timer Operation}' class. + * + * + * @see org.etsi.mts.tdl.impl.TimerOperationImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getTimerOperation() + * @generated + */ + EClass TIMER_OPERATION = eINSTANCE.getTimerOperation(); + + /** + * The meta object literal for the 'Timer' reference feature. + * + * + * @generated + */ + EReference TIMER_OPERATION__TIMER = eINSTANCE.getTimerOperation_Timer(); + + /** + * The meta object literal for the 'Component Instance' reference feature. + * + * + * @generated + */ + EReference TIMER_OPERATION__COMPONENT_INSTANCE = eINSTANCE.getTimerOperation_ComponentInstance(); + + /** + * The meta object literal for the 'Get Participating Components' operation. + * + * + * @generated + */ + EOperation TIMER_OPERATION___GET_PARTICIPATING_COMPONENTS = eINSTANCE.getTimerOperation__GetParticipatingComponents(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.AtomicBehaviourImpl Atomic Behaviour}' class. + * + * + * @see org.etsi.mts.tdl.impl.AtomicBehaviourImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getAtomicBehaviour() + * @generated + */ + EClass ATOMIC_BEHAVIOUR = eINSTANCE.getAtomicBehaviour(); + + /** + * The meta object literal for the 'Time Constraint' containment reference list feature. + * + * + * @generated + */ + EReference ATOMIC_BEHAVIOUR__TIME_CONSTRAINT = eINSTANCE.getAtomicBehaviour_TimeConstraint(); + + /** + * The meta object literal for the 'Time Label' containment reference feature. + * + * + * @generated + */ + EReference ATOMIC_BEHAVIOUR__TIME_LABEL = eINSTANCE.getAtomicBehaviour_TimeLabel(); + + /** + * The meta object literal for the 'Get Participating Components' operation. + * + * + * @generated + */ + EOperation ATOMIC_BEHAVIOUR___GET_PARTICIPATING_COMPONENTS = eINSTANCE.getAtomicBehaviour__GetParticipatingComponents(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.BehaviourImpl Behaviour}' class. + * + * + * @see org.etsi.mts.tdl.impl.BehaviourImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getBehaviour() + * @generated + */ + EClass BEHAVIOUR = eINSTANCE.getBehaviour(); + + /** + * The meta object literal for the 'Test Objective' reference list feature. + * + * + * @generated + */ + EReference BEHAVIOUR__TEST_OBJECTIVE = eINSTANCE.getBehaviour_TestObjective(); + + /** + * The meta object literal for the 'Is Tester Input Event' operation. + * + * + * @generated + */ + EOperation BEHAVIOUR___IS_TESTER_INPUT_EVENT = eINSTANCE.getBehaviour__IsTesterInputEvent(); + + /** + * The meta object literal for the 'Get Participating Components' operation. + * + * + * @generated + */ + EOperation BEHAVIOUR___GET_PARTICIPATING_COMPONENTS = eINSTANCE.getBehaviour__GetParticipatingComponents(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.TimeConstraintImpl Time Constraint}' class. + * + * + * @see org.etsi.mts.tdl.impl.TimeConstraintImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getTimeConstraint() + * @generated + */ + EClass TIME_CONSTRAINT = eINSTANCE.getTimeConstraint(); + + /** + * The meta object literal for the 'Time Constraint Expression' containment reference feature. + * + * + * @generated + */ + EReference TIME_CONSTRAINT__TIME_CONSTRAINT_EXPRESSION = eINSTANCE.getTimeConstraint_TimeConstraintExpression(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.TimerStartImpl Timer Start}' class. + * + * + * @see org.etsi.mts.tdl.impl.TimerStartImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getTimerStart() + * @generated + */ + EClass TIMER_START = eINSTANCE.getTimerStart(); + + /** + * The meta object literal for the 'Period' containment reference feature. + * + * + * @generated + */ + EReference TIMER_START__PERIOD = eINSTANCE.getTimerStart_Period(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.TimerStopImpl Timer Stop}' class. + * + * + * @see org.etsi.mts.tdl.impl.TimerStopImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getTimerStop() + * @generated + */ + EClass TIMER_STOP = eINSTANCE.getTimerStop(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.TimeOutImpl Time Out}' class. + * + * + * @see org.etsi.mts.tdl.impl.TimeOutImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getTimeOut() + * @generated + */ + EClass TIME_OUT = eINSTANCE.getTimeOut(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.TimeOperationImpl Time Operation}' class. + * + * + * @see org.etsi.mts.tdl.impl.TimeOperationImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getTimeOperation() + * @generated + */ + EClass TIME_OPERATION = eINSTANCE.getTimeOperation(); + + /** + * The meta object literal for the 'Component Instance' reference feature. + * + * + * @generated + */ + EReference TIME_OPERATION__COMPONENT_INSTANCE = eINSTANCE.getTimeOperation_ComponentInstance(); + + /** + * The meta object literal for the 'Period' containment reference feature. + * + * + * @generated + */ + EReference TIME_OPERATION__PERIOD = eINSTANCE.getTimeOperation_Period(); + + /** + * The meta object literal for the 'Get Participating Components' operation. + * + * + * @generated + */ + EOperation TIME_OPERATION___GET_PARTICIPATING_COMPONENTS = eINSTANCE.getTimeOperation__GetParticipatingComponents(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.WaitImpl Wait}' class. + * + * + * @see org.etsi.mts.tdl.impl.WaitImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getWait() + * @generated + */ + EClass WAIT = eINSTANCE.getWait(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.QuiescenceImpl Quiescence}' class. + * + * + * @see org.etsi.mts.tdl.impl.QuiescenceImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getQuiescence() + * @generated + */ + EClass QUIESCENCE = eINSTANCE.getQuiescence(); + + /** + * The meta object literal for the 'Gate Reference' reference feature. + * + * + * @generated + */ + EReference QUIESCENCE__GATE_REFERENCE = eINSTANCE.getQuiescence_GateReference(); + + /** + * The meta object literal for the 'Get Participating Components' operation. + * + * + * @generated + */ + EOperation QUIESCENCE___GET_PARTICIPATING_COMPONENTS = eINSTANCE.getQuiescence__GetParticipatingComponents(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.GateReferenceImpl Gate Reference}' class. + * + * + * @see org.etsi.mts.tdl.impl.GateReferenceImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getGateReference() + * @generated + */ + EClass GATE_REFERENCE = eINSTANCE.getGateReference(); + + /** + * The meta object literal for the 'Component' reference feature. + * + * + * @generated + */ + EReference GATE_REFERENCE__COMPONENT = eINSTANCE.getGateReference_Component(); + + /** + * The meta object literal for the 'Gate' reference feature. + * + * + * @generated + */ + EReference GATE_REFERENCE__GATE = eINSTANCE.getGateReference_Gate(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.TimeLabelUseImpl Time Label Use}' class. + * + * + * @see org.etsi.mts.tdl.impl.TimeLabelUseImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getTimeLabelUse() + * @generated + */ + EClass TIME_LABEL_USE = eINSTANCE.getTimeLabelUse(); + + /** + * The meta object literal for the 'Time Label' reference feature. + * + * + * @generated + */ + EReference TIME_LABEL_USE__TIME_LABEL = eINSTANCE.getTimeLabelUse_TimeLabel(); + + /** + * The meta object literal for the 'Kind' attribute feature. + * + * + * @generated + */ + EAttribute TIME_LABEL_USE__KIND = eINSTANCE.getTimeLabelUse_Kind(); + + /** + * The meta object literal for the 'Resolve Data Type' operation. + * + * + * @generated + */ + EOperation TIME_LABEL_USE___RESOLVE_DATA_TYPE = eINSTANCE.getTimeLabelUse__ResolveDataType(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.TestConfigurationImpl Test Configuration}' class. + * + * + * @see org.etsi.mts.tdl.impl.TestConfigurationImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getTestConfiguration() + * @generated + */ + EClass TEST_CONFIGURATION = eINSTANCE.getTestConfiguration(); + + /** + * The meta object literal for the 'Component Instance' containment reference list feature. + * + * + * @generated + */ + EReference TEST_CONFIGURATION__COMPONENT_INSTANCE = eINSTANCE.getTestConfiguration_ComponentInstance(); + + /** + * The meta object literal for the 'Connection' containment reference list feature. + * + * + * @generated + */ + EReference TEST_CONFIGURATION__CONNECTION = eINSTANCE.getTestConfiguration_Connection(); + + /** + * The meta object literal for the 'Compatible With' operation. + * + * + * @generated + */ + EOperation TEST_CONFIGURATION___COMPATIBLE_WITH__TESTCONFIGURATION_ELIST = eINSTANCE.getTestConfiguration__CompatibleWith__TestConfiguration_EList(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.ConnectionImpl Connection}' class. + * + * + * @see org.etsi.mts.tdl.impl.ConnectionImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getConnection() + * @generated + */ + EClass CONNECTION = eINSTANCE.getConnection(); + + /** + * The meta object literal for the 'End Point' containment reference list feature. + * + * + * @generated + */ + EReference CONNECTION__END_POINT = eINSTANCE.getConnection_EndPoint(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.TestDescriptionImpl Test Description}' class. + * + * + * @see org.etsi.mts.tdl.impl.TestDescriptionImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getTestDescription() + * @generated + */ + EClass TEST_DESCRIPTION = eINSTANCE.getTestDescription(); + + /** + * The meta object literal for the 'Test Configuration' reference feature. + * + * + * @generated + */ + EReference TEST_DESCRIPTION__TEST_CONFIGURATION = eINSTANCE.getTestDescription_TestConfiguration(); + + /** + * The meta object literal for the 'Formal Parameter' containment reference list feature. + * + * + * @generated + */ + EReference TEST_DESCRIPTION__FORMAL_PARAMETER = eINSTANCE.getTestDescription_FormalParameter(); + + /** + * The meta object literal for the 'Behaviour Description' containment reference feature. + * + * + * @generated + */ + EReference TEST_DESCRIPTION__BEHAVIOUR_DESCRIPTION = eINSTANCE.getTestDescription_BehaviourDescription(); + + /** + * The meta object literal for the 'Test Objective' reference list feature. + * + * + * @generated + */ + EReference TEST_DESCRIPTION__TEST_OBJECTIVE = eINSTANCE.getTestDescription_TestObjective(); + + /** + * The meta object literal for the 'Is Locally Ordered' attribute feature. + * + * + * @generated + */ + EAttribute TEST_DESCRIPTION__IS_LOCALLY_ORDERED = eINSTANCE.getTestDescription_IsLocallyOrdered(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.BehaviourDescriptionImpl Behaviour Description}' class. + * + * + * @see org.etsi.mts.tdl.impl.BehaviourDescriptionImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getBehaviourDescription() + * @generated + */ + EClass BEHAVIOUR_DESCRIPTION = eINSTANCE.getBehaviourDescription(); + + /** + * The meta object literal for the 'Behaviour' containment reference feature. + * + * + * @generated + */ + EReference BEHAVIOUR_DESCRIPTION__BEHAVIOUR = eINSTANCE.getBehaviourDescription_Behaviour(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.BlockImpl Block}' class. + * + * + * @see org.etsi.mts.tdl.impl.BlockImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getBlock() + * @generated + */ + EClass BLOCK = eINSTANCE.getBlock(); + + /** + * The meta object literal for the 'Behaviour' containment reference list feature. + * + * + * @generated + */ + EReference BLOCK__BEHAVIOUR = eINSTANCE.getBlock_Behaviour(); + + /** + * The meta object literal for the 'Guard' containment reference list feature. + * + * + * @generated + */ + EReference BLOCK__GUARD = eINSTANCE.getBlock_Guard(); + + /** + * The meta object literal for the 'Get Participating Components' operation. + * + * + * @generated + */ + EOperation BLOCK___GET_PARTICIPATING_COMPONENTS = eINSTANCE.getBlock__GetParticipatingComponents(); + + /** + * The meta object literal for the 'Get Participating Components Excluding' operation. + * + * + * @generated + */ + EOperation BLOCK___GET_PARTICIPATING_COMPONENTS_EXCLUDING__BEHAVIOUR = eINSTANCE.getBlock__GetParticipatingComponentsExcluding__Behaviour(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.CombinedBehaviourImpl Combined Behaviour}' class. + * + * + * @see org.etsi.mts.tdl.impl.CombinedBehaviourImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getCombinedBehaviour() + * @generated + */ + EClass COMBINED_BEHAVIOUR = eINSTANCE.getCombinedBehaviour(); + + /** + * The meta object literal for the 'Periodic' containment reference list feature. + * + * + * @generated + */ + EReference COMBINED_BEHAVIOUR__PERIODIC = eINSTANCE.getCombinedBehaviour_Periodic(); + + /** + * The meta object literal for the 'Exceptional' containment reference list feature. + * + * + * @generated + */ + EReference COMBINED_BEHAVIOUR__EXCEPTIONAL = eINSTANCE.getCombinedBehaviour_Exceptional(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.PeriodicBehaviourImpl Periodic Behaviour}' class. + * + * + * @see org.etsi.mts.tdl.impl.PeriodicBehaviourImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getPeriodicBehaviour() + * @generated + */ + EClass PERIODIC_BEHAVIOUR = eINSTANCE.getPeriodicBehaviour(); + + /** + * The meta object literal for the 'Block' containment reference feature. + * + * + * @generated + */ + EReference PERIODIC_BEHAVIOUR__BLOCK = eINSTANCE.getPeriodicBehaviour_Block(); + + /** + * The meta object literal for the 'Period' containment reference list feature. + * + * + * @generated + */ + EReference PERIODIC_BEHAVIOUR__PERIOD = eINSTANCE.getPeriodicBehaviour_Period(); + + /** + * The meta object literal for the 'Get Participating Components' operation. + * + * + * @generated + */ + EOperation PERIODIC_BEHAVIOUR___GET_PARTICIPATING_COMPONENTS = eINSTANCE.getPeriodicBehaviour__GetParticipatingComponents(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.ExceptionalBehaviourImpl Exceptional Behaviour}' class. + * + * + * @see org.etsi.mts.tdl.impl.ExceptionalBehaviourImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getExceptionalBehaviour() + * @generated + */ + EClass EXCEPTIONAL_BEHAVIOUR = eINSTANCE.getExceptionalBehaviour(); + + /** + * The meta object literal for the 'Block' containment reference feature. + * + * + * @generated + */ + EReference EXCEPTIONAL_BEHAVIOUR__BLOCK = eINSTANCE.getExceptionalBehaviour_Block(); + + /** + * The meta object literal for the 'Guarded Component' reference feature. + * + * + * @generated + */ + EReference EXCEPTIONAL_BEHAVIOUR__GUARDED_COMPONENT = eINSTANCE.getExceptionalBehaviour_GuardedComponent(); + + /** + * The meta object literal for the 'Get Participating Components' operation. + * + * + * @generated + */ + EOperation EXCEPTIONAL_BEHAVIOUR___GET_PARTICIPATING_COMPONENTS = eINSTANCE.getExceptionalBehaviour__GetParticipatingComponents(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.AlternativeBehaviourImpl Alternative Behaviour}' class. + * + * + * @see org.etsi.mts.tdl.impl.AlternativeBehaviourImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getAlternativeBehaviour() + * @generated + */ + EClass ALTERNATIVE_BEHAVIOUR = eINSTANCE.getAlternativeBehaviour(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.MultipleCombinedBehaviourImpl Multiple Combined Behaviour}' class. + * + * + * @see org.etsi.mts.tdl.impl.MultipleCombinedBehaviourImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getMultipleCombinedBehaviour() + * @generated + */ + EClass MULTIPLE_COMBINED_BEHAVIOUR = eINSTANCE.getMultipleCombinedBehaviour(); + + /** + * The meta object literal for the 'Block' containment reference list feature. + * + * + * @generated + */ + EReference MULTIPLE_COMBINED_BEHAVIOUR__BLOCK = eINSTANCE.getMultipleCombinedBehaviour_Block(); + + /** + * The meta object literal for the 'Get Participating Components' operation. + * + * + * @generated + */ + EOperation MULTIPLE_COMBINED_BEHAVIOUR___GET_PARTICIPATING_COMPONENTS = eINSTANCE.getMultipleCombinedBehaviour__GetParticipatingComponents(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.ParallelBehaviourImpl Parallel Behaviour}' class. + * + * + * @see org.etsi.mts.tdl.impl.ParallelBehaviourImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getParallelBehaviour() + * @generated + */ + EClass PARALLEL_BEHAVIOUR = eINSTANCE.getParallelBehaviour(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.BoundedLoopBehaviourImpl Bounded Loop Behaviour}' class. + * + * + * @see org.etsi.mts.tdl.impl.BoundedLoopBehaviourImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getBoundedLoopBehaviour() + * @generated + */ + EClass BOUNDED_LOOP_BEHAVIOUR = eINSTANCE.getBoundedLoopBehaviour(); + + /** + * The meta object literal for the 'Num Iteration' containment reference list feature. + * + * + * @generated + */ + EReference BOUNDED_LOOP_BEHAVIOUR__NUM_ITERATION = eINSTANCE.getBoundedLoopBehaviour_NumIteration(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.SingleCombinedBehaviourImpl Single Combined Behaviour}' class. + * + * + * @see org.etsi.mts.tdl.impl.SingleCombinedBehaviourImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getSingleCombinedBehaviour() + * @generated + */ + EClass SINGLE_COMBINED_BEHAVIOUR = eINSTANCE.getSingleCombinedBehaviour(); + + /** + * The meta object literal for the 'Block' containment reference feature. + * + * + * @generated + */ + EReference SINGLE_COMBINED_BEHAVIOUR__BLOCK = eINSTANCE.getSingleCombinedBehaviour_Block(); + + /** + * The meta object literal for the 'Get Participating Components' operation. + * + * + * @generated + */ + EOperation SINGLE_COMBINED_BEHAVIOUR___GET_PARTICIPATING_COMPONENTS = eINSTANCE.getSingleCombinedBehaviour__GetParticipatingComponents(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.OptionalBehaviourImpl Optional Behaviour}' class. + * + * + * @see org.etsi.mts.tdl.impl.OptionalBehaviourImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getOptionalBehaviour() + * @generated + */ + EClass OPTIONAL_BEHAVIOUR = eINSTANCE.getOptionalBehaviour(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.UnboundedLoopBehaviourImpl Unbounded Loop Behaviour}' class. + * + * + * @see org.etsi.mts.tdl.impl.UnboundedLoopBehaviourImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getUnboundedLoopBehaviour() + * @generated + */ + EClass UNBOUNDED_LOOP_BEHAVIOUR = eINSTANCE.getUnboundedLoopBehaviour(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.ConditionalBehaviourImpl Conditional Behaviour}' class. + * + * + * @see org.etsi.mts.tdl.impl.ConditionalBehaviourImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getConditionalBehaviour() + * @generated + */ + EClass CONDITIONAL_BEHAVIOUR = eINSTANCE.getConditionalBehaviour(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.CompoundBehaviourImpl Compound Behaviour}' class. + * + * + * @see org.etsi.mts.tdl.impl.CompoundBehaviourImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getCompoundBehaviour() + * @generated + */ + EClass COMPOUND_BEHAVIOUR = eINSTANCE.getCompoundBehaviour(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.DefaultBehaviourImpl Default Behaviour}' class. + * + * + * @see org.etsi.mts.tdl.impl.DefaultBehaviourImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getDefaultBehaviour() + * @generated + */ + EClass DEFAULT_BEHAVIOUR = eINSTANCE.getDefaultBehaviour(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.InterruptBehaviourImpl Interrupt Behaviour}' class. + * + * + * @see org.etsi.mts.tdl.impl.InterruptBehaviourImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getInterruptBehaviour() + * @generated + */ + EClass INTERRUPT_BEHAVIOUR = eINSTANCE.getInterruptBehaviour(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.TargetImpl Target}' class. + * + * + * @see org.etsi.mts.tdl.impl.TargetImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getTarget() + * @generated + */ + EClass TARGET = eINSTANCE.getTarget(); + + /** + * The meta object literal for the 'Target Gate' reference feature. + * + * + * @generated + */ + EReference TARGET__TARGET_GATE = eINSTANCE.getTarget_TargetGate(); + + /** + * The meta object literal for the 'Value Assignment' containment reference list feature. + * + * + * @generated + */ + EReference TARGET__VALUE_ASSIGNMENT = eINSTANCE.getTarget_ValueAssignment(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.VerdictAssignmentImpl Verdict Assignment}' class. + * + * + * @see org.etsi.mts.tdl.impl.VerdictAssignmentImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getVerdictAssignment() + * @generated + */ + EClass VERDICT_ASSIGNMENT = eINSTANCE.getVerdictAssignment(); + + /** + * The meta object literal for the 'Verdict' containment reference feature. + * + * + * @generated + */ + EReference VERDICT_ASSIGNMENT__VERDICT = eINSTANCE.getVerdictAssignment_Verdict(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.AssertionImpl Assertion}' class. + * + * + * @see org.etsi.mts.tdl.impl.AssertionImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getAssertion() + * @generated + */ + EClass ASSERTION = eINSTANCE.getAssertion(); + + /** + * The meta object literal for the 'Otherwise' containment reference feature. + * + * + * @generated + */ + EReference ASSERTION__OTHERWISE = eINSTANCE.getAssertion_Otherwise(); + + /** + * The meta object literal for the 'Condition' containment reference feature. + * + * + * @generated + */ + EReference ASSERTION__CONDITION = eINSTANCE.getAssertion_Condition(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.StopImpl Stop}' class. + * + * + * @see org.etsi.mts.tdl.impl.StopImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getStop() + * @generated + */ + EClass STOP = eINSTANCE.getStop(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.BreakImpl Break}' class. + * + * + * @see org.etsi.mts.tdl.impl.BreakImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getBreak() + * @generated + */ + EClass BREAK = eINSTANCE.getBreak(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.AssignmentImpl Assignment}' class. + * + * + * @see org.etsi.mts.tdl.impl.AssignmentImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getAssignment() + * @generated + */ + EClass ASSIGNMENT = eINSTANCE.getAssignment(); + + /** + * The meta object literal for the 'Variable' containment reference feature. + * + * + * @generated + */ + EReference ASSIGNMENT__VARIABLE = eINSTANCE.getAssignment_Variable(); + + /** + * The meta object literal for the 'Expression' containment reference feature. + * + * + * @generated + */ + EReference ASSIGNMENT__EXPRESSION = eINSTANCE.getAssignment_Expression(); + + /** + * The meta object literal for the 'Get Participating Components' operation. + * + * + * @generated + */ + EOperation ASSIGNMENT___GET_PARTICIPATING_COMPONENTS = eINSTANCE.getAssignment__GetParticipatingComponents(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.ActionBehaviourImpl Action Behaviour}' class. + * + * + * @see org.etsi.mts.tdl.impl.ActionBehaviourImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getActionBehaviour() + * @generated + */ + EClass ACTION_BEHAVIOUR = eINSTANCE.getActionBehaviour(); + + /** + * The meta object literal for the 'Component Instance' reference feature. + * + * + * @generated + */ + EReference ACTION_BEHAVIOUR__COMPONENT_INSTANCE = eINSTANCE.getActionBehaviour_ComponentInstance(); + + /** + * The meta object literal for the 'Get Participating Components' operation. + * + * + * @generated + */ + EOperation ACTION_BEHAVIOUR___GET_PARTICIPATING_COMPONENTS = eINSTANCE.getActionBehaviour__GetParticipatingComponents(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.InlineActionImpl Inline Action}' class. + * + * + * @see org.etsi.mts.tdl.impl.InlineActionImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getInlineAction() + * @generated + */ + EClass INLINE_ACTION = eINSTANCE.getInlineAction(); + + /** + * The meta object literal for the 'Body' attribute feature. + * + * + * @generated + */ + EAttribute INLINE_ACTION__BODY = eINSTANCE.getInlineAction_Body(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.ActionReferenceImpl Action Reference}' class. + * + * + * @see org.etsi.mts.tdl.impl.ActionReferenceImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getActionReference() + * @generated + */ + EClass ACTION_REFERENCE = eINSTANCE.getActionReference(); + + /** + * The meta object literal for the 'Action' reference feature. + * + * + * @generated + */ + EReference ACTION_REFERENCE__ACTION = eINSTANCE.getActionReference_Action(); + + /** + * The meta object literal for the 'Argument' containment reference list feature. + * + * + * @generated + */ + EReference ACTION_REFERENCE__ARGUMENT = eINSTANCE.getActionReference_Argument(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.TestDescriptionReferenceImpl Test Description Reference}' class. + * + * + * @see org.etsi.mts.tdl.impl.TestDescriptionReferenceImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getTestDescriptionReference() + * @generated + */ + EClass TEST_DESCRIPTION_REFERENCE = eINSTANCE.getTestDescriptionReference(); + + /** + * The meta object literal for the 'Test Description' reference feature. + * + * + * @generated + */ + EReference TEST_DESCRIPTION_REFERENCE__TEST_DESCRIPTION = eINSTANCE.getTestDescriptionReference_TestDescription(); + + /** + * The meta object literal for the 'Component Instance Binding' containment reference list feature. + * + * + * @generated + */ + EReference TEST_DESCRIPTION_REFERENCE__COMPONENT_INSTANCE_BINDING = eINSTANCE.getTestDescriptionReference_ComponentInstanceBinding(); + + /** + * The meta object literal for the 'Argument' containment reference list feature. + * + * + * @generated + */ + EReference TEST_DESCRIPTION_REFERENCE__ARGUMENT = eINSTANCE.getTestDescriptionReference_Argument(); + + /** + * The meta object literal for the 'Get Participating Components' operation. + * + * + * @generated + */ + EOperation TEST_DESCRIPTION_REFERENCE___GET_PARTICIPATING_COMPONENTS = eINSTANCE.getTestDescriptionReference__GetParticipatingComponents(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.ComponentInstanceBindingImpl Component Instance Binding}' class. + * + * + * @see org.etsi.mts.tdl.impl.ComponentInstanceBindingImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getComponentInstanceBinding() + * @generated + */ + EClass COMPONENT_INSTANCE_BINDING = eINSTANCE.getComponentInstanceBinding(); + + /** + * The meta object literal for the 'Formal Component' reference feature. + * + * + * @generated + */ + EReference COMPONENT_INSTANCE_BINDING__FORMAL_COMPONENT = eINSTANCE.getComponentInstanceBinding_FormalComponent(); + + /** + * The meta object literal for the 'Actual Component' reference feature. + * + * + * @generated + */ + EReference COMPONENT_INSTANCE_BINDING__ACTUAL_COMPONENT = eINSTANCE.getComponentInstanceBinding_ActualComponent(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.InteractionImpl Interaction}' class. + * + * + * @see org.etsi.mts.tdl.impl.InteractionImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getInteraction() + * @generated + */ + EClass INTERACTION = eINSTANCE.getInteraction(); + + /** + * The meta object literal for the 'Source Gate' reference feature. + * + * + * @generated + */ + EReference INTERACTION__SOURCE_GATE = eINSTANCE.getInteraction_SourceGate(); + + /** + * The meta object literal for the 'Target' containment reference list feature. + * + * + * @generated + */ + EReference INTERACTION__TARGET = eINSTANCE.getInteraction_Target(); + + /** + * The meta object literal for the 'Get Participating Components' operation. + * + * + * @generated + */ + EOperation INTERACTION___GET_PARTICIPATING_COMPONENTS = eINSTANCE.getInteraction__GetParticipatingComponents(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.MessageImpl Message}' class. + * + * + * @see org.etsi.mts.tdl.impl.MessageImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getMessage() + * @generated + */ + EClass MESSAGE = eINSTANCE.getMessage(); + + /** + * The meta object literal for the 'Is Trigger' attribute feature. + * + * + * @generated + */ + EAttribute MESSAGE__IS_TRIGGER = eINSTANCE.getMessage_IsTrigger(); + + /** + * The meta object literal for the 'Argument' containment reference feature. + * + * + * @generated + */ + EReference MESSAGE__ARGUMENT = eINSTANCE.getMessage_Argument(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.PredefinedFunctionImpl Predefined Function}' class. + * + * + * @see org.etsi.mts.tdl.impl.PredefinedFunctionImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getPredefinedFunction() + * @generated + */ + EClass PREDEFINED_FUNCTION = eINSTANCE.getPredefinedFunction(); + + /** + * The meta object literal for the 'Return Type' reference feature. + * + * + * @generated + */ + EReference PREDEFINED_FUNCTION__RETURN_TYPE = eINSTANCE.getPredefinedFunction_ReturnType(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.MemberReferenceImpl Member Reference}' class. + * + * + * @see org.etsi.mts.tdl.impl.MemberReferenceImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getMemberReference() + * @generated + */ + EClass MEMBER_REFERENCE = eINSTANCE.getMemberReference(); + + /** + * The meta object literal for the 'Member' reference feature. + * + * + * @generated + */ + EReference MEMBER_REFERENCE__MEMBER = eINSTANCE.getMemberReference_Member(); + + /** + * The meta object literal for the 'Collection Index' containment reference feature. + * + * + * @generated + */ + EReference MEMBER_REFERENCE__COLLECTION_INDEX = eINSTANCE.getMemberReference_CollectionIndex(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.PredefinedFunctionCallImpl Predefined Function Call}' class. + * + * + * @see org.etsi.mts.tdl.impl.PredefinedFunctionCallImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getPredefinedFunctionCall() + * @generated + */ + EClass PREDEFINED_FUNCTION_CALL = eINSTANCE.getPredefinedFunctionCall(); + + /** + * The meta object literal for the 'Function' reference feature. + * + * + * @generated + */ + EReference PREDEFINED_FUNCTION_CALL__FUNCTION = eINSTANCE.getPredefinedFunctionCall_Function(); + + /** + * The meta object literal for the 'Actual Parameters' containment reference list feature. + * + * + * @generated + */ + EReference PREDEFINED_FUNCTION_CALL__ACTUAL_PARAMETERS = eINSTANCE.getPredefinedFunctionCall_ActualParameters(); + + /** + * The meta object literal for the 'Resolve Data Type' operation. + * + * + * @generated + */ + EOperation PREDEFINED_FUNCTION_CALL___RESOLVE_DATA_TYPE = eINSTANCE.getPredefinedFunctionCall__ResolveDataType(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.LocalExpressionImpl Local Expression}' class. + * + * + * @see org.etsi.mts.tdl.impl.LocalExpressionImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getLocalExpression() + * @generated + */ + EClass LOCAL_EXPRESSION = eINSTANCE.getLocalExpression(); + + /** + * The meta object literal for the 'Expression' containment reference feature. + * + * + * @generated + */ + EReference LOCAL_EXPRESSION__EXPRESSION = eINSTANCE.getLocalExpression_Expression(); + + /** + * The meta object literal for the 'Component Instance' reference feature. + * + * + * @generated + */ + EReference LOCAL_EXPRESSION__COMPONENT_INSTANCE = eINSTANCE.getLocalExpression_ComponentInstance(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.ValueAssignmentImpl Value Assignment}' class. + * + * + * @see org.etsi.mts.tdl.impl.ValueAssignmentImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getValueAssignment() + * @generated + */ + EClass VALUE_ASSIGNMENT = eINSTANCE.getValueAssignment(); + + /** + * The meta object literal for the 'Variable' reference feature. + * + * + * @generated + */ + EReference VALUE_ASSIGNMENT__VARIABLE = eINSTANCE.getValueAssignment_Variable(); + + /** + * The meta object literal for the 'Parameter' reference feature. + * + * + * @generated + */ + EReference VALUE_ASSIGNMENT__PARAMETER = eINSTANCE.getValueAssignment_Parameter(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.ProcedureCallImpl Procedure Call}' class. + * + * + * @see org.etsi.mts.tdl.impl.ProcedureCallImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getProcedureCall() + * @generated + */ + EClass PROCEDURE_CALL = eINSTANCE.getProcedureCall(); + + /** + * The meta object literal for the 'Signature' reference feature. + * + * + * @generated + */ + EReference PROCEDURE_CALL__SIGNATURE = eINSTANCE.getProcedureCall_Signature(); + + /** + * The meta object literal for the 'Argument' containment reference list feature. + * + * + * @generated + */ + EReference PROCEDURE_CALL__ARGUMENT = eINSTANCE.getProcedureCall_Argument(); + + /** + * The meta object literal for the 'Reply To' reference feature. + * + * + * @generated + */ + EReference PROCEDURE_CALL__REPLY_TO = eINSTANCE.getProcedureCall_ReplyTo(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.ProcedureSignatureImpl Procedure Signature}' class. + * + * + * @see org.etsi.mts.tdl.impl.ProcedureSignatureImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getProcedureSignature() + * @generated + */ + EClass PROCEDURE_SIGNATURE = eINSTANCE.getProcedureSignature(); + + /** + * The meta object literal for the 'Parameter' containment reference list feature. + * + * + * @generated + */ + EReference PROCEDURE_SIGNATURE__PARAMETER = eINSTANCE.getProcedureSignature_Parameter(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.ProcedureParameterImpl Procedure Parameter}' class. + * + * + * @see org.etsi.mts.tdl.impl.ProcedureParameterImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getProcedureParameter() + * @generated + */ + EClass PROCEDURE_PARAMETER = eINSTANCE.getProcedureParameter(); + + /** + * The meta object literal for the 'Kind' attribute feature. + * + * + * @generated + */ + EAttribute PROCEDURE_PARAMETER__KIND = eINSTANCE.getProcedureParameter_Kind(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.CollectionDataTypeImpl Collection Data Type}' class. + * + * + * @see org.etsi.mts.tdl.impl.CollectionDataTypeImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getCollectionDataType() + * @generated + */ + EClass COLLECTION_DATA_TYPE = eINSTANCE.getCollectionDataType(); + + /** + * The meta object literal for the 'Item Type' reference feature. + * + * + * @generated + */ + EReference COLLECTION_DATA_TYPE__ITEM_TYPE = eINSTANCE.getCollectionDataType_ItemType(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.CollectionDataInstanceImpl Collection Data Instance}' class. + * + * + * @see org.etsi.mts.tdl.impl.CollectionDataInstanceImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getCollectionDataInstance() + * @generated + */ + EClass COLLECTION_DATA_INSTANCE = eINSTANCE.getCollectionDataInstance(); + + /** + * The meta object literal for the 'Item' containment reference list feature. + * + * + * @generated + */ + EReference COLLECTION_DATA_INSTANCE__ITEM = eINSTANCE.getCollectionDataInstance_Item(); + + /** + * The meta object literal for the 'Unassigned Member' attribute feature. + * + * + * @generated + */ + EAttribute COLLECTION_DATA_INSTANCE__UNASSIGNED_MEMBER = eINSTANCE.getCollectionDataInstance_UnassignedMember(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.ExtensionImpl Extension}' class. + * + * + * @see org.etsi.mts.tdl.impl.ExtensionImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getExtension() + * @generated + */ + EClass EXTENSION = eINSTANCE.getExtension(); + + /** + * The meta object literal for the 'Extending' reference feature. + * + * + * @generated + */ + EReference EXTENSION__EXTENDING = eINSTANCE.getExtension_Extending(); + + /** + * The meta object literal for the 'Transitive Extending' operation. + * + * + * @generated + */ + EOperation EXTENSION___TRANSITIVE_EXTENDING = eINSTANCE.getExtension__TransitiveExtending(); + + /** + * The meta object literal for the 'Is Extending' operation. + * + * + * @generated + */ + EOperation EXTENSION___IS_EXTENDING__PACKAGEABLEELEMENT = eINSTANCE.getExtension__IsExtending__PackageableElement(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.LiteralValueUseImpl Literal Value Use}' class. + * + * + * @see org.etsi.mts.tdl.impl.LiteralValueUseImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getLiteralValueUse() + * @generated + */ + EClass LITERAL_VALUE_USE = eINSTANCE.getLiteralValueUse(); + + /** + * The meta object literal for the 'Value' attribute feature. + * + * + * @generated + */ + EAttribute LITERAL_VALUE_USE__VALUE = eINSTANCE.getLiteralValueUse_Value(); + + /** + * The meta object literal for the 'Int Value' attribute feature. + * + * + * @generated + */ + EAttribute LITERAL_VALUE_USE__INT_VALUE = eINSTANCE.getLiteralValueUse_IntValue(); + + /** + * The meta object literal for the 'Bool Value' attribute feature. + * + * + * @generated + */ + EAttribute LITERAL_VALUE_USE__BOOL_VALUE = eINSTANCE.getLiteralValueUse_BoolValue(); + + /** + * The meta object literal for the 'Data Type' reference feature. + * + * + * @generated + */ + EReference LITERAL_VALUE_USE__DATA_TYPE = eINSTANCE.getLiteralValueUse_DataType(); + + /** + * The meta object literal for the 'Resolve Data Type' operation. + * + * + * @generated + */ + EOperation LITERAL_VALUE_USE___RESOLVE_DATA_TYPE = eINSTANCE.getLiteralValueUse__ResolveDataType(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.ConstraintTypeImpl Constraint Type}' class. + * + * + * @see org.etsi.mts.tdl.impl.ConstraintTypeImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getConstraintType() + * @generated + */ + EClass CONSTRAINT_TYPE = eINSTANCE.getConstraintType(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.ConstraintImpl Constraint}' class. + * + * + * @see org.etsi.mts.tdl.impl.ConstraintImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getConstraint() + * @generated + */ + EClass CONSTRAINT = eINSTANCE.getConstraint(); + + /** + * The meta object literal for the 'Type' reference feature. + * + * + * @generated + */ + EReference CONSTRAINT__TYPE = eINSTANCE.getConstraint_Type(); + + /** + * The meta object literal for the 'Quantifier' containment reference list feature. + * + * + * @generated + */ + EReference CONSTRAINT__QUANTIFIER = eINSTANCE.getConstraint_Quantifier(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.EnumDataTypeImpl Enum Data Type}' class. + * + * + * @see org.etsi.mts.tdl.impl.EnumDataTypeImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getEnumDataType() + * @generated + */ + EClass ENUM_DATA_TYPE = eINSTANCE.getEnumDataType(); + + /** + * The meta object literal for the 'Value' containment reference list feature. + * + * + * @generated + */ + EReference ENUM_DATA_TYPE__VALUE = eINSTANCE.getEnumDataType_Value(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.impl.DataElementUseImpl Data Element Use}' class. + * + * + * @see org.etsi.mts.tdl.impl.DataElementUseImpl + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getDataElementUse() + * @generated + */ + EClass DATA_ELEMENT_USE = eINSTANCE.getDataElementUse(); + + /** + * The meta object literal for the 'Unassigned Member' attribute feature. + * + * + * @generated + */ + EAttribute DATA_ELEMENT_USE__UNASSIGNED_MEMBER = eINSTANCE.getDataElementUse_UnassignedMember(); + + /** + * The meta object literal for the 'Data Element' reference feature. + * + * + * @generated + */ + EReference DATA_ELEMENT_USE__DATA_ELEMENT = eINSTANCE.getDataElementUse_DataElement(); + + /** + * The meta object literal for the 'Item' containment reference list feature. + * + * + * @generated + */ + EReference DATA_ELEMENT_USE__ITEM = eINSTANCE.getDataElementUse_Item(); + + /** + * The meta object literal for the 'Resolve Data Type' operation. + * + * + * @generated + */ + EOperation DATA_ELEMENT_USE___RESOLVE_DATA_TYPE = eINSTANCE.getDataElementUse__ResolveDataType(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.UnassignedMemberTreatment Unassigned Member Treatment}' enum. + * + * + * @see org.etsi.mts.tdl.UnassignedMemberTreatment + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getUnassignedMemberTreatment() + * @generated + */ + EEnum UNASSIGNED_MEMBER_TREATMENT = eINSTANCE.getUnassignedMemberTreatment(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.ComponentInstanceRole Component Instance Role}' enum. + * + * + * @see org.etsi.mts.tdl.ComponentInstanceRole + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getComponentInstanceRole() + * @generated + */ + EEnum COMPONENT_INSTANCE_ROLE = eINSTANCE.getComponentInstanceRole(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.GateTypeKind Gate Type Kind}' enum. + * + * + * @see org.etsi.mts.tdl.GateTypeKind + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getGateTypeKind() + * @generated + */ + EEnum GATE_TYPE_KIND = eINSTANCE.getGateTypeKind(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.TimeLabelUseKind Time Label Use Kind}' enum. + * + * + * @see org.etsi.mts.tdl.TimeLabelUseKind + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getTimeLabelUseKind() + * @generated + */ + EEnum TIME_LABEL_USE_KIND = eINSTANCE.getTimeLabelUseKind(); + + /** + * The meta object literal for the '{@link org.etsi.mts.tdl.ParameterKind Parameter Kind}' enum. + * + * + * @see org.etsi.mts.tdl.ParameterKind + * @see org.etsi.mts.tdl.impl.tdlPackageImpl#getParameterKind() + * @generated + */ + EEnum PARAMETER_KIND = eINSTANCE.getParameterKind(); + + } + +} //tdlPackage diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/util/tdlAdapterFactory.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/util/tdlAdapterFactory.java new file mode 100644 index 0000000000000000000000000000000000000000..e980db8759d6bac1ce61cfdeeccae8804cfa10ec --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/util/tdlAdapterFactory.java @@ -0,0 +1,2316 @@ +/** + */ +package org.etsi.mts.tdl.util; + +import org.eclipse.emf.common.notify.Adapter; +import org.eclipse.emf.common.notify.Notifier; + +import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl; + +import org.eclipse.emf.ecore.EObject; + +import org.etsi.mts.tdl.Action; +import org.etsi.mts.tdl.ActionBehaviour; +import org.etsi.mts.tdl.ActionReference; +import org.etsi.mts.tdl.AlternativeBehaviour; +import org.etsi.mts.tdl.Annotation; +import org.etsi.mts.tdl.AnnotationType; +import org.etsi.mts.tdl.AnyValue; +import org.etsi.mts.tdl.AnyValueOrOmit; +import org.etsi.mts.tdl.Assertion; +import org.etsi.mts.tdl.Assignment; +import org.etsi.mts.tdl.AtomicBehaviour; +import org.etsi.mts.tdl.Behaviour; +import org.etsi.mts.tdl.BehaviourDescription; +import org.etsi.mts.tdl.Block; +import org.etsi.mts.tdl.BoundedLoopBehaviour; +import org.etsi.mts.tdl.Break; +import org.etsi.mts.tdl.CollectionDataInstance; +import org.etsi.mts.tdl.CollectionDataType; +import org.etsi.mts.tdl.CombinedBehaviour; +import org.etsi.mts.tdl.Comment; +import org.etsi.mts.tdl.ComponentInstance; +import org.etsi.mts.tdl.ComponentInstanceBinding; +import org.etsi.mts.tdl.ComponentType; +import org.etsi.mts.tdl.CompoundBehaviour; +import org.etsi.mts.tdl.ConditionalBehaviour; +import org.etsi.mts.tdl.Connection; +import org.etsi.mts.tdl.Constraint; +import org.etsi.mts.tdl.ConstraintType; +import org.etsi.mts.tdl.DataElementMapping; +import org.etsi.mts.tdl.DataElementUse; +import org.etsi.mts.tdl.DataInstance; +import org.etsi.mts.tdl.DataInstanceUse; +import org.etsi.mts.tdl.DataResourceMapping; +import org.etsi.mts.tdl.DataType; +import org.etsi.mts.tdl.DataUse; +import org.etsi.mts.tdl.DefaultBehaviour; +import org.etsi.mts.tdl.DynamicDataUse; +import org.etsi.mts.tdl.Element; +import org.etsi.mts.tdl.ElementImport; +import org.etsi.mts.tdl.EnumDataType; +import org.etsi.mts.tdl.ExceptionalBehaviour; +import org.etsi.mts.tdl.Extension; +import org.etsi.mts.tdl.FormalParameter; +import org.etsi.mts.tdl.FormalParameterUse; +import org.etsi.mts.tdl.Function; +import org.etsi.mts.tdl.FunctionCall; +import org.etsi.mts.tdl.GateInstance; +import org.etsi.mts.tdl.GateReference; +import org.etsi.mts.tdl.GateType; +import org.etsi.mts.tdl.InlineAction; +import org.etsi.mts.tdl.Interaction; +import org.etsi.mts.tdl.InterruptBehaviour; +import org.etsi.mts.tdl.LiteralValueUse; +import org.etsi.mts.tdl.LocalExpression; +import org.etsi.mts.tdl.MappableDataElement; +import org.etsi.mts.tdl.Member; +import org.etsi.mts.tdl.MemberAssignment; +import org.etsi.mts.tdl.MemberReference; +import org.etsi.mts.tdl.Message; +import org.etsi.mts.tdl.MultipleCombinedBehaviour; +import org.etsi.mts.tdl.NamedElement; +import org.etsi.mts.tdl.OmitValue; +import org.etsi.mts.tdl.OptionalBehaviour; +import org.etsi.mts.tdl.PackageableElement; +import org.etsi.mts.tdl.ParallelBehaviour; +import org.etsi.mts.tdl.Parameter; +import org.etsi.mts.tdl.ParameterBinding; +import org.etsi.mts.tdl.ParameterMapping; +import org.etsi.mts.tdl.PeriodicBehaviour; +import org.etsi.mts.tdl.PredefinedFunction; +import org.etsi.mts.tdl.PredefinedFunctionCall; +import org.etsi.mts.tdl.ProcedureCall; +import org.etsi.mts.tdl.ProcedureParameter; +import org.etsi.mts.tdl.ProcedureSignature; +import org.etsi.mts.tdl.Quiescence; +import org.etsi.mts.tdl.SimpleDataInstance; +import org.etsi.mts.tdl.SimpleDataType; +import org.etsi.mts.tdl.SingleCombinedBehaviour; +import org.etsi.mts.tdl.SpecialValueUse; +import org.etsi.mts.tdl.StaticDataUse; +import org.etsi.mts.tdl.Stop; +import org.etsi.mts.tdl.StructuredDataInstance; +import org.etsi.mts.tdl.StructuredDataType; +import org.etsi.mts.tdl.Target; +import org.etsi.mts.tdl.TestConfiguration; +import org.etsi.mts.tdl.TestDescription; +import org.etsi.mts.tdl.TestDescriptionReference; +import org.etsi.mts.tdl.TestObjective; +import org.etsi.mts.tdl.Time; +import org.etsi.mts.tdl.TimeConstraint; +import org.etsi.mts.tdl.TimeLabel; +import org.etsi.mts.tdl.TimeLabelUse; +import org.etsi.mts.tdl.TimeOperation; +import org.etsi.mts.tdl.TimeOut; +import org.etsi.mts.tdl.Timer; +import org.etsi.mts.tdl.TimerOperation; +import org.etsi.mts.tdl.TimerStart; +import org.etsi.mts.tdl.TimerStop; +import org.etsi.mts.tdl.UnboundedLoopBehaviour; +import org.etsi.mts.tdl.ValueAssignment; +import org.etsi.mts.tdl.Variable; +import org.etsi.mts.tdl.VariableUse; +import org.etsi.mts.tdl.VerdictAssignment; +import org.etsi.mts.tdl.Wait; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * The Adapter Factory for the model. + * It provides an adapter createXXX method for each class of the model. + * + * @see org.etsi.mts.tdl.tdlPackage + * @generated + */ +public class tdlAdapterFactory extends AdapterFactoryImpl +{ + /** + * The cached model package. + * + * + * @generated + */ + protected static tdlPackage modelPackage; + + /** + * Creates an instance of the adapter factory. + * + * + * @generated + */ + public tdlAdapterFactory() + { + if (modelPackage == null) + { + modelPackage = tdlPackage.eINSTANCE; + } + } + + /** + * Returns whether this factory is applicable for the type of the object. + * + * This implementation returns true if the object is either the model's package or is an instance object of the model. + * + * @return whether this factory is applicable for the type of the object. + * @generated + */ + @Override + public boolean isFactoryForType(Object object) + { + if (object == modelPackage) + { + return true; + } + if (object instanceof EObject) + { + return ((EObject)object).eClass().getEPackage() == modelPackage; + } + return false; + } + + /** + * The switch that delegates to the createXXX methods. + * + * + * @generated + */ + protected tdlSwitch modelSwitch = + new tdlSwitch() + { + @Override + public Adapter caseElement(Element object) + { + return createElementAdapter(); + } + @Override + public Adapter caseComment(Comment object) + { + return createCommentAdapter(); + } + @Override + public Adapter caseAnnotation(Annotation object) + { + return createAnnotationAdapter(); + } + @Override + public Adapter caseAnnotationType(AnnotationType object) + { + return createAnnotationTypeAdapter(); + } + @Override + public Adapter casePackageableElement(PackageableElement object) + { + return createPackageableElementAdapter(); + } + @Override + public Adapter caseNamedElement(NamedElement object) + { + return createNamedElementAdapter(); + } + @Override + public Adapter casePackage(org.etsi.mts.tdl.Package object) + { + return createPackageAdapter(); + } + @Override + public Adapter caseElementImport(ElementImport object) + { + return createElementImportAdapter(); + } + @Override + public Adapter caseTestObjective(TestObjective object) + { + return createTestObjectiveAdapter(); + } + @Override + public Adapter caseDataInstance(DataInstance object) + { + return createDataInstanceAdapter(); + } + @Override + public Adapter caseMappableDataElement(MappableDataElement object) + { + return createMappableDataElementAdapter(); + } + @Override + public Adapter caseDataType(DataType object) + { + return createDataTypeAdapter(); + } + @Override + public Adapter caseDataResourceMapping(DataResourceMapping object) + { + return createDataResourceMappingAdapter(); + } + @Override + public Adapter caseDataElementMapping(DataElementMapping object) + { + return createDataElementMappingAdapter(); + } + @Override + public Adapter caseParameterMapping(ParameterMapping object) + { + return createParameterMappingAdapter(); + } + @Override + public Adapter caseParameter(Parameter object) + { + return createParameterAdapter(); + } + @Override + public Adapter caseSimpleDataType(SimpleDataType object) + { + return createSimpleDataTypeAdapter(); + } + @Override + public Adapter caseSimpleDataInstance(SimpleDataInstance object) + { + return createSimpleDataInstanceAdapter(); + } + @Override + public Adapter caseStructuredDataType(StructuredDataType object) + { + return createStructuredDataTypeAdapter(); + } + @Override + public Adapter caseMember(Member object) + { + return createMemberAdapter(); + } + @Override + public Adapter caseStructuredDataInstance(StructuredDataInstance object) + { + return createStructuredDataInstanceAdapter(); + } + @Override + public Adapter caseMemberAssignment(MemberAssignment object) + { + return createMemberAssignmentAdapter(); + } + @Override + public Adapter caseStaticDataUse(StaticDataUse object) + { + return createStaticDataUseAdapter(); + } + @Override + public Adapter caseDataUse(DataUse object) + { + return createDataUseAdapter(); + } + @Override + public Adapter caseParameterBinding(ParameterBinding object) + { + return createParameterBindingAdapter(); + } + @Override + public Adapter caseAction(Action object) + { + return createActionAdapter(); + } + @Override + public Adapter caseFormalParameter(FormalParameter object) + { + return createFormalParameterAdapter(); + } + @Override + public Adapter caseFunction(Function object) + { + return createFunctionAdapter(); + } + @Override + public Adapter caseFormalParameterUse(FormalParameterUse object) + { + return createFormalParameterUseAdapter(); + } + @Override + public Adapter caseDynamicDataUse(DynamicDataUse object) + { + return createDynamicDataUseAdapter(); + } + @Override + public Adapter caseVariable(Variable object) + { + return createVariableAdapter(); + } + @Override + public Adapter caseFunctionCall(FunctionCall object) + { + return createFunctionCallAdapter(); + } + @Override + public Adapter caseVariableUse(VariableUse object) + { + return createVariableUseAdapter(); + } + @Override + public Adapter caseComponentInstance(ComponentInstance object) + { + return createComponentInstanceAdapter(); + } + @Override + public Adapter caseComponentType(ComponentType object) + { + return createComponentTypeAdapter(); + } + @Override + public Adapter caseGateInstance(GateInstance object) + { + return createGateInstanceAdapter(); + } + @Override + public Adapter caseGateType(GateType object) + { + return createGateTypeAdapter(); + } + @Override + public Adapter caseTimer(Timer object) + { + return createTimerAdapter(); + } + @Override + public Adapter caseOmitValue(OmitValue object) + { + return createOmitValueAdapter(); + } + @Override + public Adapter caseSpecialValueUse(SpecialValueUse object) + { + return createSpecialValueUseAdapter(); + } + @Override + public Adapter caseAnyValue(AnyValue object) + { + return createAnyValueAdapter(); + } + @Override + public Adapter caseAnyValueOrOmit(AnyValueOrOmit object) + { + return createAnyValueOrOmitAdapter(); + } + @Override + public Adapter caseDataInstanceUse(DataInstanceUse object) + { + return createDataInstanceUseAdapter(); + } + @Override + public Adapter caseTime(Time object) + { + return createTimeAdapter(); + } + @Override + public Adapter caseTimeLabel(TimeLabel object) + { + return createTimeLabelAdapter(); + } + @Override + public Adapter caseTimerOperation(TimerOperation object) + { + return createTimerOperationAdapter(); + } + @Override + public Adapter caseAtomicBehaviour(AtomicBehaviour object) + { + return createAtomicBehaviourAdapter(); + } + @Override + public Adapter caseBehaviour(Behaviour object) + { + return createBehaviourAdapter(); + } + @Override + public Adapter caseTimeConstraint(TimeConstraint object) + { + return createTimeConstraintAdapter(); + } + @Override + public Adapter caseTimerStart(TimerStart object) + { + return createTimerStartAdapter(); + } + @Override + public Adapter caseTimerStop(TimerStop object) + { + return createTimerStopAdapter(); + } + @Override + public Adapter caseTimeOut(TimeOut object) + { + return createTimeOutAdapter(); + } + @Override + public Adapter caseTimeOperation(TimeOperation object) + { + return createTimeOperationAdapter(); + } + @Override + public Adapter caseWait(Wait object) + { + return createWaitAdapter(); + } + @Override + public Adapter caseQuiescence(Quiescence object) + { + return createQuiescenceAdapter(); + } + @Override + public Adapter caseGateReference(GateReference object) + { + return createGateReferenceAdapter(); + } + @Override + public Adapter caseTimeLabelUse(TimeLabelUse object) + { + return createTimeLabelUseAdapter(); + } + @Override + public Adapter caseTestConfiguration(TestConfiguration object) + { + return createTestConfigurationAdapter(); + } + @Override + public Adapter caseConnection(Connection object) + { + return createConnectionAdapter(); + } + @Override + public Adapter caseTestDescription(TestDescription object) + { + return createTestDescriptionAdapter(); + } + @Override + public Adapter caseBehaviourDescription(BehaviourDescription object) + { + return createBehaviourDescriptionAdapter(); + } + @Override + public Adapter caseBlock(Block object) + { + return createBlockAdapter(); + } + @Override + public Adapter caseCombinedBehaviour(CombinedBehaviour object) + { + return createCombinedBehaviourAdapter(); + } + @Override + public Adapter casePeriodicBehaviour(PeriodicBehaviour object) + { + return createPeriodicBehaviourAdapter(); + } + @Override + public Adapter caseExceptionalBehaviour(ExceptionalBehaviour object) + { + return createExceptionalBehaviourAdapter(); + } + @Override + public Adapter caseAlternativeBehaviour(AlternativeBehaviour object) + { + return createAlternativeBehaviourAdapter(); + } + @Override + public Adapter caseMultipleCombinedBehaviour(MultipleCombinedBehaviour object) + { + return createMultipleCombinedBehaviourAdapter(); + } + @Override + public Adapter caseParallelBehaviour(ParallelBehaviour object) + { + return createParallelBehaviourAdapter(); + } + @Override + public Adapter caseBoundedLoopBehaviour(BoundedLoopBehaviour object) + { + return createBoundedLoopBehaviourAdapter(); + } + @Override + public Adapter caseSingleCombinedBehaviour(SingleCombinedBehaviour object) + { + return createSingleCombinedBehaviourAdapter(); + } + @Override + public Adapter caseOptionalBehaviour(OptionalBehaviour object) + { + return createOptionalBehaviourAdapter(); + } + @Override + public Adapter caseUnboundedLoopBehaviour(UnboundedLoopBehaviour object) + { + return createUnboundedLoopBehaviourAdapter(); + } + @Override + public Adapter caseConditionalBehaviour(ConditionalBehaviour object) + { + return createConditionalBehaviourAdapter(); + } + @Override + public Adapter caseCompoundBehaviour(CompoundBehaviour object) + { + return createCompoundBehaviourAdapter(); + } + @Override + public Adapter caseDefaultBehaviour(DefaultBehaviour object) + { + return createDefaultBehaviourAdapter(); + } + @Override + public Adapter caseInterruptBehaviour(InterruptBehaviour object) + { + return createInterruptBehaviourAdapter(); + } + @Override + public Adapter caseTarget(Target object) + { + return createTargetAdapter(); + } + @Override + public Adapter caseVerdictAssignment(VerdictAssignment object) + { + return createVerdictAssignmentAdapter(); + } + @Override + public Adapter caseAssertion(Assertion object) + { + return createAssertionAdapter(); + } + @Override + public Adapter caseStop(Stop object) + { + return createStopAdapter(); + } + @Override + public Adapter caseBreak(Break object) + { + return createBreakAdapter(); + } + @Override + public Adapter caseAssignment(Assignment object) + { + return createAssignmentAdapter(); + } + @Override + public Adapter caseActionBehaviour(ActionBehaviour object) + { + return createActionBehaviourAdapter(); + } + @Override + public Adapter caseInlineAction(InlineAction object) + { + return createInlineActionAdapter(); + } + @Override + public Adapter caseActionReference(ActionReference object) + { + return createActionReferenceAdapter(); + } + @Override + public Adapter caseTestDescriptionReference(TestDescriptionReference object) + { + return createTestDescriptionReferenceAdapter(); + } + @Override + public Adapter caseComponentInstanceBinding(ComponentInstanceBinding object) + { + return createComponentInstanceBindingAdapter(); + } + @Override + public Adapter caseInteraction(Interaction object) + { + return createInteractionAdapter(); + } + @Override + public Adapter caseMessage(Message object) + { + return createMessageAdapter(); + } + @Override + public Adapter casePredefinedFunction(PredefinedFunction object) + { + return createPredefinedFunctionAdapter(); + } + @Override + public Adapter caseMemberReference(MemberReference object) + { + return createMemberReferenceAdapter(); + } + @Override + public Adapter casePredefinedFunctionCall(PredefinedFunctionCall object) + { + return createPredefinedFunctionCallAdapter(); + } + @Override + public Adapter caseLocalExpression(LocalExpression object) + { + return createLocalExpressionAdapter(); + } + @Override + public Adapter caseValueAssignment(ValueAssignment object) + { + return createValueAssignmentAdapter(); + } + @Override + public Adapter caseProcedureCall(ProcedureCall object) + { + return createProcedureCallAdapter(); + } + @Override + public Adapter caseProcedureSignature(ProcedureSignature object) + { + return createProcedureSignatureAdapter(); + } + @Override + public Adapter caseProcedureParameter(ProcedureParameter object) + { + return createProcedureParameterAdapter(); + } + @Override + public Adapter caseCollectionDataType(CollectionDataType object) + { + return createCollectionDataTypeAdapter(); + } + @Override + public Adapter caseCollectionDataInstance(CollectionDataInstance object) + { + return createCollectionDataInstanceAdapter(); + } + @Override + public Adapter caseExtension(Extension object) + { + return createExtensionAdapter(); + } + @Override + public Adapter caseLiteralValueUse(LiteralValueUse object) + { + return createLiteralValueUseAdapter(); + } + @Override + public Adapter caseConstraintType(ConstraintType object) + { + return createConstraintTypeAdapter(); + } + @Override + public Adapter caseConstraint(Constraint object) + { + return createConstraintAdapter(); + } + @Override + public Adapter caseEnumDataType(EnumDataType object) + { + return createEnumDataTypeAdapter(); + } + @Override + public Adapter caseDataElementUse(DataElementUse object) + { + return createDataElementUseAdapter(); + } + @Override + public Adapter defaultCase(EObject object) + { + return createEObjectAdapter(); + } + }; + + /** + * Creates an adapter for the target. + * + * + * @param target the object to adapt. + * @return the adapter for the target. + * @generated + */ + @Override + public Adapter createAdapter(Notifier target) + { + return modelSwitch.doSwitch((EObject)target); + } + + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.Element Element}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.Element + * @generated + */ + public Adapter createElementAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.Comment Comment}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.Comment + * @generated + */ + public Adapter createCommentAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.Annotation Annotation}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.Annotation + * @generated + */ + public Adapter createAnnotationAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.AnnotationType Annotation Type}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.AnnotationType + * @generated + */ + public Adapter createAnnotationTypeAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.PackageableElement Packageable Element}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.PackageableElement + * @generated + */ + public Adapter createPackageableElementAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.NamedElement Named Element}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.NamedElement + * @generated + */ + public Adapter createNamedElementAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.Package Package}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.Package + * @generated + */ + public Adapter createPackageAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.ElementImport Element Import}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.ElementImport + * @generated + */ + public Adapter createElementImportAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.TestObjective Test Objective}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.TestObjective + * @generated + */ + public Adapter createTestObjectiveAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.DataInstance Data Instance}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.DataInstance + * @generated + */ + public Adapter createDataInstanceAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.MappableDataElement Mappable Data Element}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.MappableDataElement + * @generated + */ + public Adapter createMappableDataElementAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.DataType Data Type}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.DataType + * @generated + */ + public Adapter createDataTypeAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.DataResourceMapping Data Resource Mapping}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.DataResourceMapping + * @generated + */ + public Adapter createDataResourceMappingAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.DataElementMapping Data Element Mapping}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.DataElementMapping + * @generated + */ + public Adapter createDataElementMappingAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.ParameterMapping Parameter Mapping}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.ParameterMapping + * @generated + */ + public Adapter createParameterMappingAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.Parameter Parameter}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.Parameter + * @generated + */ + public Adapter createParameterAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.SimpleDataType Simple Data Type}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.SimpleDataType + * @generated + */ + public Adapter createSimpleDataTypeAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.SimpleDataInstance Simple Data Instance}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.SimpleDataInstance + * @generated + */ + public Adapter createSimpleDataInstanceAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.StructuredDataType Structured Data Type}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.StructuredDataType + * @generated + */ + public Adapter createStructuredDataTypeAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.Member Member}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.Member + * @generated + */ + public Adapter createMemberAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.StructuredDataInstance Structured Data Instance}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.StructuredDataInstance + * @generated + */ + public Adapter createStructuredDataInstanceAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.MemberAssignment Member Assignment}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.MemberAssignment + * @generated + */ + public Adapter createMemberAssignmentAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.StaticDataUse Static Data Use}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.StaticDataUse + * @generated + */ + public Adapter createStaticDataUseAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.DataUse Data Use}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.DataUse + * @generated + */ + public Adapter createDataUseAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.ParameterBinding Parameter Binding}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.ParameterBinding + * @generated + */ + public Adapter createParameterBindingAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.Action Action}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.Action + * @generated + */ + public Adapter createActionAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.FormalParameter Formal Parameter}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.FormalParameter + * @generated + */ + public Adapter createFormalParameterAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.Function Function}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.Function + * @generated + */ + public Adapter createFunctionAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.FormalParameterUse Formal Parameter Use}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.FormalParameterUse + * @generated + */ + public Adapter createFormalParameterUseAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.DynamicDataUse Dynamic Data Use}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.DynamicDataUse + * @generated + */ + public Adapter createDynamicDataUseAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.Variable Variable}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.Variable + * @generated + */ + public Adapter createVariableAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.FunctionCall Function Call}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.FunctionCall + * @generated + */ + public Adapter createFunctionCallAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.VariableUse Variable Use}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.VariableUse + * @generated + */ + public Adapter createVariableUseAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.ComponentInstance Component Instance}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.ComponentInstance + * @generated + */ + public Adapter createComponentInstanceAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.ComponentType Component Type}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.ComponentType + * @generated + */ + public Adapter createComponentTypeAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.GateInstance Gate Instance}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.GateInstance + * @generated + */ + public Adapter createGateInstanceAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.GateType Gate Type}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.GateType + * @generated + */ + public Adapter createGateTypeAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.Timer Timer}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.Timer + * @generated + */ + public Adapter createTimerAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.OmitValue Omit Value}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.OmitValue + * @generated + */ + public Adapter createOmitValueAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.SpecialValueUse Special Value Use}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.SpecialValueUse + * @generated + */ + public Adapter createSpecialValueUseAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.AnyValue Any Value}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.AnyValue + * @generated + */ + public Adapter createAnyValueAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.AnyValueOrOmit Any Value Or Omit}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.AnyValueOrOmit + * @generated + */ + public Adapter createAnyValueOrOmitAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.DataInstanceUse Data Instance Use}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.DataInstanceUse + * @generated + */ + public Adapter createDataInstanceUseAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.Time Time}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.Time + * @generated + */ + public Adapter createTimeAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.TimeLabel Time Label}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.TimeLabel + * @generated + */ + public Adapter createTimeLabelAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.TimerOperation Timer Operation}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.TimerOperation + * @generated + */ + public Adapter createTimerOperationAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.AtomicBehaviour Atomic Behaviour}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.AtomicBehaviour + * @generated + */ + public Adapter createAtomicBehaviourAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.Behaviour Behaviour}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.Behaviour + * @generated + */ + public Adapter createBehaviourAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.TimeConstraint Time Constraint}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.TimeConstraint + * @generated + */ + public Adapter createTimeConstraintAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.TimerStart Timer Start}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.TimerStart + * @generated + */ + public Adapter createTimerStartAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.TimerStop Timer Stop}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.TimerStop + * @generated + */ + public Adapter createTimerStopAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.TimeOut Time Out}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.TimeOut + * @generated + */ + public Adapter createTimeOutAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.TimeOperation Time Operation}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.TimeOperation + * @generated + */ + public Adapter createTimeOperationAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.Wait Wait}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.Wait + * @generated + */ + public Adapter createWaitAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.Quiescence Quiescence}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.Quiescence + * @generated + */ + public Adapter createQuiescenceAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.GateReference Gate Reference}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.GateReference + * @generated + */ + public Adapter createGateReferenceAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.TimeLabelUse Time Label Use}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.TimeLabelUse + * @generated + */ + public Adapter createTimeLabelUseAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.TestConfiguration Test Configuration}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.TestConfiguration + * @generated + */ + public Adapter createTestConfigurationAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.Connection Connection}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.Connection + * @generated + */ + public Adapter createConnectionAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.TestDescription Test Description}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.TestDescription + * @generated + */ + public Adapter createTestDescriptionAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.BehaviourDescription Behaviour Description}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.BehaviourDescription + * @generated + */ + public Adapter createBehaviourDescriptionAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.Block Block}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.Block + * @generated + */ + public Adapter createBlockAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.CombinedBehaviour Combined Behaviour}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.CombinedBehaviour + * @generated + */ + public Adapter createCombinedBehaviourAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.PeriodicBehaviour Periodic Behaviour}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.PeriodicBehaviour + * @generated + */ + public Adapter createPeriodicBehaviourAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.ExceptionalBehaviour Exceptional Behaviour}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.ExceptionalBehaviour + * @generated + */ + public Adapter createExceptionalBehaviourAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.AlternativeBehaviour Alternative Behaviour}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.AlternativeBehaviour + * @generated + */ + public Adapter createAlternativeBehaviourAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.MultipleCombinedBehaviour Multiple Combined Behaviour}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.MultipleCombinedBehaviour + * @generated + */ + public Adapter createMultipleCombinedBehaviourAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.ParallelBehaviour Parallel Behaviour}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.ParallelBehaviour + * @generated + */ + public Adapter createParallelBehaviourAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.BoundedLoopBehaviour Bounded Loop Behaviour}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.BoundedLoopBehaviour + * @generated + */ + public Adapter createBoundedLoopBehaviourAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.SingleCombinedBehaviour Single Combined Behaviour}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.SingleCombinedBehaviour + * @generated + */ + public Adapter createSingleCombinedBehaviourAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.OptionalBehaviour Optional Behaviour}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.OptionalBehaviour + * @generated + */ + public Adapter createOptionalBehaviourAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.UnboundedLoopBehaviour Unbounded Loop Behaviour}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.UnboundedLoopBehaviour + * @generated + */ + public Adapter createUnboundedLoopBehaviourAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.ConditionalBehaviour Conditional Behaviour}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.ConditionalBehaviour + * @generated + */ + public Adapter createConditionalBehaviourAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.CompoundBehaviour Compound Behaviour}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.CompoundBehaviour + * @generated + */ + public Adapter createCompoundBehaviourAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.DefaultBehaviour Default Behaviour}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.DefaultBehaviour + * @generated + */ + public Adapter createDefaultBehaviourAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.InterruptBehaviour Interrupt Behaviour}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.InterruptBehaviour + * @generated + */ + public Adapter createInterruptBehaviourAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.Target Target}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.Target + * @generated + */ + public Adapter createTargetAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.VerdictAssignment Verdict Assignment}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.VerdictAssignment + * @generated + */ + public Adapter createVerdictAssignmentAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.Assertion Assertion}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.Assertion + * @generated + */ + public Adapter createAssertionAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.Stop Stop}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.Stop + * @generated + */ + public Adapter createStopAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.Break Break}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.Break + * @generated + */ + public Adapter createBreakAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.Assignment Assignment}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.Assignment + * @generated + */ + public Adapter createAssignmentAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.ActionBehaviour Action Behaviour}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.ActionBehaviour + * @generated + */ + public Adapter createActionBehaviourAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.InlineAction Inline Action}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.InlineAction + * @generated + */ + public Adapter createInlineActionAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.ActionReference Action Reference}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.ActionReference + * @generated + */ + public Adapter createActionReferenceAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.TestDescriptionReference Test Description Reference}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.TestDescriptionReference + * @generated + */ + public Adapter createTestDescriptionReferenceAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.ComponentInstanceBinding Component Instance Binding}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.ComponentInstanceBinding + * @generated + */ + public Adapter createComponentInstanceBindingAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.Interaction Interaction}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.Interaction + * @generated + */ + public Adapter createInteractionAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.Message Message}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.Message + * @generated + */ + public Adapter createMessageAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.PredefinedFunction Predefined Function}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.PredefinedFunction + * @generated + */ + public Adapter createPredefinedFunctionAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.MemberReference Member Reference}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.MemberReference + * @generated + */ + public Adapter createMemberReferenceAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.PredefinedFunctionCall Predefined Function Call}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.PredefinedFunctionCall + * @generated + */ + public Adapter createPredefinedFunctionCallAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.LocalExpression Local Expression}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.LocalExpression + * @generated + */ + public Adapter createLocalExpressionAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.ValueAssignment Value Assignment}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.ValueAssignment + * @generated + */ + public Adapter createValueAssignmentAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.ProcedureCall Procedure Call}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.ProcedureCall + * @generated + */ + public Adapter createProcedureCallAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.ProcedureSignature Procedure Signature}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.ProcedureSignature + * @generated + */ + public Adapter createProcedureSignatureAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.ProcedureParameter Procedure Parameter}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.ProcedureParameter + * @generated + */ + public Adapter createProcedureParameterAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.CollectionDataType Collection Data Type}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.CollectionDataType + * @generated + */ + public Adapter createCollectionDataTypeAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.CollectionDataInstance Collection Data Instance}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.CollectionDataInstance + * @generated + */ + public Adapter createCollectionDataInstanceAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.Extension Extension}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.Extension + * @generated + */ + public Adapter createExtensionAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.LiteralValueUse Literal Value Use}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.LiteralValueUse + * @generated + */ + public Adapter createLiteralValueUseAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.ConstraintType Constraint Type}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.ConstraintType + * @generated + */ + public Adapter createConstraintTypeAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.Constraint Constraint}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.Constraint + * @generated + */ + public Adapter createConstraintAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.EnumDataType Enum Data Type}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.EnumDataType + * @generated + */ + public Adapter createEnumDataTypeAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.etsi.mts.tdl.DataElementUse Data Element Use}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.etsi.mts.tdl.DataElementUse + * @generated + */ + public Adapter createDataElementUseAdapter() + { + return null; + } + + /** + * Creates a new adapter for the default case. + * + * This default implementation returns null. + * + * @return the new adapter. + * @generated + */ + public Adapter createEObjectAdapter() + { + return null; + } + +} //tdlAdapterFactory diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/util/tdlResourceFactoryImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/util/tdlResourceFactoryImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..2c6b9f39de53d8b8ca18f38d6f4299ad856d2f9a --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/util/tdlResourceFactoryImpl.java @@ -0,0 +1,44 @@ +/** + */ +package org.etsi.mts.tdl.util; + +import org.eclipse.emf.common.util.URI; + +import org.eclipse.emf.ecore.resource.Resource; + +import org.eclipse.emf.ecore.resource.impl.ResourceFactoryImpl; + +/** + * + * The Resource Factory associated with the package. + * + * @see org.etsi.mts.tdl.util.tdlResourceImpl + * @generated + */ +public class tdlResourceFactoryImpl extends ResourceFactoryImpl +{ + /** + * Creates an instance of the resource factory. + * + * + * @generated + */ + public tdlResourceFactoryImpl() + { + super(); + } + + /** + * Creates an instance of the resource. + * + * + * @generated + */ + @Override + public Resource createResource(URI uri) + { + Resource result = new tdlResourceImpl(uri); + return result; + } + +} //tdlResourceFactoryImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/util/tdlResourceImpl.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/util/tdlResourceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..63d80ae473051ca77624c37a8c5e60e8228424ff --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/util/tdlResourceImpl.java @@ -0,0 +1,30 @@ +/** + */ +package org.etsi.mts.tdl.util; + +import org.eclipse.emf.common.util.URI; + +import org.eclipse.emf.ecore.xmi.impl.XMIResourceImpl; + +/** + * + * The Resource associated with the package. + * + * @see org.etsi.mts.tdl.util.tdlResourceFactoryImpl + * @generated + */ +public class tdlResourceImpl extends XMIResourceImpl +{ + /** + * Creates an instance of the resource. + * + * + * @param uri the URI of the new resource. + * @generated + */ + public tdlResourceImpl(URI uri) + { + super(uri); + } + +} //tdlResourceImpl diff --git a/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/util/tdlSwitch.java b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/util/tdlSwitch.java new file mode 100644 index 0000000000000000000000000000000000000000..3dc43e845d405193d5904f6252e0ea793bf5ba3f --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src-gen/org/etsi/mts/tdl/util/tdlSwitch.java @@ -0,0 +1,2915 @@ +/** + */ +package org.etsi.mts.tdl.util; + +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EPackage; + +import org.eclipse.emf.ecore.util.Switch; + +import org.etsi.mts.tdl.Action; +import org.etsi.mts.tdl.ActionBehaviour; +import org.etsi.mts.tdl.ActionReference; +import org.etsi.mts.tdl.AlternativeBehaviour; +import org.etsi.mts.tdl.Annotation; +import org.etsi.mts.tdl.AnnotationType; +import org.etsi.mts.tdl.AnyValue; +import org.etsi.mts.tdl.AnyValueOrOmit; +import org.etsi.mts.tdl.Assertion; +import org.etsi.mts.tdl.Assignment; +import org.etsi.mts.tdl.AtomicBehaviour; +import org.etsi.mts.tdl.Behaviour; +import org.etsi.mts.tdl.BehaviourDescription; +import org.etsi.mts.tdl.Block; +import org.etsi.mts.tdl.BoundedLoopBehaviour; +import org.etsi.mts.tdl.Break; +import org.etsi.mts.tdl.CollectionDataInstance; +import org.etsi.mts.tdl.CollectionDataType; +import org.etsi.mts.tdl.CombinedBehaviour; +import org.etsi.mts.tdl.Comment; +import org.etsi.mts.tdl.ComponentInstance; +import org.etsi.mts.tdl.ComponentInstanceBinding; +import org.etsi.mts.tdl.ComponentType; +import org.etsi.mts.tdl.CompoundBehaviour; +import org.etsi.mts.tdl.ConditionalBehaviour; +import org.etsi.mts.tdl.Connection; +import org.etsi.mts.tdl.Constraint; +import org.etsi.mts.tdl.ConstraintType; +import org.etsi.mts.tdl.DataElementMapping; +import org.etsi.mts.tdl.DataElementUse; +import org.etsi.mts.tdl.DataInstance; +import org.etsi.mts.tdl.DataInstanceUse; +import org.etsi.mts.tdl.DataResourceMapping; +import org.etsi.mts.tdl.DataType; +import org.etsi.mts.tdl.DataUse; +import org.etsi.mts.tdl.DefaultBehaviour; +import org.etsi.mts.tdl.DynamicDataUse; +import org.etsi.mts.tdl.Element; +import org.etsi.mts.tdl.ElementImport; +import org.etsi.mts.tdl.EnumDataType; +import org.etsi.mts.tdl.ExceptionalBehaviour; +import org.etsi.mts.tdl.Extension; +import org.etsi.mts.tdl.FormalParameter; +import org.etsi.mts.tdl.FormalParameterUse; +import org.etsi.mts.tdl.Function; +import org.etsi.mts.tdl.FunctionCall; +import org.etsi.mts.tdl.GateInstance; +import org.etsi.mts.tdl.GateReference; +import org.etsi.mts.tdl.GateType; +import org.etsi.mts.tdl.InlineAction; +import org.etsi.mts.tdl.Interaction; +import org.etsi.mts.tdl.InterruptBehaviour; +import org.etsi.mts.tdl.LiteralValueUse; +import org.etsi.mts.tdl.LocalExpression; +import org.etsi.mts.tdl.MappableDataElement; +import org.etsi.mts.tdl.Member; +import org.etsi.mts.tdl.MemberAssignment; +import org.etsi.mts.tdl.MemberReference; +import org.etsi.mts.tdl.Message; +import org.etsi.mts.tdl.MultipleCombinedBehaviour; +import org.etsi.mts.tdl.NamedElement; +import org.etsi.mts.tdl.OmitValue; +import org.etsi.mts.tdl.OptionalBehaviour; +import org.etsi.mts.tdl.PackageableElement; +import org.etsi.mts.tdl.ParallelBehaviour; +import org.etsi.mts.tdl.Parameter; +import org.etsi.mts.tdl.ParameterBinding; +import org.etsi.mts.tdl.ParameterMapping; +import org.etsi.mts.tdl.PeriodicBehaviour; +import org.etsi.mts.tdl.PredefinedFunction; +import org.etsi.mts.tdl.PredefinedFunctionCall; +import org.etsi.mts.tdl.ProcedureCall; +import org.etsi.mts.tdl.ProcedureParameter; +import org.etsi.mts.tdl.ProcedureSignature; +import org.etsi.mts.tdl.Quiescence; +import org.etsi.mts.tdl.SimpleDataInstance; +import org.etsi.mts.tdl.SimpleDataType; +import org.etsi.mts.tdl.SingleCombinedBehaviour; +import org.etsi.mts.tdl.SpecialValueUse; +import org.etsi.mts.tdl.StaticDataUse; +import org.etsi.mts.tdl.Stop; +import org.etsi.mts.tdl.StructuredDataInstance; +import org.etsi.mts.tdl.StructuredDataType; +import org.etsi.mts.tdl.Target; +import org.etsi.mts.tdl.TestConfiguration; +import org.etsi.mts.tdl.TestDescription; +import org.etsi.mts.tdl.TestDescriptionReference; +import org.etsi.mts.tdl.TestObjective; +import org.etsi.mts.tdl.Time; +import org.etsi.mts.tdl.TimeConstraint; +import org.etsi.mts.tdl.TimeLabel; +import org.etsi.mts.tdl.TimeLabelUse; +import org.etsi.mts.tdl.TimeOperation; +import org.etsi.mts.tdl.TimeOut; +import org.etsi.mts.tdl.Timer; +import org.etsi.mts.tdl.TimerOperation; +import org.etsi.mts.tdl.TimerStart; +import org.etsi.mts.tdl.TimerStop; +import org.etsi.mts.tdl.UnboundedLoopBehaviour; +import org.etsi.mts.tdl.ValueAssignment; +import org.etsi.mts.tdl.Variable; +import org.etsi.mts.tdl.VariableUse; +import org.etsi.mts.tdl.VerdictAssignment; +import org.etsi.mts.tdl.Wait; +import org.etsi.mts.tdl.tdlPackage; + +/** + * + * The Switch for the model's inheritance hierarchy. + * It supports the call {@link #doSwitch(EObject) doSwitch(object)} + * to invoke the caseXXX method for each class of the model, + * starting with the actual class of the object + * and proceeding up the inheritance hierarchy + * until a non-null result is returned, + * which is the result of the switch. + * + * @see org.etsi.mts.tdl.tdlPackage + * @generated + */ +public class tdlSwitch extends Switch +{ + /** + * The cached model package + * + * + * @generated + */ + protected static tdlPackage modelPackage; + + /** + * Creates an instance of the switch. + * + * + * @generated + */ + public tdlSwitch() + { + if (modelPackage == null) + { + modelPackage = tdlPackage.eINSTANCE; + } + } + + /** + * Checks whether this is a switch for the given package. + * + * + * @param ePackage the package in question. + * @return whether this is a switch for the given package. + * @generated + */ + @Override + protected boolean isSwitchFor(EPackage ePackage) + { + return ePackage == modelPackage; + } + + /** + * Calls caseXXX for each class of the model until one returns a non null result; it yields that result. + * + * + * @return the first non-null result returned by a caseXXX call. + * @generated + */ + @Override + protected T doSwitch(int classifierID, EObject theEObject) + { + switch (classifierID) + { + case tdlPackage.ELEMENT: + { + Element element = (Element)theEObject; + T result = caseElement(element); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.COMMENT: + { + Comment comment = (Comment)theEObject; + T result = caseComment(comment); + if (result == null) result = caseElement(comment); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.ANNOTATION: + { + Annotation annotation = (Annotation)theEObject; + T result = caseAnnotation(annotation); + if (result == null) result = caseElement(annotation); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.ANNOTATION_TYPE: + { + AnnotationType annotationType = (AnnotationType)theEObject; + T result = caseAnnotationType(annotationType); + if (result == null) result = casePackageableElement(annotationType); + if (result == null) result = caseNamedElement(annotationType); + if (result == null) result = caseElement(annotationType); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.PACKAGEABLE_ELEMENT: + { + PackageableElement packageableElement = (PackageableElement)theEObject; + T result = casePackageableElement(packageableElement); + if (result == null) result = caseNamedElement(packageableElement); + if (result == null) result = caseElement(packageableElement); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.NAMED_ELEMENT: + { + NamedElement namedElement = (NamedElement)theEObject; + T result = caseNamedElement(namedElement); + if (result == null) result = caseElement(namedElement); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.PACKAGE: + { + org.etsi.mts.tdl.Package package_ = (org.etsi.mts.tdl.Package)theEObject; + T result = casePackage(package_); + if (result == null) result = caseNamedElement(package_); + if (result == null) result = caseElement(package_); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.ELEMENT_IMPORT: + { + ElementImport elementImport = (ElementImport)theEObject; + T result = caseElementImport(elementImport); + if (result == null) result = caseElement(elementImport); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.TEST_OBJECTIVE: + { + TestObjective testObjective = (TestObjective)theEObject; + T result = caseTestObjective(testObjective); + if (result == null) result = casePackageableElement(testObjective); + if (result == null) result = caseNamedElement(testObjective); + if (result == null) result = caseElement(testObjective); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.DATA_INSTANCE: + { + DataInstance dataInstance = (DataInstance)theEObject; + T result = caseDataInstance(dataInstance); + if (result == null) result = caseMappableDataElement(dataInstance); + if (result == null) result = casePackageableElement(dataInstance); + if (result == null) result = caseNamedElement(dataInstance); + if (result == null) result = caseElement(dataInstance); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.MAPPABLE_DATA_ELEMENT: + { + MappableDataElement mappableDataElement = (MappableDataElement)theEObject; + T result = caseMappableDataElement(mappableDataElement); + if (result == null) result = casePackageableElement(mappableDataElement); + if (result == null) result = caseNamedElement(mappableDataElement); + if (result == null) result = caseElement(mappableDataElement); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.DATA_TYPE: + { + DataType dataType = (DataType)theEObject; + T result = caseDataType(dataType); + if (result == null) result = caseMappableDataElement(dataType); + if (result == null) result = casePackageableElement(dataType); + if (result == null) result = caseNamedElement(dataType); + if (result == null) result = caseElement(dataType); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.DATA_RESOURCE_MAPPING: + { + DataResourceMapping dataResourceMapping = (DataResourceMapping)theEObject; + T result = caseDataResourceMapping(dataResourceMapping); + if (result == null) result = casePackageableElement(dataResourceMapping); + if (result == null) result = caseNamedElement(dataResourceMapping); + if (result == null) result = caseElement(dataResourceMapping); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.DATA_ELEMENT_MAPPING: + { + DataElementMapping dataElementMapping = (DataElementMapping)theEObject; + T result = caseDataElementMapping(dataElementMapping); + if (result == null) result = casePackageableElement(dataElementMapping); + if (result == null) result = caseNamedElement(dataElementMapping); + if (result == null) result = caseElement(dataElementMapping); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.PARAMETER_MAPPING: + { + ParameterMapping parameterMapping = (ParameterMapping)theEObject; + T result = caseParameterMapping(parameterMapping); + if (result == null) result = caseElement(parameterMapping); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.PARAMETER: + { + Parameter parameter = (Parameter)theEObject; + T result = caseParameter(parameter); + if (result == null) result = caseNamedElement(parameter); + if (result == null) result = caseElement(parameter); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.SIMPLE_DATA_TYPE: + { + SimpleDataType simpleDataType = (SimpleDataType)theEObject; + T result = caseSimpleDataType(simpleDataType); + if (result == null) result = caseDataType(simpleDataType); + if (result == null) result = caseMappableDataElement(simpleDataType); + if (result == null) result = casePackageableElement(simpleDataType); + if (result == null) result = caseNamedElement(simpleDataType); + if (result == null) result = caseElement(simpleDataType); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.SIMPLE_DATA_INSTANCE: + { + SimpleDataInstance simpleDataInstance = (SimpleDataInstance)theEObject; + T result = caseSimpleDataInstance(simpleDataInstance); + if (result == null) result = caseDataInstance(simpleDataInstance); + if (result == null) result = caseMappableDataElement(simpleDataInstance); + if (result == null) result = casePackageableElement(simpleDataInstance); + if (result == null) result = caseNamedElement(simpleDataInstance); + if (result == null) result = caseElement(simpleDataInstance); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.STRUCTURED_DATA_TYPE: + { + StructuredDataType structuredDataType = (StructuredDataType)theEObject; + T result = caseStructuredDataType(structuredDataType); + if (result == null) result = caseDataType(structuredDataType); + if (result == null) result = caseMappableDataElement(structuredDataType); + if (result == null) result = casePackageableElement(structuredDataType); + if (result == null) result = caseNamedElement(structuredDataType); + if (result == null) result = caseElement(structuredDataType); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.MEMBER: + { + Member member = (Member)theEObject; + T result = caseMember(member); + if (result == null) result = caseParameter(member); + if (result == null) result = caseNamedElement(member); + if (result == null) result = caseElement(member); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.STRUCTURED_DATA_INSTANCE: + { + StructuredDataInstance structuredDataInstance = (StructuredDataInstance)theEObject; + T result = caseStructuredDataInstance(structuredDataInstance); + if (result == null) result = caseDataInstance(structuredDataInstance); + if (result == null) result = caseMappableDataElement(structuredDataInstance); + if (result == null) result = casePackageableElement(structuredDataInstance); + if (result == null) result = caseNamedElement(structuredDataInstance); + if (result == null) result = caseElement(structuredDataInstance); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.MEMBER_ASSIGNMENT: + { + MemberAssignment memberAssignment = (MemberAssignment)theEObject; + T result = caseMemberAssignment(memberAssignment); + if (result == null) result = caseElement(memberAssignment); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.STATIC_DATA_USE: + { + StaticDataUse staticDataUse = (StaticDataUse)theEObject; + T result = caseStaticDataUse(staticDataUse); + if (result == null) result = caseDataUse(staticDataUse); + if (result == null) result = caseElement(staticDataUse); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.DATA_USE: + { + DataUse dataUse = (DataUse)theEObject; + T result = caseDataUse(dataUse); + if (result == null) result = caseElement(dataUse); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.PARAMETER_BINDING: + { + ParameterBinding parameterBinding = (ParameterBinding)theEObject; + T result = caseParameterBinding(parameterBinding); + if (result == null) result = caseElement(parameterBinding); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.ACTION: + { + Action action = (Action)theEObject; + T result = caseAction(action); + if (result == null) result = caseMappableDataElement(action); + if (result == null) result = casePackageableElement(action); + if (result == null) result = caseNamedElement(action); + if (result == null) result = caseElement(action); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.FORMAL_PARAMETER: + { + FormalParameter formalParameter = (FormalParameter)theEObject; + T result = caseFormalParameter(formalParameter); + if (result == null) result = caseParameter(formalParameter); + if (result == null) result = caseNamedElement(formalParameter); + if (result == null) result = caseElement(formalParameter); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.FUNCTION: + { + Function function = (Function)theEObject; + T result = caseFunction(function); + if (result == null) result = caseAction(function); + if (result == null) result = caseMappableDataElement(function); + if (result == null) result = casePackageableElement(function); + if (result == null) result = caseNamedElement(function); + if (result == null) result = caseElement(function); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.FORMAL_PARAMETER_USE: + { + FormalParameterUse formalParameterUse = (FormalParameterUse)theEObject; + T result = caseFormalParameterUse(formalParameterUse); + if (result == null) result = caseDynamicDataUse(formalParameterUse); + if (result == null) result = caseDataUse(formalParameterUse); + if (result == null) result = caseElement(formalParameterUse); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.DYNAMIC_DATA_USE: + { + DynamicDataUse dynamicDataUse = (DynamicDataUse)theEObject; + T result = caseDynamicDataUse(dynamicDataUse); + if (result == null) result = caseDataUse(dynamicDataUse); + if (result == null) result = caseElement(dynamicDataUse); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.VARIABLE: + { + Variable variable = (Variable)theEObject; + T result = caseVariable(variable); + if (result == null) result = caseNamedElement(variable); + if (result == null) result = caseElement(variable); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.FUNCTION_CALL: + { + FunctionCall functionCall = (FunctionCall)theEObject; + T result = caseFunctionCall(functionCall); + if (result == null) result = caseDynamicDataUse(functionCall); + if (result == null) result = caseDataUse(functionCall); + if (result == null) result = caseElement(functionCall); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.VARIABLE_USE: + { + VariableUse variableUse = (VariableUse)theEObject; + T result = caseVariableUse(variableUse); + if (result == null) result = caseDynamicDataUse(variableUse); + if (result == null) result = caseDataUse(variableUse); + if (result == null) result = caseElement(variableUse); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.COMPONENT_INSTANCE: + { + ComponentInstance componentInstance = (ComponentInstance)theEObject; + T result = caseComponentInstance(componentInstance); + if (result == null) result = caseNamedElement(componentInstance); + if (result == null) result = caseElement(componentInstance); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.COMPONENT_TYPE: + { + ComponentType componentType = (ComponentType)theEObject; + T result = caseComponentType(componentType); + if (result == null) result = casePackageableElement(componentType); + if (result == null) result = caseNamedElement(componentType); + if (result == null) result = caseElement(componentType); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.GATE_INSTANCE: + { + GateInstance gateInstance = (GateInstance)theEObject; + T result = caseGateInstance(gateInstance); + if (result == null) result = caseNamedElement(gateInstance); + if (result == null) result = caseElement(gateInstance); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.GATE_TYPE: + { + GateType gateType = (GateType)theEObject; + T result = caseGateType(gateType); + if (result == null) result = casePackageableElement(gateType); + if (result == null) result = caseNamedElement(gateType); + if (result == null) result = caseElement(gateType); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.TIMER: + { + Timer timer = (Timer)theEObject; + T result = caseTimer(timer); + if (result == null) result = caseNamedElement(timer); + if (result == null) result = caseElement(timer); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.OMIT_VALUE: + { + OmitValue omitValue = (OmitValue)theEObject; + T result = caseOmitValue(omitValue); + if (result == null) result = caseSpecialValueUse(omitValue); + if (result == null) result = caseStaticDataUse(omitValue); + if (result == null) result = caseDataUse(omitValue); + if (result == null) result = caseElement(omitValue); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.SPECIAL_VALUE_USE: + { + SpecialValueUse specialValueUse = (SpecialValueUse)theEObject; + T result = caseSpecialValueUse(specialValueUse); + if (result == null) result = caseStaticDataUse(specialValueUse); + if (result == null) result = caseDataUse(specialValueUse); + if (result == null) result = caseElement(specialValueUse); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.ANY_VALUE: + { + AnyValue anyValue = (AnyValue)theEObject; + T result = caseAnyValue(anyValue); + if (result == null) result = caseSpecialValueUse(anyValue); + if (result == null) result = caseStaticDataUse(anyValue); + if (result == null) result = caseDataUse(anyValue); + if (result == null) result = caseElement(anyValue); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.ANY_VALUE_OR_OMIT: + { + AnyValueOrOmit anyValueOrOmit = (AnyValueOrOmit)theEObject; + T result = caseAnyValueOrOmit(anyValueOrOmit); + if (result == null) result = caseSpecialValueUse(anyValueOrOmit); + if (result == null) result = caseStaticDataUse(anyValueOrOmit); + if (result == null) result = caseDataUse(anyValueOrOmit); + if (result == null) result = caseElement(anyValueOrOmit); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.DATA_INSTANCE_USE: + { + DataInstanceUse dataInstanceUse = (DataInstanceUse)theEObject; + T result = caseDataInstanceUse(dataInstanceUse); + if (result == null) result = caseStaticDataUse(dataInstanceUse); + if (result == null) result = caseDataUse(dataInstanceUse); + if (result == null) result = caseElement(dataInstanceUse); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.TIME: + { + Time time = (Time)theEObject; + T result = caseTime(time); + if (result == null) result = caseSimpleDataType(time); + if (result == null) result = caseDataType(time); + if (result == null) result = caseMappableDataElement(time); + if (result == null) result = casePackageableElement(time); + if (result == null) result = caseNamedElement(time); + if (result == null) result = caseElement(time); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.TIME_LABEL: + { + TimeLabel timeLabel = (TimeLabel)theEObject; + T result = caseTimeLabel(timeLabel); + if (result == null) result = caseNamedElement(timeLabel); + if (result == null) result = caseElement(timeLabel); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.TIMER_OPERATION: + { + TimerOperation timerOperation = (TimerOperation)theEObject; + T result = caseTimerOperation(timerOperation); + if (result == null) result = caseAtomicBehaviour(timerOperation); + if (result == null) result = caseBehaviour(timerOperation); + if (result == null) result = caseElement(timerOperation); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.ATOMIC_BEHAVIOUR: + { + AtomicBehaviour atomicBehaviour = (AtomicBehaviour)theEObject; + T result = caseAtomicBehaviour(atomicBehaviour); + if (result == null) result = caseBehaviour(atomicBehaviour); + if (result == null) result = caseElement(atomicBehaviour); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.BEHAVIOUR: + { + Behaviour behaviour = (Behaviour)theEObject; + T result = caseBehaviour(behaviour); + if (result == null) result = caseElement(behaviour); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.TIME_CONSTRAINT: + { + TimeConstraint timeConstraint = (TimeConstraint)theEObject; + T result = caseTimeConstraint(timeConstraint); + if (result == null) result = caseElement(timeConstraint); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.TIMER_START: + { + TimerStart timerStart = (TimerStart)theEObject; + T result = caseTimerStart(timerStart); + if (result == null) result = caseTimerOperation(timerStart); + if (result == null) result = caseAtomicBehaviour(timerStart); + if (result == null) result = caseBehaviour(timerStart); + if (result == null) result = caseElement(timerStart); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.TIMER_STOP: + { + TimerStop timerStop = (TimerStop)theEObject; + T result = caseTimerStop(timerStop); + if (result == null) result = caseTimerOperation(timerStop); + if (result == null) result = caseAtomicBehaviour(timerStop); + if (result == null) result = caseBehaviour(timerStop); + if (result == null) result = caseElement(timerStop); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.TIME_OUT: + { + TimeOut timeOut = (TimeOut)theEObject; + T result = caseTimeOut(timeOut); + if (result == null) result = caseTimerOperation(timeOut); + if (result == null) result = caseAtomicBehaviour(timeOut); + if (result == null) result = caseBehaviour(timeOut); + if (result == null) result = caseElement(timeOut); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.TIME_OPERATION: + { + TimeOperation timeOperation = (TimeOperation)theEObject; + T result = caseTimeOperation(timeOperation); + if (result == null) result = caseAtomicBehaviour(timeOperation); + if (result == null) result = caseBehaviour(timeOperation); + if (result == null) result = caseElement(timeOperation); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.WAIT: + { + Wait wait = (Wait)theEObject; + T result = caseWait(wait); + if (result == null) result = caseTimeOperation(wait); + if (result == null) result = caseAtomicBehaviour(wait); + if (result == null) result = caseBehaviour(wait); + if (result == null) result = caseElement(wait); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.QUIESCENCE: + { + Quiescence quiescence = (Quiescence)theEObject; + T result = caseQuiescence(quiescence); + if (result == null) result = caseTimeOperation(quiescence); + if (result == null) result = caseAtomicBehaviour(quiescence); + if (result == null) result = caseBehaviour(quiescence); + if (result == null) result = caseElement(quiescence); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.GATE_REFERENCE: + { + GateReference gateReference = (GateReference)theEObject; + T result = caseGateReference(gateReference); + if (result == null) result = caseElement(gateReference); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.TIME_LABEL_USE: + { + TimeLabelUse timeLabelUse = (TimeLabelUse)theEObject; + T result = caseTimeLabelUse(timeLabelUse); + if (result == null) result = caseDynamicDataUse(timeLabelUse); + if (result == null) result = caseDataUse(timeLabelUse); + if (result == null) result = caseElement(timeLabelUse); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.TEST_CONFIGURATION: + { + TestConfiguration testConfiguration = (TestConfiguration)theEObject; + T result = caseTestConfiguration(testConfiguration); + if (result == null) result = casePackageableElement(testConfiguration); + if (result == null) result = caseNamedElement(testConfiguration); + if (result == null) result = caseElement(testConfiguration); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.CONNECTION: + { + Connection connection = (Connection)theEObject; + T result = caseConnection(connection); + if (result == null) result = caseElement(connection); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.TEST_DESCRIPTION: + { + TestDescription testDescription = (TestDescription)theEObject; + T result = caseTestDescription(testDescription); + if (result == null) result = casePackageableElement(testDescription); + if (result == null) result = caseNamedElement(testDescription); + if (result == null) result = caseElement(testDescription); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.BEHAVIOUR_DESCRIPTION: + { + BehaviourDescription behaviourDescription = (BehaviourDescription)theEObject; + T result = caseBehaviourDescription(behaviourDescription); + if (result == null) result = caseElement(behaviourDescription); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.BLOCK: + { + Block block = (Block)theEObject; + T result = caseBlock(block); + if (result == null) result = caseElement(block); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.COMBINED_BEHAVIOUR: + { + CombinedBehaviour combinedBehaviour = (CombinedBehaviour)theEObject; + T result = caseCombinedBehaviour(combinedBehaviour); + if (result == null) result = caseBehaviour(combinedBehaviour); + if (result == null) result = caseElement(combinedBehaviour); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.PERIODIC_BEHAVIOUR: + { + PeriodicBehaviour periodicBehaviour = (PeriodicBehaviour)theEObject; + T result = casePeriodicBehaviour(periodicBehaviour); + if (result == null) result = caseBehaviour(periodicBehaviour); + if (result == null) result = caseElement(periodicBehaviour); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.EXCEPTIONAL_BEHAVIOUR: + { + ExceptionalBehaviour exceptionalBehaviour = (ExceptionalBehaviour)theEObject; + T result = caseExceptionalBehaviour(exceptionalBehaviour); + if (result == null) result = caseBehaviour(exceptionalBehaviour); + if (result == null) result = caseElement(exceptionalBehaviour); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.ALTERNATIVE_BEHAVIOUR: + { + AlternativeBehaviour alternativeBehaviour = (AlternativeBehaviour)theEObject; + T result = caseAlternativeBehaviour(alternativeBehaviour); + if (result == null) result = caseMultipleCombinedBehaviour(alternativeBehaviour); + if (result == null) result = caseCombinedBehaviour(alternativeBehaviour); + if (result == null) result = caseBehaviour(alternativeBehaviour); + if (result == null) result = caseElement(alternativeBehaviour); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.MULTIPLE_COMBINED_BEHAVIOUR: + { + MultipleCombinedBehaviour multipleCombinedBehaviour = (MultipleCombinedBehaviour)theEObject; + T result = caseMultipleCombinedBehaviour(multipleCombinedBehaviour); + if (result == null) result = caseCombinedBehaviour(multipleCombinedBehaviour); + if (result == null) result = caseBehaviour(multipleCombinedBehaviour); + if (result == null) result = caseElement(multipleCombinedBehaviour); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.PARALLEL_BEHAVIOUR: + { + ParallelBehaviour parallelBehaviour = (ParallelBehaviour)theEObject; + T result = caseParallelBehaviour(parallelBehaviour); + if (result == null) result = caseMultipleCombinedBehaviour(parallelBehaviour); + if (result == null) result = caseCombinedBehaviour(parallelBehaviour); + if (result == null) result = caseBehaviour(parallelBehaviour); + if (result == null) result = caseElement(parallelBehaviour); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.BOUNDED_LOOP_BEHAVIOUR: + { + BoundedLoopBehaviour boundedLoopBehaviour = (BoundedLoopBehaviour)theEObject; + T result = caseBoundedLoopBehaviour(boundedLoopBehaviour); + if (result == null) result = caseSingleCombinedBehaviour(boundedLoopBehaviour); + if (result == null) result = caseCombinedBehaviour(boundedLoopBehaviour); + if (result == null) result = caseBehaviour(boundedLoopBehaviour); + if (result == null) result = caseElement(boundedLoopBehaviour); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.SINGLE_COMBINED_BEHAVIOUR: + { + SingleCombinedBehaviour singleCombinedBehaviour = (SingleCombinedBehaviour)theEObject; + T result = caseSingleCombinedBehaviour(singleCombinedBehaviour); + if (result == null) result = caseCombinedBehaviour(singleCombinedBehaviour); + if (result == null) result = caseBehaviour(singleCombinedBehaviour); + if (result == null) result = caseElement(singleCombinedBehaviour); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.OPTIONAL_BEHAVIOUR: + { + OptionalBehaviour optionalBehaviour = (OptionalBehaviour)theEObject; + T result = caseOptionalBehaviour(optionalBehaviour); + if (result == null) result = caseSingleCombinedBehaviour(optionalBehaviour); + if (result == null) result = caseCombinedBehaviour(optionalBehaviour); + if (result == null) result = caseBehaviour(optionalBehaviour); + if (result == null) result = caseElement(optionalBehaviour); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.UNBOUNDED_LOOP_BEHAVIOUR: + { + UnboundedLoopBehaviour unboundedLoopBehaviour = (UnboundedLoopBehaviour)theEObject; + T result = caseUnboundedLoopBehaviour(unboundedLoopBehaviour); + if (result == null) result = caseSingleCombinedBehaviour(unboundedLoopBehaviour); + if (result == null) result = caseCombinedBehaviour(unboundedLoopBehaviour); + if (result == null) result = caseBehaviour(unboundedLoopBehaviour); + if (result == null) result = caseElement(unboundedLoopBehaviour); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.CONDITIONAL_BEHAVIOUR: + { + ConditionalBehaviour conditionalBehaviour = (ConditionalBehaviour)theEObject; + T result = caseConditionalBehaviour(conditionalBehaviour); + if (result == null) result = caseMultipleCombinedBehaviour(conditionalBehaviour); + if (result == null) result = caseCombinedBehaviour(conditionalBehaviour); + if (result == null) result = caseBehaviour(conditionalBehaviour); + if (result == null) result = caseElement(conditionalBehaviour); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.COMPOUND_BEHAVIOUR: + { + CompoundBehaviour compoundBehaviour = (CompoundBehaviour)theEObject; + T result = caseCompoundBehaviour(compoundBehaviour); + if (result == null) result = caseSingleCombinedBehaviour(compoundBehaviour); + if (result == null) result = caseCombinedBehaviour(compoundBehaviour); + if (result == null) result = caseBehaviour(compoundBehaviour); + if (result == null) result = caseElement(compoundBehaviour); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.DEFAULT_BEHAVIOUR: + { + DefaultBehaviour defaultBehaviour = (DefaultBehaviour)theEObject; + T result = caseDefaultBehaviour(defaultBehaviour); + if (result == null) result = caseExceptionalBehaviour(defaultBehaviour); + if (result == null) result = caseBehaviour(defaultBehaviour); + if (result == null) result = caseElement(defaultBehaviour); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.INTERRUPT_BEHAVIOUR: + { + InterruptBehaviour interruptBehaviour = (InterruptBehaviour)theEObject; + T result = caseInterruptBehaviour(interruptBehaviour); + if (result == null) result = caseExceptionalBehaviour(interruptBehaviour); + if (result == null) result = caseBehaviour(interruptBehaviour); + if (result == null) result = caseElement(interruptBehaviour); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.TARGET: + { + Target target = (Target)theEObject; + T result = caseTarget(target); + if (result == null) result = caseElement(target); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.VERDICT_ASSIGNMENT: + { + VerdictAssignment verdictAssignment = (VerdictAssignment)theEObject; + T result = caseVerdictAssignment(verdictAssignment); + if (result == null) result = caseAtomicBehaviour(verdictAssignment); + if (result == null) result = caseBehaviour(verdictAssignment); + if (result == null) result = caseElement(verdictAssignment); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.ASSERTION: + { + Assertion assertion = (Assertion)theEObject; + T result = caseAssertion(assertion); + if (result == null) result = caseActionBehaviour(assertion); + if (result == null) result = caseAtomicBehaviour(assertion); + if (result == null) result = caseBehaviour(assertion); + if (result == null) result = caseElement(assertion); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.STOP: + { + Stop stop = (Stop)theEObject; + T result = caseStop(stop); + if (result == null) result = caseAtomicBehaviour(stop); + if (result == null) result = caseBehaviour(stop); + if (result == null) result = caseElement(stop); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.BREAK: + { + Break break_ = (Break)theEObject; + T result = caseBreak(break_); + if (result == null) result = caseAtomicBehaviour(break_); + if (result == null) result = caseBehaviour(break_); + if (result == null) result = caseElement(break_); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.ASSIGNMENT: + { + Assignment assignment = (Assignment)theEObject; + T result = caseAssignment(assignment); + if (result == null) result = caseAtomicBehaviour(assignment); + if (result == null) result = caseBehaviour(assignment); + if (result == null) result = caseElement(assignment); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.ACTION_BEHAVIOUR: + { + ActionBehaviour actionBehaviour = (ActionBehaviour)theEObject; + T result = caseActionBehaviour(actionBehaviour); + if (result == null) result = caseAtomicBehaviour(actionBehaviour); + if (result == null) result = caseBehaviour(actionBehaviour); + if (result == null) result = caseElement(actionBehaviour); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.INLINE_ACTION: + { + InlineAction inlineAction = (InlineAction)theEObject; + T result = caseInlineAction(inlineAction); + if (result == null) result = caseActionBehaviour(inlineAction); + if (result == null) result = caseAtomicBehaviour(inlineAction); + if (result == null) result = caseBehaviour(inlineAction); + if (result == null) result = caseElement(inlineAction); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.ACTION_REFERENCE: + { + ActionReference actionReference = (ActionReference)theEObject; + T result = caseActionReference(actionReference); + if (result == null) result = caseActionBehaviour(actionReference); + if (result == null) result = caseAtomicBehaviour(actionReference); + if (result == null) result = caseBehaviour(actionReference); + if (result == null) result = caseElement(actionReference); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.TEST_DESCRIPTION_REFERENCE: + { + TestDescriptionReference testDescriptionReference = (TestDescriptionReference)theEObject; + T result = caseTestDescriptionReference(testDescriptionReference); + if (result == null) result = caseAtomicBehaviour(testDescriptionReference); + if (result == null) result = caseBehaviour(testDescriptionReference); + if (result == null) result = caseElement(testDescriptionReference); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.COMPONENT_INSTANCE_BINDING: + { + ComponentInstanceBinding componentInstanceBinding = (ComponentInstanceBinding)theEObject; + T result = caseComponentInstanceBinding(componentInstanceBinding); + if (result == null) result = caseElement(componentInstanceBinding); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.INTERACTION: + { + Interaction interaction = (Interaction)theEObject; + T result = caseInteraction(interaction); + if (result == null) result = caseAtomicBehaviour(interaction); + if (result == null) result = caseBehaviour(interaction); + if (result == null) result = caseElement(interaction); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.MESSAGE: + { + Message message = (Message)theEObject; + T result = caseMessage(message); + if (result == null) result = caseInteraction(message); + if (result == null) result = caseAtomicBehaviour(message); + if (result == null) result = caseBehaviour(message); + if (result == null) result = caseElement(message); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.PREDEFINED_FUNCTION: + { + PredefinedFunction predefinedFunction = (PredefinedFunction)theEObject; + T result = casePredefinedFunction(predefinedFunction); + if (result == null) result = casePackageableElement(predefinedFunction); + if (result == null) result = caseNamedElement(predefinedFunction); + if (result == null) result = caseElement(predefinedFunction); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.MEMBER_REFERENCE: + { + MemberReference memberReference = (MemberReference)theEObject; + T result = caseMemberReference(memberReference); + if (result == null) result = caseElement(memberReference); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.PREDEFINED_FUNCTION_CALL: + { + PredefinedFunctionCall predefinedFunctionCall = (PredefinedFunctionCall)theEObject; + T result = casePredefinedFunctionCall(predefinedFunctionCall); + if (result == null) result = caseDynamicDataUse(predefinedFunctionCall); + if (result == null) result = caseDataUse(predefinedFunctionCall); + if (result == null) result = caseElement(predefinedFunctionCall); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.LOCAL_EXPRESSION: + { + LocalExpression localExpression = (LocalExpression)theEObject; + T result = caseLocalExpression(localExpression); + if (result == null) result = caseElement(localExpression); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.VALUE_ASSIGNMENT: + { + ValueAssignment valueAssignment = (ValueAssignment)theEObject; + T result = caseValueAssignment(valueAssignment); + if (result == null) result = caseElement(valueAssignment); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.PROCEDURE_CALL: + { + ProcedureCall procedureCall = (ProcedureCall)theEObject; + T result = caseProcedureCall(procedureCall); + if (result == null) result = caseInteraction(procedureCall); + if (result == null) result = caseAtomicBehaviour(procedureCall); + if (result == null) result = caseBehaviour(procedureCall); + if (result == null) result = caseElement(procedureCall); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.PROCEDURE_SIGNATURE: + { + ProcedureSignature procedureSignature = (ProcedureSignature)theEObject; + T result = caseProcedureSignature(procedureSignature); + if (result == null) result = caseDataType(procedureSignature); + if (result == null) result = caseMappableDataElement(procedureSignature); + if (result == null) result = casePackageableElement(procedureSignature); + if (result == null) result = caseNamedElement(procedureSignature); + if (result == null) result = caseElement(procedureSignature); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.PROCEDURE_PARAMETER: + { + ProcedureParameter procedureParameter = (ProcedureParameter)theEObject; + T result = caseProcedureParameter(procedureParameter); + if (result == null) result = caseParameter(procedureParameter); + if (result == null) result = caseNamedElement(procedureParameter); + if (result == null) result = caseElement(procedureParameter); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.COLLECTION_DATA_TYPE: + { + CollectionDataType collectionDataType = (CollectionDataType)theEObject; + T result = caseCollectionDataType(collectionDataType); + if (result == null) result = caseDataType(collectionDataType); + if (result == null) result = caseMappableDataElement(collectionDataType); + if (result == null) result = casePackageableElement(collectionDataType); + if (result == null) result = caseNamedElement(collectionDataType); + if (result == null) result = caseElement(collectionDataType); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.COLLECTION_DATA_INSTANCE: + { + CollectionDataInstance collectionDataInstance = (CollectionDataInstance)theEObject; + T result = caseCollectionDataInstance(collectionDataInstance); + if (result == null) result = caseDataInstance(collectionDataInstance); + if (result == null) result = caseMappableDataElement(collectionDataInstance); + if (result == null) result = casePackageableElement(collectionDataInstance); + if (result == null) result = caseNamedElement(collectionDataInstance); + if (result == null) result = caseElement(collectionDataInstance); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.EXTENSION: + { + Extension extension = (Extension)theEObject; + T result = caseExtension(extension); + if (result == null) result = caseElement(extension); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.LITERAL_VALUE_USE: + { + LiteralValueUse literalValueUse = (LiteralValueUse)theEObject; + T result = caseLiteralValueUse(literalValueUse); + if (result == null) result = caseStaticDataUse(literalValueUse); + if (result == null) result = caseDataUse(literalValueUse); + if (result == null) result = caseElement(literalValueUse); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.CONSTRAINT_TYPE: + { + ConstraintType constraintType = (ConstraintType)theEObject; + T result = caseConstraintType(constraintType); + if (result == null) result = casePackageableElement(constraintType); + if (result == null) result = caseNamedElement(constraintType); + if (result == null) result = caseElement(constraintType); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.CONSTRAINT: + { + Constraint constraint = (Constraint)theEObject; + T result = caseConstraint(constraint); + if (result == null) result = caseElement(constraint); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.ENUM_DATA_TYPE: + { + EnumDataType enumDataType = (EnumDataType)theEObject; + T result = caseEnumDataType(enumDataType); + if (result == null) result = caseSimpleDataType(enumDataType); + if (result == null) result = caseDataType(enumDataType); + if (result == null) result = caseMappableDataElement(enumDataType); + if (result == null) result = casePackageableElement(enumDataType); + if (result == null) result = caseNamedElement(enumDataType); + if (result == null) result = caseElement(enumDataType); + if (result == null) result = defaultCase(theEObject); + return result; + } + case tdlPackage.DATA_ELEMENT_USE: + { + DataElementUse dataElementUse = (DataElementUse)theEObject; + T result = caseDataElementUse(dataElementUse); + if (result == null) result = caseDataUse(dataElementUse); + if (result == null) result = caseElement(dataElementUse); + if (result == null) result = defaultCase(theEObject); + return result; + } + default: return defaultCase(theEObject); + } + } + + /** + * Returns the result of interpreting the object as an instance of 'Element'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Element'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseElement(Element object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Comment'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Comment'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseComment(Comment object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Annotation'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Annotation'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseAnnotation(Annotation object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Annotation Type'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Annotation Type'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseAnnotationType(AnnotationType object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Packageable Element'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Packageable Element'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T casePackageableElement(PackageableElement object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Named Element'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Named Element'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseNamedElement(NamedElement object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Package'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Package'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T casePackage(org.etsi.mts.tdl.Package object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Element Import'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Element Import'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseElementImport(ElementImport object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Test Objective'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Test Objective'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseTestObjective(TestObjective object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Data Instance'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Data Instance'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseDataInstance(DataInstance object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Mappable Data Element'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Mappable Data Element'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseMappableDataElement(MappableDataElement object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Data Type'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Data Type'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseDataType(DataType object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Data Resource Mapping'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Data Resource Mapping'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseDataResourceMapping(DataResourceMapping object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Data Element Mapping'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Data Element Mapping'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseDataElementMapping(DataElementMapping object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Parameter Mapping'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Parameter Mapping'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseParameterMapping(ParameterMapping object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Parameter'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Parameter'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseParameter(Parameter object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Simple Data Type'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Simple Data Type'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseSimpleDataType(SimpleDataType object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Simple Data Instance'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Simple Data Instance'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseSimpleDataInstance(SimpleDataInstance object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Structured Data Type'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Structured Data Type'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseStructuredDataType(StructuredDataType object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Member'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Member'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseMember(Member object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Structured Data Instance'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Structured Data Instance'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseStructuredDataInstance(StructuredDataInstance object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Member Assignment'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Member Assignment'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseMemberAssignment(MemberAssignment object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Static Data Use'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Static Data Use'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseStaticDataUse(StaticDataUse object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Data Use'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Data Use'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseDataUse(DataUse object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Parameter Binding'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Parameter Binding'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseParameterBinding(ParameterBinding object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Action'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Action'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseAction(Action object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Formal Parameter'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Formal Parameter'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseFormalParameter(FormalParameter object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Function'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Function'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseFunction(Function object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Formal Parameter Use'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Formal Parameter Use'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseFormalParameterUse(FormalParameterUse object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Dynamic Data Use'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Dynamic Data Use'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseDynamicDataUse(DynamicDataUse object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Variable'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Variable'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseVariable(Variable object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Function Call'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Function Call'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseFunctionCall(FunctionCall object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Variable Use'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Variable Use'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseVariableUse(VariableUse object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Component Instance'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Component Instance'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseComponentInstance(ComponentInstance object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Component Type'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Component Type'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseComponentType(ComponentType object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Gate Instance'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Gate Instance'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseGateInstance(GateInstance object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Gate Type'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Gate Type'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseGateType(GateType object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Timer'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Timer'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseTimer(Timer object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Omit Value'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Omit Value'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseOmitValue(OmitValue object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Special Value Use'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Special Value Use'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseSpecialValueUse(SpecialValueUse object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Any Value'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Any Value'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseAnyValue(AnyValue object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Any Value Or Omit'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Any Value Or Omit'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseAnyValueOrOmit(AnyValueOrOmit object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Data Instance Use'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Data Instance Use'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseDataInstanceUse(DataInstanceUse object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Time'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Time'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseTime(Time object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Time Label'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Time Label'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseTimeLabel(TimeLabel object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Timer Operation'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Timer Operation'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseTimerOperation(TimerOperation object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Atomic Behaviour'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Atomic Behaviour'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseAtomicBehaviour(AtomicBehaviour object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Behaviour'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Behaviour'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseBehaviour(Behaviour object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Time Constraint'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Time Constraint'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseTimeConstraint(TimeConstraint object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Timer Start'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Timer Start'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseTimerStart(TimerStart object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Timer Stop'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Timer Stop'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseTimerStop(TimerStop object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Time Out'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Time Out'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseTimeOut(TimeOut object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Time Operation'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Time Operation'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseTimeOperation(TimeOperation object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Wait'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Wait'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseWait(Wait object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Quiescence'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Quiescence'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseQuiescence(Quiescence object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Gate Reference'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Gate Reference'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseGateReference(GateReference object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Time Label Use'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Time Label Use'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseTimeLabelUse(TimeLabelUse object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Test Configuration'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Test Configuration'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseTestConfiguration(TestConfiguration object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Connection'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Connection'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseConnection(Connection object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Test Description'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Test Description'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseTestDescription(TestDescription object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Behaviour Description'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Behaviour Description'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseBehaviourDescription(BehaviourDescription object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Block'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Block'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseBlock(Block object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Combined Behaviour'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Combined Behaviour'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseCombinedBehaviour(CombinedBehaviour object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Periodic Behaviour'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Periodic Behaviour'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T casePeriodicBehaviour(PeriodicBehaviour object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Exceptional Behaviour'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Exceptional Behaviour'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseExceptionalBehaviour(ExceptionalBehaviour object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Alternative Behaviour'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Alternative Behaviour'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseAlternativeBehaviour(AlternativeBehaviour object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Multiple Combined Behaviour'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Multiple Combined Behaviour'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseMultipleCombinedBehaviour(MultipleCombinedBehaviour object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Parallel Behaviour'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Parallel Behaviour'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseParallelBehaviour(ParallelBehaviour object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Bounded Loop Behaviour'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Bounded Loop Behaviour'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseBoundedLoopBehaviour(BoundedLoopBehaviour object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Single Combined Behaviour'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Single Combined Behaviour'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseSingleCombinedBehaviour(SingleCombinedBehaviour object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Optional Behaviour'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Optional Behaviour'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseOptionalBehaviour(OptionalBehaviour object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Unbounded Loop Behaviour'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Unbounded Loop Behaviour'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseUnboundedLoopBehaviour(UnboundedLoopBehaviour object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Conditional Behaviour'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Conditional Behaviour'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseConditionalBehaviour(ConditionalBehaviour object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Compound Behaviour'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Compound Behaviour'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseCompoundBehaviour(CompoundBehaviour object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Default Behaviour'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Default Behaviour'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseDefaultBehaviour(DefaultBehaviour object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Interrupt Behaviour'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Interrupt Behaviour'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseInterruptBehaviour(InterruptBehaviour object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Target'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Target'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseTarget(Target object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Verdict Assignment'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Verdict Assignment'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseVerdictAssignment(VerdictAssignment object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Assertion'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Assertion'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseAssertion(Assertion object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Stop'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Stop'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseStop(Stop object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Break'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Break'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseBreak(Break object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Assignment'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Assignment'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseAssignment(Assignment object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Action Behaviour'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Action Behaviour'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseActionBehaviour(ActionBehaviour object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Inline Action'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Inline Action'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseInlineAction(InlineAction object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Action Reference'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Action Reference'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseActionReference(ActionReference object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Test Description Reference'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Test Description Reference'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseTestDescriptionReference(TestDescriptionReference object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Component Instance Binding'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Component Instance Binding'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseComponentInstanceBinding(ComponentInstanceBinding object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Interaction'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Interaction'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseInteraction(Interaction object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Message'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Message'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseMessage(Message object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Predefined Function'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Predefined Function'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T casePredefinedFunction(PredefinedFunction object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Member Reference'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Member Reference'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseMemberReference(MemberReference object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Predefined Function Call'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Predefined Function Call'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T casePredefinedFunctionCall(PredefinedFunctionCall object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Local Expression'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Local Expression'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseLocalExpression(LocalExpression object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Value Assignment'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Value Assignment'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseValueAssignment(ValueAssignment object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Procedure Call'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Procedure Call'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseProcedureCall(ProcedureCall object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Procedure Signature'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Procedure Signature'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseProcedureSignature(ProcedureSignature object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Procedure Parameter'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Procedure Parameter'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseProcedureParameter(ProcedureParameter object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Collection Data Type'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Collection Data Type'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseCollectionDataType(CollectionDataType object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Collection Data Instance'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Collection Data Instance'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseCollectionDataInstance(CollectionDataInstance object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Extension'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Extension'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseExtension(Extension object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Literal Value Use'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Literal Value Use'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseLiteralValueUse(LiteralValueUse object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Constraint Type'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Constraint Type'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseConstraintType(ConstraintType object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Constraint'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Constraint'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseConstraint(Constraint object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Enum Data Type'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Enum Data Type'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseEnumDataType(EnumDataType object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Data Element Use'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Data Element Use'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseDataElementUse(DataElementUse object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'EObject'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch, but this is the last case anyway. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'EObject'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) + * @generated + */ + @Override + public T defaultCase(EObject object) + { + return null; + } + +} //tdlSwitch diff --git a/plugins/org.etsi.mts.tdl.model/src/org/etsi/mts/tdl/Activator.java b/plugins/org.etsi.mts.tdl.model/src/org/etsi/mts/tdl/Activator.java new file mode 100644 index 0000000000000000000000000000000000000000..a5a835451a520ca9dcfd9f0f4eb1384b4bce22c7 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.model/src/org/etsi/mts/tdl/Activator.java @@ -0,0 +1,76 @@ +package org.etsi.mts.tdl; + +import java.net.URISyntaxException; +import java.net.URL; +import java.util.List; + +import org.eclipse.core.runtime.FileLocator; +import org.eclipse.core.runtime.Path; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.EValidator; +import org.eclipse.emf.ecore.resource.Resource.Diagnostic; +import org.eclipse.emf.ecore.resource.ResourceSet; +import org.eclipse.jdt.annotation.NonNull; +import org.eclipse.ocl.pivot.internal.utilities.EnvironmentFactoryInternal; +import org.eclipse.ocl.pivot.resource.CSResource; +import org.eclipse.ocl.pivot.utilities.PivotUtil; +import org.eclipse.ocl.xtext.completeocl.validation.CompleteOCLEObjectValidator; +import org.etsi.mts.tdl.extendedconfigurations.ExtendedConfigurationsPackage; +import org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage; +import org.osgi.framework.BundleActivator; +import org.osgi.framework.BundleContext; + +public class Activator implements BundleActivator { + + @Override + public void start(BundleContext context) throws Exception { + +// registerValidator("model/tdl-structured-constraints.ocl", StructuredObjectivesPackage.eINSTANCE, context); +// registerValidator("model/tdl-configurations-constraints.ocl", ExtendedConfigurationsPackage.eINSTANCE, context); + registerValidator("model/tdl-constraints.ocl", tdlPackage.eINSTANCE, context); + + } + + void registerValidator(String path, EPackage ePakcage, BundleContext context) { + + Path oclPath = new Path(path); + URL oclURL = FileLocator.find(context.getBundle(), oclPath); + + URI oclURI; + try { + oclURI = URI.createURI(oclURL.toURI().toString()); + CompleteOCLEObjectValidator validator = new CompleteOCLEObjectValidator(ePakcage, oclURI) { + @Override + public boolean initialize(@NonNull EnvironmentFactoryInternal environmentFactory) { + boolean success = super.initialize(environmentFactory); + if (success) { + // This should happen in super.initialize(..) but under certain conditions it returns early + ResourceSet resourceSet = environmentFactory.getResourceSet(); + CSResource xtextResource = (CSResource) resourceSet.getResource(oclURI, true); + EList errors = xtextResource.getErrors(); + assert errors != null; + String message = PivotUtil.formatResourceDiagnostics(errors, "", "\n"); + if (message != null) { + System.err.println("Failed to load '" + oclURI + message); + return false; + } + } + return success; + } + }; + EValidator.Registry.INSTANCE.put(tdlPackage.eINSTANCE, validator); + } catch (URISyntaxException e) { + throw new RuntimeException(e); + } + } + + @Override + public void stop(BundleContext context) throws Exception { + EValidator.Registry.INSTANCE.remove(StructuredObjectivesPackage.eINSTANCE); + EValidator.Registry.INSTANCE.remove(ExtendedConfigurationsPackage.eINSTANCE); + EValidator.Registry.INSTANCE.remove(tdlPackage.eINSTANCE); + } + +} diff --git a/plugins/org.etsi.mts.tdl.openapi.generator.ui/.classpath b/plugins/org.etsi.mts.tdl.openapi.generator.ui/.classpath new file mode 100644 index 0000000000000000000000000000000000000000..1db08c6b4ce2fb50395b2f9c9a50c140a0bab199 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.openapi.generator.ui/.classpath @@ -0,0 +1,7 @@ + + + + + + + diff --git a/plugins/org.etsi.mts.tdl.openapi.generator.ui/.project b/plugins/org.etsi.mts.tdl.openapi.generator.ui/.project new file mode 100644 index 0000000000000000000000000000000000000000..510114bfa274ea4e73ec4681fbc563aca8bf371e --- /dev/null +++ b/plugins/org.etsi.mts.tdl.openapi.generator.ui/.project @@ -0,0 +1,45 @@ + + + org.etsi.mts.tdl.openapi.generator.ui + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.eclipse.m2e.core.maven2Nature + org.eclipse.pde.PluginNature + org.eclipse.jdt.core.javanature + + + + 1681418411915 + + 30 + + org.eclipse.core.resources.regexFilterMatcher + node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__ + + + + diff --git a/plugins/org.etsi.mts.tdl.openapi.generator.ui/.settings/org.eclipse.core.resources.prefs b/plugins/org.etsi.mts.tdl.openapi.generator.ui/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000000000000000000000000000000000000..99f26c0203a7844de00dbfc56e6a35d8ed3c022c --- /dev/null +++ b/plugins/org.etsi.mts.tdl.openapi.generator.ui/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/plugins/org.etsi.mts.tdl.openapi.generator.ui/.settings/org.eclipse.jdt.core.prefs b/plugins/org.etsi.mts.tdl.openapi.generator.ui/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000000000000000000000000000000000000..7adc0fb9a0d32bd6b4e3ce6f305ab7165208865c --- /dev/null +++ b/plugins/org.etsi.mts.tdl.openapi.generator.ui/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,10 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=11 +org.eclipse.jdt.core.compiler.compliance=11 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning +org.eclipse.jdt.core.compiler.release=enabled +org.eclipse.jdt.core.compiler.source=11 diff --git a/plugins/org.etsi.mts.tdl.openapi.generator.ui/.settings/org.eclipse.m2e.core.prefs b/plugins/org.etsi.mts.tdl.openapi.generator.ui/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000000000000000000000000000000000000..f897a7f1cb2389f85fe6381425d29f0a9866fb65 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.openapi.generator.ui/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/plugins/org.etsi.mts.tdl.openapi.generator.ui/META-INF/MANIFEST.MF b/plugins/org.etsi.mts.tdl.openapi.generator.ui/META-INF/MANIFEST.MF new file mode 100644 index 0000000000000000000000000000000000000000..38138a204367b1b265d956248af57b42cd88de9f --- /dev/null +++ b/plugins/org.etsi.mts.tdl.openapi.generator.ui/META-INF/MANIFEST.MF @@ -0,0 +1,15 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: OpenAPI Generator Wrapper UI +Bundle-SymbolicName: org.etsi.mts.tdl.openapi.generator.ui;singleton:=true +Bundle-Version: 1.0.0.qualifier +Bundle-Activator: org.etsi.mts.tdl.openapi.generator.ui.Activator +Require-Bundle: org.eclipse.ui, + org.eclipse.core.runtime, + org.eclipse.core.resources, + org.eclipse.ui.editors;bundle-version="3.5.0", + org.eclipse.ui.ide;bundle-version="3.5.0", + org.eclipse.ui.workbench, + org.etsi.mts.tdl.openapi.generator.wrapper +Bundle-ActivationPolicy: lazy +Import-Package: org.eclipse.emf.common.util diff --git a/plugins/org.etsi.mts.tdl.openapi.generator.ui/build.properties b/plugins/org.etsi.mts.tdl.openapi.generator.ui/build.properties new file mode 100644 index 0000000000000000000000000000000000000000..6f4455d0e120b77b0904d2835d63f30dcde30b90 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.openapi.generator.ui/build.properties @@ -0,0 +1,6 @@ +source.. = src/ +output.. = target/classes/ +bin.includes = plugin.xml,\ + META-INF/,\ + .,\ + icons/ diff --git a/plugins/org.etsi.mts.tdl.openapi.generator.ui/icons/TransformIcon.png b/plugins/org.etsi.mts.tdl.openapi.generator.ui/icons/TransformIcon.png new file mode 100644 index 0000000000000000000000000000000000000000..6b23bd6a60b0c2362a07da1a44e16f8c6a66926c Binary files /dev/null and b/plugins/org.etsi.mts.tdl.openapi.generator.ui/icons/TransformIcon.png differ diff --git a/plugins/org.etsi.mts.tdl.openapi.generator.ui/icons/TranslateIcon.png b/plugins/org.etsi.mts.tdl.openapi.generator.ui/icons/TranslateIcon.png new file mode 100644 index 0000000000000000000000000000000000000000..555d9f2a5ad5bd079bb41a2d952dc7adfb8939e1 Binary files /dev/null and b/plugins/org.etsi.mts.tdl.openapi.generator.ui/icons/TranslateIcon.png differ diff --git a/plugins/org.etsi.mts.tdl.openapi.generator.ui/icons/sample.gif b/plugins/org.etsi.mts.tdl.openapi.generator.ui/icons/sample.gif new file mode 100644 index 0000000000000000000000000000000000000000..34fb3c9d8cb7d489681b7f7aee4bdcd7eaf53610 Binary files /dev/null and b/plugins/org.etsi.mts.tdl.openapi.generator.ui/icons/sample.gif differ diff --git a/plugins/org.etsi.mts.tdl.openapi.generator.ui/plugin.xml b/plugins/org.etsi.mts.tdl.openapi.generator.ui/plugin.xml new file mode 100644 index 0000000000000000000000000000000000000000..701e6dee7064bc6ba51b422b9e2bfe423abf6fd1 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.openapi.generator.ui/plugin.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/plugins/org.etsi.mts.tdl.openapi.generator.ui/pom.xml b/plugins/org.etsi.mts.tdl.openapi.generator.ui/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..d30ecbed0f78daa2fb7828279814a44663e16f95 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.openapi.generator.ui/pom.xml @@ -0,0 +1,19 @@ + + 4.0.0 + + org.etsi.mts.tdl + org.etsi.mts.tdl.parent + 1.0.0-SNAPSHOT + ../../org.etsi.mts.tdl.parent + + + org.etsi.mts.tdl.openapi.generator.ui + eclipse-plugin + + + + maven-compiler-plugin + + + + \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.openapi.generator.ui/src/org/etsi/mts/tdl/openapi/generator/ui/Activator.java b/plugins/org.etsi.mts.tdl.openapi.generator.ui/src/org/etsi/mts/tdl/openapi/generator/ui/Activator.java new file mode 100644 index 0000000000000000000000000000000000000000..0905c40699ed8d4b63abc265d201b459685841b1 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.openapi.generator.ui/src/org/etsi/mts/tdl/openapi/generator/ui/Activator.java @@ -0,0 +1,61 @@ +package org.etsi.mts.tdl.openapi.generator.ui; + +import org.eclipse.jface.resource.ImageDescriptor; +import org.eclipse.ui.plugin.AbstractUIPlugin; +import org.osgi.framework.BundleContext; + +/** + * The activator class controls the plug-in life cycle + */ +public class Activator extends AbstractUIPlugin { + + // The plug-in ID + public static final String PLUGIN_ID = "org.etsi.mts.tdl.openapi.generator.ui"; //$NON-NLS-1$ + + // The shared instance + private static Activator plugin; + + /** + * The constructor + */ + public Activator() { + } + + /* + * (non-Javadoc) + * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext) + */ + public void start(BundleContext context) throws Exception { + super.start(context); + plugin = this; + } + + /* + * (non-Javadoc) + * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext) + */ + public void stop(BundleContext context) throws Exception { + plugin = null; + super.stop(context); + } + + /** + * Returns the shared instance + * + * @return the shared instance + */ + public static Activator getDefault() { + return plugin; + } + + /** + * Returns an image descriptor for the image file at the given + * plug-in relative path + * + * @param path the path + * @return the image descriptor + */ + public static ImageDescriptor getImageDescriptor(String path) { + return imageDescriptorFromPlugin(PLUGIN_ID, path); + } +} diff --git a/plugins/org.etsi.mts.tdl.openapi.generator.ui/src/org/etsi/mts/tdl/openapi/generator/ui/handlers/GeneratorHandler.java b/plugins/org.etsi.mts.tdl.openapi.generator.ui/src/org/etsi/mts/tdl/openapi/generator/ui/handlers/GeneratorHandler.java new file mode 100644 index 0000000000000000000000000000000000000000..234b3a65e739f20283a920814f08b0fa828d3386 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.openapi.generator.ui/src/org/etsi/mts/tdl/openapi/generator/ui/handlers/GeneratorHandler.java @@ -0,0 +1,111 @@ +package org.etsi.mts.tdl.openapi.generator.ui.handlers; + +import java.util.Arrays; +import java.util.LinkedHashMap; + +import org.eclipse.core.commands.AbstractHandler; +import org.eclipse.core.commands.ExecutionEvent; +import org.eclipse.core.commands.ExecutionException; +import org.eclipse.core.resources.IFile; +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.jface.viewers.LabelProvider; +import org.eclipse.jface.window.Window; +import org.eclipse.swt.widgets.Display; +import org.eclipse.ui.IEditorInput; +import org.eclipse.ui.IWorkbenchWindow; +import org.eclipse.ui.dialogs.ElementListSelectionDialog; +import org.eclipse.ui.handlers.HandlerUtil; +import org.eclipse.ui.part.FileEditorInput; + +/** + * Our sample handler extends AbstractHandler, an IHandler base class. + * @see org.eclipse.core.commands.IHandler + * @see org.eclipse.core.commands.AbstractHandler + */ +public class GeneratorHandler extends AbstractHandler { + + LinkedHashMap targetFormats = new LinkedHashMap<>(); + + public static String translationTarget = "java"; + + private IWorkbenchWindow window; + + /** + * The constructor. + */ + public GeneratorHandler() { + init(); + } + + private void init() { + //TODO: update rt.ui as well + //TODO: do not reload after first init + if (!targetFormats.isEmpty()) { + return; + } + targetFormats.clear(); + + for (String gen : OpenAPIGeneratorLauncher.listGenerators()) { + targetFormats.put(gen, gen); + } + } + + /** + * the command has been executed, so extract extract the needed information + * from the application context. + */ + public Object execute(ExecutionEvent event) throws ExecutionException { + init(); + ISelection selection = HandlerUtil.getCurrentSelection(event); + IEditorInput input = HandlerUtil.getActiveEditorInput(event); + IFile file = null; + if (input != null && input instanceof FileEditorInput && ((FileEditorInput) input).getFile().getName().endsWith("yaml")) { + file = ((FileEditorInput) input).getFile(); + } else if (selection !=null && selection instanceof IStructuredSelection) { + IStructuredSelection structuredSelection = (IStructuredSelection) selection; + Object firstElement = structuredSelection.getFirstElement(); + if (firstElement instanceof IFile) { + file = (IFile) firstElement; + } + } + + if (file !=null && file.getName().endsWith("yaml")) { + + ElementListSelectionDialog dialog = new ElementListSelectionDialog(Display.getDefault().getActiveShell(), new LabelProvider()); + dialog.setTitle("OpenAPI Generator Target Selection"); + dialog.setMessage("Generating assets from "+file.getName() + +"\n\nSelect the target format"); + dialog.setElements(targetFormats.keySet().toArray()); + + dialog.setInitialElementSelections(Arrays.asList(new String[] {GeneratorHandler.translationTarget})); + //TODO: add option to skip validation + //TODO: add step to validate + + // user pressed cancel + if (dialog.open() != Window.OK) { + return false; + } else { + //TODO: enable validation once it does not exit +// OpenAPIGeneratorLauncher.validate(file.getLocation().toFile().getAbsolutePath()); +// OpenAPIGeneratorLauncher.parse(file.getLocation().toFile().getAbsolutePath()); + + Object[] result = dialog.getResult(); + String selected = (String)result[0]; + translationTarget = selected; + OpenAPIGeneratorLauncher.launch(file.getLocation().toFile().getAbsolutePath(), selected); + } + } + return null; + } + + public void init(IWorkbenchWindow window) { + this.window = window; + } + + @Override + public boolean isEnabled() { + return true; + } + +} diff --git a/plugins/org.etsi.mts.tdl.openapi.generator.ui/src/org/etsi/mts/tdl/openapi/generator/ui/handlers/OpenAPIGeneratorLauncher.java b/plugins/org.etsi.mts.tdl.openapi.generator.ui/src/org/etsi/mts/tdl/openapi/generator/ui/handlers/OpenAPIGeneratorLauncher.java new file mode 100644 index 0000000000000000000000000000000000000000..1c13cf35b10dd23b6e280100e1f3882de2ffe645 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.openapi.generator.ui/src/org/etsi/mts/tdl/openapi/generator/ui/handlers/OpenAPIGeneratorLauncher.java @@ -0,0 +1,79 @@ +package org.etsi.mts.tdl.openapi.generator.ui.handlers; + +import java.io.File; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import org.openapitools.codegen.CodegenConfig; +import org.openapitools.codegen.CodegenConfigLoader; +import org.openapitools.codegen.OpenAPIGenerator; +import org.openapitools.codegen.meta.GeneratorMetadata; +import org.openapitools.codegen.utils.ModelUtils; + +import io.swagger.parser.OpenAPIParser; +import io.swagger.v3.oas.models.Components; +import io.swagger.v3.oas.models.OpenAPI; +import io.swagger.v3.oas.models.media.ArraySchema; +import io.swagger.v3.oas.models.media.Schema; +import io.swagger.v3.parser.core.models.ParseOptions; + +public class OpenAPIGeneratorLauncher { + + public static void main(String[] args) { +// launch(input, target); + listGenerators(); +// parse(input); + } + + public static List listGenerators() { + List generators = new ArrayList<>(); + List generatorNames = new ArrayList<>(); + for (CodegenConfig codegenConfig : CodegenConfigLoader.getAll()) { + GeneratorMetadata meta = codegenConfig.getGeneratorMetadata(); + if (meta != null) { + generators.add(codegenConfig); + generatorNames.add(codegenConfig.getName()); + } + } + return generatorNames; + } + + public static void launch(String input, String target) { + launch(input, target, true); + } + + public static void launch(String input, String target, boolean skipValidation) { + String inputFolder = new File(input).getParentFile().getAbsolutePath(); + String output = inputFolder+"/generated/"+target+"/"; + new File(output).mkdirs(); + String skip = ""; + if (skipValidation) { + skip = "--skip-validate-spec"; + } + OpenAPIGenerator.main(new String[] {"generate", "-g", target, "-i", input, "-o", output, skip}); + } + + public static void validate(String input) { + //TODO: adapt from source so that it does not exit or run in a separate process? + OpenAPIGenerator.main(new String[] {"validate", "-i", input}); + } + + public static void parse(String input) { + System.out.println("Parsing "+input); + OpenAPI openAPI = new OpenAPIParser().readLocation(input, null, new ParseOptions()).getOpenAPI(); + Components components = openAPI.getComponents(); + Map schemas = components.getSchemas(); + ArraySchema object = (ArraySchema) schemas.get("Library").getProperties().get("books"); + System.out.println(object.getItems().get$ref()); +// System.out.println(schemas.get("Library").getName()); + System.out.println("MU:"+ModelUtils.getReferencedSchema(openAPI, object.getItems())); + schemas.forEach((k,v) -> System.out.println(k)); + // Invoke helper function to get the original swagger version. + // See https://github.com/swagger-api/swagger-parser/pull/1374 + // Also see https://github.com/swagger-api/swagger-parser/issues/1369. + ModelUtils.getOpenApiVersion(openAPI, input, null); + + } + +} diff --git a/plugins/org.etsi.mts.tdl.openapi.generator.wrapper/.classpath b/plugins/org.etsi.mts.tdl.openapi.generator.wrapper/.classpath new file mode 100644 index 0000000000000000000000000000000000000000..02d2cd9ee321e5925f01a675971243e7b83a6359 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.openapi.generator.wrapper/.classpath @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/plugins/org.etsi.mts.tdl.openapi.generator.wrapper/.project b/plugins/org.etsi.mts.tdl.openapi.generator.wrapper/.project new file mode 100644 index 0000000000000000000000000000000000000000..0b1838521ffa0e7634b690fff4abaf55e68db60f --- /dev/null +++ b/plugins/org.etsi.mts.tdl.openapi.generator.wrapper/.project @@ -0,0 +1,45 @@ + + + org.etsi.mts.tdl.openapi.generator.wrapper + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.eclipse.m2e.core.maven2Nature + org.eclipse.pde.PluginNature + org.eclipse.jdt.core.javanature + + + + 1681418411918 + + 30 + + org.eclipse.core.resources.regexFilterMatcher + node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__ + + + + diff --git a/plugins/org.etsi.mts.tdl.openapi.generator.wrapper/.settings/org.eclipse.core.resources.prefs b/plugins/org.etsi.mts.tdl.openapi.generator.wrapper/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000000000000000000000000000000000000..99f26c0203a7844de00dbfc56e6a35d8ed3c022c --- /dev/null +++ b/plugins/org.etsi.mts.tdl.openapi.generator.wrapper/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/plugins/org.etsi.mts.tdl.openapi.generator.wrapper/.settings/org.eclipse.jdt.core.prefs b/plugins/org.etsi.mts.tdl.openapi.generator.wrapper/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000000000000000000000000000000000000..7adc0fb9a0d32bd6b4e3ce6f305ab7165208865c --- /dev/null +++ b/plugins/org.etsi.mts.tdl.openapi.generator.wrapper/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,10 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=11 +org.eclipse.jdt.core.compiler.compliance=11 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning +org.eclipse.jdt.core.compiler.release=enabled +org.eclipse.jdt.core.compiler.source=11 diff --git a/plugins/org.etsi.mts.tdl.openapi.generator.wrapper/.settings/org.eclipse.m2e.core.prefs b/plugins/org.etsi.mts.tdl.openapi.generator.wrapper/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000000000000000000000000000000000000..f897a7f1cb2389f85fe6381425d29f0a9866fb65 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.openapi.generator.wrapper/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/plugins/org.etsi.mts.tdl.openapi.generator.wrapper/META-INF/MANIFEST.MF b/plugins/org.etsi.mts.tdl.openapi.generator.wrapper/META-INF/MANIFEST.MF new file mode 100644 index 0000000000000000000000000000000000000000..5dc6c60681711861749266cd345db7caeb64dc0a --- /dev/null +++ b/plugins/org.etsi.mts.tdl.openapi.generator.wrapper/META-INF/MANIFEST.MF @@ -0,0 +1,663 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: OpenAPI Generator Wrapper +Bundle-SymbolicName: org.etsi.mts.tdl.openapi.generator.wrapper +Bundle-Version: 6.3.0 +Bundle-ClassPath: openapi-generator-cli-6.3.0.jar +Bundle-Vendor: ETSI +Export-Package: ch.lambdaj, + ch.lambdaj.collection, + ch.lambdaj.function.aggregate, + ch.lambdaj.function.argument, + ch.lambdaj.function.closure, + ch.lambdaj.function.compare, + ch.lambdaj.function.convert, + ch.lambdaj.function.matcher, + ch.lambdaj.group, + ch.lambdaj.proxy, + ch.lambdaj.util, + ch.lambdaj.util.iterator, + ch.qos.logback.classic, + ch.qos.logback.classic.boolex, + ch.qos.logback.classic.db.names, + ch.qos.logback.classic.encoder, + ch.qos.logback.classic.filter, + ch.qos.logback.classic.helpers, + ch.qos.logback.classic.html, + ch.qos.logback.classic.jmx, + ch.qos.logback.classic.joran, + ch.qos.logback.classic.joran.action, + ch.qos.logback.classic.jul, + ch.qos.logback.classic.layout, + ch.qos.logback.classic.log4j, + ch.qos.logback.classic.net, + ch.qos.logback.classic.net.server, + ch.qos.logback.classic.pattern, + ch.qos.logback.classic.pattern.color, + ch.qos.logback.classic.selector, + ch.qos.logback.classic.selector.servlet, + ch.qos.logback.classic.servlet, + ch.qos.logback.classic.sift, + ch.qos.logback.classic.spi, + ch.qos.logback.classic.turbo, + ch.qos.logback.classic.util, + ch.qos.logback.core, + ch.qos.logback.core.boolex, + ch.qos.logback.core.encoder, + ch.qos.logback.core.filter, + ch.qos.logback.core.helpers, + ch.qos.logback.core.hook, + ch.qos.logback.core.html, + ch.qos.logback.core.joran, + ch.qos.logback.core.joran.action, + ch.qos.logback.core.joran.conditional, + ch.qos.logback.core.joran.event, + ch.qos.logback.core.joran.event.stax, + ch.qos.logback.core.joran.node, + ch.qos.logback.core.joran.spi, + ch.qos.logback.core.joran.util, + ch.qos.logback.core.joran.util.beans, + ch.qos.logback.core.layout, + ch.qos.logback.core.net, + ch.qos.logback.core.net.server, + ch.qos.logback.core.net.ssl, + ch.qos.logback.core.pattern, + ch.qos.logback.core.pattern.color, + ch.qos.logback.core.pattern.parser, + ch.qos.logback.core.pattern.util, + ch.qos.logback.core.property, + ch.qos.logback.core.read, + ch.qos.logback.core.recovery, + ch.qos.logback.core.rolling, + ch.qos.logback.core.rolling.helper, + ch.qos.logback.core.sift, + ch.qos.logback.core.spi, + ch.qos.logback.core.status, + ch.qos.logback.core.subst, + ch.qos.logback.core.util, + com.fasterxml.jackson.annotation, + com.fasterxml.jackson.core, + com.fasterxml.jackson.core.async, + com.fasterxml.jackson.core.base, + com.fasterxml.jackson.core.exc, + com.fasterxml.jackson.core.filter, + com.fasterxml.jackson.core.format, + com.fasterxml.jackson.core.io, + com.fasterxml.jackson.core.json, + com.fasterxml.jackson.core.json.async, + com.fasterxml.jackson.core.sym, + com.fasterxml.jackson.core.type, + com.fasterxml.jackson.core.util, + com.fasterxml.jackson.databind, + com.fasterxml.jackson.databind.annotation, + com.fasterxml.jackson.databind.cfg, + com.fasterxml.jackson.databind.deser, + com.fasterxml.jackson.databind.deser.impl, + com.fasterxml.jackson.databind.deser.std, + com.fasterxml.jackson.databind.exc, + com.fasterxml.jackson.databind.ext, + com.fasterxml.jackson.databind.introspect, + com.fasterxml.jackson.databind.jdk14, + com.fasterxml.jackson.databind.json, + com.fasterxml.jackson.databind.jsonFormatVisitors, + com.fasterxml.jackson.databind.jsonschema, + com.fasterxml.jackson.databind.jsontype, + com.fasterxml.jackson.databind.jsontype.impl, + com.fasterxml.jackson.databind.module, + com.fasterxml.jackson.databind.node, + com.fasterxml.jackson.databind.ser, + com.fasterxml.jackson.databind.ser.impl, + com.fasterxml.jackson.databind.ser.std, + com.fasterxml.jackson.databind.type, + com.fasterxml.jackson.databind.util, + com.fasterxml.jackson.dataformat.yaml, + com.fasterxml.jackson.dataformat.yaml.snakeyaml.error, + com.fasterxml.jackson.dataformat.yaml.util, + com.fasterxml.jackson.datatype.guava, + com.fasterxml.jackson.datatype.guava.deser, + com.fasterxml.jackson.datatype.guava.deser.multimap, + com.fasterxml.jackson.datatype.guava.deser.multimap.list, + com.fasterxml.jackson.datatype.guava.deser.multimap.set, + com.fasterxml.jackson.datatype.guava.deser.util, + com.fasterxml.jackson.datatype.guava.ser, + com.fasterxml.jackson.datatype.joda, + com.fasterxml.jackson.datatype.joda.cfg, + com.fasterxml.jackson.datatype.joda.deser, + com.fasterxml.jackson.datatype.joda.deser.key, + com.fasterxml.jackson.datatype.joda.ser, + com.fasterxml.jackson.datatype.jsr310, + com.fasterxml.jackson.datatype.jsr310.deser, + com.fasterxml.jackson.datatype.jsr310.deser.key, + com.fasterxml.jackson.datatype.jsr310.ser, + com.fasterxml.jackson.datatype.jsr310.ser.key, + com.fasterxml.jackson.datatype.jsr310.util, + com.fasterxml.jackson.datatype.threetenbp, + com.fasterxml.jackson.datatype.threetenbp.deser, + com.fasterxml.jackson.datatype.threetenbp.deser.key, + com.fasterxml.jackson.datatype.threetenbp.function, + com.fasterxml.jackson.datatype.threetenbp.ser, + com.fasterxml.jackson.datatype.threetenbp.ser.key, + com.github.benmanes.caffeine, + com.github.benmanes.caffeine.base, + com.github.benmanes.caffeine.cache, + com.github.benmanes.caffeine.cache.stats, + com.github.curiousoddman.rgxgen, + com.github.curiousoddman.rgxgen.config, + com.github.curiousoddman.rgxgen.iterators, + com.github.curiousoddman.rgxgen.iterators.suppliers, + com.github.curiousoddman.rgxgen.nodes, + com.github.curiousoddman.rgxgen.parsing, + com.github.curiousoddman.rgxgen.parsing.dflt, + com.github.curiousoddman.rgxgen.util, + com.github.curiousoddman.rgxgen.visitors, + com.github.fge, + com.github.fge.jackson, + com.github.fge.jackson.jsonpointer, + com.github.fge.jsonpatch, + com.github.fge.jsonpatch.diff, + com.github.fge.jsonpatch.mergepatch, + com.github.fge.jsonschema, + com.github.fge.jsonschema.cfg, + com.github.fge.jsonschema.core.exceptions, + com.github.fge.jsonschema.core.keyword.syntax, + com.github.fge.jsonschema.core.keyword.syntax.checkers, + com.github.fge.jsonschema.core.keyword.syntax.checkers.common, + com.github.fge.jsonschema.core.keyword.syntax.checkers.draftv3, + com.github.fge.jsonschema.core.keyword.syntax.checkers.draftv4, + com.github.fge.jsonschema.core.keyword.syntax.checkers.helpers, + com.github.fge.jsonschema.core.keyword.syntax.checkers.hyperschema, + com.github.fge.jsonschema.core.keyword.syntax.dictionaries, + com.github.fge.jsonschema.core.load, + com.github.fge.jsonschema.core.load.configuration, + com.github.fge.jsonschema.core.load.download, + com.github.fge.jsonschema.core.load.uri, + com.github.fge.jsonschema.core.messages, + com.github.fge.jsonschema.core.processing, + com.github.fge.jsonschema.core.ref, + com.github.fge.jsonschema.core.report, + com.github.fge.jsonschema.core.tree, + com.github.fge.jsonschema.core.tree.key, + com.github.fge.jsonschema.core.util, + com.github.fge.jsonschema.core.util.equivalence, + com.github.fge.jsonschema.examples, + com.github.fge.jsonschema.exceptions, + com.github.fge.jsonschema.format, + com.github.fge.jsonschema.format.common, + com.github.fge.jsonschema.format.draftv3, + com.github.fge.jsonschema.format.extra, + com.github.fge.jsonschema.format.helpers, + com.github.fge.jsonschema.keyword.digest, + com.github.fge.jsonschema.keyword.digest.common, + com.github.fge.jsonschema.keyword.digest.draftv3, + com.github.fge.jsonschema.keyword.digest.draftv4, + com.github.fge.jsonschema.keyword.digest.helpers, + com.github.fge.jsonschema.keyword.validator, + com.github.fge.jsonschema.keyword.validator.common, + com.github.fge.jsonschema.keyword.validator.draftv3, + com.github.fge.jsonschema.keyword.validator.draftv4, + com.github.fge.jsonschema.keyword.validator.helpers, + com.github.fge.jsonschema.library, + com.github.fge.jsonschema.library.digest, + com.github.fge.jsonschema.library.format, + com.github.fge.jsonschema.library.validator, + com.github.fge.jsonschema.main, + com.github.fge.jsonschema.main.cli, + com.github.fge.jsonschema.messages, + com.github.fge.jsonschema.processors.build, + com.github.fge.jsonschema.processors.data, + com.github.fge.jsonschema.processors.digest, + com.github.fge.jsonschema.processors.format, + com.github.fge.jsonschema.processors.syntax, + com.github.fge.jsonschema.processors.validation, + com.github.fge.msgsimple, + com.github.fge.msgsimple.bundle, + com.github.fge.msgsimple.load, + com.github.fge.msgsimple.locale, + com.github.fge.msgsimple.provider, + com.github.fge.msgsimple.source, + com.github.fge.uritemplate, + com.github.fge.uritemplate.expression, + com.github.fge.uritemplate.parse, + com.github.fge.uritemplate.render, + com.github.fge.uritemplate.vars, + com.github.fge.uritemplate.vars.specs, + com.github.fge.uritemplate.vars.values, + com.github.jknack.handlebars, + com.github.jknack.handlebars.cache, + com.github.jknack.handlebars.context, + com.github.jknack.handlebars.helper, + com.github.jknack.handlebars.internal, + com.github.jknack.handlebars.internal.antlr, + com.github.jknack.handlebars.internal.antlr.atn, + com.github.jknack.handlebars.internal.antlr.dfa, + com.github.jknack.handlebars.internal.antlr.misc, + com.github.jknack.handlebars.internal.antlr.tree, + com.github.jknack.handlebars.internal.antlr.tree.pattern, + com.github.jknack.handlebars.internal.antlr.tree.xpath, + com.github.jknack.handlebars.internal.lang3, + com.github.jknack.handlebars.internal.lang3.builder, + com.github.jknack.handlebars.internal.lang3.exception, + com.github.jknack.handlebars.internal.lang3.function, + com.github.jknack.handlebars.internal.lang3.math, + com.github.jknack.handlebars.internal.lang3.mutable, + com.github.jknack.handlebars.internal.lang3.text, + com.github.jknack.handlebars.internal.lang3.text.translate, + com.github.jknack.handlebars.internal.lang3.time, + com.github.jknack.handlebars.internal.lang3.tuple, + com.github.jknack.handlebars.internal.path, + com.github.jknack.handlebars.internal.text, + com.github.jknack.handlebars.internal.text.matcher, + com.github.jknack.handlebars.internal.text.translate, + com.github.jknack.handlebars.io, + com.google.common.annotations, + com.google.common.base, + com.google.common.base.internal, + com.google.common.cache, + com.google.common.collect, + com.google.common.escape, + com.google.common.eventbus, + com.google.common.graph, + com.google.common.hash, + com.google.common.html, + com.google.common.io, + com.google.common.math, + com.google.common.net, + com.google.common.primitives, + com.google.common.reflect, + com.google.common.util.concurrent, + com.google.common.util.concurrent.internal, + com.google.common.xml, + com.google.errorprone.annotations, + com.google.errorprone.annotations.concurrent, + com.google.i18n.phonenumbers, + com.google.i18n.phonenumbers.internal, + com.google.j2objc.annotations, + com.google.thirdparty.publicsuffix, + com.mifmif.common.regex, + com.mifmif.common.regex.util, + com.samskivert.mustache, + com.sun.jna, + com.sun.jna.internal, + com.sun.jna.ptr, + com.sun.jna.win32, + com.sun.mail.auth, + com.sun.mail.handlers, + com.sun.mail.util, + dk.brics.automaton, + io.airlift.airline, + io.airlift.airline.model, + io.swagger.annotations, + io.swagger.config, + io.swagger.converter, + io.swagger.core.filter, + io.swagger.deserializer, + io.swagger.io, + io.swagger.jackson, + io.swagger.jackson.mixin, + io.swagger.model, + io.swagger.models, + io.swagger.models.apideclaration, + io.swagger.models.auth, + io.swagger.models.parameters, + io.swagger.models.properties, + io.swagger.models.reader, + io.swagger.models.refs, + io.swagger.models.resourcelisting, + io.swagger.models.utils, + io.swagger.parser, + io.swagger.parser.processors, + io.swagger.parser.util, + io.swagger.reader, + io.swagger.report, + io.swagger.transform.migrate, + io.swagger.transform.migrate.resourcelisting, + io.swagger.transform.util, + io.swagger.util, + io.swagger.v3.core.converter, + io.swagger.v3.core.filter, + io.swagger.v3.core.jackson, + io.swagger.v3.core.jackson.mixin, + io.swagger.v3.core.model, + io.swagger.v3.core.util, + io.swagger.v3.oas.annotations, + io.swagger.v3.oas.annotations.callbacks, + io.swagger.v3.oas.annotations.enums, + io.swagger.v3.oas.annotations.extensions, + io.swagger.v3.oas.annotations.headers, + io.swagger.v3.oas.annotations.info, + io.swagger.v3.oas.annotations.links, + io.swagger.v3.oas.annotations.media, + io.swagger.v3.oas.annotations.parameters, + io.swagger.v3.oas.annotations.responses, + io.swagger.v3.oas.annotations.security, + io.swagger.v3.oas.annotations.servers, + io.swagger.v3.oas.annotations.tags, + io.swagger.v3.oas.models, + io.swagger.v3.oas.models.annotations, + io.swagger.v3.oas.models.callbacks, + io.swagger.v3.oas.models.examples, + io.swagger.v3.oas.models.headers, + io.swagger.v3.oas.models.info, + io.swagger.v3.oas.models.links, + io.swagger.v3.oas.models.media, + io.swagger.v3.oas.models.parameters, + io.swagger.v3.oas.models.responses, + io.swagger.v3.oas.models.security, + io.swagger.v3.oas.models.servers, + io.swagger.v3.oas.models.tags, + io.swagger.v3.parser, + io.swagger.v3.parser.converter, + io.swagger.v3.parser.core.extensions, + io.swagger.v3.parser.core.models, + io.swagger.v3.parser.exception, + io.swagger.v3.parser.extensions, + io.swagger.v3.parser.models, + io.swagger.v3.parser.processors, + io.swagger.v3.parser.reference, + io.swagger.v3.parser.util, + io.swagger.validate, + javax.activation, + javax.annotation, + javax.annotation.concurrent, + javax.annotation.meta, + javax.inject, + javax.mail, + javax.mail.event, + javax.mail.internet, + javax.mail.search, + javax.mail.util, + javax.validation, + javax.validation.bootstrap, + javax.validation.constraints, + javax.validation.constraintvalidation, + javax.validation.executable, + javax.validation.groups, + javax.validation.metadata, + javax.validation.spi, + javax.validation.valueextraction, + javax.xml.bind, + javax.xml.bind.annotation, + javax.xml.bind.annotation.adapters, + javax.xml.bind.attachment, + javax.xml.bind.helpers, + javax.xml.bind.util, + joptsimple, + joptsimple.internal, + joptsimple.util, + net.sf.cglib.asm, + net.sf.cglib.asm.signature, + net.sf.cglib.beans, + net.sf.cglib.core, + net.sf.cglib.proxy, + net.sf.cglib.reflect, + net.sf.cglib.transform, + net.sf.cglib.transform.impl, + net.sf.cglib.util, + org.apache.commons.cli, + org.apache.commons.codec, + org.apache.commons.codec.binary, + org.apache.commons.codec.cli, + org.apache.commons.codec.digest, + org.apache.commons.codec.language, + org.apache.commons.codec.language.bm, + org.apache.commons.codec.net, + org.apache.commons.io, + org.apache.commons.io.comparator, + org.apache.commons.io.file, + org.apache.commons.io.file.spi, + org.apache.commons.io.filefilter, + org.apache.commons.io.function, + org.apache.commons.io.input, + org.apache.commons.io.input.buffer, + org.apache.commons.io.monitor, + org.apache.commons.io.output, + org.apache.commons.io.serialization, + org.apache.commons.lang3, + org.apache.commons.lang3.arch, + org.apache.commons.lang3.builder, + org.apache.commons.lang3.compare, + org.apache.commons.lang3.concurrent, + org.apache.commons.lang3.concurrent.locks, + org.apache.commons.lang3.event, + org.apache.commons.lang3.exception, + org.apache.commons.lang3.function, + org.apache.commons.lang3.math, + org.apache.commons.lang3.mutable, + org.apache.commons.lang3.reflect, + org.apache.commons.lang3.stream, + org.apache.commons.lang3.text, + org.apache.commons.lang3.text.translate, + org.apache.commons.lang3.time, + org.apache.commons.lang3.tuple, + org.apache.commons.logging, + org.apache.commons.logging.impl, + org.apache.commons.text, + org.apache.commons.text.diff, + org.apache.commons.text.io, + org.apache.commons.text.lookup, + org.apache.commons.text.matcher, + org.apache.commons.text.numbers, + org.apache.commons.text.similarity, + org.apache.commons.text.translate, + org.apache.http, + org.apache.http.annotation, + org.apache.http.auth, + org.apache.http.auth.params, + org.apache.http.client, + org.apache.http.client.config, + org.apache.http.client.entity, + org.apache.http.client.methods, + org.apache.http.client.params, + org.apache.http.client.protocol, + org.apache.http.client.utils, + org.apache.http.concurrent, + org.apache.http.config, + org.apache.http.conn, + org.apache.http.conn.params, + org.apache.http.conn.routing, + org.apache.http.conn.scheme, + org.apache.http.conn.socket, + org.apache.http.conn.ssl, + org.apache.http.conn.util, + org.apache.http.cookie, + org.apache.http.cookie.params, + org.apache.http.entity, + org.apache.http.impl, + org.apache.http.impl.auth, + org.apache.http.impl.bootstrap, + org.apache.http.impl.client, + org.apache.http.impl.conn, + org.apache.http.impl.conn.tsccm, + org.apache.http.impl.cookie, + org.apache.http.impl.entity, + org.apache.http.impl.execchain, + org.apache.http.impl.io, + org.apache.http.impl.pool, + org.apache.http.io, + org.apache.http.message, + org.apache.http.params, + org.apache.http.pool, + org.apache.http.protocol, + org.apache.http.ssl, + org.apache.http.util, + org.checkerframework.checker.builder.qual, + org.checkerframework.checker.calledmethods.qual, + org.checkerframework.checker.compilermsgs.qual, + org.checkerframework.checker.fenum.qual, + org.checkerframework.checker.formatter.qual, + org.checkerframework.checker.guieffect.qual, + org.checkerframework.checker.i18n.qual, + org.checkerframework.checker.i18nformatter.qual, + org.checkerframework.checker.index.qual, + org.checkerframework.checker.initialization.qual, + org.checkerframework.checker.interning.qual, + org.checkerframework.checker.lock.qual, + org.checkerframework.checker.nullness.qual, + org.checkerframework.checker.optional.qual, + org.checkerframework.checker.regex.qual, + org.checkerframework.checker.signature.qual, + org.checkerframework.checker.signedness.qual, + org.checkerframework.checker.tainting.qual, + org.checkerframework.checker.units.qual, + org.checkerframework.checker.units.qual, + org.checkerframework.common.aliasing.qual, + org.checkerframework.common.initializedfields.qual, + org.checkerframework.common.reflection.qual, + org.checkerframework.common.returnsreceiver.qual, + org.checkerframework.common.subtyping.qual, + org.checkerframework.common.util.report.qual, + org.checkerframework.common.value.qual, + org.checkerframework.dataflow.qual, + org.checkerframework.framework.qual, + org.codehaus.commons.compiler, + org.codehaus.commons.compiler.io, + org.codehaus.commons.compiler.java8.java.util, + org.codehaus.commons.compiler.java8.java.util.function, + org.codehaus.commons.compiler.java8.java.util.stream, + org.codehaus.commons.compiler.java9.java.lang.module, + org.codehaus.commons.compiler.samples, + org.codehaus.commons.compiler.util, + org.codehaus.commons.compiler.util.iterator, + org.codehaus.commons.compiler.util.reflect, + org.codehaus.commons.compiler.util.resource, + org.codehaus.commons.nullanalysis, + org.codehaus.janino, + org.codehaus.janino.samples, + org.codehaus.janino.tools, + org.codehaus.janino.util, + org.commonmark, + org.commonmark.internal, + org.commonmark.internal.inline, + org.commonmark.internal.renderer, + org.commonmark.internal.renderer.text, + org.commonmark.internal.util, + org.commonmark.node, + org.commonmark.parser, + org.commonmark.parser.block, + org.commonmark.parser.delimiter, + org.commonmark.renderer, + org.commonmark.renderer.html, + org.commonmark.renderer.text, + org.hamcrest, + org.hamcrest.beans, + org.hamcrest.collection, + org.hamcrest.core, + org.hamcrest.generator, + org.hamcrest.generator.config, + org.hamcrest.generator.qdox, + org.hamcrest.generator.qdox.ant, + org.hamcrest.generator.qdox.directorywalker, + org.hamcrest.generator.qdox.junit, + org.hamcrest.generator.qdox.model, + org.hamcrest.generator.qdox.model.util, + org.hamcrest.generator.qdox.parser, + org.hamcrest.generator.qdox.parser.impl, + org.hamcrest.generator.qdox.parser.structs, + org.hamcrest.generator.qdox.tools, + org.hamcrest.integration, + org.hamcrest.internal, + org.hamcrest.number, + org.hamcrest.object, + org.hamcrest.text, + org.hamcrest.text.pattern, + org.hamcrest.text.pattern.internal.ast, + org.hamcrest.text.pattern.internal.naming, + org.hamcrest.xml, + org.joda.time, + org.joda.time.base, + org.joda.time.chrono, + org.joda.time.convert, + org.joda.time.field, + org.joda.time.format, + org.joda.time.tz, + org.mozilla.classfile, + org.mozilla.javascript, + org.mozilla.javascript.annotations, + org.mozilla.javascript.ast, + org.mozilla.javascript.commonjs.module, + org.mozilla.javascript.commonjs.module.provider, + org.mozilla.javascript.debug, + org.mozilla.javascript.jdk13, + org.mozilla.javascript.jdk15, + org.mozilla.javascript.json, + org.mozilla.javascript.optimizer, + org.mozilla.javascript.regexp, + org.mozilla.javascript.serialize, + org.mozilla.javascript.tools, + org.mozilla.javascript.tools.debugger, + org.mozilla.javascript.tools.debugger.treetable, + org.mozilla.javascript.tools.idswitch, + org.mozilla.javascript.tools.jsc, + org.mozilla.javascript.tools.shell, + org.mozilla.javascript.typedarrays, + org.mozilla.javascript.v8dtoa, + org.mozilla.javascript.xml, + org.mozilla.javascript.xmlimpl, + org.objenesis, + org.objenesis.instantiator, + org.objenesis.instantiator.basic, + org.objenesis.instantiator.gcj, + org.objenesis.instantiator.jrockit, + org.objenesis.instantiator.perc, + org.objenesis.instantiator.sun, + org.objenesis.strategy, + org.openapitools.codegen, + org.openapitools.codegen.api, + org.openapitools.codegen.auth, + org.openapitools.codegen.cmd, + org.openapitools.codegen.config, + org.openapitools.codegen.examples, + org.openapitools.codegen.exceptions, + org.openapitools.codegen.ignore, + org.openapitools.codegen.ignore.rules, + org.openapitools.codegen.languages, + org.openapitools.codegen.languages.features, + org.openapitools.codegen.meta, + org.openapitools.codegen.meta.features, + org.openapitools.codegen.meta.features.annotations, + org.openapitools.codegen.model, + org.openapitools.codegen.serializer, + org.openapitools.codegen.templating, + org.openapitools.codegen.templating.handlebars, + org.openapitools.codegen.templating.mustache, + org.openapitools.codegen.utils, + org.openapitools.codegen.validation, + org.openapitools.codegen.validations.oas, + org.slf4j, + org.slf4j.agent, + org.slf4j.cal10n, + org.slf4j.event, + org.slf4j.ext, + org.slf4j.helpers, + org.slf4j.impl, + org.slf4j.instrumentation, + org.slf4j.profiler, + org.slf4j.spi, + org.threeten.bp, + org.threeten.bp.chrono, + org.threeten.bp.format, + org.threeten.bp.jdk8, + org.threeten.bp.temporal, + org.threeten.bp.zone, + org.yaml.snakeyaml, + org.yaml.snakeyaml.comments, + org.yaml.snakeyaml.composer, + org.yaml.snakeyaml.constructor, + org.yaml.snakeyaml.emitter, + org.yaml.snakeyaml.env, + org.yaml.snakeyaml.error, + org.yaml.snakeyaml.events, + org.yaml.snakeyaml.extensions.compactnotation, + org.yaml.snakeyaml.external.biz.base64Coder, + org.yaml.snakeyaml.external.com.google.gdata.util.common.base, + org.yaml.snakeyaml.introspector, + org.yaml.snakeyaml.nodes, + org.yaml.snakeyaml.parser, + org.yaml.snakeyaml.reader, + org.yaml.snakeyaml.representer, + org.yaml.snakeyaml.resolver, + org.yaml.snakeyaml.scanner, + org.yaml.snakeyaml.serializer, + org.yaml.snakeyaml.tokens, + org.yaml.snakeyaml.util +Automatic-Module-Name: org.etsi.mts.tdl.openapi.generator.wrapper diff --git a/plugins/org.etsi.mts.tdl.openapi.generator.wrapper/README.md b/plugins/org.etsi.mts.tdl.openapi.generator.wrapper/README.md new file mode 100644 index 0000000000000000000000000000000000000000..2b0038941c2e58d345748ac6473abe28018e9972 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.openapi.generator.wrapper/README.md @@ -0,0 +1,3 @@ +# OpenAPI Generator Wrapper + +This plug-in wraps the [OpenAPI Generator](https://openapi-generator.tech) licensed unter the Apache 2.0 Software License for consumption as an Eclipse plug-in. It is currently used as a dependency in the OpenAPI-to-TDL generator and in the OpenAPI Generator UI components. \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.openapi.generator.wrapper/build.properties b/plugins/org.etsi.mts.tdl.openapi.generator.wrapper/build.properties new file mode 100644 index 0000000000000000000000000000000000000000..948c28979fb4a207c4a32617ead2251ba716b495 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.openapi.generator.wrapper/build.properties @@ -0,0 +1,2 @@ +bin.includes = META-INF/,\ + openapi-generator-cli-6.3.0.jar diff --git a/plugins/org.etsi.mts.tdl.openapi.generator.wrapper/openapi-generator-cli-6.3.0-javadoc.jar b/plugins/org.etsi.mts.tdl.openapi.generator.wrapper/openapi-generator-cli-6.3.0-javadoc.jar new file mode 100644 index 0000000000000000000000000000000000000000..5bf67c86b696f7e7eef91a1320dadba75e8c0b22 Binary files /dev/null and b/plugins/org.etsi.mts.tdl.openapi.generator.wrapper/openapi-generator-cli-6.3.0-javadoc.jar differ diff --git a/plugins/org.etsi.mts.tdl.openapi.generator.wrapper/openapi-generator-cli-6.3.0-sources.jar b/plugins/org.etsi.mts.tdl.openapi.generator.wrapper/openapi-generator-cli-6.3.0-sources.jar new file mode 100644 index 0000000000000000000000000000000000000000..dee84f9739105564c7acb24c32c3ca1740725764 Binary files /dev/null and b/plugins/org.etsi.mts.tdl.openapi.generator.wrapper/openapi-generator-cli-6.3.0-sources.jar differ diff --git a/plugins/org.etsi.mts.tdl.openapi.generator.wrapper/openapi-generator-cli-6.3.0.jar b/plugins/org.etsi.mts.tdl.openapi.generator.wrapper/openapi-generator-cli-6.3.0.jar new file mode 100644 index 0000000000000000000000000000000000000000..4949a0640d27449bb844d625dde2c12dedb58bed Binary files /dev/null and b/plugins/org.etsi.mts.tdl.openapi.generator.wrapper/openapi-generator-cli-6.3.0.jar differ diff --git a/plugins/org.etsi.mts.tdl.openapi.generator.wrapper/pom.xml b/plugins/org.etsi.mts.tdl.openapi.generator.wrapper/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..c282530a93c09ed34f0dbf0025c5eea81616da5e --- /dev/null +++ b/plugins/org.etsi.mts.tdl.openapi.generator.wrapper/pom.xml @@ -0,0 +1,19 @@ + + 4.0.0 + + org.etsi.mts.tdl + org.etsi.mts.tdl.parent + 1.0.0-SNAPSHOT + ../../org.etsi.mts.tdl.parent + + + org.etsi.mts.tdl.openapi.generator.wrapper + eclipse-plugin + + + + maven-compiler-plugin + + + + \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.openapi2tdl.next/.classpath b/plugins/org.etsi.mts.tdl.openapi2tdl.next/.classpath new file mode 100644 index 0000000000000000000000000000000000000000..685a6999c9acba0d0158b0929d7a4d384644452e --- /dev/null +++ b/plugins/org.etsi.mts.tdl.openapi2tdl.next/.classpath @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/plugins/org.etsi.mts.tdl.openapi2tdl.next/.project b/plugins/org.etsi.mts.tdl.openapi2tdl.next/.project new file mode 100644 index 0000000000000000000000000000000000000000..d55fca75999fa06f1d3f9c87927a95f26a1c08e8 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.openapi2tdl.next/.project @@ -0,0 +1,45 @@ + + + org.etsi.mts.tdl.openapi2tdl.next + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.eclipse.m2e.core.maven2Nature + org.eclipse.pde.PluginNature + org.eclipse.jdt.core.javanature + + + + 1681418408824 + + 30 + + org.eclipse.core.resources.regexFilterMatcher + node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__ + + + + diff --git a/plugins/org.etsi.mts.tdl.openapi2tdl.next/.settings/org.eclipse.core.resources.prefs b/plugins/org.etsi.mts.tdl.openapi2tdl.next/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000000000000000000000000000000000000..99f26c0203a7844de00dbfc56e6a35d8ed3c022c --- /dev/null +++ b/plugins/org.etsi.mts.tdl.openapi2tdl.next/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/plugins/org.etsi.mts.tdl.openapi2tdl.next/.settings/org.eclipse.jdt.core.prefs b/plugins/org.etsi.mts.tdl.openapi2tdl.next/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000000000000000000000000000000000000..c9545f06a4120d5b4a1228fb19f67a1171bc0f5b --- /dev/null +++ b/plugins/org.etsi.mts.tdl.openapi2tdl.next/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,9 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=11 +org.eclipse.jdt.core.compiler.compliance=11 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning +org.eclipse.jdt.core.compiler.release=enabled +org.eclipse.jdt.core.compiler.source=11 diff --git a/plugins/org.etsi.mts.tdl.openapi2tdl.next/.settings/org.eclipse.m2e.core.prefs b/plugins/org.etsi.mts.tdl.openapi2tdl.next/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000000000000000000000000000000000000..f897a7f1cb2389f85fe6381425d29f0a9866fb65 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.openapi2tdl.next/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/plugins/org.etsi.mts.tdl.openapi2tdl.next/META-INF/MANIFEST.MF b/plugins/org.etsi.mts.tdl.openapi2tdl.next/META-INF/MANIFEST.MF new file mode 100644 index 0000000000000000000000000000000000000000..e196d606a95e4174bd70c00fc8257a4220e77c1a --- /dev/null +++ b/plugins/org.etsi.mts.tdl.openapi2tdl.next/META-INF/MANIFEST.MF @@ -0,0 +1,17 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: OpenAPI to TDL Translator (Next) +Bundle-SymbolicName: org.etsi.mts.tdl.openapi2tdl.next;singleton:=true +Bundle-Version: 1.0.0.qualifier +Bundle-Vendor: European Telecommunications Standards Institute (ETSI) +Automatic-Module-Name: org.etsi.mts.tdl.openapi2tdl.next +Require-Bundle: org.etsi.mts.tdl.model, + org.etsi.mts.tdl.common, + org.etsi.mts.tdl.openapi.generator.wrapper, + org.etsi.mts.tdl.helper, + org.eclipse.ui;resolution:=optional, + org.eclipse.core.resources;resolution:=optional, + org.eclipse.core.runtime;bundle-version="3.26.100";resolution:=optional +Export-Package: org.etsi.mts.tdl.openapi2tdl.next, + org.etsi.mts.tdl.openapi2tdl.next.doc +Bundle-ClassPath: . diff --git a/plugins/org.etsi.mts.tdl.openapi2tdl.next/build.properties b/plugins/org.etsi.mts.tdl.openapi2tdl.next/build.properties new file mode 100644 index 0000000000000000000000000000000000000000..110a2d2dcf728557f3b95feaadcbceec80f8c351 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.openapi2tdl.next/build.properties @@ -0,0 +1,5 @@ +source.. = src/ +output.. = target/classes/ +bin.includes = META-INF/,\ + .,\ + plugin.xml diff --git a/plugins/org.etsi.mts.tdl.openapi2tdl.next/plugin.xml b/plugins/org.etsi.mts.tdl.openapi2tdl.next/plugin.xml new file mode 100644 index 0000000000000000000000000000000000000000..9a5e5528f8af18a8d08dfd284a5a4c3e532efc49 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.openapi2tdl.next/plugin.xml @@ -0,0 +1,15 @@ + + + + + + + + + diff --git a/plugins/org.etsi.mts.tdl.openapi2tdl.next/pom.xml b/plugins/org.etsi.mts.tdl.openapi2tdl.next/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..2d24637106596906f784d4b1e110bb23b8fc16b2 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.openapi2tdl.next/pom.xml @@ -0,0 +1,19 @@ + + 4.0.0 + + org.etsi.mts.tdl + org.etsi.mts.tdl.parent + 1.0.0-SNAPSHOT + ../../org.etsi.mts.tdl.parent + + + org.etsi.mts.tdl.openapi2tdl.next + eclipse-plugin + + + + maven-compiler-plugin + + + + \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.openapi2tdl.next/src/org/etsi/mts/tdl/openapi2tdl/next/ConverterNext.java b/plugins/org.etsi.mts.tdl.openapi2tdl.next/src/org/etsi/mts/tdl/openapi2tdl/next/ConverterNext.java new file mode 100644 index 0000000000000000000000000000000000000000..94e6c92da3d041aee8562773da2cbebfec8d4388 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.openapi2tdl.next/src/org/etsi/mts/tdl/openapi2tdl/next/ConverterNext.java @@ -0,0 +1,93 @@ +package org.etsi.mts.tdl.openapi2tdl.next; + +import java.io.File; + +import org.eclipse.emf.ecore.resource.Resource; +import org.etsi.mts.tdl.helper.TDLHelper; +import org.etsi.mts.tdl.transform.AbstractTranslator; +import org.openapitools.codegen.utils.ModelUtils; + +import io.swagger.parser.OpenAPIParser; +import io.swagger.v3.oas.models.OpenAPI; +import io.swagger.v3.parser.core.models.ParseOptions; +import io.swagger.v3.parser.util.InlineModelResolver; +import org.etsi.mts.tdl.Package; + +public class ConverterNext { + + public static void main(String[] args) throws Exception { + String filename = args[0]; + process(filename, filename+"-generated-new.tdltx"); + } + + public static String processToString(String inputPath, String outputPath) { + return processToString(inputPath, outputPath, "SOURCE_MAPPING", "TARGET_MAPPING"); + } + + public static String processToString(String inputPath, String outputPath, String sourceMapping, String targetMapping) { + return processToString(inputPath, outputPath, sourceMapping, targetMapping, false); + } + + public static String getTargetPackageName(String inputPath) { + return AbstractTranslator.cleanName(new File(inputPath).getName()); + } + + public static String processToString(String inputPath, String outputPath, String sourceMapping, String targetMapping, boolean inline) { +// OpenAPI spec = parseSpec(inputPath); + System.out.println("Exporting: "+outputPath+ " : "+ new File(outputPath).getAbsolutePath()); + OpenAPI2TDLTranslatorNext translator = new OpenAPI2TDLTranslatorNext(); + String content = "Package imported {}"; + try { + Resource tr = TDLHelper.create(outputPath); + translator.setTargetResource(tr); + translator.initTargetResource(getTargetPackageName(inputPath)); + translator.translate(inputPath, sourceMapping, targetMapping, inline); + content = TDLHelper.getText(tr); + } catch (Exception e) { + e.printStackTrace(); + } + return content; + } + + + public static String process(String inputPath, String outputPath) { + OpenAPI spec = parseSpec(inputPath); + AbstractTranslator translator = new OpenAPI2TDLTranslatorNext(); + String name = "imported"; + try { + Resource tr = TDLHelper.create(outputPath); + translator.setTargetResource(tr); + translator.initTargetResource(translator.cleanName(new File(inputPath).getName())); + translator.translate(inputPath); + name = ((Package) tr.getContents().get(0)).getName(); + TDLHelper.store(tr); + } catch (Exception e) { + e.printStackTrace(); + } + return name; + } + + + + /** + * Helper method for parsing specs into an intermediary OpenAPI structure for pre-processing. + * + * Use this method only for tests targeting processing helpers such as {@link org.openapitools.codegen.utils.ModelUtils} + * or {@link InlineModelResolver}. Using this for testing generators will mean you're not testing the OpenAPI document + * in a state the generator will be presented at runtime. + * + * @param specFilePath The path to the specification file + * @return A "raw" OpenAPI document + */ + public static OpenAPI parseSpec(String specFilePath) { + OpenAPI openAPI = new OpenAPIParser().readLocation(specFilePath, null, new ParseOptions()).getOpenAPI(); + // Invoke helper function to get the original swagger version. + // See https://github.com/swagger-api/swagger-parser/pull/1374 + // Also see https://github.com/swagger-api/swagger-parser/issues/1369. + ModelUtils.getOpenApiVersion(openAPI, specFilePath, null); + + InlineModelResolver inlineModelResolver = new InlineModelResolver(); + inlineModelResolver.flatten(openAPI); + return openAPI; + } +} diff --git a/plugins/org.etsi.mts.tdl.openapi2tdl.next/src/org/etsi/mts/tdl/openapi2tdl/next/OpenAPI2TDLTranslatorNext.java b/plugins/org.etsi.mts.tdl.openapi2tdl.next/src/org/etsi/mts/tdl/openapi2tdl/next/OpenAPI2TDLTranslatorNext.java new file mode 100644 index 0000000000000000000000000000000000000000..42f73fd5397f8c6a81c8b60a526f926d9ff36657 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.openapi2tdl.next/src/org/etsi/mts/tdl/openapi2tdl/next/OpenAPI2TDLTranslatorNext.java @@ -0,0 +1,666 @@ +package org.etsi.mts.tdl.openapi2tdl.next; + +import java.io.File; +import java.util.Collections; +import java.util.HashSet; +import java.util.Hashtable; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.eclipse.core.resources.IProject; +import org.eclipse.core.resources.ProjectScope; +import org.eclipse.emf.ecore.resource.Resource; +import org.etsi.mts.tdl.Annotation; +import org.etsi.mts.tdl.AnnotationType; +import org.etsi.mts.tdl.CollectionDataType; +import org.etsi.mts.tdl.DataElementMapping; +import org.etsi.mts.tdl.DataElementUse; +import org.etsi.mts.tdl.DataInstance; +import org.etsi.mts.tdl.DataResourceMapping; +import org.etsi.mts.tdl.DataType; +import org.etsi.mts.tdl.ElementImport; +import org.etsi.mts.tdl.EnumDataType; +import org.etsi.mts.tdl.Extension; +import org.etsi.mts.tdl.LiteralValueUse; +import org.etsi.mts.tdl.Member; +import org.etsi.mts.tdl.MemberAssignment; +import org.etsi.mts.tdl.NamedElement; +import org.etsi.mts.tdl.Package; +import org.etsi.mts.tdl.PackageableElement; +import org.etsi.mts.tdl.ParameterMapping; +import org.etsi.mts.tdl.SimpleDataInstance; +import org.etsi.mts.tdl.SimpleDataType; +import org.etsi.mts.tdl.StructuredDataInstance; +import org.etsi.mts.tdl.StructuredDataType; +import org.etsi.mts.tdl.tdlFactory; +import org.etsi.mts.tdl.tdlPackage; +import org.etsi.mts.tdl.helper.TDLHelper; +import org.etsi.mts.tdl.transform.AbstractTranslator; +import org.openapitools.codegen.ClientOptInput; +import org.openapitools.codegen.CodegenConfig; +import org.openapitools.codegen.CodegenModel; +import org.openapitools.codegen.CodegenProperty; +import org.openapitools.codegen.DefaultGenerator; +import org.openapitools.codegen.config.CodegenConfigurator; +import org.openapitools.codegen.languages.JavaClientCodegen; +import org.openapitools.codegen.model.ModelMap; +import org.openapitools.codegen.utils.ModelUtils; +import org.osgi.service.prefs.Preferences; + +import io.swagger.parser.OpenAPIParser; +import io.swagger.v3.oas.models.OpenAPI; +import io.swagger.v3.oas.models.Operation; +import io.swagger.v3.oas.models.PathItem; +import io.swagger.v3.oas.models.PathItem.HttpMethod; +import io.swagger.v3.oas.models.Paths; +import io.swagger.v3.oas.models.media.MediaType; +import io.swagger.v3.oas.models.media.Schema; +import io.swagger.v3.oas.models.parameters.RequestBody; +import io.swagger.v3.parser.core.models.ParseOptions; +import io.swagger.v3.parser.util.InlineModelResolver; + +public class OpenAPI2TDLTranslatorNext extends AbstractTranslator { + + // TODO: cleanup and prepare for release + private OpenAPI model; + + private boolean isXtext = false; + private Set xtextKyewords; + + private Package theTdlPackage; + + public void translate(String filename) throws Exception { + translate(filename, sourceMappingTag, targetMappingTag); + } + + public void translate(String filename, String sourceMappingTag, String targetMappingTag) throws Exception { + translate(filename, sourceMappingTag, targetMappingTag, false); + } + + public void translate(String filename, String sourceMappingTag, String targetMappingTag, boolean inline) + throws Exception { + sourceMappingTag = "OpenAPISpecification"; + targetMappingTag = "JavaTypesPackage"; +// Converter.setTdlTokens(Arrays.asList(new String[] {"'name'", "'type'", "'size'", "'instance'"})); +// Converter converter = new Converter(filename); +// converter.runConversion(); +// getGeneratedPackage().getNestedPackage().add(converter.getPackage()); + // TODO: refine according to other translators + // TODO: separate validation into another component + + model = parseSpec(filename, inline); + if (model.getInfo().getTitle() != null) + getGeneratedPackage().setName(cleanName(model.getInfo().getTitle())); + drm = getTypeFor(sourceMappingTag, tdlPackage.Literals.DATA_RESOURCE_MAPPING); + drm.setResourceURI(new File(filename).getName()); + + + theTdlPackage = TDLHelper.getTdlPackage(getTargetResource()); + if (theTdlPackage != null) { + ElementImport importTdl = tdlFactory.eINSTANCE.createElementImport(); + importTdl.setImportedPackage(theTdlPackage); + getGeneratedPackage().getImport().add(importTdl); + // TODO Remove default string type + getGeneratedPackage().getPackagedElement().remove(stringType); + } + + IProject project = TDLHelper.getProjectForResource(getTargetResource()); + Preferences preferences = null; + if (project != null) { + ProjectScope ps = new ProjectScope(project); + preferences = ps.getNode(PropertyPage.PREFERENCE_SCOPE); + } + + Package httpPackage = TDLHelper.getHttpPackage(getTargetResource()); + Package httpMessageBasedPackage = null; + boolean useMessageBasedApi = true; + if (preferences != null) + useMessageBasedApi = !preferences.getBoolean(PropertyPage.PROCEDURE_BASED, false); + StructuredDataType messageBody = null; + if (useMessageBasedApi) { + if (httpPackage != null) { + packages: for (Package p : httpPackage.getNestedPackage()) { + for (PackageableElement e : p.getPackagedElement()) { + if (e.eClass().equals(tdlPackage.eINSTANCE.getStructuredDataType()) + && e.getName().equals("Body")) { + messageBody = (StructuredDataType) e; + httpMessageBasedPackage = p; + break packages; + } + } + } + if (httpMessageBasedPackage != null) { + ElementImport importHttp = tdlFactory.eINSTANCE.createElementImport(); + importHttp.setImportedPackage(httpMessageBasedPackage); + getGeneratedPackage().getImport().add(importHttp); + } + } + } + + // Java mappings + Package mappingsPackage = null; + Package javaPackage = null; + boolean generateJavaMappings = true; + if (preferences != null) + generateJavaMappings = preferences.getBoolean(PropertyPage.GENERATE_JAVA_MAPPING, false); + if (generateJavaMappings) { + mappingsPackage = tdlFactory.eINSTANCE.createPackage(); + mappingsPackage.setName("JavaMapping"); + getGeneratedPackage().getNestedPackage().add(mappingsPackage); + ElementImport typesImport = tdlFactory.eINSTANCE.createElementImport(); + typesImport.setImportedPackage(getGeneratedPackage()); + mappingsPackage.getImport().add(typesImport); + if (theTdlPackage != null) { + ElementImport tdlImport = tdlFactory.eINSTANCE.createElementImport(); + tdlImport.setImportedPackage(theTdlPackage); + mappingsPackage.getImport().add(tdlImport); + } + javaPackage = TDLHelper.getJavaPackage(getTargetResource()); + if (javaPackage != null) { + ElementImport javaImport = tdlFactory.eINSTANCE.createElementImport(); + javaImport.setImportedPackage(javaPackage); + mappingsPackage.getImport().add(javaImport); + } + drmTarget = getTypeFor(targetMappingTag, tdlPackage.Literals.DATA_RESOURCE_MAPPING); + mappingsPackage.getPackagedElement().add(drmTarget); + drmTarget.setResourceURI(preferences.get(PropertyPage.JAVA_API_PACKAGE, "generated.java")); + if (javaPackage != null) { + for (PackageableElement e : javaPackage.getPackagedElement()) { + if (e.eClass().equals(tdlPackage.eINSTANCE.getAnnotationType()) + && e.getName().equals("JavaPackage")) { + Annotation annot = tdlFactory.eINSTANCE.createAnnotation(); + annot.setKey((AnnotationType) e); + drmTarget.getAnnotation().add(annot); + break; + } + } + } + for (PackageableElement e : theTdlPackage.getPackagedElement()) { + if (e.eClass().equals(tdlPackage.eINSTANCE.getAnnotationType()) + && e.getName().equals("MappingName")) { + Annotation annot = tdlFactory.eINSTANCE.createAnnotation(); + annot.setKey((AnnotationType) e); + annot.setValue("Java"); + // XXX disabled due to serialization problem + // drmTarget.getAnnotation().add(annot); + break; + } + } + } + + + // Map operations to request body schemas so we can create wrappers later + Map> schemaOperations = new Hashtable<>(); + Paths paths = model.getPaths(); + for (String pathUri: paths.keySet()) { + PathItem path = paths.get(pathUri); + Map ops = path.readOperationsMap(); + for (HttpMethod method : ops.keySet()) { + Operation op = ops.get(method); + RequestBody req = op.getRequestBody(); + if (req != null) { + MediaType jsonContent = req.getContent().get("application/json"); + if (jsonContent != null) { + Schema schema = jsonContent.getSchema(); + boolean array = false; + if (schema.getType() != null && schema.getType().equals("array")) { + schema = schema.getItems(); + array = true; + } + String schemaName = schema.get$ref(); + schemaName = schemaName.replace("#/components/schemas/", ""); + Set set = schemaOperations.get(schemaName); + if (set == null) { + set = new HashSet<>(); + schemaOperations.put(schemaName, set); + } + set.add(new PathOperation(pathUri, method, op, array)); + } + } + } + } + + + StructuredDataType httpRequest = null; + EnumDataType httpMethodEnum = null; + if (httpMessageBasedPackage != null) { + for (PackageableElement e : httpMessageBasedPackage.getPackagedElement()) { + if (e.eClass().equals(tdlPackage.eINSTANCE.getStructuredDataType())) { + if (e.getName().equals("Request")) + httpRequest = (StructuredDataType) e; + } else if (e.eClass().equals(tdlPackage.eINSTANCE.getEnumDataType())) { + if (e.getName().equals("Method")) + httpMethodEnum = (EnumDataType) e; + } + } + } + for (String schemaName : model.getComponents().getSchemas().keySet()) { + Schema schema = model.getComponents().getSchemas().get(schemaName); + schema.setName(schemaName); + DataType dataType = translate(schema, "", messageBody); + + //Operation wrappers + + if (useMessageBasedApi) { + Set ops = schemaOperations.get(schemaName); + if (ops != null) { + for (PathOperation pathOperation : ops) { + Operation op = pathOperation.operation; + + String name = op.getOperationId(); + if (name == null) + name = pathOperation.path; + + StructuredDataInstance requestData = getStructuredDataInstanceFor(name); + requestData.setDataType(httpRequest); + + setMemberValue(requestData, "uri", pathOperation.path); + + SimpleDataInstance methodValue = findContentWithName(pathOperation.method.name(), httpMethodEnum, tdlPackage.eINSTANCE.getSimpleDataInstance()); + setMemberValue(requestData, "method", methodValue); + +// for (Parameter par: op.getParameters()) { +// System.out.println(par); +// } +// Member headersMember = findContentWithName("headers", httpRequest, tdlPackage.eINSTANCE.getMember()); +// Member parametersMember = findContentWithName("parameters", httpRequest, tdlPackage.eINSTANCE.getMember()); + } + } + } + } + + if (generateJavaMappings) + addMappings(filename, mappingsPackage, drmTarget, javaPackage); + + ensureUniqueNames(getGeneratedPackage()); + } + + private void setMemberValue(StructuredDataInstance data, String memberName, Object value) { + + Member uriMember = findContentWithName(memberName, data.getDataType(), tdlPackage.eINSTANCE.getMember()); + MemberAssignment assignment = tdlFactory.eINSTANCE.createMemberAssignment(); + assignment.setMember(uriMember); + if (value instanceof String) { + LiteralValueUse dataUse = tdlFactory.eINSTANCE.createLiteralValueUse(); + dataUse.setValue((String) value); + assignment.setMemberSpec(dataUse); + + } else if (value instanceof DataInstance) { + DataElementUse dataUse = tdlFactory.eINSTANCE.createDataElementUse(); + dataUse.setDataElement((DataInstance) value); + assignment.setMemberSpec(dataUse); + } + data.getMemberAssignment().add(assignment); + + } + + @Override + public void setTargetResource(Resource targetResource) { + super.setTargetResource(targetResource); + + Class resourceClass = targetResource.getClass(); + do { + // Flaky + if (resourceClass.getSimpleName().equals("XtextResource")) { + isXtext = true; + break; + } + resourceClass = resourceClass.getSuperclass(); + } while (resourceClass != null); + + if (isXtext) + xtextKyewords = TDLHelper.getTdlGrammarKeywords(); + } + + private void addMapping(Schema schema, DataType dataType, String sourceMappingTag, String targetMappingTag) { + DataElementMapping sourceMapping = addDataElementMapping("#/components/schemas/" + schema.getName() + "", + dataType, sourceMappingTag); + + // TODO: make configurable? + DataElementMapping targetMapping = addDataElementMapping("" + schema.getName() + "", dataType, + targetMappingTag); + targetMapping.setDataResourceMapping(drmTarget); + + if (dataType instanceof StructuredDataType) { + for (Member m : ((StructuredDataType) dataType).getMember()) { + addParameterMapping(sourceMapping, m, m.getName()); + addParameterMapping(targetMapping, m, m.getName()); + } + } + } + + private DataType translate(Schema schema, String prefix, DataType superType) { + if (schema.getType() == null && (schema.getProperties() == null || schema.getProperties().isEmpty())) { + if (schema.getName() == null) { + System.out.println("Why?"); + } + return translateSimpleType(schema, superType); + } else { + String name = prefix + schema.getName(); + if (schema.getName() == null) { + name = prefix + "___item"; + } + if (schema.getProperties() != null && !schema.getProperties().isEmpty() + || schema.getType().equals("object")) { + DataType t = translateObject(schema, name); + addSuperType(t, superType); + return t; + } else if (schema.getType().equals("array")) { + return translateArray(schema, name); + } else { + return translateSimpleType(schema, superType); + } + } + } + + private DataType translateSimpleType(Schema schema, DataType superType) { + String name = schema.getName(); + if (name == null) + name = schema.getType(); + + if (this.theTdlPackage != null) { + if (name.equals("string") || name.equals("integer") || name.equals("boolean")) { + name = name.replaceFirst(Character.toString(name.charAt(0)), + Character.toString(name.charAt(0)).toUpperCase()); + for (PackageableElement pe : this.theTdlPackage.getPackagedElement()) { + if (pe.eClass().equals(tdlPackage.eINSTANCE.getSimpleDataType()) && pe.getName().equals(name)) + return (DataType) pe; + } + } + } + if (schema.getEnum() != null) { + EnumDataType t = getEnumDataTypeFor(name); + if (t.getValue().isEmpty()) + for (Object literal : schema.getEnum()) { + if (literal instanceof String) { + SimpleDataInstance literalData = tdlFactory.eINSTANCE.createSimpleDataInstance(); + literalData.setName(getCleanName((String) literal)); + literalData.setDataType(t); + t.getValue().add(literalData); + } + // TODO what if enum literals are not Strings? + } + return t; + + } else { + SimpleDataType t = getSimpleDataTypeFor(name); + addSuperType(t, superType); + return t; + } + } + + private void addSuperType(T type, T superType) { + if (superType == null) + return; + List ext = null; + if (type instanceof SimpleDataType) { + Extension extension = ((SimpleDataType) type).getExtension(); + if (extension != null) + ext = Collections.singletonList(extension); + } + if (type instanceof StructuredDataType) + ext = ((StructuredDataType) type).getExtension(); + if (ext == null) + return; + for (Extension e : ext) { + if (e.getExtending().equals(superType)) + return; + } + Extension e = tdlFactory.eINSTANCE.createExtension(); + e.setExtending(superType); + if (type instanceof SimpleDataType) + ((SimpleDataType) type).setExtension(e); + if (type instanceof StructuredDataType) + ((StructuredDataType) type).getExtension().add(e); + } + + private DataType translateObject(Schema schema, String name) { + StructuredDataType dataType = getStructuredDataTypeFor(name); + if (schema.getProperties() == null || !dataType.getMember().isEmpty()) { + return dataType; + } + for (Object propertyName : schema.getProperties().keySet()) { + Schema propertySchema = (Schema) schema.getProperties().get(propertyName); + String reference = propertySchema.get$ref(); + DataType memberType = null; + if (reference != null) { + Schema referencedSchema = ModelUtils.getReferencedSchema(model, propertySchema); + referencedSchema.setName(ModelUtils.getSimpleRef(reference)); + memberType = translate(referencedSchema, "", null); + } else { + memberType = translate(propertySchema, name + "___", null); + } + Member m = getContentWithName((String) propertyName, dataType, tdlPackage.Literals.MEMBER); + m.setDataType(memberType); + if (m.container() == null) { + dataType.getMember().add(m); + } + } + return dataType; + } + + private DataType translateArray(Schema schema, String name) { + Schema itemsSchema = schema.getItems(); + String reference = itemsSchema.get$ref(); + DataType itemType; + if (reference != null) { + Schema referencedSchema = ModelUtils.getReferencedSchema(model, itemsSchema); + referencedSchema.setName(ModelUtils.getSimpleRef(reference)); + itemType = translate(referencedSchema, "", null); + } else { + itemType = translate(itemsSchema, name, null); + } + CollectionDataType collectionType = getTypeFor(itemType.getName() + "_collection", + tdlPackage.Literals.COLLECTION_DATA_TYPE); + collectionType.setItemType(itemType); + return collectionType; + } + + public String getCleanName(String name) { + + String replacement = name; + if (isXtext) { + if (replacement.matches(idStartDigitRegex)) + replacement = "_" + replacement; + replacement = replacement.replaceAll(idInvalidCharRegex, "_"); + // This isn't needed because keywords are escaped by IDValueConverter + /* + * if (xtextKyewords.contains(replacement)) { replacement = "^" + replacement; } + */ + } + + return replacement; + } + + public void ensureUniqueNames(Package p) { + Set names = new HashSet<>(); + for (PackageableElement pe: p.getPackagedElement()) { + makeUnique(pe, names); + if (pe instanceof EnumDataType) + for (PackageableElement l: ((EnumDataType) pe).getValue()) + makeUnique(l, names); + else if (pe instanceof Package) { + ensureUniqueNames((Package) pe); + } + } + + } + + private void makeUnique(NamedElement e, Set names) { + String name = e.getName(); + int i = 1; + String newName = name; + while (names.contains(newName)) { + newName = name + "_" + i++; + } + if (!newName.equals(name)) + e.setName(newName); + names.add(newName); + } + + /** + * Helper method for parsing specs into an intermediary OpenAPI structure for + * pre-processing. + * + * Use this method only for tests targeting processing helpers such as + * {@link org.openapitools.codegen.utils.ModelUtils} or + * {@link InlineModelResolver}. Using this for testing generators will mean + * you're not testing the OpenAPI document in a state the generator will be + * presented at runtime. + * + * @param specFilePath The path to the specification file + * @return A "raw" OpenAPI document + */ + public static OpenAPI parseSpec(String specFilePath, Boolean processInline) { + OpenAPI openAPI = new OpenAPIParser().readLocation(specFilePath, null, new ParseOptions()).getOpenAPI(); + // Invoke helper function to get the original swagger version. + // See https://github.com/swagger-api/swagger-parser/pull/1374 + // Also see https://github.com/swagger-api/swagger-parser/issues/1369. + ModelUtils.getOpenApiVersion(openAPI, specFilePath, null); + + // DONE: make optional and expose for configuration + if (processInline) { + InlineModelResolver inlineModelResolver = new InlineModelResolver(); + inlineModelResolver.flatten(openAPI); + } + + return openAPI; + } + + class PathOperation { + String path; + HttpMethod method; + Operation operation; + boolean array; + public PathOperation(String path, HttpMethod method, Operation operation, boolean array) { + this.path = path; + this.method = method; + this.operation = operation; + this.array = array; + } + } + + public void addMappings(String filename, Package mappingsPackage, DataResourceMapping resourceMapping, Package javaPackage) { + + CodegenConfigurator configurator = new CodegenConfigurator(); + // We create our own but the setting is required by the configurator + configurator.setGeneratorName("java"); + configurator.setInputSpec(filename); + // Set rest of configuration options directly to config (JavaClientCodegen) + + // Originally... + // ClientOptInput clientOptInput = configurator.toClientOptInput(); + CodegenConfig config = new JavaClientCodegen() { + @Override + public Map postProcessSupportingFileData(Map objs) { + + AnnotationType getterAnnotation = null; + AnnotationType setterAnnotation = null; + AnnotationType classAnnotation = null; + if (javaPackage != null) { + for (PackageableElement e : javaPackage.getPackagedElement()) { + if (e.eClass().equals(tdlPackage.eINSTANCE.getAnnotationType())) { + if (e.getName().equals("JavaGetter")) + getterAnnotation = (AnnotationType) e; + if (e.getName().equals("JavaSetter")) + setterAnnotation = (AnnotationType) e; + if (e.getName().equals("JavaClass")) + classAnnotation = (AnnotationType) e; + } + } + } + + List allModels = (List) objs.get("models"); + for (ModelMap modelMap : allModels) { + CodegenModel codeGen = modelMap.getModel(); + String name = codeGen.getName(); + DataType type = null; + if (codeGen.isEnum) + type = getEnumDataTypeFor(name); + else + type = getStructuredDataTypeFor(name); + + DataElementMapping eMapping = tdlFactory.eINSTANCE.createDataElementMapping(); + mappingsPackage.getPackagedElement().add(eMapping); + eMapping.setName(getCleanName(name) + "_Mapping"); + eMapping.setMappableDataElement(type); + eMapping.setElementURI(codeGen.getClassname()); + eMapping.setDataResourceMapping(resourceMapping); + Annotation ca = tdlFactory.eINSTANCE.createAnnotation(); + ca.setKey(classAnnotation); + eMapping.getAnnotation().add(ca); + + if (type instanceof EnumDataType) { + + List> enumVars = (List>) codeGen.getAllowableValues().get("enumVars"); + for (Map enumVar : enumVars) { + String javaName = enumVar.get("name"); + String modelName = enumVar.get("value"); + // Wrapped in "" + modelName = modelName.substring(1, modelName.length() - 1); + + SimpleDataInstance literal = null; + for (SimpleDataInstance l: ((EnumDataType) type).getValue()) { + if (l.getName().equals(getCleanName(modelName))) { + literal = l; + break; + } + } + if (literal == null) + continue; + + DataElementMapping lMapping = tdlFactory.eINSTANCE.createDataElementMapping(); + mappingsPackage.getPackagedElement().add(lMapping); + lMapping.setName(getCleanName(name) + "_" + getCleanName(modelName) + "_Mapping"); + lMapping.setMappableDataElement(literal); + lMapping.setElementURI(javaName); + lMapping.setDataResourceMapping(resourceMapping); + } + + } else if (type instanceof StructuredDataType) { + for (CodegenProperty var: codeGen.getVars()) { + String vName = var.getBaseName(); + Member member = null; + for (Member m: ((StructuredDataType) type).allMembers()) { + if (m.getName().equals(getCleanName(vName))) { + member = m; + break; + } + } + if (member == null) + continue; + + ParameterMapping pMapping = tdlFactory.eINSTANCE.createParameterMapping(); + eMapping.getParameterMapping().add(pMapping); + pMapping.setParameter(member); + pMapping.setParameterURI(var.getName()); + + if (getterAnnotation != null && setterAnnotation != null) { + Annotation ga = tdlFactory.eINSTANCE.createAnnotation(); + ga.setKey(getterAnnotation); + ga.setValue(var.getGetter()); + pMapping.getAnnotation().add(ga); + Annotation sa = tdlFactory.eINSTANCE.createAnnotation(); + sa.setKey(setterAnnotation); + sa.setValue(var.getSetter()); + pMapping.getAnnotation().add(sa); + } + } + } + } + //return super.postProcessSupportingFileData(objs); + return objs; + } + }; + // TODO configure if needed + ClientOptInput input = new ClientOptInput().config(config); + //input.userDefinedTemplates(userDefinedTemplates); + input.openAPI((OpenAPI) configurator.toContext().getSpecDocument()); + + DefaultGenerator generator = new DefaultGenerator(true); + generator.opts(input); + generator.generate(); + } + +} diff --git a/plugins/org.etsi.mts.tdl.openapi2tdl.next/src/org/etsi/mts/tdl/openapi2tdl/next/PropertyPage.java b/plugins/org.etsi.mts.tdl.openapi2tdl.next/src/org/etsi/mts/tdl/openapi2tdl/next/PropertyPage.java new file mode 100644 index 0000000000000000000000000000000000000000..69e0b132dc954adf77f6eb64cac7252a2900f72a --- /dev/null +++ b/plugins/org.etsi.mts.tdl.openapi2tdl.next/src/org/etsi/mts/tdl/openapi2tdl/next/PropertyPage.java @@ -0,0 +1,145 @@ +package org.etsi.mts.tdl.openapi2tdl.next; + +import java.util.Arrays; +import java.util.Hashtable; +import java.util.List; +import java.util.Map; + +import org.eclipse.core.resources.IProject; +import org.eclipse.core.resources.ProjectScope; +import org.eclipse.core.runtime.IAdaptable; +import org.eclipse.jface.preference.BooleanFieldEditor; +import org.eclipse.jface.preference.FieldEditor; +import org.eclipse.jface.preference.FieldEditorPreferencePage; +import org.eclipse.jface.preference.IPreferenceStore; +import org.eclipse.jface.preference.StringFieldEditor; +import org.eclipse.jface.util.PropertyChangeEvent; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.ui.IWorkbenchPropertyPage; +import org.eclipse.ui.preferences.ScopedPreferenceStore; + +public class PropertyPage extends FieldEditorPreferencePage implements IWorkbenchPropertyPage { + + public static final String PROCEDURE_BASED = "ProcedureBased", + GENERATE_JAVA_MAPPING = "GenerateJavaMapping", + JAVA_GENERATOR = "JavaMappingGenerator", + JAVA_API_PACKAGE = "JavaApiPackage"; + + public static final String PREFERENCE_SCOPE = "org.etsi.mts.tdl.openapi2tdl"; + + private static final List REQUIRED_SETTINGS = Arrays.asList(new String[] { /* TODO */ }); + + protected IAdaptable element; + + protected Map fields = new Hashtable(); + + private StringFieldEditor javaApiPackage; + + public PropertyPage() { + super(GRID); + } + + @Override + public IAdaptable getElement() { + return element; + } + + @Override + public void setElement(IAdaptable element) { + this.element = element; + } + + @Override + protected IPreferenceStore doGetPreferenceStore() { + ProjectScope ps = new ProjectScope((IProject) this.element); + ScopedPreferenceStore scopedStore = new ScopedPreferenceStore(ps, PREFERENCE_SCOPE); + scopedStore.setDefault(JAVA_GENERATOR, "java"); + return scopedStore; + } + + @Override + protected void initialize() { + for (FieldEditor e : fields.keySet()) { + String value = getPreferenceStore().getString(e.getPreferenceName()); + fields.put(e, value); + initialize(e.getPreferenceName(), value, e); + } + super.initialize(); + } + + protected void initialize(String name, String value, FieldEditor e) { + if (name.equals(GENERATE_JAVA_MAPPING)) { + javaApiPackage.setEnabled( + Boolean.valueOf(value), + getFieldEditorParent()); + } + } + + @Override + protected void addField(FieldEditor editor) { + super.addField(editor); + fields.put(editor, ""); + } + + @Override + public void propertyChange(PropertyChangeEvent event) { + super.propertyChange(event); + if (event.getProperty().equals(FieldEditor.VALUE)) { + FieldEditor e = (FieldEditor) event.getSource(); + + String name = e.getPreferenceName(); + Object valueObj = event.getNewValue(); + String value = valueObj.toString(); + + fields.put(e, value); + + initialize(name, value, e); + + checkState(); + } + } + + @Override + protected void checkState() { + setErrorMessage(null); + super.checkState(); + } + + @Override + protected void createFieldEditors() { + + Composite parent = getFieldEditorParent(); + BooleanFieldEditor procBased = new BooleanFieldEditor(PROCEDURE_BASED, "Procedure-based API", parent); + addField(procBased); + + parent = getFieldEditorParent(); + BooleanFieldEditor genJavaMappings = new BooleanFieldEditor(GENERATE_JAVA_MAPPING, "Generate type mappings for Java", parent); + addField(genJavaMappings); + + parent = getFieldEditorParent(); + StringFieldEditor javaGenerator = new StringFieldEditor(JAVA_GENERATOR, "Code generator for mappings", parent); + javaGenerator.setEnabled(false, parent); + addField(javaGenerator); + + parent = getFieldEditorParent(); + javaApiPackage = new StringFieldEditor(JAVA_API_PACKAGE, "Java API package", parent); + addField(javaApiPackage); + + // TODO + } + + private boolean isValid(FieldEditor e) { + String name = e.getPreferenceName(); + String value = fields.get(e); + + if (REQUIRED_SETTINGS.contains(name)) { + if (value.isEmpty()) { + setErrorMessage(String.format("%s must be selected!", e.getLabelText())); + return false; + } + } + + return true; + } + +} \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.openapi2tdl.next/src/org/etsi/mts/tdl/openapi2tdl/next/doc/Describe.java b/plugins/org.etsi.mts.tdl.openapi2tdl.next/src/org/etsi/mts/tdl/openapi2tdl/next/doc/Describe.java new file mode 100644 index 0000000000000000000000000000000000000000..c6d819d969093c4232a4dfd0ff991891218dbe56 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.openapi2tdl.next/src/org/etsi/mts/tdl/openapi2tdl/next/doc/Describe.java @@ -0,0 +1,58 @@ +package org.etsi.mts.tdl.openapi2tdl.next.doc; + +import org.openapitools.codegen.utils.ModelUtils; + +import io.swagger.v3.oas.models.OpenAPI; +import io.swagger.v3.oas.models.Operation; +import io.swagger.v3.oas.models.media.Schema; +import io.swagger.v3.oas.models.parameters.Parameter; +import io.swagger.v3.oas.models.responses.ApiResponse; + +public class Describe extends OpenAPIVisitor { + + @Override + public void preamble(OpenAPI model) { + System.out.printf("Title: %s\n", model.getInfo().getTitle()); + } + + @Override + public void path(String path) { + System.out.printf("Path %s:\n", path); + } + + @Override + public void operation(String path, String method, Operation op) { + System.out.printf(" %s: [%s] %s\n", method, + op.getOperationId(), op.getSummary()); + if (op.getParameters() != null) { + for (Parameter param : op.getParameters()) { + if (param.get$ref() != null) { + param = ModelUtils.getReferencedParameter(model, param); + } + System.out.printf(" %s[%s]:, %s - %s\n", param.getName(), param.getIn(), getParameterType(param), + param.getDescription()); + } + } + if (op.getResponses() != null) { + for (String r : op.getResponses().keySet()) { + ApiResponse response = op.getResponses().get(r); + if (response.get$ref() != null) { + response = ModelUtils.getReferencedApiResponse(model, response); + } + System.out.printf(" %s: %s\n", r, response.getDescription()); + if (response.getContent() != null) { + for (String c : response.getContent().keySet()) { + Schema schema = response.getContent().get(c).getSchema(); + if (schema.get$ref() != null) { + String schemaName = ModelUtils.getSimpleRef(schema.get$ref()); + System.out.printf(" %s\n",schemaName); +// schema = ModelUtils.getReferencedSchema(model, op.getResponses().get(r).getContent().get(c).getSchema()); + } +// System.out.printf(" %s\n",op.getResponses().get(r).getContent().get(c).getSchema().getName()); + } + } + } + } + } + +} diff --git a/plugins/org.etsi.mts.tdl.openapi2tdl.next/src/org/etsi/mts/tdl/openapi2tdl/next/doc/Doc.java b/plugins/org.etsi.mts.tdl.openapi2tdl.next/src/org/etsi/mts/tdl/openapi2tdl/next/doc/Doc.java new file mode 100644 index 0000000000000000000000000000000000000000..00be99612197b60f0ea1504cce09461d41dad436 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.openapi2tdl.next/src/org/etsi/mts/tdl/openapi2tdl/next/doc/Doc.java @@ -0,0 +1,88 @@ +package org.etsi.mts.tdl.openapi2tdl.next.doc; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.Map.Entry; + +import org.etsi.mts.tdl.openapi2tdl.next.OpenAPI2TDLTranslatorNext; + +import io.swagger.v3.oas.models.OpenAPI; +import io.swagger.v3.oas.models.Operation; +import io.swagger.v3.oas.models.PathItem; +import io.swagger.v3.oas.models.PathItem.HttpMethod; + +public class Doc { + StringBuffer content = new StringBuffer(); + private OpenAPI model; + + public void append(String s) { + content.append(s); + } + + public static void main(String[] args) throws Exception { + boolean validate = !(args.length >= 1 && args[0].equals("-n")); + Doc doc = new Doc(); + doc.processModel(args[1], validate); + Files.writeString(Path.of(args[1]+"-RQ-ICS-TSS.md"), doc.content); + } + public void processModel(String filename, boolean validate) throws Exception { + + model = OpenAPI2TDLTranslatorNext.parseSpec(filename, true); +// processModel(model, Describe.init(model, content)); + append(String.format("== Model %s\n", filename)); + append("# Generated Documentation\n"); + + processModel(model, new RQ().init(model, this)); + append("\n## Implementation Conformance Statements\n"); + + processModel(model, new ICSDetail().init(model, this)); + processModel(model, new ICSMethod().init(model, this)); + processModel(model, new ICSPath().init(model, this)); + processModel(model, new ICSHierarchical().init(model, this)); + processModel(model, new TSS().init(model, this)); + + append("------\n\n"); + } + + private static void processModel(OpenAPI model, OpenAPIVisitor visitor) { + visitor.preamble(model); + for (Entry pathEntry : model.getPaths().entrySet()) { + String path = pathEntry.getKey(); + PathItem pathItem = pathEntry.getValue(); + visitor.path(path); + for (Entry o : pathItem.readOperationsMap().entrySet()) { + visitor.operation(path, o.getKey().name(), o.getValue()); + } + } + visitor.postamble(model); + + } + //convert to word with pandoc + + private static void getICSTemplate(OpenAPI model) { + String level = "Template"; + System.out.printf("\n#### %s\n\n", level); + + String header = + "| ID | Resource | Reference | Method | Type | Request | Response |\n" + + "| -- | --------- | --------- | ------ | ----- | ------- | -------- |"; + String footer = + "[Table X.Y: Extracted ICS ("+level+")]{custom-style=\"FL\"}"; + System.out.println(header); + + for (Entry pathEntry : model.getPaths().entrySet()) { + String path = pathEntry.getKey(); + PathItem pathItem = pathEntry.getValue(); + for (Entry op : pathItem.readOperationsMap().entrySet()) { + for (String r : op.getValue().getResponses().keySet()) { + } + } + } + + System.out.println(footer); + } + + public StringBuffer getContent() { + return content; + } + +} diff --git a/plugins/org.etsi.mts.tdl.openapi2tdl.next/src/org/etsi/mts/tdl/openapi2tdl/next/doc/ICSDetail.java b/plugins/org.etsi.mts.tdl.openapi2tdl.next/src/org/etsi/mts/tdl/openapi2tdl/next/doc/ICSDetail.java new file mode 100644 index 0000000000000000000000000000000000000000..bc8aa06c2e32e7e82c06b6a9d2dea523e93752ef --- /dev/null +++ b/plugins/org.etsi.mts.tdl.openapi2tdl.next/src/org/etsi/mts/tdl/openapi2tdl/next/doc/ICSDetail.java @@ -0,0 +1,74 @@ +package org.etsi.mts.tdl.openapi2tdl.next.doc; + +import java.util.List; +import java.util.Map.Entry; +import java.util.stream.Collectors; + +import org.openapitools.codegen.utils.ModelUtils; + +import io.swagger.v3.oas.models.OpenAPI; +import io.swagger.v3.oas.models.Operation; +import io.swagger.v3.oas.models.PathItem; +import io.swagger.v3.oas.models.PathItem.HttpMethod; +import io.swagger.v3.oas.models.media.Schema; +import io.swagger.v3.oas.models.parameters.Parameter; +import io.swagger.v3.oas.models.responses.ApiResponse; + +public class ICSDetail extends OpenAPIVisitor { + int ri = 0; + int oi = 0; + private String level = "Detail"; + + @Override + public void preamble(OpenAPI model) { + content.append(String.format("\n#### %s\n\n", level)); + + String header = + "| ID | Resource | Reference | Method | Type | Request | Response |\n" + + "| -- | --------- | --------- | ------ | ----- | ------- | -------- |\n"; + content.append(header); + } + + @Override + public void path(String path) { + ri = 0; + } + + @Override + public void operation(String path, String method, Operation op) { + String cleanPath = path.toUpperCase() + .replaceAll("/", "") + .replaceAll("[\\{\\}]", "_") + .replaceAll("_$", ""); + for (String r : op.getResponses().keySet()) { + ri++; + + String reference = "Path: "+path + " : "+op.getOperationId(); + String response = r; + String type = "M"; + String resource = path; + String request = "(fill in request)"; + + String id = "D_"+cleanPath + +"_"+method + +"_"+r + +"_00"+ri; + content.append( + "| " + id + + " | " + resource + + " | " + reference + + " | " + method + + " | " + type + + " | " + request + + " | " + response + + " |\n"); + } + } + + @Override + public void postamble(OpenAPI model) { + String footer = + "\n[Table X.Y: Extracted ICS ("+level+")]{custom-style=\"FL\"}\n"; + content.append(footer); + } +} diff --git a/plugins/org.etsi.mts.tdl.openapi2tdl.next/src/org/etsi/mts/tdl/openapi2tdl/next/doc/ICSHierarchical.java b/plugins/org.etsi.mts.tdl.openapi2tdl.next/src/org/etsi/mts/tdl/openapi2tdl/next/doc/ICSHierarchical.java new file mode 100644 index 0000000000000000000000000000000000000000..0361a29fb82672fe0d0c4b60df6238c478749cd9 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.openapi2tdl.next/src/org/etsi/mts/tdl/openapi2tdl/next/doc/ICSHierarchical.java @@ -0,0 +1,123 @@ +package org.etsi.mts.tdl.openapi2tdl.next.doc; + +import java.util.List; +import java.util.Map.Entry; +import java.util.stream.Collectors; + +import org.openapitools.codegen.utils.ModelUtils; + +import io.swagger.v3.oas.models.OpenAPI; +import io.swagger.v3.oas.models.Operation; +import io.swagger.v3.oas.models.PathItem; +import io.swagger.v3.oas.models.PathItem.HttpMethod; +import io.swagger.v3.oas.models.media.Schema; +import io.swagger.v3.oas.models.parameters.Parameter; +import io.swagger.v3.oas.models.responses.ApiResponse; + +public class ICSHierarchical extends OpenAPIVisitor { + int pi = 0; + int ri = 0; + int oi = 0; + private String level = "Hierarchical"; + + @Override + public void preamble(OpenAPI model) { + content.append(String.format("\n#### %s\n\n", level)); + + String header = + "| ID | Resource | Reference | Method | Type | Request | Response |\n" + + "| -- | --------- | --------- | ------ | ----- | ------- | -------- |\n"; + content.append(header); + } + + @Override + public void path(String path) { + String cleanPath = path + .replaceAll("/", "") + .replaceAll("[\\{\\}]", "_") + .replaceAll("_$", ""); + pi++; + oi = 0; + String pid = "P"+pi; + + String type = "M"; + String resource = path; + String request = "(fill in request)"; + PathItem pathItem = model.getPaths().get(path); + + List ops = pathItem.readOperationsMap().keySet().stream() + .map(e -> e.name()) + .collect(Collectors.toList()); + + List opIds = pathItem.readOperationsMap().values().stream() + .map(e -> e.getOperationId()) + .collect(Collectors.toList()); + + List allResponses = pathItem.readOperationsMap().values().stream() + .flatMap(e -> e.getResponses().keySet().stream()) + .collect(Collectors.toList()); + + String id = pid; + String methods = String.join(",", ops); + String pathReference = "Path: "+path + " : "+String.join(",", opIds); + + content.append(String.format( + "| " + id + + " | " + resource + + " | " + pathReference + + " | " + methods + + " | " + type + + " | " + request + + " | " + String.join(",", allResponses) + + " |\n")); + } + + @Override + public void operation(String path, String method, Operation op) { + oi++; + String reference = "Path: "+path + " : "+op.getOperationId(); + String responses = String.join(",", op.getResponses().keySet()); + String oid = "M"+oi; + + String pid = "P"+pi; + + String type = "M"; + String resource = path; + String request = "(fill in request)"; + + String id = pid+"_"+oid; + content.append( + "| " + id + + " | " + resource + + " | " + reference + + " | " + method + + " | " + type + + " | " + request + + " | " + responses + + " |\n"); + ri = 0; + for (String r : op.getResponses().keySet()) { + ri++; + String rid = "R"+ri; + String response = r; + id = pid+"_"+oid+"_"+rid; + + content.append(String.format( + "| " + id + + " | " + resource + + " | " + reference + + " | " + method + + " | " + type + + " | " + request + + " | " + response + + " |\n")); + } + } + + @Override + public void postamble(OpenAPI model) { + String footer = + "\n[Table X.Y: Extracted ICS ("+level+")]{custom-style=\"FL\"}\n"; + content.append(footer); + } +} diff --git a/plugins/org.etsi.mts.tdl.openapi2tdl.next/src/org/etsi/mts/tdl/openapi2tdl/next/doc/ICSMethod.java b/plugins/org.etsi.mts.tdl.openapi2tdl.next/src/org/etsi/mts/tdl/openapi2tdl/next/doc/ICSMethod.java new file mode 100644 index 0000000000000000000000000000000000000000..ca10934dcbdecd8f5367799a5c0fa6a4bea2b91d --- /dev/null +++ b/plugins/org.etsi.mts.tdl.openapi2tdl.next/src/org/etsi/mts/tdl/openapi2tdl/next/doc/ICSMethod.java @@ -0,0 +1,64 @@ +package org.etsi.mts.tdl.openapi2tdl.next.doc; + +import org.openapitools.codegen.utils.ModelUtils; + +import io.swagger.v3.oas.models.OpenAPI; +import io.swagger.v3.oas.models.Operation; +import io.swagger.v3.oas.models.media.Schema; +import io.swagger.v3.oas.models.parameters.Parameter; +import io.swagger.v3.oas.models.responses.ApiResponse; + +public class ICSMethod extends OpenAPIVisitor { + int ri = 0; + private String level = "Method"; + + @Override + public void preamble(OpenAPI model) { + content.append(String.format("\n#### %s\n\n", level)); + + String header = + "| ID | Resource | Reference | Method | Type | Request | Response |\n" + + "| -- | --------- | --------- | ------ | ----- | ------- | -------- |\n"; + content.append(header); + } + + @Override + public void path(String path) { + } + + @Override + public void operation(String path, String method, Operation op) { + String cleanPath = path + .replaceAll("/", "") + .replaceAll("[\\{\\}]", "_") + .replaceAll("_$", ""); + ri++; + String type = "M"; + String resource = path; + String request = "(fill in request)"; + + String oid = "M"+ri; + + String id = oid; + + String reference = "Path: "+path + " : "+op.getOperationId(); + String responses = String.join(",", op.getResponses().keySet()); + + content.append(String.format( + "| " + id + + " | " + resource + + " | " + reference + + " | " + method + + " | " + type + + " | " + request + + " | " + responses + + " |\n")); + } + + @Override + public void postamble(OpenAPI model) { + String footer = + "\n[Table X.Y: Extracted ICS ("+level+")]{custom-style=\"FL\"}\n"; + content.append(footer); + } +} diff --git a/plugins/org.etsi.mts.tdl.openapi2tdl.next/src/org/etsi/mts/tdl/openapi2tdl/next/doc/ICSPath.java b/plugins/org.etsi.mts.tdl.openapi2tdl.next/src/org/etsi/mts/tdl/openapi2tdl/next/doc/ICSPath.java new file mode 100644 index 0000000000000000000000000000000000000000..4ac3e478c65347b582f1e6028f16ae968c46cb80 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.openapi2tdl.next/src/org/etsi/mts/tdl/openapi2tdl/next/doc/ICSPath.java @@ -0,0 +1,78 @@ +package org.etsi.mts.tdl.openapi2tdl.next.doc; + +import java.util.List; +import java.util.Map.Entry; +import java.util.stream.Collectors; + +import org.openapitools.codegen.utils.ModelUtils; + +import io.swagger.v3.oas.models.OpenAPI; +import io.swagger.v3.oas.models.Operation; +import io.swagger.v3.oas.models.PathItem; +import io.swagger.v3.oas.models.PathItem.HttpMethod; +import io.swagger.v3.oas.models.media.Schema; +import io.swagger.v3.oas.models.parameters.Parameter; +import io.swagger.v3.oas.models.responses.ApiResponse; + +public class ICSPath extends OpenAPIVisitor { + int ri = 0; + private String level = "Path"; + + @Override + public void preamble(OpenAPI model) { + content.append(String.format("\n#### %s\n\n", level)); + + String header = + "| ID | Resource | Reference | Method | Type | Request | Response |\n" + + "| -- | --------- | --------- | ------ | ----- | ------- | -------- |\n"; + content.append(header); + } + + @Override + public void path(String path) { + String cleanPath = path + .replaceAll("/", "") + .replaceAll("[\\{\\}]", "_") + .replaceAll("_$", ""); + ri++; + String pid = "P"+ri; + + String type = "M"; + String resource = path; + String request = "(fill in request)"; + PathItem pathItem = model.getPaths().get(path); + + List ops = pathItem.readOperationsMap().keySet().stream() + .map(e -> e.name()) + .collect(Collectors.toList()); + + List opIds = pathItem.readOperationsMap().values().stream() + .map(e -> e.getOperationId()) + .collect(Collectors.toList()); + + List allResponses = pathItem.readOperationsMap().values().stream() + .flatMap(e -> e.getResponses().keySet().stream()) + .collect(Collectors.toList()); + + String id = pid; + String methods = String.join(",", ops); + String pathReference = "Path: "+path + " : "+String.join(",", opIds); + + content.append(String.format( + "| " + id + + " | " + resource + + " | " + pathReference + + " | " + methods + + " | " + type + + " | " + request + + " | " + String.join(",", allResponses) + + " |\n")); + } + + @Override + public void postamble(OpenAPI model) { + String footer = + "\n[Table X.Y: Extracted ICS ("+level+")]{custom-style=\"FL\"}\n"; + content.append(footer); + } +} diff --git a/plugins/org.etsi.mts.tdl.openapi2tdl.next/src/org/etsi/mts/tdl/openapi2tdl/next/doc/OpenAPIVisitor.java b/plugins/org.etsi.mts.tdl.openapi2tdl.next/src/org/etsi/mts/tdl/openapi2tdl/next/doc/OpenAPIVisitor.java new file mode 100644 index 0000000000000000000000000000000000000000..a3ba7e07044d821710d06639f50d007d512cccce --- /dev/null +++ b/plugins/org.etsi.mts.tdl.openapi2tdl.next/src/org/etsi/mts/tdl/openapi2tdl/next/doc/OpenAPIVisitor.java @@ -0,0 +1,34 @@ +package org.etsi.mts.tdl.openapi2tdl.next.doc; + +import io.swagger.v3.oas.models.OpenAPI; +import io.swagger.v3.oas.models.Operation; +import io.swagger.v3.oas.models.media.Schema; +import io.swagger.v3.oas.models.parameters.Parameter; + +public class OpenAPIVisitor { + protected OpenAPI model; + protected Doc content; + + public OpenAPIVisitor() {} + + public OpenAPIVisitor init(OpenAPI model, Doc content) { + this.model = model; + this.content = content; + return this; + } + + void preamble(OpenAPI model) { } + + void path(String path) { } + + void operation(String path, String method, Operation op) { } + + void postamble(OpenAPI model) { } + + String getParameterType(Parameter param) { + Schema schema = param.getSchema(); + return schema != null ? schema.getType() : "unknown"; + } + + +} \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.openapi2tdl.next/src/org/etsi/mts/tdl/openapi2tdl/next/doc/RQ.java b/plugins/org.etsi.mts.tdl.openapi2tdl.next/src/org/etsi/mts/tdl/openapi2tdl/next/doc/RQ.java new file mode 100644 index 0000000000000000000000000000000000000000..801bed95c07f558aee5b2f3660d830c841e7def8 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.openapi2tdl.next/src/org/etsi/mts/tdl/openapi2tdl/next/doc/RQ.java @@ -0,0 +1,66 @@ +package org.etsi.mts.tdl.openapi2tdl.next.doc; + +import org.openapitools.codegen.utils.ModelUtils; + +import io.swagger.v3.oas.models.OpenAPI; +import io.swagger.v3.oas.models.Operation; +import io.swagger.v3.oas.models.media.Schema; +import io.swagger.v3.oas.models.parameters.Parameter; +import io.swagger.v3.oas.models.responses.ApiResponse; + +public class RQ extends OpenAPIVisitor { + int ri = 0; + + @Override + public void preamble(OpenAPI model) { + content.append(String.format("\n## Requirements\n")); + content.append(String.format("\n### API: %s\n\n", model.getInfo().getTitle())); + String header = + "| Identifier | Reference | Type | Applicability | Requirement | Context |\n" + + "| ---------- | ---------- | ---- | ------------- | ------------ | ------- |\n"; + content.append(header); + } + + @Override + public void path(String path) { + ri = 0; + + } + + @Override + public void operation(String path, String method, Operation op) { + String cleanPath = path.toUpperCase() + .replaceAll("/", "") + .replaceAll("[\\{\\}]", "_") + .replaceAll("_$", ""); + ri++; + String id = "RQ_" + cleanPath + "_" + method + + "_" + String.format("%03d", ri); + String reference = "Path: " + path; + String type = "M"; + String applicability = cleanPath; + String requirement = ""; + if (op.getSummary() != null) { + requirement += op.getSummary() + "; "; + } + if (op.getDescription() != null) { + requirement += op.getDescription(); + } + String context = op.getOperationId(); + content.append( + "| " + id + + " | " + reference + + " | " + type + + " | " + applicability + + " | " + requirement + + " | " + context + + " |\n"); + } + + @Override + public void postamble(OpenAPI model) { + String footer = + "\n[Table X.Y: Extracted requirements]{custom-style=\"FL\"}\n"; + content.append(footer); + } +} diff --git a/plugins/org.etsi.mts.tdl.openapi2tdl.next/src/org/etsi/mts/tdl/openapi2tdl/next/doc/TSS.java b/plugins/org.etsi.mts.tdl.openapi2tdl.next/src/org/etsi/mts/tdl/openapi2tdl/next/doc/TSS.java new file mode 100644 index 0000000000000000000000000000000000000000..d1aa236b7b233a77566a4de08c692b5bd483b104 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.openapi2tdl.next/src/org/etsi/mts/tdl/openapi2tdl/next/doc/TSS.java @@ -0,0 +1,38 @@ +package org.etsi.mts.tdl.openapi2tdl.next.doc; + +import org.openapitools.codegen.utils.ModelUtils; + +import io.swagger.v3.oas.models.OpenAPI; +import io.swagger.v3.oas.models.Operation; +import io.swagger.v3.oas.models.media.Schema; +import io.swagger.v3.oas.models.parameters.Parameter; +import io.swagger.v3.oas.models.responses.ApiResponse; + +public class TSS extends OpenAPIVisitor { + + @Override + public void preamble(OpenAPI model) { + content.append(String.format("\n## Test Suite Structure\n\n")); + content.append(String.format("* API: %s\n", model.getInfo().getTitle())); + } + @Override + public void path(String path) { + String cleanPath = path.toUpperCase() + .replaceAll("/", "") + .replaceAll("[\\{\\}]", "_") + .replaceAll("_$", ""); + content.append(String.format(" * %s\n", cleanPath)); + + } + + @Override + public void operation(String path, String method, Operation op) { + content.append(String.format(" * %s\n", method.toUpperCase())); + if (op.getResponses() != null) { + for (String r : op.getResponses().keySet()) { + content.append(String.format(" * %s\n", method+"_"+r)); + } + } + } + +} diff --git a/plugins/org.etsi.mts.tdl.openapi2tdl.next/src/org/etsi/mts/tdl/openapi2tdl/next/doc/TriConsumer.java b/plugins/org.etsi.mts.tdl.openapi2tdl.next/src/org/etsi/mts/tdl/openapi2tdl/next/doc/TriConsumer.java new file mode 100644 index 0000000000000000000000000000000000000000..955bc47ffd6ee2e64770145142d0fd4a4cd6fa02 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.openapi2tdl.next/src/org/etsi/mts/tdl/openapi2tdl/next/doc/TriConsumer.java @@ -0,0 +1,17 @@ +package org.etsi.mts.tdl.openapi2tdl.next.doc; + +import java.util.Objects; + +@FunctionalInterface +public interface TriConsumer { + void accept(T t, U u, V v); + default TriConsumer andThen(TriConsumer after) { + Objects.requireNonNull(after); + + return (l, r, p) -> { + accept(l, r, p); + after.accept(l, r, p); + }; + } + +} diff --git a/plugins/org.etsi.mts.tdl.openapi2tdl/.classpath b/plugins/org.etsi.mts.tdl.openapi2tdl/.classpath index 1fa3e6803d3b22e055b735220510616c4e35f2fc..1db08c6b4ce2fb50395b2f9c9a50c140a0bab199 100644 --- a/plugins/org.etsi.mts.tdl.openapi2tdl/.classpath +++ b/plugins/org.etsi.mts.tdl.openapi2tdl/.classpath @@ -1,7 +1,7 @@ - + - + diff --git a/plugins/org.etsi.mts.tdl.openapi2tdl/META-INF/MANIFEST.MF b/plugins/org.etsi.mts.tdl.openapi2tdl/META-INF/MANIFEST.MF index 019eea23de43b2412562f567c53ee750af0fa160..7b71239eb5be39a8c8643b4ff4bb30a67f24489e 100644 --- a/plugins/org.etsi.mts.tdl.openapi2tdl/META-INF/MANIFEST.MF +++ b/plugins/org.etsi.mts.tdl.openapi2tdl/META-INF/MANIFEST.MF @@ -15,4 +15,4 @@ Require-Bundle: org.eclipse.core.runtime, org.etsi.mts.tdl.common, com.google.guava;bundle-version="21.0.0" Export-Package: org.etsi.mts.tdl.openapi2tdl -Bundle-RequiredExecutionEnvironment: JavaSE-1.8 +Bundle-RequiredExecutionEnvironment: JavaSE-11 diff --git a/plugins/org.etsi.mts.tdl.openapi2tdl/build.properties b/plugins/org.etsi.mts.tdl.openapi2tdl/build.properties index 34d2e4d2dad529ceaeb953bfcdb63c51d69ffed2..56d776555503f2905e0642aae5be7938371a965d 100644 --- a/plugins/org.etsi.mts.tdl.openapi2tdl/build.properties +++ b/plugins/org.etsi.mts.tdl.openapi2tdl/build.properties @@ -1,4 +1,4 @@ source.. = src/ -output.. = bin/ +output.. = target/classes/ bin.includes = META-INF/,\ . diff --git a/plugins/org.etsi.mts.tdl.perspective/.classpath b/plugins/org.etsi.mts.tdl.perspective/.classpath new file mode 100644 index 0000000000000000000000000000000000000000..1db08c6b4ce2fb50395b2f9c9a50c140a0bab199 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.perspective/.classpath @@ -0,0 +1,7 @@ + + + + + + + diff --git a/plugins/org.etsi.mts.tdl.perspective/.project b/plugins/org.etsi.mts.tdl.perspective/.project new file mode 100644 index 0000000000000000000000000000000000000000..8676f445e94e0fea40655c6fbe1207ea0096fbac --- /dev/null +++ b/plugins/org.etsi.mts.tdl.perspective/.project @@ -0,0 +1,45 @@ + + + org.etsi.mts.tdl.perspective + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.eclipse.m2e.core.maven2Nature + org.eclipse.pde.PluginNature + org.eclipse.jdt.core.javanature + + + + 1681418411934 + + 30 + + org.eclipse.core.resources.regexFilterMatcher + node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__ + + + + diff --git a/plugins/org.etsi.mts.tdl.perspective/.settings/org.eclipse.core.resources.prefs b/plugins/org.etsi.mts.tdl.perspective/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000000000000000000000000000000000000..99f26c0203a7844de00dbfc56e6a35d8ed3c022c --- /dev/null +++ b/plugins/org.etsi.mts.tdl.perspective/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/plugins/org.etsi.mts.tdl.perspective/.settings/org.eclipse.jdt.core.prefs b/plugins/org.etsi.mts.tdl.perspective/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000000000000000000000000000000000000..c9545f06a4120d5b4a1228fb19f67a1171bc0f5b --- /dev/null +++ b/plugins/org.etsi.mts.tdl.perspective/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,9 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=11 +org.eclipse.jdt.core.compiler.compliance=11 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning +org.eclipse.jdt.core.compiler.release=enabled +org.eclipse.jdt.core.compiler.source=11 diff --git a/plugins/org.etsi.mts.tdl.perspective/.settings/org.eclipse.m2e.core.prefs b/plugins/org.etsi.mts.tdl.perspective/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000000000000000000000000000000000000..f897a7f1cb2389f85fe6381425d29f0a9866fb65 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.perspective/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/plugins/org.etsi.mts.tdl.perspective/META-INF/MANIFEST.MF b/plugins/org.etsi.mts.tdl.perspective/META-INF/MANIFEST.MF new file mode 100644 index 0000000000000000000000000000000000000000..749bf9dfb5da85c11f1417f3109da7f2ef9bdadc --- /dev/null +++ b/plugins/org.etsi.mts.tdl.perspective/META-INF/MANIFEST.MF @@ -0,0 +1,12 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: TDL Perspective +Bundle-SymbolicName: org.etsi.mts.tdl.perspective;singleton:=true +Bundle-Version: 1.0.0.qualifier +Bundle-Activator: org.etsi.mts.tdl.perspective.Activator +Bundle-Vendor: European Telecommunications Standards Institute (ETSI) +Require-Bundle: org.eclipse.ui, + org.eclipse.core.runtime +Bundle-RequiredExecutionEnvironment: JavaSE-11 +Automatic-Module-Name: org.etsi.mts.tdl.perspective +Bundle-ActivationPolicy: lazy diff --git a/plugins/org.etsi.mts.tdl.perspective/build.properties b/plugins/org.etsi.mts.tdl.perspective/build.properties new file mode 100644 index 0000000000000000000000000000000000000000..110a2d2dcf728557f3b95feaadcbceec80f8c351 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.perspective/build.properties @@ -0,0 +1,5 @@ +source.. = src/ +output.. = target/classes/ +bin.includes = META-INF/,\ + .,\ + plugin.xml diff --git a/plugins/org.etsi.mts.tdl.perspective/plugin.xml b/plugins/org.etsi.mts.tdl.perspective/plugin.xml new file mode 100644 index 0000000000000000000000000000000000000000..d85803c2741fce0cbb65d765f18ab402df3b49a4 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.perspective/plugin.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + diff --git a/plugins/org.etsi.mts.tdl.perspective/pom.xml b/plugins/org.etsi.mts.tdl.perspective/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..cab539616912681542decb150a01b55a3184ac9f --- /dev/null +++ b/plugins/org.etsi.mts.tdl.perspective/pom.xml @@ -0,0 +1,19 @@ + + 4.0.0 + + org.etsi.mts.tdl + org.etsi.mts.tdl.parent + 1.0.0-SNAPSHOT + ../../org.etsi.mts.tdl.parent + + + org.etsi.mts.tdl.perspective + eclipse-plugin + + + + maven-compiler-plugin + + + + \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.perspective/src/org/etsi/mts/tdl/perspective/Activator.java b/plugins/org.etsi.mts.tdl.perspective/src/org/etsi/mts/tdl/perspective/Activator.java new file mode 100644 index 0000000000000000000000000000000000000000..f92d3b6ae2cbf1f4a98287663c1b8dd7eda8d784 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.perspective/src/org/etsi/mts/tdl/perspective/Activator.java @@ -0,0 +1,44 @@ +package org.etsi.mts.tdl.perspective; + +import org.eclipse.ui.plugin.AbstractUIPlugin; +import org.osgi.framework.BundleContext; + +/** + * The activator class controls the plug-in life cycle + */ +public class Activator extends AbstractUIPlugin { + + // The plug-in ID + public static final String PLUGIN_ID = "org.etsi.mts.tdl.perspective"; //$NON-NLS-1$ + + // The shared instance + private static Activator plugin; + + /** + * The constructor + */ + public Activator() { + } + + @Override + public void start(BundleContext context) throws Exception { + super.start(context); + plugin = this; + } + + @Override + public void stop(BundleContext context) throws Exception { + plugin = null; + super.stop(context); + } + + /** + * Returns the shared instance + * + * @return the shared instance + */ + public static Activator getDefault() { + return plugin; + } + +} diff --git a/plugins/org.etsi.mts.tdl.perspective/src/org/etsi/mts/tdl/perspective/TDLPerspectiveFactory.java b/plugins/org.etsi.mts.tdl.perspective/src/org/etsi/mts/tdl/perspective/TDLPerspectiveFactory.java new file mode 100644 index 0000000000000000000000000000000000000000..08cfecd423fef0c0f7cec651b68d43da72fb7a65 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.perspective/src/org/etsi/mts/tdl/perspective/TDLPerspectiveFactory.java @@ -0,0 +1,59 @@ +package org.etsi.mts.tdl.perspective; + +import org.eclipse.ui.IFolderLayout; +import org.eclipse.ui.IPageLayout; +import org.eclipse.ui.IPerspectiveFactory; + +public class TDLPerspectiveFactory implements IPerspectiveFactory { + + @Override + public void createInitialLayout(IPageLayout layout) { + // TODO Auto-generated method stub + + layout.addNewWizardShortcut("org.etsi.mts.tdl.ui.wizard.TDLtxNewProjectWizard"); + layout.addNewWizardShortcut("org.eclipse.xtext.ui.wizard.template.TemplateNewFileWizard"); + layout.addNewWizardShortcut("org.etsi.mts.tdl.graphical.viewpoint.projectWizard"); + + + layout.addShowViewShortcut(IPageLayout.ID_PROP_SHEET); + layout.addShowViewShortcut(IPageLayout.ID_PROBLEM_VIEW); + layout.addShowViewShortcut(IPageLayout.ID_OUTLINE); + + // Editors are placed for free. + String editorArea = layout.getEditorArea(); + + IFolderLayout nearLeft = layout.createFolder("nearLeft", IPageLayout.LEFT, 0.25f, editorArea); + nearLeft.addView(IPageLayout.ID_PROJECT_EXPLORER); + + IFolderLayout explorerBottom = layout.createFolder("editorBottom", IPageLayout.BOTTOM, 0.55f, "nearLeft"); + explorerBottom.addView(IPageLayout.ID_OUTLINE); + + IFolderLayout editorBottom = layout.createFolder("editorBottom", IPageLayout.BOTTOM, 0.6f, editorArea); + editorBottom.addView(IPageLayout.ID_PROP_SHEET); + editorBottom.addView(IPageLayout.ID_PROBLEM_VIEW); + + /* + layout.addNewWizardShortcut(PROJECT_WIZARD); + layout.addShowViewShortcut(MODEL_VIEW); + layout.addShowViewShortcut(IPageLayout.ID_PROP_SHEET); + layout.addShowViewShortcut(IConsoleConstants.ID_CONSOLE_VIEW); + + // Editors are placed for free. + String editorArea = layout.getEditorArea(); + + IFolderLayout nearLeft = layout.createFolder("nearLeft", IPageLayout.LEFT, 0.55f, editorArea); + nearLeft.addView(MODEL_VIEW); + + IFolderLayout farLeft = layout.createFolder("farLeft", IPageLayout.LEFT, 0.4f, "nearLeft"); + farLeft.addView(IPageLayout.ID_PROJECT_EXPLORER); + + IFolderLayout editorBottom = layout.createFolder("editorBottom", IPageLayout.BOTTOM, 0.6f, editorArea); + editorBottom.addView(IPageLayout.ID_PROP_SHEET); + editorBottom.addView(IPageLayout.ID_PROBLEM_VIEW); + + IFolderLayout nearBottom = layout.createFolder("nearBottom", IPageLayout.BOTTOM, 0.6f, "nearLeft"); + nearBottom.addView(IConsoleConstants.ID_CONSOLE_VIEW); + */ + } + +} diff --git a/plugins/org.etsi.mts.tdl.project/.classpath b/plugins/org.etsi.mts.tdl.project/.classpath new file mode 100644 index 0000000000000000000000000000000000000000..1db08c6b4ce2fb50395b2f9c9a50c140a0bab199 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.project/.classpath @@ -0,0 +1,7 @@ + + + + + + + diff --git a/plugins/org.etsi.mts.tdl.project/.project b/plugins/org.etsi.mts.tdl.project/.project new file mode 100644 index 0000000000000000000000000000000000000000..953b7fc27c88cd41cb186b72eeb8b8ad4f72213a --- /dev/null +++ b/plugins/org.etsi.mts.tdl.project/.project @@ -0,0 +1,34 @@ + + + org.etsi.mts.tdl.project + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.eclipse.m2e.core.maven2Nature + org.eclipse.pde.PluginNature + org.eclipse.jdt.core.javanature + + diff --git a/plugins/org.etsi.mts.tdl.project/.settings/org.eclipse.jdt.core.prefs b/plugins/org.etsi.mts.tdl.project/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000000000000000000000000000000000000..c9545f06a4120d5b4a1228fb19f67a1171bc0f5b --- /dev/null +++ b/plugins/org.etsi.mts.tdl.project/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,9 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=11 +org.eclipse.jdt.core.compiler.compliance=11 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning +org.eclipse.jdt.core.compiler.release=enabled +org.eclipse.jdt.core.compiler.source=11 diff --git a/plugins/org.etsi.mts.tdl.project/META-INF/MANIFEST.MF b/plugins/org.etsi.mts.tdl.project/META-INF/MANIFEST.MF new file mode 100644 index 0000000000000000000000000000000000000000..0409c141030bf580b14b06d426b43e7c28547436 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.project/META-INF/MANIFEST.MF @@ -0,0 +1,12 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: TDL project +Bundle-SymbolicName: org.etsi.mts.tdl.project;singleton:=true +Bundle-Version: 1.0.0.qualifier +Bundle-Vendor: ETSI +Automatic-Module-Name: org.etsi.mts.tdl.project +Bundle-RequiredExecutionEnvironment: JavaSE-11 +Require-Bundle: org.eclipse.core.runtime;bundle-version="3.26.100", + org.eclipse.core.resources, + org.eclipse.ui +Export-Package: org.etsi.mts.tdl.project diff --git a/plugins/org.etsi.mts.tdl.project/build.properties b/plugins/org.etsi.mts.tdl.project/build.properties new file mode 100644 index 0000000000000000000000000000000000000000..110a2d2dcf728557f3b95feaadcbceec80f8c351 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.project/build.properties @@ -0,0 +1,5 @@ +source.. = src/ +output.. = target/classes/ +bin.includes = META-INF/,\ + .,\ + plugin.xml diff --git a/plugins/org.etsi.mts.tdl.project/plugin.xml b/plugins/org.etsi.mts.tdl.project/plugin.xml new file mode 100644 index 0000000000000000000000000000000000000000..a607fa874b4fecd3a90fea83751deba1fab15cbb --- /dev/null +++ b/plugins/org.etsi.mts.tdl.project/plugin.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/plugins/org.etsi.mts.tdl.project/pom.xml b/plugins/org.etsi.mts.tdl.project/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..850dfbc5b3b03316572b39f2e84f3a8b5b866456 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.project/pom.xml @@ -0,0 +1,19 @@ + + 4.0.0 + + org.etsi.mts.tdl + org.etsi.mts.tdl.parent + 1.0.0-SNAPSHOT + ../../org.etsi.mts.tdl.parent + + + org.etsi.mts.tdl.project + eclipse-plugin + + + + maven-compiler-plugin + + + + \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.project/src/org/etsi/mts/tdl/project/PropertyPage.java b/plugins/org.etsi.mts.tdl.project/src/org/etsi/mts/tdl/project/PropertyPage.java new file mode 100644 index 0000000000000000000000000000000000000000..afcf7a95ed76b8bb738cfdeba5dc091d17c919fb --- /dev/null +++ b/plugins/org.etsi.mts.tdl.project/src/org/etsi/mts/tdl/project/PropertyPage.java @@ -0,0 +1,109 @@ +package org.etsi.mts.tdl.project; + +import java.util.Arrays; +import java.util.Hashtable; +import java.util.List; +import java.util.Map; + +import org.eclipse.core.resources.IProject; +import org.eclipse.core.resources.ProjectScope; +import org.eclipse.core.runtime.IAdaptable; +import org.eclipse.jface.preference.FieldEditor; +import org.eclipse.jface.preference.FieldEditorPreferencePage; +import org.eclipse.jface.preference.IPreferenceStore; +import org.eclipse.jface.util.PropertyChangeEvent; +import org.eclipse.ui.IWorkbenchPropertyPage; +import org.eclipse.ui.preferences.ScopedPreferenceStore; + +public class PropertyPage extends FieldEditorPreferencePage implements IWorkbenchPropertyPage { + + public static final String PREFERENCE_SCOPE = "org.etsi.mts.tdl.project"; + + private static final List REQUIRED_SETTINGS = Arrays.asList(new String[] { /* TODO */ }); + + protected IAdaptable element; + + protected Map fields = new Hashtable(); + + public PropertyPage() { + super(GRID); + } + + @Override + public IAdaptable getElement() { + return element; + } + + @Override + public void setElement(IAdaptable element) { + this.element = element; + } + + @Override + protected IPreferenceStore doGetPreferenceStore() { + ProjectScope ps = new ProjectScope((IProject) this.element); + return new ScopedPreferenceStore(ps, PREFERENCE_SCOPE); + } + + @Override + protected void initialize() { + for (FieldEditor e : fields.keySet()) { + String value = getPreferenceStore().getString(e.getPreferenceName()); + fields.put(e, value); + initialize(e.getPreferenceName(), value, e); + } + super.initialize(); + } + + protected void initialize(String name, String value, FieldEditor e) { + } + + @Override + protected void addField(FieldEditor editor) { + super.addField(editor); + fields.put(editor, ""); + } + + @Override + public void propertyChange(PropertyChangeEvent event) { + super.propertyChange(event); + if (event.getProperty().equals(FieldEditor.VALUE)) { + FieldEditor e = (FieldEditor) event.getSource(); + + String name = e.getPreferenceName(); + String value = (String) event.getNewValue(); + + fields.put(e, value); + + initialize(name, value, e); + + checkState(); + } + } + + @Override + protected void checkState() { + setErrorMessage(null); + super.checkState(); + } + + @Override + protected void createFieldEditors() { + // TODO + } + + private boolean isValid(FieldEditor e) { + String name = e.getPreferenceName(); + String value = fields.get(e); + + if (REQUIRED_SETTINGS.contains(name)) { + if (value.isEmpty()) { + setErrorMessage(String.format("%s must be selected!", e.getLabelText())); + return false; + } + } + + return true; + } + +} \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.project/src/org/etsi/mts/tdl/project/TdlNature.java b/plugins/org.etsi.mts.tdl.project/src/org/etsi/mts/tdl/project/TdlNature.java new file mode 100644 index 0000000000000000000000000000000000000000..b4a57ba69a33ff31a0377a65cb110cd1448a100d --- /dev/null +++ b/plugins/org.etsi.mts.tdl.project/src/org/etsi/mts/tdl/project/TdlNature.java @@ -0,0 +1,65 @@ +package org.etsi.mts.tdl.project; + +import org.eclipse.core.resources.IProject; +import org.eclipse.core.resources.IProjectDescription; +import org.eclipse.core.resources.IProjectNature; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.Status; + +public class TdlNature implements IProjectNature { + + public static final String NATURE_ID = "org.etsi.mts.tdl.nature"; + + public static void setTdlProjectNature(IProject project) throws CoreException { + IProjectDescription desc = project.getDescription(); + String[] ids = desc.getNatureIds(); + + String[] newIds = new String[ids.length + 1]; + System.arraycopy(ids, 0, newIds, 1, ids.length); + newIds[0] = NATURE_ID; + desc.setNatureIds(newIds); + project.setDescription(desc, null); + } + + public static boolean isTdl(IProject prj) throws CoreException { + if (!prj.exists() || !prj.isOpen()) + return false; + try { + for (String nature: prj.getDescription().getNatureIds()) + if (NATURE_ID.equals(nature)) + return true; + } catch (Exception e) { + String msg = e.getMessage(); + if (msg == null ||!msg.endsWith("does not exist.")) + throw new CoreException(Status.warning("Failed to detect natures of project " + prj, e)); + else + throw new CoreException(Status.warning(msg, e)); + } + return false; + } + + @Override + public void configure() throws CoreException { + // TODO Auto-generated method stub + + } + + @Override + public void deconfigure() throws CoreException { + // TODO Auto-generated method stub + + } + + @Override + public IProject getProject() { + // TODO Auto-generated method stub + return null; + } + + @Override + public void setProject(IProject project) { + // TODO Auto-generated method stub + + } + +} diff --git a/plugins/org.etsi.mts.tdl.rt.ui/.classpath b/plugins/org.etsi.mts.tdl.rt.ui/.classpath index 1fa3e6803d3b22e055b735220510616c4e35f2fc..1db08c6b4ce2fb50395b2f9c9a50c140a0bab199 100644 --- a/plugins/org.etsi.mts.tdl.rt.ui/.classpath +++ b/plugins/org.etsi.mts.tdl.rt.ui/.classpath @@ -1,7 +1,7 @@ - + - + diff --git a/plugins/org.etsi.mts.tdl.rt.ui/.project b/plugins/org.etsi.mts.tdl.rt.ui/.project index 061b85ce5329636d0f596f7bb245f63cb178a36f..df2f8216d51b2d4fb62d3197991229ce55570cb3 100644 --- a/plugins/org.etsi.mts.tdl.rt.ui/.project +++ b/plugins/org.etsi.mts.tdl.rt.ui/.project @@ -20,9 +20,26 @@ + + org.eclipse.m2e.core.maven2Builder + + + + org.eclipse.m2e.core.maven2Nature org.eclipse.pde.PluginNature org.eclipse.jdt.core.javanature + + + 1681418411942 + + 30 + + org.eclipse.core.resources.regexFilterMatcher + node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__ + + + diff --git a/plugins/org.etsi.mts.tdl.rt.ui/.settings/org.eclipse.core.resources.prefs b/plugins/org.etsi.mts.tdl.rt.ui/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000000000000000000000000000000000000..99f26c0203a7844de00dbfc56e6a35d8ed3c022c --- /dev/null +++ b/plugins/org.etsi.mts.tdl.rt.ui/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/plugins/org.etsi.mts.tdl.rt.ui/.settings/org.eclipse.jdt.core.prefs b/plugins/org.etsi.mts.tdl.rt.ui/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000000000000000000000000000000000000..7adc0fb9a0d32bd6b4e3ce6f305ab7165208865c --- /dev/null +++ b/plugins/org.etsi.mts.tdl.rt.ui/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,10 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=11 +org.eclipse.jdt.core.compiler.compliance=11 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning +org.eclipse.jdt.core.compiler.release=enabled +org.eclipse.jdt.core.compiler.source=11 diff --git a/plugins/org.etsi.mts.tdl.rt.ui/.settings/org.eclipse.m2e.core.prefs b/plugins/org.etsi.mts.tdl.rt.ui/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000000000000000000000000000000000000..f897a7f1cb2389f85fe6381425d29f0a9866fb65 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.rt.ui/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/plugins/org.etsi.mts.tdl.rt.ui/META-INF/MANIFEST.MF b/plugins/org.etsi.mts.tdl.rt.ui/META-INF/MANIFEST.MF index 164d4815fac35ea060093fe312d2fe55761ca51f..a1603acd1198124eab07e2881ea3aad8d0373acc 100644 --- a/plugins/org.etsi.mts.tdl.rt.ui/META-INF/MANIFEST.MF +++ b/plugins/org.etsi.mts.tdl.rt.ui/META-INF/MANIFEST.MF @@ -17,4 +17,4 @@ Require-Bundle: org.eclipse.ui, org.etsi.mts.tdl.model Bundle-ActivationPolicy: lazy Import-Package: org.eclipse.emf.common.util -Bundle-RequiredExecutionEnvironment: JavaSE-1.8 +Bundle-RequiredExecutionEnvironment: JavaSE-11 diff --git a/plugins/org.etsi.mts.tdl.rt.ui/pom.xml b/plugins/org.etsi.mts.tdl.rt.ui/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..4b92f3bae9487bd8c4ea347d4696562913df2509 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.rt.ui/pom.xml @@ -0,0 +1,19 @@ + + 4.0.0 + + org.etsi.mts.tdl + org.etsi.mts.tdl.parent + 1.0.0-SNAPSHOT + ../../org.etsi.mts.tdl.parent + + + org.etsi.mts.tdl.rt.ui + eclipse-plugin + + + + maven-compiler-plugin + + + + \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.rt.ui/src/org/etsi/mts/tdl/tools/rt/ui/handlers/TranslationHandler.java b/plugins/org.etsi.mts.tdl.rt.ui/src/org/etsi/mts/tdl/tools/rt/ui/handlers/TranslationHandler.java index 2fbdc912563eff0405574434a63575c177c68513..c64d5860351dcf52e3400dcce671bc3c05ed02b9 100644 --- a/plugins/org.etsi.mts.tdl.rt.ui/src/org/etsi/mts/tdl/tools/rt/ui/handlers/TranslationHandler.java +++ b/plugins/org.etsi.mts.tdl.rt.ui/src/org/etsi/mts/tdl/tools/rt/ui/handlers/TranslationHandler.java @@ -55,12 +55,6 @@ import org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage; * @see org.eclipse.core.commands.AbstractHandler */ public class TranslationHandler extends AbstractHandler { - @Inject Injector injector; - @Inject Provider rsp; - @Inject Provider xrsp; - - @Inject - IResourceSetProvider resourceSetProvider; LinkedHashMap targetFormats = new LinkedHashMap<>(); public static String translationTarget = "TDL XF (Part 3, XMI)"; @@ -129,7 +123,7 @@ public class TranslationHandler extends AbstractHandler { if (dialog.open() != Window.OK) { return false; } else { - injector = Guice.createInjector(); + Injector injector = Guice.createInjector(); Object[] result = dialog.getResult(); String selected = (String)result[0]; TranslationHandler.translationTarget = selected; @@ -148,7 +142,7 @@ public class TranslationHandler extends AbstractHandler { for (NamedElement e : elements) { e.setName(e.getName() .replaceAll("\"", "") - .replaceAll("\s", "_") + .replaceAll("\\s", "_") .replaceAll("[,\\.-]", "_") .replaceAll("^(\\d)", "_$1") ); diff --git a/plugins/org.etsi.mts.tdl.standalone/.classpath b/plugins/org.etsi.mts.tdl.standalone/.classpath new file mode 100644 index 0000000000000000000000000000000000000000..e6a6586ec78cec9e5e3e32707331fa3ca8623ac6 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.standalone/.classpath @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/plugins/org.etsi.mts.tdl.standalone/.project b/plugins/org.etsi.mts.tdl.standalone/.project new file mode 100644 index 0000000000000000000000000000000000000000..75f62ec98d5e313b00ac11df71ec04ff9103da56 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.standalone/.project @@ -0,0 +1,34 @@ + + + org.etsi.mts.tdl.standalone + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.eclipse.m2e.core.maven2Nature + org.eclipse.pde.PluginNature + org.eclipse.jdt.core.javanature + + diff --git a/plugins/org.etsi.mts.tdl.standalone/.settings/org.eclipse.core.resources.prefs b/plugins/org.etsi.mts.tdl.standalone/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000000000000000000000000000000000000..99f26c0203a7844de00dbfc56e6a35d8ed3c022c --- /dev/null +++ b/plugins/org.etsi.mts.tdl.standalone/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/plugins/org.etsi.mts.tdl.standalone/.settings/org.eclipse.jdt.core.prefs b/plugins/org.etsi.mts.tdl.standalone/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000000000000000000000000000000000000..a58ebdcad300d0a088dcbd63941d2c89e78a4f98 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.standalone/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,15 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate +org.eclipse.jdt.core.compiler.codegen.targetPlatform=11 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=11 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning +org.eclipse.jdt.core.compiler.release=enabled +org.eclipse.jdt.core.compiler.source=11 diff --git a/plugins/org.etsi.mts.tdl.standalone/.settings/org.eclipse.m2e.core.prefs b/plugins/org.etsi.mts.tdl.standalone/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000000000000000000000000000000000000..f897a7f1cb2389f85fe6381425d29f0a9866fb65 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.standalone/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/plugins/org.etsi.mts.tdl.standalone/META-INF/MANIFEST.MF b/plugins/org.etsi.mts.tdl.standalone/META-INF/MANIFEST.MF new file mode 100644 index 0000000000000000000000000000000000000000..a2aeb527510d7dd1d3545b7fb8848a3a21f72521 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.standalone/META-INF/MANIFEST.MF @@ -0,0 +1,27 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: TDL Standalone Tools +Bundle-SymbolicName: org.etsi.mts.tdl.standalone +Bundle-Version: 1.0.0.qualifier +Automatic-Module-Name: org.etsi.mts.tdl.standalone +Bundle-Vendor: ETSI +Main-Class: org.etsi.mts.tdl.standalone.Standalone +Require-Bundle: org.eclipse.core.runtime, + org.eclipse.core.resources, + org.eclipse.emf.ecore, + org.eclipse.xtext, + org.eclipse.ocl.xtext.essentialocl, + org.etsi.mts.tdl.model, + org.etsi.mts.tdl.common, + org.etsi.mts.tdl.helper, + org.etsi.mts.tdl.to2tdl, + org.etsi.mts.tdl.asn2tdl, + org.etsi.mts.tdl.openapi2tdl.next, + org.etsi.mts.tdl.constraints, + org.eclipse.epsilon.evl.engine, + org.etsi.mts.tdl.tools.to.docx.poi, + org.etsi.mts.tdl.json2tdl, + org.eclipse.emf.common, + org.etsi.mts.tdl.ttcn3, + de.ugoe.cs.swe.TTCN3 +Bundle-ClassPath: . diff --git a/plugins/org.etsi.mts.tdl.standalone/README.md b/plugins/org.etsi.mts.tdl.standalone/README.md new file mode 100644 index 0000000000000000000000000000000000000000..6459ae949c3ee5d8cd17c5fc31a2523d0e410554 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.standalone/README.md @@ -0,0 +1,5 @@ +# TDL Standalone Launcher + +This project shows how to use TDL in standalone (batch) mode. It includes example code and launcher to illustrate how to process TDL specifications. The launcher currently can list elements in a TDL specification, validate the specification using the TDL OCL constraints, or import data defintions from an OpenAPI or ASN.1 specification. Each functionality relies on different components of the TDL Open-source Project. + +The standalone launcher can load TDL specifications in the standardised (XMI-based) exchange format (`.tdl`) or in the textual syntaxes (both standardised `.tdltx` and `.tdltxi` aind informative example syntaxes `.tdlan2` / `.tplan2`). Translation between the different formats is also illustrated, but not stable yet. diff --git a/plugins/org.etsi.mts.tdl.standalone/build.properties b/plugins/org.etsi.mts.tdl.standalone/build.properties new file mode 100644 index 0000000000000000000000000000000000000000..8a6201d75668e82556b9cddbe41ef82631ba0b30 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.standalone/build.properties @@ -0,0 +1,4 @@ +source.. = src/ +output.. = target/classes/ +bin.includes = META-INF/,\ + . diff --git a/plugins/org.etsi.mts.tdl.standalone/examples/asn1/Rocket.asn b/plugins/org.etsi.mts.tdl.standalone/examples/asn1/Rocket.asn new file mode 100644 index 0000000000000000000000000000000000000000..63f300f4725cdef906ea136b7a10691c8b7b23b1 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.standalone/examples/asn1/Rocket.asn @@ -0,0 +1,17 @@ +---- +World-Schema DEFINITIONS AUTOMATIC TAGS ::= +BEGIN + Rocket ::= SEQUENCE + { + range INTEGER, -- huge (see a special directive above) + name UTF8String (SIZE(1..16)), + message UTF8String DEFAULT "Hello World" , + fuel ENUMERATED {solid, liquid, gas}, + speed CHOICE + { + mph INTEGER, + kmph INTEGER + } OPTIONAL, + payload SEQUENCE OF UTF8String + } +END diff --git a/plugins/org.etsi.mts.tdl.standalone/examples/asn1/Rocket.asn-generated.tdltx b/plugins/org.etsi.mts.tdl.standalone/examples/asn1/Rocket.asn-generated.tdltx new file mode 100644 index 0000000000000000000000000000000000000000..0be46c91653e77407a4d361bd82ba15af2c070a9 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.standalone/examples/asn1/Rocket.asn-generated.tdltx @@ -0,0 +1,28 @@ +Package generated_from_Rocket_asn { + Type String + Type TODO_RESOLVE_REFERENCED + Use "\"Rocket.asn\"" as SOURCE_MAPPING + Structure Rocket ( + Integer range, + UTF8String ^name, + UTF8String message, + Rocket___fuel fuel, + optional Rocket___speed speed, + Rocket___payload payload + ) + Type Integer + Type UTF8String + Structure AsnEnum ( ) + Structure Rocket___speed { union } ( + Integer mph, + Integer kmph + ) + Constraint union + Collection Rocket___payload of UTF8String + Enumerated Rocket___fuel { + Rocket___fuel solid, + Rocket___fuel liquid, + Rocket___fuel gas + } + Map Rocket to "\"Rocket\"" in SOURCE_MAPPING as Rocket_MAPPING + Package generated_from_World_Schema } \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.standalone/examples/asn1/example-1-library.asn b/plugins/org.etsi.mts.tdl.standalone/examples/asn1/example-1-library.asn new file mode 100644 index 0000000000000000000000000000000000000000..d559807721035e8b7bd2c6eb8bb4083ad2d28af7 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.standalone/examples/asn1/example-1-library.asn @@ -0,0 +1,21 @@ +LibraryASN1module DEFINITIONS ::= +BEGIN + Library ::= SEQUENCE { + address UTF8String DEFAULT "Sophia-Antipolis, France", + documents SEQUENCE OF Document + } + + Document ::= SEQUENCE { + title UTF8String (SIZE(1..128)), + status ENUMERATED {draft, published, historical}, + authors SEQUENCE OF UTF8String, + number CHOICE { + es INTEGER, + eg INTEGER, + tr INTEGER + } OPTIONAL, + updated DATE + } + + +END \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.standalone/examples/asn1/example-1-library.asn-generated.tdltx b/plugins/org.etsi.mts.tdl.standalone/examples/asn1/example-1-library.asn-generated.tdltx new file mode 100644 index 0000000000000000000000000000000000000000..845944becfb64c063dbef3f9b09b55f228f09967 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.standalone/examples/asn1/example-1-library.asn-generated.tdltx @@ -0,0 +1,35 @@ +Package generated_from_example_1_library_asn { + Type String + Type TODO_RESOLVE_REFERENCED + Use "\"example-1-library.asn\"" as SOURCE_MAPPING + Structure Library ( + UTF8String address, + Library___documents documents + ) + Structure Document ( + UTF8String title, + Document___status status, + Document___authors authors, + optional Document___number number, + Date updated + ) + Type UTF8String + Collection Library___documents of Document + Structure AsnEnum ( ) + Collection Document___authors of UTF8String + Structure Document___number { union } ( + Integer es, + Integer eg, + Integer tr + ) + Constraint union + Type Integer + Type Date + Enumerated Document___status { + Document___status draft, + Document___status published, + Document___status historical + } + Map Library to "\"Library\"" in SOURCE_MAPPING as Library_MAPPING + Map Document to "\"Document\"" in SOURCE_MAPPING as Document_MAPPING + Package generated_from_LibraryASN1module } \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.standalone/examples/asn1/example-1-ssp.asn b/plugins/org.etsi.mts.tdl.standalone/examples/asn1/example-1-ssp.asn new file mode 100644 index 0000000000000000000000000000000000000000..b5c1fd30b759129cf900e5fa2ab551084ef12913 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.standalone/examples/asn1/example-1-ssp.asn @@ -0,0 +1,37 @@ +SSPASN1module DEFINITIONS ::= +BEGIN + NodeDescriptor ::= SEQUENCE + { + aNodeName NodeName, -- Node name + aShortName UUID, -- Short node name + aNode CHOICE + { + aLink SEQUENCE + { + aLinkedFileIdentity NodeIdentity, -- Identity of the linked SSP file + aLinkedFileSize FileSize -- Size of the linked SSP file + }, + aFile SEQUENCE + { + aFileSize FileSize -- Size of the SSP file + }, + aDirectory SEQUENCE + { + } + }, + aMetaData SEQUENCE OF MetaDatum OPTIONAL, -- Optional meta data + aACL SET OF AccessControl OPTIONAL -- Access Control List attribute + } + + /* Node identity */ + NodeName ::= UTF8String (SIZE(1..16)) -- node name encoded in UTF-8 + NodeReference ::= SEQUENCE (SIZE(1..6)) OF NodeName -- pathname and node name + + NodeIdentity ::= CHOICE + { + aShortName UUID, -- UUID of file reference using absolute pathname + aNodeReference NodeReference -- Node reference + } + + +END \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.standalone/examples/asn1/example-1-ssp.asn-generated.tdltx b/plugins/org.etsi.mts.tdl.standalone/examples/asn1/example-1-ssp.asn-generated.tdltx new file mode 100644 index 0000000000000000000000000000000000000000..f0d004d18d3ce961f88ae2619b21e516cbc3c1f2 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.standalone/examples/asn1/example-1-ssp.asn-generated.tdltx @@ -0,0 +1,43 @@ +Package generated_from_example_1_ssp_asn { + Type String + Type TODO_RESOLVE_REFERENCED + Use "\"example-1-ssp.asn\"" as SOURCE_MAPPING + Type NodeName { UTF8String } + Constraint UTF8String + Collection NodeReference of NodeName + Structure NodeDescriptor ( + NodeName aNodeName, + UUID aShortName, + NodeDescriptor___aNode aNode, + optional NodeDescriptor___aMetaData aMetaData, + optional NodeDescriptor___aACL aACL + ) + Structure NodeIdentity { union } ( + UUID aShortName, + NodeReference aNodeReference + ) + Structure UUID ( ) + Structure NodeDescriptor___aNode { union } ( + NodeDescriptor___aNode___aLink aLink, + NodeDescriptor___aNode___aFile aFile, + NodeDescriptor___aNode___aDirectory aDirectory + ) + Constraint union + Structure NodeDescriptor___aNode___aLink ( + NodeIdentity aLinkedFileIdentity, + FileSize aLinkedFileSize + ) + Structure FileSize ( ) + Structure NodeDescriptor___aNode___aFile ( + FileSize aFileSize + ) + Structure NodeDescriptor___aNode___aDirectory ( ) + Collection NodeDescriptor___aMetaData of MetaDatum + Structure MetaDatum ( ) + Collection NodeDescriptor___aACL of AccessControl + Structure AccessControl ( ) + Map NodeName to "\"NodeName\"" in SOURCE_MAPPING as NodeName_MAPPING + Map NodeReference to "\"NodeReference\"" in SOURCE_MAPPING as NodeReference_MAPPING + Map NodeDescriptor to "\"NodeDescriptor\"" in SOURCE_MAPPING as NodeDescriptor_MAPPING + Map NodeIdentity to "\"NodeIdentity\"" in SOURCE_MAPPING as NodeIdentity_MAPPING + Package generated_from_SSPASN1module } \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.standalone/examples/basics/ImportSample.tdlan2 b/plugins/org.etsi.mts.tdl.standalone/examples/basics/ImportSample.tdlan2 new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/plugins/org.etsi.mts.tdl.standalone/examples/basics/ImportSample.tdltx b/plugins/org.etsi.mts.tdl.standalone/examples/basics/ImportSample.tdltx new file mode 100644 index 0000000000000000000000000000000000000000..952a87974e1a3827b4a06958c2de0b1c29853e90 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.standalone/examples/basics/ImportSample.tdltx @@ -0,0 +1,11 @@ +Package ImportSample { + Import all from Sample + //example test description + Test exampleImported uses base { + terminate + tester::interface sends "hello" {string} to sut::interface + //example constraint violation + tester::interface sends r to sut::interface + //tester::interface sends f to sut::interface + } +} diff --git a/plugins/org.etsi.mts.tdl.standalone/examples/basics/ImportSample.tdltx.tdl b/plugins/org.etsi.mts.tdl.standalone/examples/basics/ImportSample.tdltx.tdl new file mode 100644 index 0000000000000000000000000000000000000000..debfe9f72473c8a29d08e49d43919b2be09020e7 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.standalone/examples/basics/ImportSample.tdltx.tdl @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/plugins/org.etsi.mts.tdl.standalone/examples/basics/ImportSample.tdltx.tdlan2 b/plugins/org.etsi.mts.tdl.standalone/examples/basics/ImportSample.tdltx.tdlan2 new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/plugins/org.etsi.mts.tdl.standalone/examples/basics/ImportSample.tdltx.tdltx b/plugins/org.etsi.mts.tdl.standalone/examples/basics/ImportSample.tdltx.tdltx new file mode 100644 index 0000000000000000000000000000000000000000..b296f82bed20cf2cbc31ca104195f238507efff3 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.standalone/examples/basics/ImportSample.tdltx.tdltx @@ -0,0 +1,8 @@ +Package ImportSample { + Import all from Sample + Test exampleImported uses base { + terminate + tester::interface sends "hello" { string } to sut::interface + tester::interface sends r to sut::interface + } +} \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.standalone/examples/basics/ImportSample.tdltx.tdltx.tdl b/plugins/org.etsi.mts.tdl.standalone/examples/basics/ImportSample.tdltx.tdltx.tdl new file mode 100644 index 0000000000000000000000000000000000000000..debfe9f72473c8a29d08e49d43919b2be09020e7 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.standalone/examples/basics/ImportSample.tdltx.tdltx.tdl @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/plugins/org.etsi.mts.tdl.standalone/examples/basics/Sample.tdlan2 b/plugins/org.etsi.mts.tdl.standalone/examples/basics/Sample.tdlan2 new file mode 100644 index 0000000000000000000000000000000000000000..0b278ffadcc30489ae84751d3340aef3727a1d2d --- /dev/null +++ b/plugins/org.etsi.mts.tdl.standalone/examples/basics/Sample.tdlan2 @@ -0,0 +1,22 @@ +Package Sample { + Type integer; + Type string; + Type float; + Time sec; + sec i; + float r; + string s; + Gate Type http accepts string, integer; + Component Type node having { + gate interface of type http; + } + Test Configuration base { + create SUT sut of type node ; + create Tester tester of type node ; + connect sut.interface to tester.interface ; + } + Test Description Implementation example + uses configuration base { + terminate; + } +} \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.standalone/examples/basics/Sample.tdltx b/plugins/org.etsi.mts.tdl.standalone/examples/basics/Sample.tdltx new file mode 100644 index 0000000000000000000000000000000000000000..95d4c4210c7ef968078fa96abb4a52b65a7a2fa4 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.standalone/examples/basics/Sample.tdltx @@ -0,0 +1,35 @@ +Package Sample { + //standard annotations for STO + //Annotation Initial conditions + //Annotation Expected behaviour + //Annotation Final conditions + //Annotation Test Purpose Description + //Annotation when + //Annotation then + //example types + Type integer + Type string + Type float + Time sec + sec i + float r + string s + //example configuration + Message Gate http accepts string, integer + Component node { + gate http interface + } + Configuration base { + node sut as SUT, + node tester as Tester, + connect sut::interface to tester::interface + } + //example test description + Test example uses base { + terminate + //wait for i on tester + //tester::interface sends "hello" {string} to sut::interface + //example constraint violation + //tester::interface sends s to sut::interface + } +} diff --git a/plugins/org.etsi.mts.tdl.standalone/examples/basics/Sample.tdltx.tdl b/plugins/org.etsi.mts.tdl.standalone/examples/basics/Sample.tdltx.tdl new file mode 100644 index 0000000000000000000000000000000000000000..aeb6c1e80801ececdb413d7b6269b0b3fb655442 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.standalone/examples/basics/Sample.tdltx.tdl @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/plugins/org.etsi.mts.tdl.standalone/examples/basics/Sample.tdltx.tdlan2 b/plugins/org.etsi.mts.tdl.standalone/examples/basics/Sample.tdltx.tdlan2 new file mode 100644 index 0000000000000000000000000000000000000000..0b278ffadcc30489ae84751d3340aef3727a1d2d --- /dev/null +++ b/plugins/org.etsi.mts.tdl.standalone/examples/basics/Sample.tdltx.tdlan2 @@ -0,0 +1,22 @@ +Package Sample { + Type integer; + Type string; + Type float; + Time sec; + sec i; + float r; + string s; + Gate Type http accepts string, integer; + Component Type node having { + gate interface of type http; + } + Test Configuration base { + create SUT sut of type node ; + create Tester tester of type node ; + connect sut.interface to tester.interface ; + } + Test Description Implementation example + uses configuration base { + terminate; + } +} \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.standalone/examples/basics/Sample.tdltx.tdltx b/plugins/org.etsi.mts.tdl.standalone/examples/basics/Sample.tdltx.tdltx new file mode 100644 index 0000000000000000000000000000000000000000..f130cad428fade316a9f71cba52d02f4537c4da8 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.standalone/examples/basics/Sample.tdltx.tdltx @@ -0,0 +1,21 @@ +Package Sample { + Type integer + Type string + Type float + Time sec + sec i + float r + string s + Message Gate http accepts string,integer + Component node { + gate http interface + } + Configuration base { + node sut as SUT, + node tester as Tester, + connect sut::interface to tester::interface + } + Test example uses base { + terminate + } +} \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.standalone/examples/basics/Sample.tdltx.tdltx.tdl b/plugins/org.etsi.mts.tdl.standalone/examples/basics/Sample.tdltx.tdltx.tdl new file mode 100644 index 0000000000000000000000000000000000000000..aeb6c1e80801ececdb413d7b6269b0b3fb655442 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.standalone/examples/basics/Sample.tdltx.tdltx.tdl @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/plugins/org.etsi.mts.tdl.standalone/examples/json/JSON_instance.json b/plugins/org.etsi.mts.tdl.standalone/examples/json/JSON_instance.json new file mode 100644 index 0000000000000000000000000000000000000000..e281fb9e342b9fdfc790d410d0ccfe880702000d --- /dev/null +++ b/plugins/org.etsi.mts.tdl.standalone/examples/json/JSON_instance.json @@ -0,0 +1,143 @@ +{ + "ieee802_dot1q_bridge_bridges": { + "bridge": [ + { + "name": "ne2", + "address": "10-10-10-10-10-10", + "bridge-type": "ieee802-dot1q-bridge:customer-vlan-bridge", + "component": [ + { + "name": "cv0", + "id": "0", + "type": "ieee802-dot1q-bridge:c-vlan-component", + "bridge-port": [ + "eth1", + "eth2", + "eth3" + ], + "filtering-database": { + "vlan-registration-entry": [ + { + "database-id": "1", + "vids": "200", + "entry-type": "static", + "port-map": [ + { + "port-ref": "1", + "static-vlan-registration-entries": { + "vlan-transmitted": "tagged" + } + }, + { + "port-ref": "3", + "static-vlan-registration-entries": { + "vlan-transmitted": "tagged" + } + } + ] + }, + { + "database-id": "1", + "vids": "300", + "entry-type": "static", + "port-map": [ + { + "port-ref": "2", + "static-vlan-registration-entries": { + "vlan-transmitted": "untagged" + } + }, + { + "port-ref": "3", + "static-vlan-registration-entries": { + "vlan-transmitted": "tagged" + } + } + ] + } + ] + }, + "bridge-vlan": { + "vlan": [ + { + "vid": "200", + "name": "E-Line 200", + "egress-ports": [ + "eth1", + "eth3" + ] + }, + { + "vid": "300", + "name": "E-Line 300", + "untagged-ports": [ + "eth2" + ], + "egress-ports": [ + "eth2", + "eth3" + ] + } + ] + } + } + ] + } + ] + }, + "ietf_interfaces_interfaces": { + "interface": [ + { + "name": "eth1", + "type": "iana-if-type:ethernetCsmacd", + "oper-status": "up", + "statistics": { + "discontinuity-time": "2022-04-06T11:00:00+02:00" + }, + "ieee802-dot1q-bridge:bridge-port": { + "bridge-name": "ne2", + "component-name": "cv0", + "port-type": "ieee802-dot1q-bridge:c-vlan-bridge-port", + "pvid": "1", + "acceptable-frame": "admit-only-VLAN-tagged-frames", + "enable-ingress-filtering": "true", + "port-number": "1" + } + }, + { + "name": "eth2", + "type": "iana-if-type:ethernetCsmacd", + "oper-status": "up", + "statistics": { + "discontinuity-time": "2022-04-06T11:00:00+02:00" + }, + "ieee802-dot1q-bridge:bridge-port": { + "bridge-name": "ne2", + "component-name": "cv0", + "port-type": "ieee802-dot1q-bridge:c-vlan-bridge-port", + "pvid": "300", + "acceptable-frame": "admit-only-untagged-and-priority-tagged", + "enable-ingress-filtering": "true", + "port-number": "2" + } + }, + { + "name": "eth3", + "type": "iana-if-type:ethernetCsmacd", + "oper-status": "up", + "statistics": { + "discontinuity-time": "2022-04-06T11:00:00+02:00" + }, + "ieee802-dot1q-bridge:bridge-port": { + "bridge-name": "ne2", + "component-name": "cv0", + "port-type": "ieee802-dot1q-bridge:c-vlan-bridge-port", + "pvid": "1", + "acceptable-frame": "admit-only-VLAN-tagged-frames", + "enable-ingress-filtering": "true", + "port-number": "3" + } + } + ] + } +} \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.standalone/examples/json/e-line-examples-c-vlan-bridge.json b/plugins/org.etsi.mts.tdl.standalone/examples/json/e-line-examples-c-vlan-bridge.json new file mode 100644 index 0000000000000000000000000000000000000000..a62c1d1b4cc046bc76408582e5fc436c4741082c --- /dev/null +++ b/plugins/org.etsi.mts.tdl.standalone/examples/json/e-line-examples-c-vlan-bridge.json @@ -0,0 +1,143 @@ +{ + "ieee802-dot1q-bridge:bridges": { + "bridge": [ + { + "name": "ne2", + "address": "10-10-10-10-10-10", + "bridge-type": "ieee802-dot1q-bridge:customer-vlan-bridge", + "component": [ + { + "name": "cv0", + "id": 0, + "type": "ieee802-dot1q-bridge:c-vlan-component", + "bridge-port": [ + "eth1", + "eth2", + "eth3" + ], + "filtering-database": { + "vlan-registration-entry": [ + { + "database-id": 1, + "vids": "200", + "entry-type": "static", + "port-map": [ + { + "port-ref": 1, + "static-vlan-registration-entries": { + "vlan-transmitted": "tagged" + } + }, + { + "port-ref": 3, + "static-vlan-registration-entries": { + "vlan-transmitted": "tagged" + } + } + ] + }, + { + "database-id": 1, + "vids": "300", + "entry-type": "static", + "port-map": [ + { + "port-ref": 2, + "static-vlan-registration-entries": { + "vlan-transmitted": "untagged" + } + }, + { + "port-ref": 3, + "static-vlan-registration-entries": { + "vlan-transmitted": "tagged" + } + } + ] + } + ] + }, + "bridge-vlan": { + "vlan": [ + { + "vid": 200, + "name": "E-Line 200", + "egress-ports": [ + "eth1", + "eth3" + ] + }, + { + "vid": 300, + "name": "E-Line 300", + "untagged-ports": [ + "eth2" + ], + "egress-ports": [ + "eth2", + "eth3" + ] + } + ] + } + } + ] + } + ] + }, + "ietf-interfaces:interfaces": { + "interface": [ + { + "name": "eth1", + "type": "iana-if-type:ethernetCsmacd", + "oper-status": "up", + "statistics": { + "discontinuity-time": "2022-04-06T11:00:00+02:00" + }, + "ieee802-dot1q-bridge:bridge-port": { + "bridge-name": "ne2", + "component-name": "cv0", + "port-type": "ieee802-dot1q-bridge:c-vlan-bridge-port", + "pvid": 1, + "acceptable-frame": "admit-only-VLAN-tagged-frames", + "enable-ingress-filtering": true, + "port-number": 1 + } + }, + { + "name": "eth2", + "type": "iana-if-type:ethernetCsmacd", + "oper-status": "up", + "statistics": { + "discontinuity-time": "2022-04-06T11:00:00+02:00" + }, + "ieee802-dot1q-bridge:bridge-port": { + "bridge-name": "ne2", + "component-name": "cv0", + "port-type": "ieee802-dot1q-bridge:c-vlan-bridge-port", + "pvid": 300, + "acceptable-frame": "admit-only-untagged-and-priority-tagged", + "enable-ingress-filtering": true, + "port-number": 2 + } + }, + { + "name": "eth3", + "type": "iana-if-type:ethernetCsmacd", + "oper-status": "up", + "statistics": { + "discontinuity-time": "2022-04-06T11:00:00+02:00" + }, + "ieee802-dot1q-bridge:bridge-port": { + "bridge-name": "ne2", + "component-name": "cv0", + "port-type": "ieee802-dot1q-bridge:c-vlan-bridge-port", + "pvid": 1, + "acceptable-frame": "admit-only-VLAN-tagged-frames", + "enable-ingress-filtering": true, + "port-number": 3 + } + } + ] + } + } \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.standalone/examples/json/e-line-examples-c-vlan-bridge.json-generated.tdltx b/plugins/org.etsi.mts.tdl.standalone/examples/json/e-line-examples-c-vlan-bridge.json-generated.tdltx new file mode 100644 index 0000000000000000000000000000000000000000..fd07a9866972d5120143bcc95304620cc330352a --- /dev/null +++ b/plugins/org.etsi.mts.tdl.standalone/examples/json/e-line-examples-c-vlan-bridge.json-generated.tdltx @@ -0,0 +1,294 @@ +Package generated_from_e_line_examples_c_vlan_bridge_json { + Type String + Type TODO_RESOLVE_REFERENCED + Use "e-line-examples-c-vlan-bridge.json" as SOURCE_MAPPING + Type JSON_String + Structure JSON_e_line_examples_c_vlan_bridge_json ( + JSON_ieee802_dot1q_bridge_bridges ieee802_dot1q_bridge_bridges, + JSON_ietf_interfaces_interfaces ietf_interfaces_interfaces + ) + Structure JSON_ieee802_dot1q_bridge_bridges ( + JSON_bridge bridge + ) + Collection JSON_bridge of JSON_bridge_item + Structure JSON_bridge_item ( + JSON_String name, + JSON_String address, + JSON_String bridge_type, + JSON_component ^component + ) + Collection JSON_component of JSON_component_item + Structure JSON_component_item ( + JSON_String name, + JSON_String id, + JSON_String type, + JSON_bridge_port bridge_port, + JSON_filtering_database filtering_database, + JSON_bridge_vlan bridge_vlan + ) + Collection JSON_bridge_port of JSON_String + Structure JSON_filtering_database ( + JSON_vlan_registration_entry vlan_registration_entry + ) + Collection JSON_vlan_registration_entry of JSON_vlan_registration_entry_item + Structure JSON_vlan_registration_entry_item ( + JSON_String database_id, + JSON_String vids, + JSON_String entry_type, + JSON_port_map port_map + ) + Collection JSON_port_map of JSON_port_map_item + Structure JSON_port_map_item ( + JSON_String port_ref, + JSON_static_vlan_registration_entries static_vlan_registration_entries + ) + Structure JSON_static_vlan_registration_entries ( + JSON_String vlan_transmitted + ) + Structure JSON_bridge_vlan ( + JSON_vlan vlan + ) + Collection JSON_vlan of JSON_vlan_item + Structure JSON_vlan_item ( + JSON_String vid, + JSON_String name, + JSON_egress_ports egress_ports, + JSON_untagged_ports untagged_ports + ) + Collection JSON_egress_ports of JSON_String + Collection JSON_untagged_ports of JSON_String + Structure JSON_ietf_interfaces_interfaces ( + JSON_interface interface + ) + Collection JSON_interface of JSON_interface_item + Structure JSON_interface_item ( + JSON_String name, + JSON_String type, + JSON_String oper_status, + JSON_statistics statistics, + JSON_ieee802_dot1q_bridge_bridge_port ieee802_dot1q_bridge_bridge_port + ) + Structure JSON_statistics ( + JSON_String discontinuity_time + ) + Structure JSON_ieee802_dot1q_bridge_bridge_port ( + JSON_String bridge_name, + JSON_String component_name, + JSON_String port_type, + JSON_String pvid, + JSON_String acceptable_frame, + JSON_String enable_ingress_filtering, + JSON_String port_number + ) + JSON_e_line_examples_c_vlan_bridge_json JSON_instance ( + ieee802_dot1q_bridge_bridges = ( + bridge = [ + ( + name = "ne2", + address = "10-10-10-10-10-10", + bridge_type = "ieee802-dot1q-bridge:customer-vlan-bridge", + ^component = [ + ( + name = "cv0", + id = "0", + type = "ieee802-dot1q-bridge:c-vlan-component", + bridge_port = [ + "eth1", + "eth2", + "eth3" + ], + filtering_database = ( + vlan_registration_entry = [ + ( + database_id = "1", + vids = "200", + entry_type = "static", + port_map = [ + ( + port_ref = "1", + static_vlan_registration_entries = ( + vlan_transmitted = "tagged" + ) + ), + ( + port_ref = "3", + static_vlan_registration_entries = ( + vlan_transmitted = "tagged" + ) + ) + ] + ), + ( + database_id = "1", + vids = "300", + entry_type = "static", + port_map = [ + ( + port_ref = "2", + static_vlan_registration_entries = ( + vlan_transmitted = "untagged" + ) + ), + ( + port_ref = "3", + static_vlan_registration_entries = ( + vlan_transmitted = "tagged" + ) + ) + ] + ) + ] + ), + bridge_vlan = ( + vlan = [ + ( + vid = "200", + name = "E-Line 200", + egress_ports = [ + "eth1", + "eth3" + ] + ), + ( + vid = "300", + name = "E-Line 300", + untagged_ports = [ + "eth2" + ], + egress_ports = [ + "eth2", + "eth3" + ] + ) + ] + ) + ) + ] + ) + ] + ), + ietf_interfaces_interfaces = ( + interface = [ + ( + name = "eth1", + type = "iana-if-type:ethernetCsmacd", + oper_status = "up", + statistics = ( + discontinuity_time = "2022-04-06T11:00:00+02:00" + ), + ieee802_dot1q_bridge_bridge_port = ( + bridge_name = "ne2", + component_name = "cv0", + port_type = "ieee802-dot1q-bridge:c-vlan-bridge-port", + pvid = "1", + acceptable_frame = "admit-only-VLAN-tagged-frames", + enable_ingress_filtering = "true", + port_number = "1" + ) + ), + ( + name = "eth2", + type = "iana-if-type:ethernetCsmacd", + oper_status = "up", + statistics = ( + discontinuity_time = "2022-04-06T11:00:00+02:00" + ), + ieee802_dot1q_bridge_bridge_port = ( + bridge_name = "ne2", + component_name = "cv0", + port_type = "ieee802-dot1q-bridge:c-vlan-bridge-port", + pvid = "300", + acceptable_frame = "admit-only-untagged-and-priority-tagged", + enable_ingress_filtering = "true", + port_number = "2" + ) + ), + ( + name = "eth3", + type = "iana-if-type:ethernetCsmacd", + oper_status = "up", + statistics = ( + discontinuity_time = "2022-04-06T11:00:00+02:00" + ), + ieee802_dot1q_bridge_bridge_port = ( + bridge_name = "ne2", + component_name = "cv0", + port_type = "ieee802-dot1q-bridge:c-vlan-bridge-port", + pvid = "1", + acceptable_frame = "admit-only-VLAN-tagged-frames", + enable_ingress_filtering = "true", + port_number = "3" + ) + ) + ] + ) + ) + Map JSON_e_line_examples_c_vlan_bridge_json to "JSON" in SOURCE_MAPPING as JSON_SOURCE_MAPPING { + ieee802_dot1q_bridge_bridges -> "ieee802-dot1q-bridge:bridges", + ietf_interfaces_interfaces -> "ietf-interfaces:interfaces" + } + Map JSON_ieee802_dot1q_bridge_bridges to "JSON.ieee802-dot1q-bridge:bridges" in SOURCE_MAPPING as JSON_ieee802_dot1q_bridge_bridges_SOURCE_MAPPING { + bridge -> "bridge" + } + Map JSON_bridge_item to "JSON.bridge.item" in SOURCE_MAPPING as JSON_bridge_item_SOURCE_MAPPING { + name -> "name", + address -> "address", + bridge_type -> "bridge-type", + ^component -> "component" + } + Map JSON_component_item to "JSON.component.item" in SOURCE_MAPPING as JSON_component_item_SOURCE_MAPPING { + name -> "name", + id -> "id", + type -> "type", + bridge_port -> "bridge-port", + filtering_database -> "filtering-database", + bridge_vlan -> "bridge-vlan" + } + Map JSON_filtering_database to "JSON.filtering-database" in SOURCE_MAPPING as JSON_filtering_database_SOURCE_MAPPING { + vlan_registration_entry -> "vlan-registration-entry" + } + Map JSON_vlan_registration_entry_item to "JSON.vlan-registration-entry.item" in SOURCE_MAPPING as JSON_vlan_registration_entry_item_SOURCE_MAPPING { + database_id -> "database-id", + vids -> "vids", + entry_type -> "entry-type", + port_map -> "port-map" + } + Map JSON_port_map_item to "JSON.port-map.item" in SOURCE_MAPPING as JSON_port_map_item_SOURCE_MAPPING { + port_ref -> "port-ref", + static_vlan_registration_entries -> "static-vlan-registration-entries" + } + Map JSON_static_vlan_registration_entries to "JSON.static-vlan-registration-entries" in SOURCE_MAPPING as JSON_static_vlan_registration_entries_SOURCE_MAPPING { + vlan_transmitted -> "vlan-transmitted" + } + Map JSON_bridge_vlan to "JSON.bridge-vlan" in SOURCE_MAPPING as JSON_bridge_vlan_SOURCE_MAPPING { + vlan -> "vlan" + } + Map JSON_vlan_item to "JSON.vlan.item" in SOURCE_MAPPING as JSON_vlan_item_SOURCE_MAPPING { + vid -> "vid", + name -> "name", + egress_ports -> "egress-ports", + untagged_ports -> "untagged-ports" + } + Map JSON_ietf_interfaces_interfaces to "JSON.ietf-interfaces:interfaces" in SOURCE_MAPPING as JSON_ietf_interfaces_interfaces_SOURCE_MAPPING { + interface -> "interface" + } + Map JSON_interface_item to "JSON.interface.item" in SOURCE_MAPPING as JSON_interface_item_SOURCE_MAPPING { + name -> "name", + type -> "type", + oper_status -> "oper-status", + statistics -> "statistics", + ieee802_dot1q_bridge_bridge_port -> "ieee802-dot1q-bridge:bridge-port" + } + Map JSON_statistics to "JSON.statistics" in SOURCE_MAPPING as JSON_statistics_SOURCE_MAPPING { + discontinuity_time -> "discontinuity-time" + } + Map JSON_ieee802_dot1q_bridge_bridge_port to "JSON.ieee802-dot1q-bridge:bridge-port" in SOURCE_MAPPING as JSON_ieee802_dot1q_bridge_bridge_port_SOURCE_MAPPING { + bridge_name -> "bridge-name", + component_name -> "component-name", + port_type -> "port-type", + pvid -> "pvid", + acceptable_frame -> "acceptable-frame", + enable_ingress_filtering -> "enable-ingress-filtering", + port_number -> "port-number" + } +} \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.standalone/examples/json/e-line-examples-provider-bridge.json b/plugins/org.etsi.mts.tdl.standalone/examples/json/e-line-examples-provider-bridge.json new file mode 100644 index 0000000000000000000000000000000000000000..a74cb6cc41ef5d857aa06c844446a0dbdde1a6a2 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.standalone/examples/json/e-line-examples-provider-bridge.json @@ -0,0 +1,277 @@ +{ + "ieee802-dot1q-bridge:bridges": { + "bridge": [ + { + "name": "ne1", + "address": "10-10-10-10-10-10", + "bridge-type": "ieee802-dot1q-bridge:provider-edge-bridge", + "component": [ + { + "name": "sv0", + "id": 0, + "type": "ieee802-dot1q-bridge:s-vlan-component", + "bridge-port": [ + "eth3", + "eth4", + "eth5" + ], + "filtering-database": { + "vlan-registration-entry": [ + { + "database-id": 1, + "vids": "200", + "entry-type": "static", + "port-map": [ + { + "port-ref": 1, + "static-vlan-registration-entries": { + "vlan-transmitted": "untagged" + } + }, + { + "port-ref": 5, + "static-vlan-registration-entries": { + "vlan-transmitted": "tagged" + } + } + ] + }, + { + "database-id": 1, + "vids": "300", + "entry-type": "static", + "port-map": [ + { + "port-ref": 2, + "static-vlan-registration-entries": { + "vlan-transmitted": "untagged" + } + }, + { + "port-ref": 5, + "static-vlan-registration-entries": { + "vlan-transmitted": "tagged" + } + } + ] + }, + { + "database-id": 1, + "vids": "400", + "entry-type": "static", + "port-map": [ + { + "port-ref": 3, + "static-vlan-registration-entries": { + "vlan-transmitted": "untagged" + } + }, + { + "port-ref": 5, + "static-vlan-registration-entries": { + "vlan-transmitted": "tagged" + } + } + ] + }, + { + "database-id": 1, + "vids": "500", + "entry-type": "static", + "port-map": [ + { + "port-ref": 4, + "static-vlan-registration-entries": { + "vlan-transmitted": "tagged" + } + }, + { + "port-ref": 5, + "static-vlan-registration-entries": { + "vlan-transmitted": "tagged" + } + } + ] + } + ] + }, + "bridge-vlan": { + "vlan": [ + { + "vid": 200, + "name": "E-Line 200", + "untagged-ports": [ + "eth1" + ], + "egress-ports": [ + "eth1", + "eth5" + ] + }, + { + "vid": 300, + "name": "E-Line 300", + "untagged-ports": [ + "eth2" + ], + "egress-ports": [ + "eth2", + "eth5" + ] + }, + { + "vid": 400, + "name": "E-Line 400", + "untagged-ports": [ + "eth3" + ], + "egress-ports": [ + "eth3", + "eth5" + ] + }, + { + "vid": 500, + "name": "E-Line 500", + "egress-ports": [ + "eth4", + "eth5" + ] + } + ] + } + }, + { + "name": "cv1", + "id": 1, + "type": "ieee802-dot1q-bridge:c-vlan-component", + "bridge-port": [ + "eth1" + ] + }, + { + "name": "cv2", + "id": 2, + "type": "ieee802-dot1q-bridge:c-vlan-component", + "bridge-port": [ + "eth2" + ] + } + ] + } + ] + }, + "ietf-interfaces:interfaces": { + "interface": [ + { + "name": "eth1", + "type": "iana-if-type:ethernetCsmacd", + "oper-status": "up", + "statistics": { + "discontinuity-time": "2022-03-23T11:00:00+02:00" + }, + "ieee802-dot1q-bridge:bridge-port": { + "bridge-name": "ne1", + "component-name": "cv1", + "port-type": "ieee802-dot1q-bridge:customer-edge-port", + "pvid": 1, + "acceptable-frame": "admit-only-VLAN-tagged-frames", + "enable-ingress-filtering": true, + "port-number": 1, + "ieee802-dot1q-pb:cvid-registration": [ + { + "cvid": 100, + "svid": 200, + "untagged-pep": false, + "untagged-cep": false + } + ] + } + }, + { + "name": "eth2", + "type": "iana-if-type:ethernetCsmacd", + "oper-status": "up", + "statistics": { + "discontinuity-time": "2022-03-23T11:00:00+02:00" + }, + "ieee802-dot1q-bridge:bridge-port": { + "bridge-name": "ne1", + "component-name": "cv2", + "port-type": "ieee802-dot1q-bridge:customer-edge-port", + "pvid": 1, + "acceptable-frame": "admit-only-untagged-and-priority-tagged", + "enable-ingress-filtering": true, + "port-number": 2, + "ieee802-dot1q-pb:cvid-registration": [ + { + "cvid": 1, + "svid": 300, + "untagged-pep": true, + "untagged-cep": true + } + ] + } + }, + { + "name": "eth3", + "type": "iana-if-type:ethernetCsmacd", + "oper-status": "up", + "statistics": { + "discontinuity-time": "2022-03-23T11:00:00+02:00" + }, + "ieee802-dot1q-bridge:bridge-port": { + "bridge-name": "ne1", + "component-name": "sv0", + "port-type": "ieee802-dot1q-bridge:customer-network-port", + "pvid": 400, + "acceptable-frame": "admit-only-untagged-and-priority-tagged", + "enable-ingress-filtering": true, + "port-number": 3 + } + }, + { + "name": "eth4", + "type": "iana-if-type:ethernetCsmacd", + "oper-status": "up", + "statistics": { + "discontinuity-time": "2022-03-23T11:00:00+02:00" + }, + "ieee802-dot1q-bridge:bridge-port": { + "bridge-name": "ne1", + "component-name": "sv0", + "port-type": "ieee802-dot1q-bridge:customer-network-port", + "pvid": 1, + "acceptable-frame": "admit-only-VLAN-tagged-frames", + "enable-ingress-filtering": true, + "port-number": 4, + "enable-vid-translation-table": true, + "enable-egress-vid-translation-table": false, + "vid-translations": [ + { + "local-vid": 100, + "relay-vid": 500 + } + ] + } + }, + { + "name": "eth5", + "type": "iana-if-type:ethernetCsmacd", + "oper-status": "up", + "statistics": { + "discontinuity-time": "2022-03-23T11:00:00+02:00" + }, + "ieee802-dot1q-bridge:bridge-port": { + "bridge-name": "ne1", + "component-name": "sv0", + "port-type": "ieee802-dot1q-bridge:provider-network-port", + "pvid": 1, + "acceptable-frame": "admit-only-VLAN-tagged-frames", + "enable-ingress-filtering": true, + "port-number": 5 + } + } + ] + } + } \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.standalone/examples/json/e-line-examples-provider-bridge.json-generated.tdltx b/plugins/org.etsi.mts.tdl.standalone/examples/json/e-line-examples-provider-bridge.json-generated.tdltx new file mode 100644 index 0000000000000000000000000000000000000000..26254bb0bcc4e02a89e9885dd6074f1062a430d4 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.standalone/examples/json/e-line-examples-provider-bridge.json-generated.tdltx @@ -0,0 +1,458 @@ +Package generated_from_e_line_examples_provider_bridge_json { + Type String + Type TODO_RESOLVE_REFERENCED + Use "e-line-examples-provider-bridge.json" as SOURCE_MAPPING + Type JSON_String + Structure JSON_e_line_examples_provider_bridge_json ( + JSON_ieee802_dot1q_bridge_bridges ieee802_dot1q_bridge_bridges, + JSON_ietf_interfaces_interfaces ietf_interfaces_interfaces + ) + Structure JSON_ieee802_dot1q_bridge_bridges ( + JSON_bridge bridge + ) + Collection JSON_bridge of JSON_bridge_item + Structure JSON_bridge_item ( + JSON_String name, + JSON_String address, + JSON_String bridge_type, + JSON_component ^component + ) + Collection JSON_component of JSON_component_item + Structure JSON_component_item ( + JSON_String name, + JSON_String id, + JSON_String type, + JSON_bridge_port bridge_port, + JSON_filtering_database filtering_database, + JSON_bridge_vlan bridge_vlan + ) + Collection JSON_bridge_port of JSON_String + Structure JSON_filtering_database ( + JSON_vlan_registration_entry vlan_registration_entry + ) + Collection JSON_vlan_registration_entry of JSON_vlan_registration_entry_item + Structure JSON_vlan_registration_entry_item ( + JSON_String database_id, + JSON_String vids, + JSON_String entry_type, + JSON_port_map port_map + ) + Collection JSON_port_map of JSON_port_map_item + Structure JSON_port_map_item ( + JSON_String port_ref, + JSON_static_vlan_registration_entries static_vlan_registration_entries + ) + Structure JSON_static_vlan_registration_entries ( + JSON_String vlan_transmitted + ) + Structure JSON_bridge_vlan ( + JSON_vlan vlan + ) + Collection JSON_vlan of JSON_vlan_item + Structure JSON_vlan_item ( + JSON_String vid, + JSON_String name, + JSON_untagged_ports untagged_ports, + JSON_egress_ports egress_ports + ) + Collection JSON_untagged_ports of JSON_String + Collection JSON_egress_ports of JSON_String + Structure JSON_ietf_interfaces_interfaces ( + JSON_interface interface + ) + Collection JSON_interface of JSON_interface_item + Structure JSON_interface_item ( + JSON_String name, + JSON_String type, + JSON_String oper_status, + JSON_statistics statistics, + JSON_ieee802_dot1q_bridge_bridge_port ieee802_dot1q_bridge_bridge_port + ) + Structure JSON_statistics ( + JSON_String discontinuity_time + ) + Structure JSON_ieee802_dot1q_bridge_bridge_port ( + JSON_String bridge_name, + JSON_String component_name, + JSON_String port_type, + JSON_String pvid, + JSON_String acceptable_frame, + JSON_String enable_ingress_filtering, + JSON_String port_number, + JSON_ieee802_dot1q_pb_cvid_registration ieee802_dot1q_pb_cvid_registration, + JSON_String enable_vid_translation_table, + JSON_String enable_egress_vid_translation_table, + JSON_vid_translations vid_translations + ) + Collection JSON_ieee802_dot1q_pb_cvid_registration of JSON_ieee802_dot1q_pb_cvid_registration_item + Structure JSON_ieee802_dot1q_pb_cvid_registration_item ( + JSON_String cvid, + JSON_String svid, + JSON_String untagged_pep, + JSON_String untagged_cep + ) + Collection JSON_vid_translations of JSON_vid_translations_item + Structure JSON_vid_translations_item ( + JSON_String local_vid, + JSON_String relay_vid + ) + JSON_e_line_examples_provider_bridge_json JSON_instance ( + ieee802_dot1q_bridge_bridges = ( + bridge = [ + ( + name = "ne1", + address = "10-10-10-10-10-10", + bridge_type = "ieee802-dot1q-bridge:provider-edge-bridge", + ^component = [ + ( + name = "sv0", + id = "0", + type = "ieee802-dot1q-bridge:s-vlan-component", + bridge_port = [ + "eth3", + "eth4", + "eth5" + ], + filtering_database = ( + vlan_registration_entry = [ + ( + database_id = "1", + vids = "200", + entry_type = "static", + port_map = [ + ( + port_ref = "1", + static_vlan_registration_entries = ( + vlan_transmitted = "untagged" + ) + ), + ( + port_ref = "5", + static_vlan_registration_entries = ( + vlan_transmitted = "tagged" + ) + ) + ] + ), + ( + database_id = "1", + vids = "300", + entry_type = "static", + port_map = [ + ( + port_ref = "2", + static_vlan_registration_entries = ( + vlan_transmitted = "untagged" + ) + ), + ( + port_ref = "5", + static_vlan_registration_entries = ( + vlan_transmitted = "tagged" + ) + ) + ] + ), + ( + database_id = "1", + vids = "400", + entry_type = "static", + port_map = [ + ( + port_ref = "3", + static_vlan_registration_entries = ( + vlan_transmitted = "untagged" + ) + ), + ( + port_ref = "5", + static_vlan_registration_entries = ( + vlan_transmitted = "tagged" + ) + ) + ] + ), + ( + database_id = "1", + vids = "500", + entry_type = "static", + port_map = [ + ( + port_ref = "4", + static_vlan_registration_entries = ( + vlan_transmitted = "tagged" + ) + ), + ( + port_ref = "5", + static_vlan_registration_entries = ( + vlan_transmitted = "tagged" + ) + ) + ] + ) + ] + ), + bridge_vlan = ( + vlan = [ + ( + vid = "200", + name = "E-Line 200", + untagged_ports = [ + "eth1" + ], + egress_ports = [ + "eth1", + "eth5" + ] + ), + ( + vid = "300", + name = "E-Line 300", + untagged_ports = [ + "eth2" + ], + egress_ports = [ + "eth2", + "eth5" + ] + ), + ( + vid = "400", + name = "E-Line 400", + untagged_ports = [ + "eth3" + ], + egress_ports = [ + "eth3", + "eth5" + ] + ), + ( + vid = "500", + name = "E-Line 500", + egress_ports = [ + "eth4", + "eth5" + ] + ) + ] + ) + ), + ( + name = "cv1", + id = "1", + type = "ieee802-dot1q-bridge:c-vlan-component", + bridge_port = [ + "eth1" + ] + ), + ( + name = "cv2", + id = "2", + type = "ieee802-dot1q-bridge:c-vlan-component", + bridge_port = [ + "eth2" + ] + ) + ] + ) + ] + ), + ietf_interfaces_interfaces = ( + interface = [ + ( + name = "eth1", + type = "iana-if-type:ethernetCsmacd", + oper_status = "up", + statistics = ( + discontinuity_time = "2022-03-23T11:00:00+02:00" + ), + ieee802_dot1q_bridge_bridge_port = ( + bridge_name = "ne1", + component_name = "cv1", + port_type = "ieee802-dot1q-bridge:customer-edge-port", + pvid = "1", + acceptable_frame = "admit-only-VLAN-tagged-frames", + enable_ingress_filtering = "true", + port_number = "1", + ieee802_dot1q_pb_cvid_registration = [ + ( + cvid = "100", + svid = "200", + untagged_pep = "false", + untagged_cep = "false" + ) + ] + ) + ), + ( + name = "eth2", + type = "iana-if-type:ethernetCsmacd", + oper_status = "up", + statistics = ( + discontinuity_time = "2022-03-23T11:00:00+02:00" + ), + ieee802_dot1q_bridge_bridge_port = ( + bridge_name = "ne1", + component_name = "cv2", + port_type = "ieee802-dot1q-bridge:customer-edge-port", + pvid = "1", + acceptable_frame = "admit-only-untagged-and-priority-tagged", + enable_ingress_filtering = "true", + port_number = "2", + ieee802_dot1q_pb_cvid_registration = [ + ( + cvid = "1", + svid = "300", + untagged_pep = "true", + untagged_cep = "true" + ) + ] + ) + ), + ( + name = "eth3", + type = "iana-if-type:ethernetCsmacd", + oper_status = "up", + statistics = ( + discontinuity_time = "2022-03-23T11:00:00+02:00" + ), + ieee802_dot1q_bridge_bridge_port = ( + bridge_name = "ne1", + component_name = "sv0", + port_type = "ieee802-dot1q-bridge:customer-network-port", + pvid = "400", + acceptable_frame = "admit-only-untagged-and-priority-tagged", + enable_ingress_filtering = "true", + port_number = "3" + ) + ), + ( + name = "eth4", + type = "iana-if-type:ethernetCsmacd", + oper_status = "up", + statistics = ( + discontinuity_time = "2022-03-23T11:00:00+02:00" + ), + ieee802_dot1q_bridge_bridge_port = ( + bridge_name = "ne1", + component_name = "sv0", + port_type = "ieee802-dot1q-bridge:customer-network-port", + pvid = "1", + acceptable_frame = "admit-only-VLAN-tagged-frames", + enable_ingress_filtering = "true", + port_number = "4", + enable_vid_translation_table = "true", + enable_egress_vid_translation_table = "false", + vid_translations = [ + ( + local_vid = "100", + relay_vid = "500" + ) + ] + ) + ), + ( + name = "eth5", + type = "iana-if-type:ethernetCsmacd", + oper_status = "up", + statistics = ( + discontinuity_time = "2022-03-23T11:00:00+02:00" + ), + ieee802_dot1q_bridge_bridge_port = ( + bridge_name = "ne1", + component_name = "sv0", + port_type = "ieee802-dot1q-bridge:provider-network-port", + pvid = "1", + acceptable_frame = "admit-only-VLAN-tagged-frames", + enable_ingress_filtering = "true", + port_number = "5" + ) + ) + ] + ) + ) + Map JSON_e_line_examples_provider_bridge_json to "JSON" in SOURCE_MAPPING as JSON_SOURCE_MAPPING { + ieee802_dot1q_bridge_bridges -> "ieee802-dot1q-bridge:bridges", + ietf_interfaces_interfaces -> "ietf-interfaces:interfaces" + } + Map JSON_ieee802_dot1q_bridge_bridges to "JSON.ieee802-dot1q-bridge:bridges" in SOURCE_MAPPING as JSON_ieee802_dot1q_bridge_bridges_SOURCE_MAPPING { + bridge -> "bridge" + } + Map JSON_bridge_item to "JSON.bridge.item" in SOURCE_MAPPING as JSON_bridge_item_SOURCE_MAPPING { + name -> "name", + address -> "address", + bridge_type -> "bridge-type", + ^component -> "component" + } + Map JSON_component_item to "JSON.component.item" in SOURCE_MAPPING as JSON_component_item_SOURCE_MAPPING { + name -> "name", + id -> "id", + type -> "type", + bridge_port -> "bridge-port", + filtering_database -> "filtering-database", + bridge_vlan -> "bridge-vlan" + } + Map JSON_filtering_database to "JSON.filtering-database" in SOURCE_MAPPING as JSON_filtering_database_SOURCE_MAPPING { + vlan_registration_entry -> "vlan-registration-entry" + } + Map JSON_vlan_registration_entry_item to "JSON.vlan-registration-entry.item" in SOURCE_MAPPING as JSON_vlan_registration_entry_item_SOURCE_MAPPING { + database_id -> "database-id", + vids -> "vids", + entry_type -> "entry-type", + port_map -> "port-map" + } + Map JSON_port_map_item to "JSON.port-map.item" in SOURCE_MAPPING as JSON_port_map_item_SOURCE_MAPPING { + port_ref -> "port-ref", + static_vlan_registration_entries -> "static-vlan-registration-entries" + } + Map JSON_static_vlan_registration_entries to "JSON.static-vlan-registration-entries" in SOURCE_MAPPING as JSON_static_vlan_registration_entries_SOURCE_MAPPING { + vlan_transmitted -> "vlan-transmitted" + } + Map JSON_bridge_vlan to "JSON.bridge-vlan" in SOURCE_MAPPING as JSON_bridge_vlan_SOURCE_MAPPING { + vlan -> "vlan" + } + Map JSON_vlan_item to "JSON.vlan.item" in SOURCE_MAPPING as JSON_vlan_item_SOURCE_MAPPING { + vid -> "vid", + name -> "name", + untagged_ports -> "untagged-ports", + egress_ports -> "egress-ports" + } + Map JSON_ietf_interfaces_interfaces to "JSON.ietf-interfaces:interfaces" in SOURCE_MAPPING as JSON_ietf_interfaces_interfaces_SOURCE_MAPPING { + interface -> "interface" + } + Map JSON_interface_item to "JSON.interface.item" in SOURCE_MAPPING as JSON_interface_item_SOURCE_MAPPING { + name -> "name", + type -> "type", + oper_status -> "oper-status", + statistics -> "statistics", + ieee802_dot1q_bridge_bridge_port -> "ieee802-dot1q-bridge:bridge-port" + } + Map JSON_statistics to "JSON.statistics" in SOURCE_MAPPING as JSON_statistics_SOURCE_MAPPING { + discontinuity_time -> "discontinuity-time" + } + Map JSON_ieee802_dot1q_bridge_bridge_port to "JSON.ieee802-dot1q-bridge:bridge-port" in SOURCE_MAPPING as JSON_ieee802_dot1q_bridge_bridge_port_SOURCE_MAPPING { + bridge_name -> "bridge-name", + component_name -> "component-name", + port_type -> "port-type", + pvid -> "pvid", + acceptable_frame -> "acceptable-frame", + enable_ingress_filtering -> "enable-ingress-filtering", + port_number -> "port-number", + ieee802_dot1q_pb_cvid_registration -> "ieee802-dot1q-pb:cvid-registration", + enable_vid_translation_table -> "enable-vid-translation-table", + enable_egress_vid_translation_table -> "enable-egress-vid-translation-table", + vid_translations -> "vid-translations" + } + Map JSON_ieee802_dot1q_pb_cvid_registration_item to "JSON.ieee802-dot1q-pb:cvid-registration.item" in SOURCE_MAPPING as JSON_ieee802_dot1q_pb_cvid_registration_item_SOURCE_MAPPING { + cvid -> "cvid", + svid -> "svid", + untagged_pep -> "untagged-pep", + untagged_cep -> "untagged-cep" + } + Map JSON_vid_translations_item to "JSON.vid-translations.item" in SOURCE_MAPPING as JSON_vid_translations_item_SOURCE_MAPPING { + local_vid -> "local-vid", + relay_vid -> "relay-vid" + } +} \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.standalone/examples/json/generated_from_e_line_examples_c_vlan_bridge_json_JSON_instance.json b/plugins/org.etsi.mts.tdl.standalone/examples/json/generated_from_e_line_examples_c_vlan_bridge_json_JSON_instance.json new file mode 100644 index 0000000000000000000000000000000000000000..4a4017da9dde0e1f2f77fccabe0117b5a18fde52 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.standalone/examples/json/generated_from_e_line_examples_c_vlan_bridge_json_JSON_instance.json @@ -0,0 +1,143 @@ +{ + "ieee802-dot1q-bridge:bridges": { + "bridge": [ + { + "name": "ne2", + "address": "10-10-10-10-10-10", + "bridge-type": "ieee802-dot1q-bridge:customer-vlan-bridge", + "component": [ + { + "name": "cv0", + "id": "0", + "type": "ieee802-dot1q-bridge:c-vlan-component", + "bridge-port": [ + "eth1", + "eth2", + "eth3" + ], + "filtering-database": { + "vlan-registration-entry": [ + { + "database-id": "1", + "vids": "200", + "entry-type": "static", + "port-map": [ + { + "port-ref": "1", + "static-vlan-registration-entries": { + "vlan-transmitted": "tagged" + } + }, + { + "port-ref": "3", + "static-vlan-registration-entries": { + "vlan-transmitted": "tagged" + } + } + ] + }, + { + "database-id": "1", + "vids": "300", + "entry-type": "static", + "port-map": [ + { + "port-ref": "2", + "static-vlan-registration-entries": { + "vlan-transmitted": "untagged" + } + }, + { + "port-ref": "3", + "static-vlan-registration-entries": { + "vlan-transmitted": "tagged" + } + } + ] + } + ] + }, + "bridge-vlan": { + "vlan": [ + { + "vid": "200", + "name": "E-Line 200", + "egress-ports": [ + "eth1", + "eth3" + ] + }, + { + "vid": "300", + "name": "E-Line 300", + "untagged-ports": [ + "eth2" + ], + "egress-ports": [ + "eth2", + "eth3" + ] + } + ] + } + } + ] + } + ] + }, + "ietf-interfaces:interfaces": { + "interface": [ + { + "name": "eth1", + "type": "iana-if-type:ethernetCsmacd", + "oper-status": "up", + "statistics": { + "discontinuity-time": "2022-04-06T11:00:00+02:00" + }, + "ieee802-dot1q-bridge:bridge-port": { + "bridge-name": "ne2", + "component-name": "cv0", + "port-type": "ieee802-dot1q-bridge:c-vlan-bridge-port", + "pvid": "1", + "acceptable-frame": "admit-only-VLAN-tagged-frames", + "enable-ingress-filtering": "true", + "port-number": "1" + } + }, + { + "name": "eth2", + "type": "iana-if-type:ethernetCsmacd", + "oper-status": "up", + "statistics": { + "discontinuity-time": "2022-04-06T11:00:00+02:00" + }, + "ieee802-dot1q-bridge:bridge-port": { + "bridge-name": "ne2", + "component-name": "cv0", + "port-type": "ieee802-dot1q-bridge:c-vlan-bridge-port", + "pvid": "300", + "acceptable-frame": "admit-only-untagged-and-priority-tagged", + "enable-ingress-filtering": "true", + "port-number": "2" + } + }, + { + "name": "eth3", + "type": "iana-if-type:ethernetCsmacd", + "oper-status": "up", + "statistics": { + "discontinuity-time": "2022-04-06T11:00:00+02:00" + }, + "ieee802-dot1q-bridge:bridge-port": { + "bridge-name": "ne2", + "component-name": "cv0", + "port-type": "ieee802-dot1q-bridge:c-vlan-bridge-port", + "pvid": "1", + "acceptable-frame": "admit-only-VLAN-tagged-frames", + "enable-ingress-filtering": "true", + "port-number": "3" + } + } + ] + } +} \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.standalone/examples/json/generated_from_model_json_JSON_instance.json b/plugins/org.etsi.mts.tdl.standalone/examples/json/generated_from_model_json_JSON_instance.json new file mode 100644 index 0000000000000000000000000000000000000000..6c89e60459bc53c926112dd146df1aa90bec5d38 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.standalone/examples/json/generated_from_model_json_JSON_instance.json @@ -0,0 +1,54 @@ +{ + "authors": [ + { + "name": "Alfonso" + }, + { + "name": "Alfred" + } + ], + "books": [ + { + "title": "Book One", + "authors": [ + { + "name": "Author One" + }, + { + "name": "Author Two" + } + ] + }, + { + "title": "Book Two", + "authors": [ + { + "name": "Alfonso" + } + ] + }, + { + "title": "Book Three", + "year": "2022", + "authors": [ + { + "name": "Alfred" + } + ] + }, + { + "title": "Instance Book 2" + }, + { + "year": "2023", + "title": "Instance Book 2" + }, + { + "title": "2023 override" + }, + { + "title": "2023 override and extra year", + "year": "2023" + } + ] +} \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.standalone/examples/json/generated_from_model_json_b2.json b/plugins/org.etsi.mts.tdl.standalone/examples/json/generated_from_model_json_b2.json new file mode 100644 index 0000000000000000000000000000000000000000..234e61634f114c5da025656d6f77b97b862dceeb --- /dev/null +++ b/plugins/org.etsi.mts.tdl.standalone/examples/json/generated_from_model_json_b2.json @@ -0,0 +1,3 @@ +{ + "title": "Instance Book 2" +} \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.standalone/examples/json/model.json b/plugins/org.etsi.mts.tdl.standalone/examples/json/model.json new file mode 100644 index 0000000000000000000000000000000000000000..e2502f77ccd778c176e29f2221065f2ed4012fd0 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.standalone/examples/json/model.json @@ -0,0 +1,40 @@ +{ + "authors": [ + { + "name": "Alfonso" + }, + { + "name": "Alfred" + } + ], + "books": [ + { + "title": "Book One", + "authors": [ + { + "name": "Author One" + }, + { + "name": "Author Two" + } + ] + }, + { + "title": "Book Two", + "authors": [ + { + "name": "Alfonso" + } + ] + }, + { + "title": "Book Three", + "year": "2022", + "authors": [ + { + "name": "Alfred" + } + ] + } + ] +} \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.standalone/examples/json/model.json-generated-extended.tdltx b/plugins/org.etsi.mts.tdl.standalone/examples/json/model.json-generated-extended.tdltx new file mode 100644 index 0000000000000000000000000000000000000000..3ba02062db10c7cb03616d7768d9d05165132ab7 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.standalone/examples/json/model.json-generated-extended.tdltx @@ -0,0 +1,88 @@ +Package generated_from_model_json { + Type String + Type TODO_RESOLVE_REFERENCED + Use "model.json" as SOURCE_MAPPING + Type JSON_String + Structure JSON_model_json ( + JSON_authors authors, + JSON_books books + ) + Collection JSON_authors of JSON_authors_item + Structure JSON_authors_item ( + JSON_String name + ) + Collection JSON_books of JSON_books_item + Structure JSON_books_item ( + JSON_String title, + JSON_authors authors, + JSON_String year + ) + + JSON_books_item b2 ( + title = "Instance Book 2" + ) + + JSON_model_json JSON_instance ( + authors = [ + ( + name = "Alfonso" + ), + ( + name = "Alfred" + ) + ], + books = [ + ( + title = "Book One", + authors = [ + ( + name = "Author One" + ), + ( + name = "Author Two" + ) + ] + ), + ( + title = "Book Two", + authors = [ + ( + name = "Alfonso" + ) + ] + ), + ( + title = "Book Three", + year = "2022", + authors = [ + ( + name = "Alfred" + ) + ] + ), + b2 (), + b2 ( + year = "2023" + ), + b2 ( + title = "2023 override" + ), + b2 ( + title = "2023 override and extra year", + year = "2023" + ), + ] + ) + Map JSON_model_json to "JSON" in SOURCE_MAPPING as JSON_SOURCE_MAPPING { + authors -> "authors", + books -> "books" + } + Map JSON_authors_item to "JSON.authors.item" in SOURCE_MAPPING as JSON_authors_item_SOURCE_MAPPING { + name -> "name" + } + Map JSON_books_item to "JSON.books.item" in SOURCE_MAPPING as JSON_books_item_SOURCE_MAPPING { + title -> "title", + authors -> "authors", + year -> "year" + } +} \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.standalone/examples/json/model.json-generated.tdltx b/plugins/org.etsi.mts.tdl.standalone/examples/json/model.json-generated.tdltx new file mode 100644 index 0000000000000000000000000000000000000000..3ba02062db10c7cb03616d7768d9d05165132ab7 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.standalone/examples/json/model.json-generated.tdltx @@ -0,0 +1,88 @@ +Package generated_from_model_json { + Type String + Type TODO_RESOLVE_REFERENCED + Use "model.json" as SOURCE_MAPPING + Type JSON_String + Structure JSON_model_json ( + JSON_authors authors, + JSON_books books + ) + Collection JSON_authors of JSON_authors_item + Structure JSON_authors_item ( + JSON_String name + ) + Collection JSON_books of JSON_books_item + Structure JSON_books_item ( + JSON_String title, + JSON_authors authors, + JSON_String year + ) + + JSON_books_item b2 ( + title = "Instance Book 2" + ) + + JSON_model_json JSON_instance ( + authors = [ + ( + name = "Alfonso" + ), + ( + name = "Alfred" + ) + ], + books = [ + ( + title = "Book One", + authors = [ + ( + name = "Author One" + ), + ( + name = "Author Two" + ) + ] + ), + ( + title = "Book Two", + authors = [ + ( + name = "Alfonso" + ) + ] + ), + ( + title = "Book Three", + year = "2022", + authors = [ + ( + name = "Alfred" + ) + ] + ), + b2 (), + b2 ( + year = "2023" + ), + b2 ( + title = "2023 override" + ), + b2 ( + title = "2023 override and extra year", + year = "2023" + ), + ] + ) + Map JSON_model_json to "JSON" in SOURCE_MAPPING as JSON_SOURCE_MAPPING { + authors -> "authors", + books -> "books" + } + Map JSON_authors_item to "JSON.authors.item" in SOURCE_MAPPING as JSON_authors_item_SOURCE_MAPPING { + name -> "name" + } + Map JSON_books_item to "JSON.books.item" in SOURCE_MAPPING as JSON_books_item_SOURCE_MAPPING { + title -> "title", + authors -> "authors", + year -> "year" + } +} \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.standalone/examples/openapi/ExampleAPI.yaml b/plugins/org.etsi.mts.tdl.standalone/examples/openapi/ExampleAPI.yaml new file mode 100644 index 0000000000000000000000000000000000000000..fc63b19f731889e0295bb9dc2d12fe6fa65cc777 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.standalone/examples/openapi/ExampleAPI.yaml @@ -0,0 +1,313 @@ +openapi: 3.0.3 +info: + title: 'Examples for RESTful API guide' + version: '1.0.0' +externalDocs: + # Reference to the base document + description: 'ETSI ES 203 647 ...' + url: 'https://rest.etsi.org' +paths: + # Resource path relative to server, parameters in curly braces + /resource/{id}: + # Method + get: + # Unique case-sensitive identifier + operationId: getResource + # Grouping + tags: + - Resource management + summary: 'Read a resource' + description: 'Read full contents of a resource with specific ID' + parameters: + # Parameter name used as the key in associative array of parameters + - name: 'id' + # The location of parameter: path, query, header or cookie + in: path + required: true + description: 'Resource ID' + schema: + # Primitive type + type: string + responses: + # Response code + 200: + description: The requested resource + # Custom headers + headers: + ETag: + # Reference to (reusable) header definition + $ref: '#/components/headers/ETag' + # Response body + content: + application/json: + schema: + $ref: '#/components/schemas/ResourceData' + 401: + # Reference to (reusable) response definition + $ref: '#/components/responses/401' + 404: + $ref: '#/components/responses/404' + /resource: + # POST JSON object + post: + # Info excluded + operationId: postResource + summary: Create new resource + parameters: + # Reference to (reusable) parameter definition + - $ref: '#/components/parameters/resourceId' + # Reference to (reusable) header definition + - $ref: '#/components/parameters/Version' + requestBody: + description: 'Data for new resource' + required: true + content: + # Content media type (Content-Type header value) + application/json: + schema: + # Reference to data type + $ref: '#/components/schemas/ResourceData' + responses: + 204: + # Reference to data type + $ref: '#/components/responses/204' + '/resource/{id}/file': + # Upload a resource file + put: + # Info excluded + operationId: uploadResourceFile + summary: Upload a file for a resource + parameters: + - $ref: '#/components/parameters/resourceId' + requestBody: + description: 'An image file to be attached to the resource' + content: + multipart/form-data: + schema: + type: object + properties: + # Property name (also the name applied to content disposition) + file: + type: string + # Sets content type to application/octet-stream + format: binary + encoding: + # Applies custom encoding to "file" property + file: + # Override default content type + contentType: image/png + responses: + 204: + $ref: '#/components/responses/204' + # Example search path /search?text=rest&max=5 + '/search': + get: + summary: 'Search resource' + # Description excluded + operationId: searchResource + parameters: + - name: 'text' + in: query + required: true + description: 'Text to search for' + schema: + type: string + - name: 'max' + in: query + # Optional parameter + required: false + description: 'Maximum number of results expected' + schema: + type: number + - name: 'page' + in: query + required: false + description: '' + schema: + type: number + responses: + 200: + # TBD + description: 'The requested resource' + # Custom headers + headers: + ETag: + # Reference to (reusable) header definition + $ref: '#/components/headers/ETag' + # Response body + content: + application/json: + schema: + $ref: '#/components/schemas/SearchResults' + '/subscription': + post: + summary: 'Subscribe to authenticated notifications' + # Description excluded + operationId: subscribeNotifications + requestBody: + content: + application/json: + schema: + # Subscription containing callbackUrl property + $ref: '#/components/schemas/Subscription' + responses: + # Subscription was created + 201: + $ref: '#/components/responses/201' + # Out-of-band notifications from server + callbacks: + # Named callback object (inline or reference) + auth: + # Local path used by server for callback(s) + '{$request.body#/callbackUrl}/incoming': + post: + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AuthenticatedNotification' + responses: + 204: + $ref: '#/components/responses/204' + 401: + $ref: '#/components/responses/401' + + /service: + get: + # Info excluded + operationId: getService + # Support for GET request is mandatory for API provider + x-etsi-provision: mandatory + parameters: + - name: 'circuitswitching' + in: query + required: false + schema: + type: string + x-etsi-capabilities: + # Parameter only applies to "3G" capability + - 3G + responses: + 200: + description: 'The requested service' + content: + application/json: + schema: + type: object + properties: + speed: + type: string + enum: + - fast + - superfast + x-etsi-enum: + # Enum value "superfast" is optional and + # only applies to "4G" and "5G" capabilities + superfast: + required: false + x-etsi-capabilities: + - 4G + - 5G +# Optional definitions +security: [] +components: + schemas: + # Name of data type + SearchResults: + # Array type + type: array + items: + # Type of array members, reference to ResourceData + $ref: '#/components/schemas/ResourceData' + # No more than 10 results + maxItems: 10 + ResourceData: + # Structured type + type: object + properties: + # Property name + id: + # Property type + type: string + size: + type: string + enum: + # Set of allowed values + - big + - bigger + - biggerer + # Default value for non-required property + default: big + created: + # Date-time value encoded as string + type: string + format: date-time + required: + # Set of required properties + - id + Subscription: + type: object + properties: + credentials: + $ref: '#/components/schemas/Credentials' + AuthenticatedNotification: + type: object + Credentials: + type: object + properties: + user: + type: string + responses: + # Common responses with response code as identifier + 201: + description: 'Created' + 204: + description: 'No content' + 401: + description: 'Unauthenticated' + 404: + description: 'Not found' + headers: + Version: + description: 'API version' + required: true + schema: + type: string + # Definition of ETag header + ETag: + description: 'Identifier for a specific version of a resource' + schema: + type: string + parameters: + Version: + name: 'Version' + description: 'API version' + in: header + required: true + schema: + type: string + resourceId: + name: 'id' + in: path + required: true + description: 'Resource ID' + schema: + type: string + securitySchemes: {} + callbacks: {} +servers: + # Recommended structure for API paths + - url: '{apiRoot}/{apiName}/{apiMajorVersion}/' + variables: + apiRoot: + default: https://example.com + apiName: + description: Interface name from the base document + default: rest-api-guide + apiMajorVersion: + description: Major version of the API from the base document + default: v1 +tags: + # Optional descriptions of tags + - name: Resource management + description: Operations for managing resources \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.standalone/examples/openapi/ExampleAPI.yaml-RQ-ICS-TSS.md b/plugins/org.etsi.mts.tdl.standalone/examples/openapi/ExampleAPI.yaml-RQ-ICS-TSS.md new file mode 100644 index 0000000000000000000000000000000000000000..cb9c2ad18a758bec2463f3a4a0541262d8b9171f --- /dev/null +++ b/plugins/org.etsi.mts.tdl.standalone/examples/openapi/ExampleAPI.yaml-RQ-ICS-TSS.md @@ -0,0 +1,113 @@ +== Model /Users/philip-iii/Dev/git/etsi-labs/ide/plugins/org.etsi.mts.tdl.standalone/examples/openapi/ExampleAPI.yaml +# Generated Documentation + +## Requirements + +### API: Examples for RESTful API guide + +| Identifier | Reference | Type | Applicability | Requirement | Context | +| ---------- | ---------- | ---- | ------------- | ------------ | ------- | +| RQ_RESOURCE_ID_GET_001 | Path: /resource/{id} | M | RESOURCE_ID | Read a resource; Read full contents of a resource with specific ID | getResource | +| RQ_RESOURCE_POST_001 | Path: /resource | M | RESOURCE | Create new resource; | postResource | +| RQ_RESOURCE_ID_FILE_PUT_001 | Path: /resource/{id}/file | M | RESOURCE_ID_FILE | Upload a file for a resource; | uploadResourceFile | +| RQ_SEARCH_GET_001 | Path: /search | M | SEARCH | Search resource; | searchResource | +| RQ_SUBSCRIPTION_POST_001 | Path: /subscription | M | SUBSCRIPTION | Subscribe to authenticated notifications; | subscribeNotifications | +| RQ_SERVICE_GET_001 | Path: /service | M | SERVICE | | getService | + +[Table X.Y: Extracted requirements]{custom-style="FL"} + +## Implementation Conformance Statements + +#### Detail + +| ID | Resource | Reference | Method | Type | Request | Response | +| -- | --------- | --------- | ------ | ----- | ------- | -------- | +| D_RESOURCE_ID_GET_200_001 | /resource/{id} | Path: /resource/{id} : getResource | GET | M | (fill in request) | 200 | +| D_RESOURCE_ID_GET_401_002 | /resource/{id} | Path: /resource/{id} : getResource | GET | M | (fill in request) | 401 | +| D_RESOURCE_ID_GET_404_003 | /resource/{id} | Path: /resource/{id} : getResource | GET | M | (fill in request) | 404 | +| D_RESOURCE_POST_204_001 | /resource | Path: /resource : postResource | POST | M | (fill in request) | 204 | +| D_RESOURCE_ID_FILE_PUT_204_001 | /resource/{id}/file | Path: /resource/{id}/file : uploadResourceFile | PUT | M | (fill in request) | 204 | +| D_SEARCH_GET_200_001 | /search | Path: /search : searchResource | GET | M | (fill in request) | 200 | +| D_SUBSCRIPTION_POST_201_001 | /subscription | Path: /subscription : subscribeNotifications | POST | M | (fill in request) | 201 | +| D_SERVICE_GET_200_001 | /service | Path: /service : getService | GET | M | (fill in request) | 200 | + +[Table X.Y: Extracted ICS (Detail)]{custom-style="FL"} + +#### Method + +| ID | Resource | Reference | Method | Type | Request | Response | +| -- | --------- | --------- | ------ | ----- | ------- | -------- | +| M1 | /resource/{id} | Path: /resource/{id} : getResource | GET | M | (fill in request) | 200,401,404 | +| M2 | /resource | Path: /resource : postResource | POST | M | (fill in request) | 204 | +| M3 | /resource/{id}/file | Path: /resource/{id}/file : uploadResourceFile | PUT | M | (fill in request) | 204 | +| M4 | /search | Path: /search : searchResource | GET | M | (fill in request) | 200 | +| M5 | /subscription | Path: /subscription : subscribeNotifications | POST | M | (fill in request) | 201 | +| M6 | /service | Path: /service : getService | GET | M | (fill in request) | 200 | + +[Table X.Y: Extracted ICS (Method)]{custom-style="FL"} + +#### Path + +| ID | Resource | Reference | Method | Type | Request | Response | +| -- | --------- | --------- | ------ | ----- | ------- | -------- | +| P1 | /resource/{id} | Path: /resource/{id} : getResource | GET | M | (fill in request) | 200,401,404 | +| P2 | /resource | Path: /resource : postResource | POST | M | (fill in request) | 204 | +| P3 | /resource/{id}/file | Path: /resource/{id}/file : uploadResourceFile | PUT | M | (fill in request) | 204 | +| P4 | /search | Path: /search : searchResource | GET | M | (fill in request) | 200 | +| P5 | /subscription | Path: /subscription : subscribeNotifications | POST | M | (fill in request) | 201 | +| P6 | /service | Path: /service : getService | GET | M | (fill in request) | 200 | + +[Table X.Y: Extracted ICS (Path)]{custom-style="FL"} + +#### Hierarchical + +| ID | Resource | Reference | Method | Type | Request | Response | +| -- | --------- | --------- | ------ | ----- | ------- | -------- | +| P1 | /resource/{id} | Path: /resource/{id} : getResource | GET | M | (fill in request) | 200,401,404 | +| P1_M1 | /resource/{id} | Path: /resource/{id} : getResource | GET | M | (fill in request) | 200,401,404 | +| P1_M1_R1 | /resource/{id} | Path: /resource/{id} : getResource | GET | M | (fill in request) | 200 | +| P1_M1_R2 | /resource/{id} | Path: /resource/{id} : getResource | GET | M | (fill in request) | 401 | +| P1_M1_R3 | /resource/{id} | Path: /resource/{id} : getResource | GET | M | (fill in request) | 404 | +| P2 | /resource | Path: /resource : postResource | POST | M | (fill in request) | 204 | +| P2_M1 | /resource | Path: /resource : postResource | POST | M | (fill in request) | 204 | +| P2_M1_R1 | /resource | Path: /resource : postResource | POST | M | (fill in request) | 204 | +| P3 | /resource/{id}/file | Path: /resource/{id}/file : uploadResourceFile | PUT | M | (fill in request) | 204 | +| P3_M1 | /resource/{id}/file | Path: /resource/{id}/file : uploadResourceFile | PUT | M | (fill in request) | 204 | +| P3_M1_R1 | /resource/{id}/file | Path: /resource/{id}/file : uploadResourceFile | PUT | M | (fill in request) | 204 | +| P4 | /search | Path: /search : searchResource | GET | M | (fill in request) | 200 | +| P4_M1 | /search | Path: /search : searchResource | GET | M | (fill in request) | 200 | +| P4_M1_R1 | /search | Path: /search : searchResource | GET | M | (fill in request) | 200 | +| P5 | /subscription | Path: /subscription : subscribeNotifications | POST | M | (fill in request) | 201 | +| P5_M1 | /subscription | Path: /subscription : subscribeNotifications | POST | M | (fill in request) | 201 | +| P5_M1_R1 | /subscription | Path: /subscription : subscribeNotifications | POST | M | (fill in request) | 201 | +| P6 | /service | Path: /service : getService | GET | M | (fill in request) | 200 | +| P6_M1 | /service | Path: /service : getService | GET | M | (fill in request) | 200 | +| P6_M1_R1 | /service | Path: /service : getService | GET | M | (fill in request) | 200 | + +[Table X.Y: Extracted ICS (Hierarchical)]{custom-style="FL"} + +## Test Suite Structure + +* API: Examples for RESTful API guide + * RESOURCE_ID + * GET + * GET_200 + * GET_401 + * GET_404 + * RESOURCE + * POST + * POST_204 + * RESOURCE_ID_FILE + * PUT + * PUT_204 + * SEARCH + * GET + * GET_200 + * SUBSCRIPTION + * POST + * POST_201 + * SERVICE + * GET + * GET_200 +------ + diff --git a/plugins/org.etsi.mts.tdl.standalone/examples/openapi/ExampleAPI.yaml-generated.tdltx b/plugins/org.etsi.mts.tdl.standalone/examples/openapi/ExampleAPI.yaml-generated.tdltx new file mode 100644 index 0000000000000000000000000000000000000000..a526f2563b77049e52b8c14973c277ad608eb8b5 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.standalone/examples/openapi/ExampleAPI.yaml-generated.tdltx @@ -0,0 +1,51 @@ +Package generated_from_ExampleAPI_yaml { + Type String + Type TODO_RESOLVE_REFERENCED + Use "ExampleAPI.yaml" as SOURCE_MAPPING + Use "generated/java" as TARGET_MAPPING + Collection SearchResults of SearchResults___item + Structure SearchResults___item ( + string id, + string ^size, + string created + ) + Type string + Map SearchResults to "#/components/schemas/SearchResults" in SOURCE_MAPPING as SearchResults_SOURCE_MAPPING + Map SearchResults to "SearchResults" in TARGET_MAPPING as SearchResults_TARGET_MAPPING + Structure ResourceData ( + string id, + string ^size, + string created + ) + Map ResourceData to "#/components/schemas/ResourceData" in SOURCE_MAPPING as ResourceData_SOURCE_MAPPING { + id -> "id", + ^size -> "size", + created -> "created" + } + Map ResourceData to "ResourceData" in TARGET_MAPPING as ResourceData_TARGET_MAPPING { + id -> "id", + ^size -> "size", + created -> "created" + } + Structure Subscription ( + Credentials credentials + ) + Structure Credentials ( + string user + ) + Map Subscription to "#/components/schemas/Subscription" in SOURCE_MAPPING as Subscription_SOURCE_MAPPING { + credentials -> "credentials" + } + Map Subscription to "Subscription" in TARGET_MAPPING as Subscription_TARGET_MAPPING { + credentials -> "credentials" + } + Structure AuthenticatedNotification ( ) + Map AuthenticatedNotification to "#/components/schemas/AuthenticatedNotification" in SOURCE_MAPPING as AuthenticatedNotification_SOURCE_MAPPING + Map AuthenticatedNotification to "AuthenticatedNotification" in TARGET_MAPPING as AuthenticatedNotification_TARGET_MAPPING + Map Credentials to "#/components/schemas/Credentials" in SOURCE_MAPPING as Credentials_SOURCE_MAPPING { + user -> "user" + } + Map Credentials to "Credentials" in TARGET_MAPPING as Credentials_TARGET_MAPPING { + user -> "user" + } +} \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.standalone/examples/openapi/RQ-ICS-TSS.md b/plugins/org.etsi.mts.tdl.standalone/examples/openapi/RQ-ICS-TSS.md new file mode 100644 index 0000000000000000000000000000000000000000..b519332c95705b37104edb22a280087b94184ba0 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.standalone/examples/openapi/RQ-ICS-TSS.md @@ -0,0 +1,105 @@ +# Generated Documentation + +## Requirements + +### API: Examples for RESTful API guide + +| Identifier | Reference | Type | Applicability | Requirement | Context | +| ---------- | ---------- | ---- | ------------- | ------------ | ------- | +| RQ_RESOURCE_ID_GET_001 | Path: /resource/{id} | M | RESOURCE_ID | Read a resource; Read full contents of a resource with specific ID | getResource | +| RQ_RESOURCE_POST_001 | Path: /resource | M | RESOURCE | Create new resource; | postResource | +| RQ_RESOURCE_ID_FILE_PUT_001 | Path: /resource/{id}/file | M | RESOURCE_ID_FILE | Upload a file for a resource; | uploadResourceFile | +| RQ_SEARCH_GET_001 | Path: /search | M | SEARCH | Search resource; | searchResource | +| RQ_SUBSCRIPTION_POST_001 | Path: /subscription | M | SUBSCRIPTION | Subscribe to authenticated notifications; | subscribeNotifications | +| RQ_SERVICE_GET_001 | Path: /service | M | SERVICE | | getService | +[Table X.Y: Extracted requirements]{custom-style="FL"} + +## Implementation Conformance Statements + +#### Detail + +| ID | Resource | Reference | Method | Type | Request | Response | +| -- | --------- | --------- | ------ | ----- | ------- | -------- | +| D_RESOURCE_ID_GET_200_001 | /resource/{id} | Path: /resource/{id} : getResource | GET | M | (fill in request) | 200 | +| D_RESOURCE_ID_GET_401_002 | /resource/{id} | Path: /resource/{id} : getResource | GET | M | (fill in request) | 401 | +| D_RESOURCE_ID_GET_404_003 | /resource/{id} | Path: /resource/{id} : getResource | GET | M | (fill in request) | 404 | +| D_RESOURCE_POST_204_001 | /resource | Path: /resource : postResource | POST | M | (fill in request) | 204 | +| D_RESOURCE_ID_FILE_PUT_204_001 | /resource/{id}/file | Path: /resource/{id}/file : uploadResourceFile | PUT | M | (fill in request) | 204 | +| D_SEARCH_GET_200_001 | /search | Path: /search : searchResource | GET | M | (fill in request) | 200 | +| D_SUBSCRIPTION_POST_201_001 | /subscription | Path: /subscription : subscribeNotifications | POST | M | (fill in request) | 201 | +| D_SERVICE_GET_200_001 | /service | Path: /service : getService | GET | M | (fill in request) | 200 | +[Table X.Y: Extracted ICS (Detail)]{custom-style="FL"} + +#### Method + +| ID | Resource | Reference | Method | Type | Request | Response | +| -- | --------- | --------- | ------ | ----- | ------- | -------- | +| M1 | /resource/{id} | Path: /resource/{id} : getResource | GET | M | (fill in request) | 200,401,404 | +| M2 | /resource | Path: /resource : postResource | POST | M | (fill in request) | 204 | +| M3 | /resource/{id}/file | Path: /resource/{id}/file : uploadResourceFile | PUT | M | (fill in request) | 204 | +| M4 | /search | Path: /search : searchResource | GET | M | (fill in request) | 200 | +| M5 | /subscription | Path: /subscription : subscribeNotifications | POST | M | (fill in request) | 201 | +| M6 | /service | Path: /service : getService | GET | M | (fill in request) | 200 | +[Table X.Y: Extracted ICS (Method)]{custom-style="FL"} + +#### Path + +| ID | Resource | Reference | Method | Type | Request | Response | +| -- | --------- | --------- | ------ | ----- | ------- | -------- | +| P1 | /resource/{id} | Path: /resource/{id} : getResource | GET | M | (fill in request) | 200,401,404 | +| P2 | /resource | Path: /resource : postResource | POST | M | (fill in request) | 204 | +| P3 | /resource/{id}/file | Path: /resource/{id}/file : uploadResourceFile | PUT | M | (fill in request) | 204 | +| P4 | /search | Path: /search : searchResource | GET | M | (fill in request) | 200 | +| P5 | /subscription | Path: /subscription : subscribeNotifications | POST | M | (fill in request) | 201 | +| P6 | /service | Path: /service : getService | GET | M | (fill in request) | 200 | +[Table X.Y: Extracted ICS (Path)]{custom-style="FL"} + +#### Hierarchical + +| ID | Resource | Reference | Method | Type | Request | Response | +| -- | --------- | --------- | ------ | ----- | ------- | -------- | +| P1 | /resource/{id} | Path: /resource/{id} : getResource | GET | M | (fill in request) | 200,401,404 | +| P1_M1 | /resource/{id} | Path: /resource/{id} : getResource | GET | M | (fill in request) | 200,401,404 | +| P1_M1_R1 | /resource/{id} | Path: /resource/{id} : getResource | GET | M | (fill in request) | 200 | +| P1_M1_R2 | /resource/{id} | Path: /resource/{id} : getResource | GET | M | (fill in request) | 401 | +| P1_M1_R3 | /resource/{id} | Path: /resource/{id} : getResource | GET | M | (fill in request) | 404 | +| P2 | /resource | Path: /resource : postResource | POST | M | (fill in request) | 204 | +| P2_M1 | /resource | Path: /resource : postResource | POST | M | (fill in request) | 204 | +| P2_M1_R1 | /resource | Path: /resource : postResource | POST | M | (fill in request) | 204 | +| P3 | /resource/{id}/file | Path: /resource/{id}/file : uploadResourceFile | PUT | M | (fill in request) | 204 | +| P3_M1 | /resource/{id}/file | Path: /resource/{id}/file : uploadResourceFile | PUT | M | (fill in request) | 204 | +| P3_M1_R1 | /resource/{id}/file | Path: /resource/{id}/file : uploadResourceFile | PUT | M | (fill in request) | 204 | +| P4 | /search | Path: /search : searchResource | GET | M | (fill in request) | 200 | +| P4_M1 | /search | Path: /search : searchResource | GET | M | (fill in request) | 200 | +| P4_M1_R1 | /search | Path: /search : searchResource | GET | M | (fill in request) | 200 | +| P5 | /subscription | Path: /subscription : subscribeNotifications | POST | M | (fill in request) | 201 | +| P5_M1 | /subscription | Path: /subscription : subscribeNotifications | POST | M | (fill in request) | 201 | +| P5_M1_R1 | /subscription | Path: /subscription : subscribeNotifications | POST | M | (fill in request) | 201 | +| P6 | /service | Path: /service : getService | GET | M | (fill in request) | 200 | +| P6_M1 | /service | Path: /service : getService | GET | M | (fill in request) | 200 | +| P6_M1_R1 | /service | Path: /service : getService | GET | M | (fill in request) | 200 | +[Table X.Y: Extracted ICS (Hierarchical)]{custom-style="FL"} + +## Test Suite Structure + +* API: Examples for RESTful API guide + * RESOURCE_ID + * GET + * GET_200 + * GET_401 + * GET_404 + * RESOURCE + * POST + * POST_204 + * RESOURCE_ID_FILE + * PUT + * PUT_204 + * SEARCH + * GET + * GET_200 + * SUBSCRIPTION + * POST + * POST_201 + * SERVICE + * GET + * GET_200 diff --git a/plugins/org.etsi.mts.tdl.standalone/examples/openapi/reqres.yaml b/plugins/org.etsi.mts.tdl.standalone/examples/openapi/reqres.yaml new file mode 100644 index 0000000000000000000000000000000000000000..9dad5a71c21b5e58fc34faa7d5c37c2d7120a4bf --- /dev/null +++ b/plugins/org.etsi.mts.tdl.standalone/examples/openapi/reqres.yaml @@ -0,0 +1,272 @@ +openapi: 3.0.0 +info: + title: ReqRes API + description: Fake data CRUD API + version: 1.00 +servers: + - url: https://reqres.in/api +components: + schemas: + User: + type: object + properties: + id: + type: integer + email: + type: string + first_name: + type: string + last_name: + type: string + avatar: + type: string + UnknownResource: + type: object + properties: + id: + type: integer + name: + type: string + year: + type: integer + color: + type: string + pantone_value: + type: string +paths: + /{resource}: + get: + summary: Fetches a resource list + parameters: + - in: query + name: page + schema: + type: integer + - in: query + name: per_page + schema: + type: integer + responses: + '200': + description: Success + content: + application/json: + schema: + type: object + properties: + page: + type: integer + per_page: + type: integer + total: + type: integer + total_pages: + type: integer + data: + type: array + items: + $ref: "#/components/schemas/UnknownResource" + /users: + get: + summary: Fetches a user list + parameters: + - in: query + name: page + schema: + type: integer + - in: query + name: per_page + schema: + type: integer + responses: + '200': + description: Success + content: + application/json: + schema: + type: object + properties: + page: + type: integer + per_page: + type: integer + total: + type: integer + total_pages: + type: integer + data: + type: array + items: + $ref: "#/components/schemas/User" + /users/{id}: + get: + summary: Fetches a user + parameters: + - in: path + name: id + schema: + type: integer + responses: + '200': + description: Success + content: + application/json: + schema: + type: object + properties: + data: + $ref: "#/components/schemas/User" + put: + summary: Updates a user + responses: + '200': + description: Success + content: + application/json: + schema: + type: object + properties: + updatedAt: + type: string + patch: + summary: Updates a user + responses: + '200': + description: Success + content: + application/json: + schema: + type: object + properties: + updatedAt: + type: string + delete: + summary: Deletes a user + responses: + '204': + description: Success + /{resource}/{id}: + get: + summary: Fetches an unknown resource + parameters: + - in: path + name: id + schema: + type: integer + responses: + '200': + description: Success + content: + application/json: + schema: + type: object + properties: + data: + $ref: "#/components/schemas/UnknownResource" + put: + summary: Updates an unknown resource + responses: + '200': + description: Success + content: + application/json: + schema: + type: object + properties: + updatedAt: + type: string + patch: + summary: Updates an unknown resource + responses: + '200': + description: Success + content: + application/json: + schema: + type: object + properties: + updatedAt: + type: string + delete: + summary: Deletes an unknown resource + responses: + '204': + description: Success + /login: + post: + summary: Creates a session + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + username: + type: string + email: + type: string + password: + type: string + responses: + '200': + description: Success + content: + application/json: + schema: + type: object + properties: + token: + type: string + '400': + description: Login error + content: + application/json: + schema: + type: object + properties: + error: + type: string + /register: + post: + summary: Creates a user + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + username: + type: string + email: + type: string + password: + type: string + responses: + '200': + description: Success + content: + application/json: + schema: + type: object + properties: + id: + type: string + token: + type: string + '400': + description: Register error + content: + application/json: + schema: + type: object + properties: + error: + type: string + /logout: + post: + summary: Ends a session + responses: + '200': + description: Success diff --git a/plugins/org.etsi.mts.tdl.standalone/examples/openapi/reqres.yaml-generated.tdltx b/plugins/org.etsi.mts.tdl.standalone/examples/openapi/reqres.yaml-generated.tdltx new file mode 100644 index 0000000000000000000000000000000000000000..3dc3a532865eb0e760a037a34f7905bba0143fa0 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.standalone/examples/openapi/reqres.yaml-generated.tdltx @@ -0,0 +1,195 @@ +Package generated_from_reqres_yaml { + Type String + Type TODO_RESOLVE_REFERENCED + Use "reqres.yaml" as SOURCE_MAPPING + Use "generated/java" as TARGET_MAPPING + Structure User ( + integer id, + string email, + string first_name, + string last_name, + string avatar + ) + Type integer + Type string + Map User to "#/components/schemas/User" in SOURCE_MAPPING as User_SOURCE_MAPPING { + id -> "id", + email -> "email", + first_name -> "first_name", + last_name -> "last_name", + avatar -> "avatar" + } + Map User to "User" in TARGET_MAPPING as User_TARGET_MAPPING { + id -> "id", + email -> "email", + first_name -> "first_name", + last_name -> "last_name", + avatar -> "avatar" + } + Structure UnknownResource ( + integer id, + string name, + integer year, + string color, + string pantone_value + ) + Map UnknownResource to "#/components/schemas/UnknownResource" in SOURCE_MAPPING as UnknownResource_SOURCE_MAPPING { + id -> "id", + name -> "name", + year -> "year", + color -> "color", + pantone_value -> "pantone_value" + } + Map UnknownResource to "UnknownResource" in TARGET_MAPPING as UnknownResource_TARGET_MAPPING { + id -> "id", + name -> "name", + year -> "year", + color -> "color", + pantone_value -> "pantone_value" + } + Structure inline_response_200 ( + integer page, + integer per_page, + integer total, + integer total_pages, + inline_response_200______item data + ) + Collection inline_response_200______item of inline_response_200______itemUnknownResource + Structure inline_response_200______itemUnknownResource ( + integer id, + string name, + integer year, + string color, + string pantone_value + ) + Map inline_response_200 to "#/components/schemas/inline_response_200" in SOURCE_MAPPING as inline_response_200_SOURCE_MAPPING { + page -> "page", + per_page -> "per_page", + total -> "total", + total_pages -> "total_pages", + data -> "data" + } + Map inline_response_200 to "inline_response_200" in TARGET_MAPPING as inline_response_200_TARGET_MAPPING { + page -> "page", + per_page -> "per_page", + total -> "total", + total_pages -> "total_pages", + data -> "data" + } + Structure inline_response_200_1 ( + integer page, + integer per_page, + integer total, + integer total_pages, + inline_response_200_1______item data + ) + Collection inline_response_200_1______item of inline_response_200_1______itemUser + Structure inline_response_200_1______itemUser ( + integer id, + string email, + string first_name, + string last_name, + string avatar + ) + Map inline_response_200_1 to "#/components/schemas/inline_response_200_1" in SOURCE_MAPPING as inline_response_200_1_SOURCE_MAPPING { + page -> "page", + per_page -> "per_page", + total -> "total", + total_pages -> "total_pages", + data -> "data" + } + Map inline_response_200_1 to "inline_response_200_1" in TARGET_MAPPING as inline_response_200_1_TARGET_MAPPING { + page -> "page", + per_page -> "per_page", + total -> "total", + total_pages -> "total_pages", + data -> "data" + } + Structure inline_response_200_2 ( + User data + ) + Map inline_response_200_2 to "#/components/schemas/inline_response_200_2" in SOURCE_MAPPING as inline_response_200_2_SOURCE_MAPPING { + data -> "data" + } + Map inline_response_200_2 to "inline_response_200_2" in TARGET_MAPPING as inline_response_200_2_TARGET_MAPPING { + data -> "data" + } + Structure inline_response_200_3 ( + string updatedAt + ) + Map inline_response_200_3 to "#/components/schemas/inline_response_200_3" in SOURCE_MAPPING as inline_response_200_3_SOURCE_MAPPING { + updatedAt -> "updatedAt" + } + Map inline_response_200_3 to "inline_response_200_3" in TARGET_MAPPING as inline_response_200_3_TARGET_MAPPING { + updatedAt -> "updatedAt" + } + Structure inline_response_200_4 ( + UnknownResource data + ) + Map inline_response_200_4 to "#/components/schemas/inline_response_200_4" in SOURCE_MAPPING as inline_response_200_4_SOURCE_MAPPING { + data -> "data" + } + Map inline_response_200_4 to "inline_response_200_4" in TARGET_MAPPING as inline_response_200_4_TARGET_MAPPING { + data -> "data" + } + Structure login_body ( + string username, + string email, + string password + ) + Map login_body to "#/components/schemas/login_body" in SOURCE_MAPPING as login_body_SOURCE_MAPPING { + username -> "username", + email -> "email", + password -> "password" + } + Map login_body to "login_body" in TARGET_MAPPING as login_body_TARGET_MAPPING { + username -> "username", + email -> "email", + password -> "password" + } + Structure inline_response_200_5 ( + string token + ) + Map inline_response_200_5 to "#/components/schemas/inline_response_200_5" in SOURCE_MAPPING as inline_response_200_5_SOURCE_MAPPING { + token -> "token" + } + Map inline_response_200_5 to "inline_response_200_5" in TARGET_MAPPING as inline_response_200_5_TARGET_MAPPING { + token -> "token" + } + Structure inline_response_400 ( + string error + ) + Map inline_response_400 to "#/components/schemas/inline_response_400" in SOURCE_MAPPING as inline_response_400_SOURCE_MAPPING { + error -> "error" + } + Map inline_response_400 to "inline_response_400" in TARGET_MAPPING as inline_response_400_TARGET_MAPPING { + error -> "error" + } + Structure register_body ( + string username, + string email, + string password + ) + Map register_body to "#/components/schemas/register_body" in SOURCE_MAPPING as register_body_SOURCE_MAPPING { + username -> "username", + email -> "email", + password -> "password" + } + Map register_body to "register_body" in TARGET_MAPPING as register_body_TARGET_MAPPING { + username -> "username", + email -> "email", + password -> "password" + } + Structure inline_response_200_6 ( + string id, + string token + ) + Map inline_response_200_6 to "#/components/schemas/inline_response_200_6" in SOURCE_MAPPING as inline_response_200_6_SOURCE_MAPPING { + id -> "id", + token -> "token" + } + Map inline_response_200_6 to "inline_response_200_6" in TARGET_MAPPING as inline_response_200_6_TARGET_MAPPING { + id -> "id", + token -> "token" + } +} \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.standalone/examples/validation/Example.tdltx b/plugins/org.etsi.mts.tdl.standalone/examples/validation/Example.tdltx new file mode 100644 index 0000000000000000000000000000000000000000..366f27295e9a9275118286d2048413147b4d3d87 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.standalone/examples/validation/Example.tdltx @@ -0,0 +1,77 @@ +Package Wizardry { + Type integer + Type string + Type Integer + Type String + + Collection iCol of integer +// Collection nCol of iCol + + Message Gate http accepts string, integer, String, Integer + Component node { + gate http interface1 + gate http interface2 + gate http interface3 + } + + Configuration base { + node sut_node as SUT, +// node sut_node as Tester, + node tester as Tester, + connect sut_node::interface1 to tester::interface1, + connect sut_node::interface2 to tester::interface1 + //TODO: TTCN-3 generation seems to have a problem with multiple connections on the same (system?) port.. + //connect sut_node::interface1 to tester::interface3 + } + Test example uses base { + tester::interface1 sends "hello"{string} to sut_node::interface1 + tester::interface1 sends 1 {Integer} to sut_node::interface1 + tester::interface1 sends 1 to sut_node::interface1 //TODO: unspecified type not resolved -> standard library Integer required + //better error messages? +// tester::interface3 receives 2 from sut_node::interface2 + + + } + + Annotation Initial conditions + Annotation Expected behaviour + Annotation Final conditions + Annotation Test Purpose Description + Annotation when + Annotation then + + Objective name { + Description: "example" + References: "reference" + } + + Test Purpose Description exampl { + Objective: name + Configuration: base + Expected behaviour + ensure that { + when { + tester::interface1 sends "hello" to sut_node::interface1 + } + then { + tester::interface1 receives "hello back" from sut_node::interface1 + } + } + } + + Test Purpose Description exampl2 { + Objective: name + Configuration: base + Expected behaviour + ensure that { + when { + tester::interface1 sends "hello" to sut_node::interface1 + } + then { + tester::interface1 receives "hello back" from sut_node::interface1 + } + } + } + + +} diff --git a/plugins/org.etsi.mts.tdl.standalone/examples/validation/Example.tdltx-generated.ttcn3 b/plugins/org.etsi.mts.tdl.standalone/examples/validation/Example.tdltx-generated.ttcn3 new file mode 100644 index 0000000000000000000000000000000000000000..c35945fb1e27f434075ec8e3c18b3e566ce85952 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.standalone/examples/validation/Example.tdltx-generated.ttcn3 @@ -0,0 +1,84 @@ +module Wizardry { + modulepar float mp_componentElapsedTimerMaxDuration + type charstring Wizardry_SimpleDataType + type Wizardry_SimpleDataType TDLinteger + type Wizardry_SimpleDataType string + type record of TDLinteger iCol + + function setupTestConfiguration_base ( ) runs on MTC_base system SYSTEM_base { + tester := node.create ; + map ( system : sut_node_interface1 , tester : + interface1_to_sut_node_interface1 ) ; + map ( system : sut_node_interface2 , tester : + interface1_to_sut_node_interface2 ) ; + } + + type component MTC_base { + var node tester ; + } + + type component SYSTEM_base { + port http sut_node_interface1 ; + port http sut_node_interface2 ; + } + + type component node { + timer T_elapsedTimeOfComponent := mp_componentElapsedTimerMaxDuration ; + port http interface1 ; + port http interface2 ; + port http interface1_to_sut_node_interface1 ; + port http interface1_to_sut_node_interface2 ; + port http interface3 ; + } + + type port http message { + inout string , TDLinteger , charstring , integer + } + + function example ( ) runs on MTC_base { + tester.start ( example_tester_main ( ) ) ; + } + + function example_tester_main ( ) runs on node { + interface1_to_sut_node_interface1.send ( "hello" ) ; + interface1_to_sut_node_interface1.send ( 1 ) ; + interface1_to_sut_node_interface1.send ( 1 ) ; + } + + testcase tc_example ( ) runs on MTC_base system SYSTEM_base { + setupTestConfiguration_base ( ) ; + example ( ) ; + all component.done ; + } + + function exampl ( ) runs on MTC_base { + tester.start ( exampl_tester_main ( ) ) ; + } + + function exampl_tester_main ( ) runs on node { + interface1_to_sut_node_interface1.send ( "hello" ) ; + interface1_to_sut_node_interface1.receive ( "hello back" ) ; + } + + testcase tc_exampl ( ) runs on MTC_base system SYSTEM_base { + setupTestConfiguration_base ( ) ; + exampl ( ) ; + all component.done ; + } + + function exampl2 ( ) runs on MTC_base { + tester.start ( exampl2_tester_main ( ) ) ; + } + + function exampl2_tester_main ( ) runs on node { + interface1_to_sut_node_interface1.send ( "hello" ) ; + interface1_to_sut_node_interface1.receive ( "hello back" ) ; + } + + testcase tc_exampl2 ( ) runs on MTC_base system SYSTEM_base { + setupTestConfiguration_base ( ) ; + exampl2 ( ) ; + all component.done ; + } + +} \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.standalone/examples/validation/Example.tdltx-generated.ttcn3m b/plugins/org.etsi.mts.tdl.standalone/examples/validation/Example.tdltx-generated.ttcn3m new file mode 100644 index 0000000000000000000000000000000000000000..2443d675e74c569b1c3ef638a7865d5cb421b251 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.standalone/examples/validation/Example.tdltx-generated.ttcn3m @@ -0,0 +1,601 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ; + ; + ; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ; + + + + + + + + + + + + + + + + + + + ; + + + + + + + + + + + + ; + + + + + + + + + + + + ; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ; + ; + ; + + + + + + + + + + + + + + + + + + + + + + + + ; + + + + + + + + + + + + + + + + + + + ; + + + + + + + + + + + + + ; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ; + ; + ; + + + + + + + + + + + + + + + + + + + + + + + + ; + + + + + + + + + + + + + + + + + + + ; + + + + + + + + + + + + + ; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ; + ; + ; + + + + + + + diff --git a/plugins/org.etsi.mts.tdl.standalone/examples/validation/Example.tdltx.docx b/plugins/org.etsi.mts.tdl.standalone/examples/validation/Example.tdltx.docx new file mode 100644 index 0000000000000000000000000000000000000000..1220046e829bf469863120179e6d8fd9696127e2 Binary files /dev/null and b/plugins/org.etsi.mts.tdl.standalone/examples/validation/Example.tdltx.docx differ diff --git a/plugins/org.etsi.mts.tdl.standalone/examples/validation/Naming.tdltx b/plugins/org.etsi.mts.tdl.standalone/examples/validation/Naming.tdltx new file mode 100644 index 0000000000000000000000000000000000000000..fdde61c77cb26c4f5c94674343a541121ef351cd --- /dev/null +++ b/plugins/org.etsi.mts.tdl.standalone/examples/validation/Naming.tdltx @@ -0,0 +1,4 @@ +Package Wizardry { + Package n { } + Package n { } +} diff --git a/plugins/org.etsi.mts.tdl.standalone/examples/validation/Naming.tdltx.docx b/plugins/org.etsi.mts.tdl.standalone/examples/validation/Naming.tdltx.docx new file mode 100644 index 0000000000000000000000000000000000000000..7d302a445b72864699f2bdb9a5449eb558727f29 Binary files /dev/null and b/plugins/org.etsi.mts.tdl.standalone/examples/validation/Naming.tdltx.docx differ diff --git a/plugins/org.etsi.mts.tdl.standalone/examples/validation/Naming.tdltx.tdl b/plugins/org.etsi.mts.tdl.standalone/examples/validation/Naming.tdltx.tdl new file mode 100644 index 0000000000000000000000000000000000000000..275d7c291722e879e73952db3d16111ed0c91012 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.standalone/examples/validation/Naming.tdltx.tdl @@ -0,0 +1,5 @@ + + + + + diff --git a/plugins/org.etsi.mts.tdl.standalone/pom.xml b/plugins/org.etsi.mts.tdl.standalone/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..8e97c3d5d265cb1157416cfc9e01c8c10431c9e4 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.standalone/pom.xml @@ -0,0 +1,248 @@ + + 4.0.0 + + org.etsi.mts.tdl + org.etsi.mts.tdl.parent + 1.0.0-SNAPSHOT + ../../org.etsi.mts.tdl.parent + + org.etsi.mts.tdl.standalone + eclipse-plugin + + package + package + package + + + + + + org.apache.maven.plugins + maven-jar-plugin + + + + + true + + org.etsi.mts.tdl.standalone.Standalone + + + + + + + org.codehaus.mojo + exec-maven-plugin + 1.2.1 + + + + java + + + + + org.etsi.mts.tdl.standalone.Standalone + + + + + + + org.apache.maven.plugins + maven-dependency-plugin + 3.3.0 + + + copy-dependencies + ${extras.package.copy} + + copy-dependencies + + + p2.eclipse-feature + ${project.build.directory}/libs + false + false + true + false + + com.ibm.icu, + org.apache.ant, + org.apache.commons.lang, + org.eclipse.core.expressions, + org.eclipse.core.filesystem, + org.eclipse.core.variables, + org.eclipse.jdt.core, + org.eclipse.jdt.debug, + org.eclipse.jdt.launching, + org.eclipse.text, + org.eclipse.e4.core.commands, + org.eclipse.e4.core.contexts, + org.eclipse.e4.core.di, + org.eclipse.e4.core.di.annotation, + org.eclipse.e4.core.di.extensions, + org.eclipse.e4.core.di.extensions.supplier, + org.eclipse.e4.core.services, + org.eclipse.e4.emf.xpath, + org.eclipse.e4.ui.bindings, + org.eclipse.e4.ui.css.core, + org.eclipse.e4.ui.css.swt, + org.eclipse.e4.ui.css.swt.theme, + org.eclipse.e4.ui.di, + org.eclipse.e4.ui.dialogs, + org.eclipse.e4.ui.ide, + org.eclipse.e4.ui.model.workbench, + org.eclipse.e4.ui.services, + org.eclipse.e4.ui.widgets, + org.eclipse.e4.ui.workbench, + org.eclipse.e4.ui.workbench.addons.swt, + org.eclipse.e4.ui.workbench.renderers.swt, + org.eclipse.e4.ui.workbench.swt, + org.eclipse.core.databinding, + org.eclipse.core.databinding.observable, + org.eclipse.core.databinding.property, + org.eclipse.emf.common.ui, + org.eclipse.emf.mapping.ecore2xml, + org.eclipse.epsilon.eol.dt, + org.eclipse.equinox.bidi, + org.eclipse.equinox.event, + org.eclipse.equinox.p2.artifact.repository, + org.eclipse.equinox.p2.core, + org.eclipse.equinox.p2.engine, + org.eclipse.equinox.p2.jarprocessor, + org.eclipse.equinox.p2.metadata, + org.eclipse.equinox.p2.metadata.repository, + org.eclipse.equinox.p2.repository, + org.eclipse.equinox.security, + org.eclipse.help, + org.eclipse.jdt.core.compiler.batch, + org.eclipse.jface.databinding, + org.eclipse.jface.text, + org.eclipse.ocl.pivot.uml, + org.eclipse.ui.console, + org.eclipse.ui.forms, + org.eclipse.ui.ide, + org.eclipse.ui.navigator, + org.eclipse.ui.views, + org.eclipse.uml2.codegen.ecore, + org.eclipse.uml2.common, + org.eclipse.uml2.types, + org.eclipse.uml2.uml, + org.eclipse.uml2.uml.profile.standard, + org.eclipse.uml2.uml.resources, + org.eclipse.urischeme, + org.eclipse.xsd, + org.osgi.namespace.extender, + org.osgi.namespace.implementation, + org.osgi.service.component, + org.osgi.service.event, + + + + + + + + com.googlecode.addjars-maven-plugin + addjars-maven-plugin + 1.0.5 + + + ${extras.package.addjars} + + add-jars + + + + + ${project.build.directory}/libs + + + + + + + + org.apache.maven.plugins + maven-shade-plugin + 3.3.0 + + + + org.etsi.mts.tdl.standalone.Standalone + + + plugin.properties + + + + + + + *:org.etsi.mts.tdl.tx.ide-org.eclipse.lsp4j* + *:org.etsi.mts.tdl.tx.ide-org.eclipse.xtext.xbase.lib* + *:org.etsi.mts.tdl.tx.ide-org.eclipse.xtend.lib* + *:org.etsi.mts.tdl.tx.ide-com.google.guava* + *:org.etsi.mts.tdl.tx.ide-asm* + *:org.etsi.mts.tdl.tx.ide-log4j* + *:org.etsi.mts.tdl.tx.ide-reload4j* + *:org.etsi.mts.tdl.tx.ide-org.objectweb.asm* + *:org.etsi.mts.tdl.tx.ide-org.apache.log4j* + + + + + *:* + + META-INF/INDEX.LIST + META-INF/*.SF + META-INF/*.DSA + META-INF/*.RSA + .options + .api_description + *.profile + *.html + about.* + about_files/* + plugin.xml + systembundle.properties + profile.list + **/*._trace + **/*.g + **/*.mwe2 + **/*.xtext + + + + true + shadow + false + + + + ${extras.package.shade} + + shade + + + + + + + + + \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.standalone/src/org/etsi/mts/tdl/standalone/Standalone.java b/plugins/org.etsi.mts.tdl.standalone/src/org/etsi/mts/tdl/standalone/Standalone.java new file mode 100644 index 0000000000000000000000000000000000000000..4d1bc5cfb532d0c4b44ca29fa4bd31e6cf086637 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.standalone/src/org/etsi/mts/tdl/standalone/Standalone.java @@ -0,0 +1,403 @@ +package org.etsi.mts.tdl.standalone; + +import de.ugoe.cs.swe.TTCN3StandaloneSetup; +import java.io.File; +import java.io.FilenameFilter; +import java.net.URL; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.security.CodeSource; +import java.security.ProtectionDomain; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.function.Consumer; +import java.util.stream.Collectors; + +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.epsilon.evl.execute.UnsatisfiedConstraint; +import org.eclipse.ocl.pivot.ExpressionInOCL; +import org.eclipse.ocl.pivot.utilities.OCL; +import org.eclipse.ocl.pivot.utilities.ParserException; +import org.eclipse.ocl.pivot.utilities.Query; +import org.eclipse.xtext.EcoreUtil2; +import org.etsi.mts.tdl.Extension; +import org.etsi.mts.tdl.GateType; +import org.etsi.mts.tdl.Package; +import org.etsi.mts.tdl.StructuredDataType; +import org.etsi.mts.tdl.tdlPackage; +import org.etsi.mts.tdl.asn2tdl.ASN2TDLTranslator; +import org.etsi.mts.tdl.constraints.evl.Validator; +import org.etsi.mts.tdl.helper.TDLHelper; +import org.etsi.mts.tdl.json2tdl.JSON2TDLTranslator; +import org.etsi.mts.tdl.json2tdl.TDL2JSONTranslator; +import org.etsi.mts.tdl.openapi2tdl.next.OpenAPI2TDLTranslatorNext; +import org.etsi.mts.tdl.openapi2tdl.next.doc.Doc; +import org.etsi.mts.tdl.tools.to.docx.poi.Generator; +import org.etsi.mts.tdl.transform.AbstractTranslator; +import org.etsi.mts.tdl.ttcn3.Transform; + +public class Standalone { + static String sourceExtension = "tdltx"; + static String targetExtension = "tdltx"; + static String openapiExtension = "yaml"; + static String asnExtension = "asn"; + static String jsonExtension = "json"; + private List modes = new ArrayList<>(); + private String path = ""; + private boolean recursive = true; + + enum MODE { + all, + list, debug, evaluateOCL, + validateOCL, validate, + translate, exportDoc, exportJSON, + importOpenAPI, importASN1, importJSON, + openAPIDoc,exportTTCN3 + } + + public static void main(String[] args) throws Exception { + Standalone app = new Standalone(); + //TODO: expose as arguments + +// app.modes.add(MODE.importJSON); +// app.modes.add(MODE.exportJSON); + + app.path = "examples/openapi/reqres.yaml"; +// app.modes.add(MODE.importOpenAPI); +// app.modes.add(MODE.list); +// app.path = "examples/json/model.json"; + app.path = "examples/validation/Naming.tdltx"; + app.path = "examples/validation/Example.tdltx"; + app.recursive = false; + app.modes.add(MODE.list); + app.modes.add(MODE.validate); + app.modes.add(MODE.exportDoc); + app.modes.add(MODE.exportTTCN3); +// targetExtension = "tdl"; +// app.modes.add(MODE.translate); + +// app.path = "examples/validation/Naming.tdltx.tdl"; +// app.modes.add(MODE.validateOCL); + + if (app.selected(MODE.list)) { + String path = pathOrDefault(app.path, "examples/basics"); +// app.processElements(path, app::listElements); + app.processElements(path, app::listElements); + } + + //TODO: may fail + //TODO: may fail due to literal value use without data type + if (app.selected(MODE.validate)) { + String path = pathOrDefault(app.path, "examples/basics"); + app.processElements(path, app::validate); + } + + //TODO: may fail + if (app.selected(MODE.translate)) { + String path = pathOrDefault(app.path, "examples/basics"); + app.processElements(path, app::translate); + } + + if (app.selected(MODE.importJSON)) { + String path = pathOrDefault(app.path, "examples/json"); + app.processElements(path, jsonExtension, app::importJSON); + } + + if (app.selected(MODE.exportJSON)) { + String path = pathOrDefault(app.path, "examples/json/model.json-generated.tdltx"); +// path = "examples/json/e-line-examples-c-vlan-bridge.json-generated.tdltx"; + app.processElements(path, jsonExtension, app::exportJSON); + } + + + if (app.selected(MODE.exportDoc)) { + String path = pathOrDefault(app.path, "examples/validation/Example.tdltx"); + app.processElements(path, app::exportDoc); + } + + if (app.selected(MODE.exportTTCN3)) { + String path = pathOrDefault(app.path, "examples/validation/Example.tdltx"); + app.processElements(path, app::exportTTCN3); + } + + if (app.selected(MODE.validateOCL)) { + String path = pathOrDefault(app.path, "examples/validation/Example.tdltx"); + app.processElements(path, app::validateOCL); + } + + //TODO: can only be used in isolation as it interferes with OCL delegates afterwards.. + if (app.selected(MODE.evaluateOCL)) { + String path = pathOrDefault(app.path, "examples/validation/Example.tdltx"); + app.processElements(path, app::evaluateOCLInline); + } + + if (app.selected(MODE.importOpenAPI)) { + String path = pathOrDefault(app.path, "examples/openapi"); + app.processElements(path, openapiExtension, app::importOpenAPI); + //NOTE: keep in mind weird errors if legacy OpenAPI importer is imported as well in manifest (especially if it is first) + } + + if (app.selected(MODE.openAPIDoc)) { + String path = pathOrDefault(app.path, "examples/openapi"); + app.processElements(path, openapiExtension, app::documentOpenAPI); + //NOTE: keep in mind weird errors if legacy OpenAPI importer is imported as well in manifest (especially if it is first) + } + + if (app.selected(MODE.importASN1)) { + String path = pathOrDefault(app.path, "examples/asn1"); + app.processElements(path, asnExtension, app::importASN1); + } + + if (app.selected(MODE.debug)) { + //individual file without dependencies + app.processElements("examples/basics/Sample.tdltx", app::listElements); + + //individual file with missing dependencies + app.processElements("examples/basics/ImportSample.tdltx", app::listElements); + //validation will fail due to unresolved items + } + + //TODO: minimal example for TO translation + //TODO: minimal example for TTCN-3 generation + //TODO: clean up keywords automatically + } + + private static String pathOrDefault(String path, String defaultPath) { + return path.isEmpty() ? defaultPath : path; + } + + private boolean selected(MODE m) { + return modes.contains(MODE.all) || modes.contains(m); + } + + private void processElements(String path, Consumer operation) throws Exception { + TDLHelper.resetResourceSet(); + processElements(path, sourceExtension, operation); + } + + private void processElements(String path, String extension, Consumer operation) throws Exception { + if (recursive) { + processElementsRecursive(path, extension, operation); + } else { + processElementsFlat(path, extension, operation); + } + } + + private void processElementsRecursive(String path, String extension, Consumer operation) throws Exception { + System.out.println("Processing recursively: "+path); + if (extension.contains("tdl")) { + Files.walk(Path.of(path)) + .filter(e->e.getFileName().toString().endsWith(extension)) + .forEach(e->TDLHelper.load(e.toAbsolutePath().toString())); + TDLHelper.link(); + TDLHelper.check(); + } + Files.walk(Path.of(path)) + .filter(e->e.getFileName().toString().endsWith(extension)) + .forEach(e->operation.accept(e.toAbsolutePath().toString())); + } + + private void processElementsFlat(String path, String extension, Consumer operation) throws Exception { + File target = new File(path); + //TODO: make recursive? + if (target.isDirectory()) { + FilenameFilter filter = (FilenameFilter) (dir, name) -> name.endsWith(extension); + File[] files = target.listFiles(filter); + Arrays.sort(files, (a, b) -> a.getName().compareTo(b.getName())); + //load all resources first + if (extension.contains("tdl")) { + for (File f : files) { + System.out.println("Loading: "+f.getAbsolutePath()); + TDLHelper.load(f.getAbsolutePath()); + } + TDLHelper.link(); + TDLHelper.check(); + } + for (File f : files) { + System.out.println("Processing: "+f.getAbsolutePath()); + operation.accept(f.getAbsolutePath()); + } + } else { + if (extension.contains("tdl")) { + System.out.println("Loading: "+target.getAbsolutePath()); + TDLHelper.load(target.getAbsolutePath()); + TDLHelper.link(); + TDLHelper.check(); + } + System.out.println("Processing: "+target.getAbsolutePath()); + operation.accept(target.getAbsolutePath()); + } + } + + private void listElements(String path) { + Resource resource = TDLHelper.load(path); + Package p = (Package) resource.getContents().get(0); + System.out.println("Package: "+p.getName()); + p.getNestedPackage().forEach(e -> { + System.out.println(" " + e.getName()); + System.out.println(" " + e.eClass().getName() + " : " + e.getQualifiedName()); + }); + p.getPackagedElement().forEach(e -> { + System.out.println(" " + e.getName()); + System.out.println(" " + e.eClass().getName() + " : " + e.getQualifiedName()); + if (e instanceof StructuredDataType) { + EList extension = ((StructuredDataType) e).getExtension(); + if (!extension.isEmpty()) { + System.out.println(" Extends: " + extension.stream() + .map(x-> x.getExtending().getName()) + .collect(Collectors.joining(", ")) + ); + } + } + }); + } + + private void validate(String path) { + Resource resource = TDLHelper.load(path); + Validator validator = new Validator(); + //TODO: make robust against unresolved imports + //TODO: report parsing / resolution errors + try { + List violations = validator.validate(resource); + validator.dumpViolations(violations, true); + } catch (Exception e) { + e.printStackTrace(); + } + } + + private void validateOCL(String path) { + Resource resource = TDLHelper.load(path); + Validator validator = new Validator(); + validator.validateOCL2(resource); + } + + private void evaluateOCLInline(String path) { + Resource resource = TDLHelper.load(path); + OCL ocl = OCL.newInstance(TDLHelper.getResourceSet()); + EClass contextEClass = tdlPackage.Literals.GATE_TYPE; + try { + ExpressionInOCL query = ocl.createQuery(contextEClass, + "self.allDataTypes()" + ); + Query queryEval = ocl.createQuery(query); + for (var o : EcoreUtil2.getAllContentsOfType(resource.getContents().get(0), GateType.class)) { + System.out.println(o.allDataTypes()); + System.out.println(queryEval.evaluateUnboxed(o)); + } + } catch (ParserException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + private void translate(String path) { + Resource resource = TDLHelper.load(path); + try { + Resource target = TDLHelper.create(resource.getURI().path() + "." + targetExtension); + target.getContents().addAll(EcoreUtil.copyAll(resource.getContents())); + TDLHelper.store(target); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + private void importData(String path, AbstractTranslator translator) { + File source = new File(path); + try { + translator.setTargetResource(TDLHelper.create(source.getAbsolutePath()+"-generated."+targetExtension)); + translator.initTargetResource(translator.cleanName(source.getName())); + translator.translate(source.getAbsolutePath()); + TDLHelper.store(translator.getTargetResource()); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + } + + private void importOpenAPI(String path) { + importData(path, new OpenAPI2TDLTranslatorNext()); + } + + private void documentOpenAPI(String path) { + Doc doc = new Doc(); + try { + //TODO: make configurable + doc.processModel(path, true); + Files.writeString(Path.of(path+"-RQ-ICS-TSS.md"), doc.getContent()); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + + private void importASN1(String path) { + importData(path, new ASN2TDLTranslator()); + } + + private void importJSON(String path) { + importData(path, new JSON2TDLTranslator()); + } + + private void exportJSON(String path) { + Resource resource = TDLHelper.load(path); + TDL2JSONTranslator translator = new TDL2JSONTranslator(); + translator.transform((Package) resource.getContents().get(0)); + } + + private void exportDoc(String path) { + Resource resource = TDLHelper.load(path); + Generator generator = new Generator(); + String target = path+".docx"; + try { + generator.generate( + resource, target, + "Generated from "+resource.getURI().lastSegment(), + "TO_4_TABLE_TEMPLATE_EDITHELP" + ); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + private void exportTTCN3(String path) { + try { + new TTCN3StandaloneSetup().createInjectorAndDoEMFRegistration(); + Resource resource = TDLHelper.load(path); + Transform transformer = new Transform(); + Resource ir = TDLHelper.create(path+"-generated.ttcn3m"); + transformer.transform(resource, ir); + //This is important otherwise ghost references may occur + ir.unload(); + Resource tr = TDLHelper.create(path+"-generated.ttcn3"); + transformer.transform(resource, tr); + } catch (Exception e) { + e.printStackTrace(); + } + } + + +// private void importOpenAPIAll(String path) { +// File target = new File(path); +// if (target.isDirectory()) { +// FilenameFilter filter = (FilenameFilter) (dir, name) -> name.endsWith(sourceExtension); +// File[] files = target.listFiles(filter); +// Arrays.sort(files, (a, b) -> a.getName().compareTo(b.getName())); +// for (File f : files) { +// importOpenAPISingle(f.getAbsolutePath()); +// } +// } else { +// importOpenAPISingle(target.getAbsolutePath()); +// } +// } + +} diff --git a/plugins/org.etsi.mts.tdl.to2tdl/.classpath b/plugins/org.etsi.mts.tdl.to2tdl/.classpath index 2869279ea3b40554d75a2a2ac7ffa357f9f0f72e..685a6999c9acba0d0158b0929d7a4d384644452e 100644 --- a/plugins/org.etsi.mts.tdl.to2tdl/.classpath +++ b/plugins/org.etsi.mts.tdl.to2tdl/.classpath @@ -1,11 +1,11 @@ - + - + diff --git a/plugins/org.etsi.mts.tdl.to2tdl/.project b/plugins/org.etsi.mts.tdl.to2tdl/.project index b5f7dc71135d22b50b2471cb6387316034db5061..43269719539052d7adc643b9fc002b6622671743 100644 --- a/plugins/org.etsi.mts.tdl.to2tdl/.project +++ b/plugins/org.etsi.mts.tdl.to2tdl/.project @@ -20,9 +20,26 @@ + + org.eclipse.m2e.core.maven2Builder + + + + org.eclipse.m2e.core.maven2Nature org.eclipse.pde.PluginNature org.eclipse.jdt.core.javanature + + + 1681418411947 + + 30 + + org.eclipse.core.resources.regexFilterMatcher + node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__ + + + diff --git a/plugins/org.etsi.mts.tdl.to2tdl/META-INF/MANIFEST.MF b/plugins/org.etsi.mts.tdl.to2tdl/META-INF/MANIFEST.MF index b06455e52660dbb4863420f0950e7a1deaf7f085..09a5cf5f295a648b24fae73ac81cef0e9d5417c1 100644 --- a/plugins/org.etsi.mts.tdl.to2tdl/META-INF/MANIFEST.MF +++ b/plugins/org.etsi.mts.tdl.to2tdl/META-INF/MANIFEST.MF @@ -11,6 +11,7 @@ Require-Bundle: org.eclipse.core.runtime, org.eclipse.xtext, org.etsi.mts.tdl.model, org.eclipse.ocl.xtext.essentialocl, - org.etsi.mts.tdl.common + org.etsi.mts.tdl.common, + org.etsi.mts.tdl.helper Export-Package: org.etsi.mts.tdl.to2tdl -Bundle-RequiredExecutionEnvironment: JavaSE-1.8 +Bundle-RequiredExecutionEnvironment: JavaSE-11 diff --git a/plugins/org.etsi.mts.tdl.to2tdl/build.properties b/plugins/org.etsi.mts.tdl.to2tdl/build.properties index 34d2e4d2dad529ceaeb953bfcdb63c51d69ffed2..56d776555503f2905e0642aae5be7938371a965d 100644 --- a/plugins/org.etsi.mts.tdl.to2tdl/build.properties +++ b/plugins/org.etsi.mts.tdl.to2tdl/build.properties @@ -1,4 +1,4 @@ source.. = src/ -output.. = bin/ +output.. = target/classes/ bin.includes = META-INF/,\ . diff --git a/plugins/org.etsi.mts.tdl.to2tdl/pom.xml b/plugins/org.etsi.mts.tdl.to2tdl/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..0839dabe4351fc38bc62031749e9dbb783b20021 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.to2tdl/pom.xml @@ -0,0 +1,19 @@ + + 4.0.0 + + org.etsi.mts.tdl + org.etsi.mts.tdl.parent + 1.0.0-SNAPSHOT + ../../org.etsi.mts.tdl.parent + + + org.etsi.mts.tdl.to2tdl + eclipse-plugin + + + + maven-compiler-plugin + + + + \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.to2tdl/src/org/etsi/mts/tdl/to2tdl/TO2TDLTranslator.java b/plugins/org.etsi.mts.tdl.to2tdl/src/org/etsi/mts/tdl/to2tdl/TO2TDLTranslator.java index f8ddf763da0d480b3295dbb0067048a87693bbfb..014904cfd852feccc8d6cbd563cf8437577e8d8c 100644 --- a/plugins/org.etsi.mts.tdl.to2tdl/src/org/etsi/mts/tdl/to2tdl/TO2TDLTranslator.java +++ b/plugins/org.etsi.mts.tdl.to2tdl/src/org/etsi/mts/tdl/to2tdl/TO2TDLTranslator.java @@ -6,6 +6,7 @@ import java.util.Set; import java.util.stream.Collectors; import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.resource.Resource; import org.eclipse.xtext.EcoreUtil2; import org.eclipse.xtext.nodemodel.util.NodeModelUtils; import org.etsi.mts.tdl.Comment; @@ -28,6 +29,7 @@ import org.etsi.mts.tdl.TestConfiguration; import org.etsi.mts.tdl.TestDescription; import org.etsi.mts.tdl.tdlFactory; import org.etsi.mts.tdl.tdlPackage; +import org.etsi.mts.tdl.helper.TDLHelper; import org.etsi.mts.tdl.structuredobjectives.Content; import org.etsi.mts.tdl.structuredobjectives.DataReference; import org.etsi.mts.tdl.structuredobjectives.EntityReference; @@ -463,4 +465,16 @@ public class TO2TDLTranslator extends AbstractTranslator { transformMembers(generatedType, c.getContent()); return generatedType; } + + @Override + public void translate(String filename) throws Exception { + Resource sr = TDLHelper.load(filename); + Resource tr = TDLHelper.create(filename+"_generated.tdltx"); + Package p = (Package) sr.getContents().get(0); + setTargetResource(tr); + initTargetResource("generated_from_"+p.getName()); + addImports(p); + transform(p); + TDLHelper.store(tr); + } } diff --git a/plugins/org.etsi.mts.tdl.tools.to.docx.poi.ui/.classpath b/plugins/org.etsi.mts.tdl.tools.to.docx.poi.ui/.classpath index 1fa3e6803d3b22e055b735220510616c4e35f2fc..1db08c6b4ce2fb50395b2f9c9a50c140a0bab199 100644 --- a/plugins/org.etsi.mts.tdl.tools.to.docx.poi.ui/.classpath +++ b/plugins/org.etsi.mts.tdl.tools.to.docx.poi.ui/.classpath @@ -1,7 +1,7 @@ - + - + diff --git a/plugins/org.etsi.mts.tdl.tools.to.docx.poi.ui/.project b/plugins/org.etsi.mts.tdl.tools.to.docx.poi.ui/.project index 83a34fa6e3b72ee306eba1ed4879a336b5d4db63..e29d2cf3c1ce4514e2147408076ab48ad7bb1e5e 100644 --- a/plugins/org.etsi.mts.tdl.tools.to.docx.poi.ui/.project +++ b/plugins/org.etsi.mts.tdl.tools.to.docx.poi.ui/.project @@ -20,9 +20,26 @@ + + org.eclipse.m2e.core.maven2Builder + + + + org.eclipse.m2e.core.maven2Nature org.eclipse.pde.PluginNature org.eclipse.jdt.core.javanature + + + 1681464246868 + + 30 + + org.eclipse.core.resources.regexFilterMatcher + node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__ + + + diff --git a/plugins/org.etsi.mts.tdl.tools.to.docx.poi.ui/.settings/org.eclipse.core.resources.prefs b/plugins/org.etsi.mts.tdl.tools.to.docx.poi.ui/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000000000000000000000000000000000000..99f26c0203a7844de00dbfc56e6a35d8ed3c022c --- /dev/null +++ b/plugins/org.etsi.mts.tdl.tools.to.docx.poi.ui/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/plugins/org.etsi.mts.tdl.tools.to.docx.poi.ui/.settings/org.eclipse.jdt.core.prefs b/plugins/org.etsi.mts.tdl.tools.to.docx.poi.ui/.settings/org.eclipse.jdt.core.prefs index f42de363afaae68bbd968318f1d331877f5514fc..402051ba9fb8d5fed4ff1a609449b764896e9083 100644 --- a/plugins/org.etsi.mts.tdl.tools.to.docx.poi.ui/.settings/org.eclipse.jdt.core.prefs +++ b/plugins/org.etsi.mts.tdl.tools.to.docx.poi.ui/.settings/org.eclipse.jdt.core.prefs @@ -1,7 +1,7 @@ eclipse.preferences.version=1 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 -org.eclipse.jdt.core.compiler.compliance=1.7 +org.eclipse.jdt.core.compiler.compliance=11 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error org.eclipse.jdt.core.compiler.problem.enumIdentifier=error -org.eclipse.jdt.core.compiler.source=1.7 +org.eclipse.jdt.core.compiler.source=11 diff --git a/plugins/org.etsi.mts.tdl.tools.to.docx.poi.ui/.settings/org.eclipse.m2e.core.prefs b/plugins/org.etsi.mts.tdl.tools.to.docx.poi.ui/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000000000000000000000000000000000000..f897a7f1cb2389f85fe6381425d29f0a9866fb65 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.tools.to.docx.poi.ui/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/plugins/org.etsi.mts.tdl.tools.to.docx.poi.ui/META-INF/MANIFEST.MF b/plugins/org.etsi.mts.tdl.tools.to.docx.poi.ui/META-INF/MANIFEST.MF index af7f57de78172f7c6e0bd4297928075f8ad7e60f..4ec9d9aa53fe060ce6aeebeb9a27a85a6af0d949 100644 --- a/plugins/org.etsi.mts.tdl.tools.to.docx.poi.ui/META-INF/MANIFEST.MF +++ b/plugins/org.etsi.mts.tdl.tools.to.docx.poi.ui/META-INF/MANIFEST.MF @@ -13,5 +13,5 @@ Require-Bundle: org.eclipse.ui, com.google.inject, org.eclipse.xtext.ui, org.etsi.mts.tdl.tools.to.docx.poi -Bundle-RequiredExecutionEnvironment: JavaSE-1.8 +Bundle-RequiredExecutionEnvironment: JavaSE-11 Bundle-ActivationPolicy: lazy diff --git a/plugins/org.etsi.mts.tdl.tools.to.docx.poi.ui/build.properties b/plugins/org.etsi.mts.tdl.tools.to.docx.poi.ui/build.properties index 0d3d3a745d49c12500fb77bdc372b76e8bf624de..6f4455d0e120b77b0904d2835d63f30dcde30b90 100644 --- a/plugins/org.etsi.mts.tdl.tools.to.docx.poi.ui/build.properties +++ b/plugins/org.etsi.mts.tdl.tools.to.docx.poi.ui/build.properties @@ -1,5 +1,5 @@ source.. = src/ -output.. = bin/ +output.. = target/classes/ bin.includes = plugin.xml,\ META-INF/,\ .,\ diff --git a/plugins/org.etsi.mts.tdl.tools.to.docx.poi.ui/pom.xml b/plugins/org.etsi.mts.tdl.tools.to.docx.poi.ui/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..92a056cfcb095ff99c4c78715129c63924016be1 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.tools.to.docx.poi.ui/pom.xml @@ -0,0 +1,19 @@ + + 4.0.0 + + org.etsi.mts.tdl + org.etsi.mts.tdl.parent + 1.0.0-SNAPSHOT + ../../org.etsi.mts.tdl.parent + + + org.etsi.mts.tdl.tools.to.docx.poi.ui + eclipse-plugin + + + + maven-compiler-plugin + + + + \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.tools.to.docx.poi.ui/src/org/etsi/mts/tdl/tools/to/docx/poi/ui/handlers/GenerationHandler.java b/plugins/org.etsi.mts.tdl.tools.to.docx.poi.ui/src/org/etsi/mts/tdl/tools/to/docx/poi/ui/handlers/GenerationHandler.java index fad1344d2a83d7dce649f4fb39302409b4ef1c88..c6443edbb58624099fe95b50a59f80a722a490c9 100644 --- a/plugins/org.etsi.mts.tdl.tools.to.docx.poi.ui/src/org/etsi/mts/tdl/tools/to/docx/poi/ui/handlers/GenerationHandler.java +++ b/plugins/org.etsi.mts.tdl.tools.to.docx.poi.ui/src/org/etsi/mts/tdl/tools/to/docx/poi/ui/handlers/GenerationHandler.java @@ -96,7 +96,7 @@ public class GenerationHandler extends AbstractHandler { MessageDialog.openError( Display.getDefault().getActiveShell(), "Generation Results", - "Generation failed!"); + "Generation failed! "+e.getMessage()); } diff --git a/plugins/org.etsi.mts.tdl.tools.to.docx.poi/.classpath b/plugins/org.etsi.mts.tdl.tools.to.docx.poi/.classpath index aaac67b468274fd3514e076f959dd1e6b7629064..58c609fb72f5fbc5c3a25185f20f936a7e6b85a4 100644 --- a/plugins/org.etsi.mts.tdl.tools.to.docx.poi/.classpath +++ b/plugins/org.etsi.mts.tdl.tools.to.docx.poi/.classpath @@ -1,6 +1,6 @@ - + @@ -26,5 +26,5 @@ - + diff --git a/plugins/org.etsi.mts.tdl.tools.to.docx.poi/.project b/plugins/org.etsi.mts.tdl.tools.to.docx.poi/.project index 31cb50c94451b2e2c257f45af222a67895bf27d6..06f1d9bbe770efd7d8415474279a798ac5cf6ee3 100644 --- a/plugins/org.etsi.mts.tdl.tools.to.docx.poi/.project +++ b/plugins/org.etsi.mts.tdl.tools.to.docx.poi/.project @@ -20,9 +20,26 @@ + + org.eclipse.m2e.core.maven2Builder + + + + org.eclipse.m2e.core.maven2Nature org.eclipse.pde.PluginNature org.eclipse.jdt.core.javanature + + + 1681464246862 + + 30 + + org.eclipse.core.resources.regexFilterMatcher + node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__ + + + diff --git a/plugins/org.etsi.mts.tdl.tools.to.docx.poi/.settings/org.eclipse.core.resources.prefs b/plugins/org.etsi.mts.tdl.tools.to.docx.poi/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000000000000000000000000000000000000..99f26c0203a7844de00dbfc56e6a35d8ed3c022c --- /dev/null +++ b/plugins/org.etsi.mts.tdl.tools.to.docx.poi/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/plugins/org.etsi.mts.tdl.tools.to.docx.poi/.settings/org.eclipse.jdt.core.prefs b/plugins/org.etsi.mts.tdl.tools.to.docx.poi/.settings/org.eclipse.jdt.core.prefs index dbda3b278cefd776f0f0b75e3f811562d98ef26f..6de43e0b68785ef12f4902276ece57a1275f7bef 100644 --- a/plugins/org.etsi.mts.tdl.tools.to.docx.poi/.settings/org.eclipse.jdt.core.prefs +++ b/plugins/org.etsi.mts.tdl.tools.to.docx.poi/.settings/org.eclipse.jdt.core.prefs @@ -1,7 +1,7 @@ eclipse.preferences.version=1 org.eclipse.jdt.core.compiler.codegen.targetPlatform=10 -org.eclipse.jdt.core.compiler.compliance=10 +org.eclipse.jdt.core.compiler.compliance=11 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error org.eclipse.jdt.core.compiler.problem.enumIdentifier=error org.eclipse.jdt.core.compiler.release=enabled -org.eclipse.jdt.core.compiler.source=10 +org.eclipse.jdt.core.compiler.source=11 diff --git a/plugins/org.etsi.mts.tdl.tools.to.docx.poi/.settings/org.eclipse.m2e.core.prefs b/plugins/org.etsi.mts.tdl.tools.to.docx.poi/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000000000000000000000000000000000000..f897a7f1cb2389f85fe6381425d29f0a9866fb65 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.tools.to.docx.poi/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/plugins/org.etsi.mts.tdl.tools.to.docx.poi/META-INF/MANIFEST.MF b/plugins/org.etsi.mts.tdl.tools.to.docx.poi/META-INF/MANIFEST.MF index 6005cd2187ad0670c3e3cd0586d75ee3768f4d3c..db22fbf690e270f9a9add64f3456f557e0c09d18 100644 --- a/plugins/org.etsi.mts.tdl.tools.to.docx.poi/META-INF/MANIFEST.MF +++ b/plugins/org.etsi.mts.tdl.tools.to.docx.poi/META-INF/MANIFEST.MF @@ -11,8 +11,10 @@ Require-Bundle: org.eclipse.core.runtime, org.eclipse.xtext, org.etsi.mts.tdl.model, org.etsi.mts.tdl.TPLan2, - org.eclipse.ocl.xtext.essentialocl -Bundle-RequiredExecutionEnvironment: JavaSE-1.8 + org.eclipse.emf.mwe.utils, + org.eclipse.ocl.xtext.essentialocl, + org.etsi.mts.tdl.common +Bundle-RequiredExecutionEnvironment: JavaSE-11 Automatic-Module-Name: org.etsi.mts.tdl.tools.to.docx.poi Bundle-ActivationPolicy: lazy Export-Package: org.etsi.mts.tdl.tools.to.docx.poi diff --git a/plugins/org.etsi.mts.tdl.tools.to.docx.poi/build.properties b/plugins/org.etsi.mts.tdl.tools.to.docx.poi/build.properties index 141960cfe22637e424fda8a98773d76ea11113a4..64438d01edf7c556c578696fdb20a9123b39c563 100644 --- a/plugins/org.etsi.mts.tdl.tools.to.docx.poi/build.properties +++ b/plugins/org.etsi.mts.tdl.tools.to.docx.poi/build.properties @@ -1,5 +1,5 @@ source.. = src/ -output.. = bin/ +output.. = target/classes/ bin.includes = META-INF/,\ .,\ lib/activation-1.1.1.jar,\ diff --git a/plugins/org.etsi.mts.tdl.tools.to.docx.poi/pom.xml b/plugins/org.etsi.mts.tdl.tools.to.docx.poi/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..247763ea787aa1708abefd997eb61cd7abea27ca --- /dev/null +++ b/plugins/org.etsi.mts.tdl.tools.to.docx.poi/pom.xml @@ -0,0 +1,24 @@ + + 4.0.0 + + org.etsi.mts.tdl + org.etsi.mts.tdl.parent + 1.0.0-SNAPSHOT + ../../org.etsi.mts.tdl.parent + + + org.etsi.mts.tdl.tools.to.docx.poi + eclipse-plugin + + + + maven-compiler-plugin + + + + + resource + + + + \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.tools.to.docx.poi/src/org/etsi/mts/tdl/tools/to/docx/poi/Generator.java b/plugins/org.etsi.mts.tdl.tools.to.docx.poi/src/org/etsi/mts/tdl/tools/to/docx/poi/Generator.java index 1b1a1585514b4a6bfa1e01799d661ea01dd58bda..cbe41097114442a492c5802377e935ae1ac0793b 100644 --- a/plugins/org.etsi.mts.tdl.tools.to.docx.poi/src/org/etsi/mts/tdl/tools/to/docx/poi/Generator.java +++ b/plugins/org.etsi.mts.tdl.tools.to.docx.poi/src/org/etsi/mts/tdl/tools/to/docx/poi/Generator.java @@ -4,7 +4,13 @@ import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; +import java.io.InputStream; import java.math.BigInteger; +import java.net.URI; +import java.net.URISyntaxException; +import java.net.URL; +import java.security.CodeSource; +import java.security.ProtectionDomain; import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.LinkedHashSet; @@ -25,12 +31,20 @@ import org.apache.poi.xwpf.usermodel.XWPFTableCell; import org.apache.poi.xwpf.usermodel.XWPFTableRow; import org.apache.xmlbeans.XmlException; import org.eclipse.core.runtime.Platform; +import org.eclipse.emf.common.util.EList; import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.resource.Resource; import org.eclipse.xtext.EcoreUtil2; import org.eclipse.xtext.nodemodel.util.NodeModelUtils; +import org.etsi.mts.tdl.Annotation; +import org.etsi.mts.tdl.Behaviour; +import org.etsi.mts.tdl.Block; +import org.etsi.mts.tdl.CompoundBehaviour; import org.etsi.mts.tdl.Package; +import org.etsi.mts.tdl.SingleCombinedBehaviour; import org.etsi.mts.tdl.TestConfiguration; +import org.etsi.mts.tdl.TestDescription; +import org.etsi.mts.tdl.resources.ResourceHandler; import org.etsi.mts.tdl.structuredobjectives.StructuredTestObjective; import org.etsi.mts.tdl.structuredobjectives.TestObjectiveVariant; import org.etsi.mts.tdl.structuredobjectives.VariantBinding; @@ -40,7 +54,7 @@ import org.osgi.framework.Bundle; public class Generator { int index = 0; - String templateFilename = "template.docx"; + String templateFilename = "resource/template.docx"; public static String selectedTemplate = "TO_4_TABLE_TEMPLATE_EDITHELP"; XWPFDocument template; private boolean hierarchical = true; @@ -74,15 +88,10 @@ public class Generator { generatePackageHeadings(resource, document, prefix, hLevel); } else { //flat generation - List stos = EcoreUtil2.getAllContentsOfType(resource.getContents().get(0), StructuredTestObjective.class); - - for (StructuredTestObjective sto : stos) { - String sectionTitle = sto.getName(); - LinkedHashMap map = getReplacementMap(sto); - generateTable(document, sectionTitle, map); - LinkedHashMap> variants = getVariantsMap(sto); - generateVariants(document, variants); - } + EObject p = resource.getContents().get(0); + List stos = EcoreUtil2.getAllContentsOfType(p, StructuredTestObjective.class); + generateSTOs(document, stos); + generateTPDs(document, EcoreUtil2.getAllContentsOfType(p, TestDescription.class)); } storeDocument(filename, document); @@ -100,18 +109,38 @@ public class Generator { for (Package p : packages) { generatePackageHeading(document, prefix, i, p, hLevel); List stos = getContentsOfType(p, StructuredTestObjective.class); - for (StructuredTestObjective sto : stos) { - String sectionTitle = sto.getName(); - LinkedHashMap map = getReplacementMap(sto); - generateTable(document, sectionTitle, map); - LinkedHashMap> variants = getVariantsMap(sto); - generateVariants(document, variants); - } + generateSTOs(document, stos); + generateTPDs(document, getContentsOfType(p, TestDescription.class)); generatePackageHeadings(document, getContentsOfType(p, Package.class), prefix+"."+i, hLevel+1); i++; } } + private void generateSTOs(XWPFDocument document, List stos) { + for (StructuredTestObjective sto : stos) { + String sectionTitle = sto.getName(); + LinkedHashMap map = getSTOReplacementMap(sto); + generateTable(document, sectionTitle, map); + LinkedHashMap> variants = getSTOVariantsMap(sto); + generateVariants(document, variants); + } + } + + private void generateTPDs(XWPFDocument document, List tpds) { + for (TestDescription tpd : tpds) { + if (tpd.getAnnotation().stream().anyMatch(a -> a.getKey().getName().startsWith("Test Purpose"))) { + //TODO: add constraints and validation, e.g. Objective present, etc. + String sectionTitle = tpd.getName(); + LinkedHashMap map = getTPDReplacementMap(tpd); + generateTable(document, sectionTitle, map); + //TODO: variants? reuse? + // LinkedHashMap> variants = getSTOVariantsMap(sto); + // generateVariants(document, variants); + } + } + } + + private void generatePackageHeading(XWPFDocument document, String prefix, int i, Package p, int hLevel) { System.out.println(p.getName()); XWPFParagraph par = document.createParagraph(); @@ -267,7 +296,7 @@ public class Generator { } private XWPFDocument loadTemplate() throws Exception { - String templateLocation = getTemplateLocation(templateFilename); + URI templateLocation = ResourceHandler.getSourceUri(this.getClass(), "org.etsi.mts.tdl.tools.to.docx.poi", templateFilename); template = loadTemplateDocument(templateLocation); return template; } @@ -365,7 +394,7 @@ public class Generator { } } - private LinkedHashMap> getVariantsMap(StructuredTestObjective sto) { + private LinkedHashMap> getSTOVariantsMap(StructuredTestObjective sto) { LinkedHashMap> variants = new LinkedHashMap<>(); if (sto.getVariants() != null) { for (TestObjectiveVariant v : sto.getVariants().getVariants()) { @@ -396,7 +425,83 @@ public class Generator { } - private LinkedHashMap getReplacementMap(StructuredTestObjective sto) { + private LinkedHashMap getTPDReplacementMap(TestDescription tpd) { + //map + //TODO: complete, refine, restructure + LinkedHashMap map = new LinkedHashMap<>(); + map.put(Placeholders.NAME, tpd.getName()); + //TODO: what if 0? what if more than 1? + map.put(Placeholders.DESCRIPTION, tpd.getTestObjective().get(0).getDescription().replaceAll("\"", "")); + String uri = String.join("\n", tpd.getTestObjective().get(0).getObjectiveURI()).trim(); + map.put(Placeholders.URI, uri.replaceAll("\"","")); + TestConfiguration configuration = tpd.getTestConfiguration(); + String config = ""; + if (configuration != null) { + if (configuration.getName()!=null) { + config = configuration.getName(); + } + } + map.put(Placeholders.CONFIGURATION, config); + //TODO: how is this addressed? annotations? what about and/or? -> not supported yet + String pics = "N/A"; +// String pics = String.join(" ", tpd.getPicsReference() +// .stream() +// .map(p -> NodeModelUtils.getNode(p).getText()) +// .collect(Collectors.toList())) +// .trim() +// ; + map.put(Placeholders.PICS, pics); + + map.put(Placeholders.INITIAL, ""); + map.put(Placeholders.EXPECTED, ""); + map.put(Placeholders.FINAL, ""); + + Behaviour behaviour = tpd.getBehaviourDescription().getBehaviour(); + if (behaviour instanceof CompoundBehaviour) { + Block block = ((CompoundBehaviour) behaviour).getBlock(); + for (Behaviour b : block.getBehaviour()) { + if (b.getAnnotation().get(0).getKey().getName().startsWith("Initial")) { + //TODO: filter extra new line + String initialConditions = NodeModelUtils.getNode(b).getText(); + initialConditions = initialConditions.replaceAll("\\s*Initial conditions", ""); + initialConditions = filterSource(initialConditions, "\n", "\\w").trim(); + map.put(Placeholders.INITIAL, initialConditions); + } else if (b.getAnnotation().get(0).getKey().getName().startsWith("Expected")) { + String expected = NodeModelUtils.getNode(b).getText(); + expected = expected.replaceAll("\\s*Expected behaviour", ""); + expected = filterSource(expected, "\n", "ensure").trim(); + map.put(Placeholders.EXPECTED, expected); + + EList expectedBehaviours = ((CompoundBehaviour) b).getBlock().getBehaviour(); + if (expectedBehaviours.size() == 2) { + String when = NodeModelUtils.getNode(expectedBehaviours.get(0)).getText(); + String then = NodeModelUtils.getNode(expectedBehaviours.get(1)).getText(); + //TODO: a bit of a hack + when = filterSource(when, "\n", "\\s\\s\\s\\s\\w"); + //then = filterSource(then, "\n", "\\s+\\w"); + //then = filterSource(then, "\n", "\\s+\\w"); + then = filterSource(then, "\n", "\\s\\s\\s\\s\\w"); + + map.put(Placeholders.WHEN, "when {"+when+"\n}"); + map.put(Placeholders.THEN, "then {"+then+"\n}"); + } + } else if (b.getAnnotation().get(0).getKey().getName().startsWith("Final")) { + String finalConditions = NodeModelUtils.getNode(b).getText(); + finalConditions = finalConditions.replaceAll("\\s*Final conditions", ""); + finalConditions = filterSource(finalConditions, "\n", "\\w").trim(); + map.put(Placeholders.FINAL, finalConditions); + //TODO: filter extra new line + } else { + //TODO: Handle other unknown blocks + } + } + } + + return map; + } + + + private LinkedHashMap getSTOReplacementMap(StructuredTestObjective sto) { //map //TODO: complete, refine, restructure //TODO: transfer to variants as well @@ -455,7 +560,8 @@ public class Generator { String then = NodeModelUtils.getNode(sto.getExpectedBehaviour().getThenClause()).getText(); //TODO: a bit of a hack when = filterSource(when, "\n", "\\s\\s\\s\\s\\w"); - then = filterSource(then, "\n", "\\s+\\w"); + //then = filterSource(then, "\n", "\\s+\\w"); + then = filterSource(then, "\n", "\\s\\s\\s\\s\\w"); map.put(Placeholders.WHEN, "when {"+when+"\n}"); map.put(Placeholders.THEN, "then {"+then+"\n}"); @@ -516,29 +622,14 @@ public class Generator { } return table; } - - private String getTemplateLocation(String templateFilename) { - String template = "resource/"+templateFilename; - if (Platform.isRunning()) { - Bundle bundle = Platform.getBundle("org.etsi.mts.tdl.tools.to.docx.poi"); - template = bundle.getLocation().substring(15)+"resource/"+templateFilename; - try { - template = org.eclipse.core.runtime.FileLocator.toFileURL(bundle.getEntry("resource/"+templateFilename)).getPath(); - } catch (IOException e) { - e.printStackTrace(); - } - } - return template; - } private XWPFDocument createDocument() { XWPFDocument report = new XWPFDocument(); return report; } - private XWPFDocument loadTemplateDocument(String templateLocation) throws Exception { - File file = new File(templateLocation); - FileInputStream fis = new FileInputStream(file.getAbsolutePath()); + private XWPFDocument loadTemplateDocument(URI templateLocation) throws Exception { + InputStream fis = (InputStream) templateLocation.toURL().openStream(); XWPFDocument document = new XWPFDocument(fis); fis.close(); return document; diff --git a/plugins/org.etsi.mts.tdl.tools.to.docx.ui/.classpath b/plugins/org.etsi.mts.tdl.tools.to.docx.ui/.classpath index eca7bdba8f03f22510b7980a94dbfe10c16c0901..1db08c6b4ce2fb50395b2f9c9a50c140a0bab199 100644 --- a/plugins/org.etsi.mts.tdl.tools.to.docx.ui/.classpath +++ b/plugins/org.etsi.mts.tdl.tools.to.docx.ui/.classpath @@ -1,7 +1,7 @@ - + - + diff --git a/plugins/org.etsi.mts.tdl.tools.to.docx.ui/.project b/plugins/org.etsi.mts.tdl.tools.to.docx.ui/.project index 12bcab2c4cf192109c91d1dba8f6bab905a2eddb..a13e9ac37b23ff3b0420efe0bed622609179899f 100644 --- a/plugins/org.etsi.mts.tdl.tools.to.docx.ui/.project +++ b/plugins/org.etsi.mts.tdl.tools.to.docx.ui/.project @@ -20,9 +20,26 @@ + + org.eclipse.m2e.core.maven2Builder + + + + org.eclipse.m2e.core.maven2Nature org.eclipse.pde.PluginNature org.eclipse.jdt.core.javanature + + + 1681464246871 + + 30 + + org.eclipse.core.resources.regexFilterMatcher + node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__ + + + diff --git a/plugins/org.etsi.mts.tdl.tools.to.docx.ui/META-INF/MANIFEST.MF b/plugins/org.etsi.mts.tdl.tools.to.docx.ui/META-INF/MANIFEST.MF index 12e143e53773f794184d7c8cfe020be5ed2c98c6..edaecbf8d666d56d6bcbb8b5b6530c06f70569ea 100644 --- a/plugins/org.etsi.mts.tdl.tools.to.docx.ui/META-INF/MANIFEST.MF +++ b/plugins/org.etsi.mts.tdl.tools.to.docx.ui/META-INF/MANIFEST.MF @@ -14,5 +14,5 @@ Require-Bundle: org.eclipse.ui, org.eclipse.xtext.ui, org.etsi.mts.tdl.model, org.etsi.mts.tdl.tools.to.docx -Bundle-RequiredExecutionEnvironment: JavaSE-1.8 +Bundle-RequiredExecutionEnvironment: JavaSE-11 Bundle-ActivationPolicy: lazy diff --git a/plugins/org.etsi.mts.tdl.tools.to.docx.ui/build.properties b/plugins/org.etsi.mts.tdl.tools.to.docx.ui/build.properties index 0d3d3a745d49c12500fb77bdc372b76e8bf624de..6f4455d0e120b77b0904d2835d63f30dcde30b90 100644 --- a/plugins/org.etsi.mts.tdl.tools.to.docx.ui/build.properties +++ b/plugins/org.etsi.mts.tdl.tools.to.docx.ui/build.properties @@ -1,5 +1,5 @@ source.. = src/ -output.. = bin/ +output.. = target/classes/ bin.includes = plugin.xml,\ META-INF/,\ .,\ diff --git a/plugins/org.etsi.mts.tdl.tools.to.docx.ui/pom.xml b/plugins/org.etsi.mts.tdl.tools.to.docx.ui/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..f50e6029e32451c553697627f36c3c1cf9ce40d2 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.tools.to.docx.ui/pom.xml @@ -0,0 +1,19 @@ + + 4.0.0 + + org.etsi.mts.tdl + org.etsi.mts.tdl.parent + 1.0.0-SNAPSHOT + ../../org.etsi.mts.tdl.parent + + + org.etsi.mts.tdl.tools.to.docx.ui + eclipse-plugin + + + + maven-compiler-plugin + + + + \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.tools.to.docx/.classpath b/plugins/org.etsi.mts.tdl.tools.to.docx/.classpath index 9f508d63a5d69e8882c9ecf6718b1296f0109160..6dc14ee945ebcd86968ebb800e9036ad7d9742f2 100644 --- a/plugins/org.etsi.mts.tdl.tools.to.docx/.classpath +++ b/plugins/org.etsi.mts.tdl.tools.to.docx/.classpath @@ -10,8 +10,8 @@ - + - + diff --git a/plugins/org.etsi.mts.tdl.tools.to.docx/.project b/plugins/org.etsi.mts.tdl.tools.to.docx/.project index 955920fedd1aff79d693c084421b8d2d08dc2d0f..7c07cfdc41d6642b40e407825dcc234b6b464b5a 100644 --- a/plugins/org.etsi.mts.tdl.tools.to.docx/.project +++ b/plugins/org.etsi.mts.tdl.tools.to.docx/.project @@ -20,9 +20,26 @@ + + org.eclipse.m2e.core.maven2Builder + + + + org.eclipse.m2e.core.maven2Nature org.eclipse.pde.PluginNature org.eclipse.jdt.core.javanature + + + 1681464246856 + + 30 + + org.eclipse.core.resources.regexFilterMatcher + node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__ + + + diff --git a/plugins/org.etsi.mts.tdl.tools.to.docx/META-INF/MANIFEST.MF b/plugins/org.etsi.mts.tdl.tools.to.docx/META-INF/MANIFEST.MF index 0ee04c5c7ab3f2f1771183aa0709dafb4b3d0b6d..b72961c56e96b5dabc8c168e073d55949dd81c45 100644 --- a/plugins/org.etsi.mts.tdl.tools.to.docx/META-INF/MANIFEST.MF +++ b/plugins/org.etsi.mts.tdl.tools.to.docx/META-INF/MANIFEST.MF @@ -3,7 +3,7 @@ Bundle-ManifestVersion: 2 Bundle-Name: TO Word Export (deprecated docx4j Binding) Bundle-SymbolicName: org.etsi.mts.tdl.tools.to.docx Bundle-Version: 1.0.0.qualifier -Bundle-RequiredExecutionEnvironment: JavaSE-1.8 +Bundle-RequiredExecutionEnvironment: JavaSE-11 Require-Bundle: org.eclipse.core.runtime, org.eclipse.xtext, org.eclipse.ocl.common, @@ -12,7 +12,6 @@ Require-Bundle: org.eclipse.core.runtime, org.eclipse.swt, org.eclipse.xtext.ui, org.etsi.mts.tdl.TPLan2.ui, - org.apache.commons.io, org.etsi.mts.tdl.TPLan2 Export-Package: org.etsi.mts.tdl.tools.to.docx Bundle-ClassPath: lib/docx4j-3.2.1.jar, diff --git a/plugins/org.etsi.mts.tdl.tools.to.docx/build.properties b/plugins/org.etsi.mts.tdl.tools.to.docx/build.properties index 9db70b382302e2e8b1aa3688137e6b2455508eea..7f5d3a538a8b0a6ac17863716824dd7a8a2c441a 100644 --- a/plugins/org.etsi.mts.tdl.tools.to.docx/build.properties +++ b/plugins/org.etsi.mts.tdl.tools.to.docx/build.properties @@ -1,5 +1,5 @@ source.. = src/ -output.. = bin/ +output.. = target/classes/ bin.includes = META-INF/,\ .,\ lib/docx4j-3.2.1.jar,\ diff --git a/plugins/org.etsi.mts.tdl.tools.to.docx/pom.xml b/plugins/org.etsi.mts.tdl.tools.to.docx/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..e416ab866965edd35fcab2ebaf35e0f376f339ba --- /dev/null +++ b/plugins/org.etsi.mts.tdl.tools.to.docx/pom.xml @@ -0,0 +1,19 @@ + + 4.0.0 + + org.etsi.mts.tdl + org.etsi.mts.tdl.parent + 1.0.0-SNAPSHOT + ../../org.etsi.mts.tdl.parent + + + org.etsi.mts.tdl.tools.to.docx + eclipse-plugin + + + + maven-compiler-plugin + + + + \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.ttcn3.ui/.classpath b/plugins/org.etsi.mts.tdl.ttcn3.ui/.classpath index 1fa3e6803d3b22e055b735220510616c4e35f2fc..1db08c6b4ce2fb50395b2f9c9a50c140a0bab199 100644 --- a/plugins/org.etsi.mts.tdl.ttcn3.ui/.classpath +++ b/plugins/org.etsi.mts.tdl.ttcn3.ui/.classpath @@ -1,7 +1,7 @@ - + - + diff --git a/plugins/org.etsi.mts.tdl.ttcn3.ui/.project b/plugins/org.etsi.mts.tdl.ttcn3.ui/.project index cf1168bb373e07d45a8d86c818b829917b9040e5..c1038bc1b106b12ed90b673effb3525e59fe9d14 100644 --- a/plugins/org.etsi.mts.tdl.ttcn3.ui/.project +++ b/plugins/org.etsi.mts.tdl.ttcn3.ui/.project @@ -20,8 +20,14 @@ + + org.eclipse.m2e.core.maven2Builder + + + + org.eclipse.m2e.core.maven2Nature org.eclipse.pde.PluginNature org.eclipse.jdt.core.javanature diff --git a/plugins/org.etsi.mts.tdl.ttcn3.ui/.settings/org.eclipse.core.resources.prefs b/plugins/org.etsi.mts.tdl.ttcn3.ui/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000000000000000000000000000000000000..99f26c0203a7844de00dbfc56e6a35d8ed3c022c --- /dev/null +++ b/plugins/org.etsi.mts.tdl.ttcn3.ui/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/plugins/org.etsi.mts.tdl.ttcn3.ui/.settings/org.eclipse.jdt.core.prefs b/plugins/org.etsi.mts.tdl.ttcn3.ui/.settings/org.eclipse.jdt.core.prefs index f42de363afaae68bbd968318f1d331877f5514fc..402051ba9fb8d5fed4ff1a609449b764896e9083 100644 --- a/plugins/org.etsi.mts.tdl.ttcn3.ui/.settings/org.eclipse.jdt.core.prefs +++ b/plugins/org.etsi.mts.tdl.ttcn3.ui/.settings/org.eclipse.jdt.core.prefs @@ -1,7 +1,7 @@ eclipse.preferences.version=1 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 -org.eclipse.jdt.core.compiler.compliance=1.7 +org.eclipse.jdt.core.compiler.compliance=11 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error org.eclipse.jdt.core.compiler.problem.enumIdentifier=error -org.eclipse.jdt.core.compiler.source=1.7 +org.eclipse.jdt.core.compiler.source=11 diff --git a/plugins/org.etsi.mts.tdl.ttcn3.ui/.settings/org.eclipse.m2e.core.prefs b/plugins/org.etsi.mts.tdl.ttcn3.ui/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000000000000000000000000000000000000..f897a7f1cb2389f85fe6381425d29f0a9866fb65 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.ttcn3.ui/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/plugins/org.etsi.mts.tdl.ttcn3.ui/META-INF/MANIFEST.MF b/plugins/org.etsi.mts.tdl.ttcn3.ui/META-INF/MANIFEST.MF index 6c4eb8b6dc7398d51bc73a4a4a70a34ab5057175..c3b3618e936bb08b19c0c502ef4d47cacfab3caa 100644 --- a/plugins/org.etsi.mts.tdl.ttcn3.ui/META-INF/MANIFEST.MF +++ b/plugins/org.etsi.mts.tdl.ttcn3.ui/META-INF/MANIFEST.MF @@ -17,5 +17,5 @@ Require-Bundle: org.eclipse.ui, org.etsi.mts.tdl.ttcn3, de.ugoe.cs.swe.TTCN3, de.ugoe.cs.swe.TTCN3.ui -Bundle-RequiredExecutionEnvironment: JavaSE-1.8 +Bundle-RequiredExecutionEnvironment: JavaSE-11 Bundle-ActivationPolicy: lazy diff --git a/plugins/org.etsi.mts.tdl.ttcn3.ui/build.properties b/plugins/org.etsi.mts.tdl.ttcn3.ui/build.properties index 0d3d3a745d49c12500fb77bdc372b76e8bf624de..6f4455d0e120b77b0904d2835d63f30dcde30b90 100644 --- a/plugins/org.etsi.mts.tdl.ttcn3.ui/build.properties +++ b/plugins/org.etsi.mts.tdl.ttcn3.ui/build.properties @@ -1,5 +1,5 @@ source.. = src/ -output.. = bin/ +output.. = target/classes/ bin.includes = plugin.xml,\ META-INF/,\ .,\ diff --git a/plugins/org.etsi.mts.tdl.ttcn3.ui/pom.xml b/plugins/org.etsi.mts.tdl.ttcn3.ui/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..9a79dc91d3414622a964659ea70761b8d761ef1e --- /dev/null +++ b/plugins/org.etsi.mts.tdl.ttcn3.ui/pom.xml @@ -0,0 +1,19 @@ + + 4.0.0 + + org.etsi.mts.tdl + org.etsi.mts.tdl.parent + 1.0.0-SNAPSHOT + ../../org.etsi.mts.tdl.parent + + + org.etsi.mts.tdl.ttcn3.ui + eclipse-plugin + + + + maven-compiler-plugin + + + + \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.ttcn3/.classpath b/plugins/org.etsi.mts.tdl.ttcn3/.classpath index 119242ecbd05616d38a280abf81a1d80735b7b9a..344e4ab0785c637094fd70159c6841c670b4248b 100644 --- a/plugins/org.etsi.mts.tdl.ttcn3/.classpath +++ b/plugins/org.etsi.mts.tdl.ttcn3/.classpath @@ -1,8 +1,8 @@ - + - + diff --git a/plugins/org.etsi.mts.tdl.ttcn3/.project b/plugins/org.etsi.mts.tdl.ttcn3/.project index bbb0f5bf635167e097f23f881897447d3a9d5d90..341788c7fab9e36496640ecec2c45b0b50742ae7 100644 --- a/plugins/org.etsi.mts.tdl.ttcn3/.project +++ b/plugins/org.etsi.mts.tdl.ttcn3/.project @@ -20,8 +20,14 @@ + + org.eclipse.m2e.core.maven2Builder + + + + org.eclipse.m2e.core.maven2Nature org.eclipse.pde.PluginNature org.eclipse.jdt.core.javanature diff --git a/plugins/org.etsi.mts.tdl.ttcn3/.settings/org.eclipse.core.resources.prefs b/plugins/org.etsi.mts.tdl.ttcn3/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000000000000000000000000000000000000..99f26c0203a7844de00dbfc56e6a35d8ed3c022c --- /dev/null +++ b/plugins/org.etsi.mts.tdl.ttcn3/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/plugins/org.etsi.mts.tdl.ttcn3/.settings/org.eclipse.jdt.core.prefs b/plugins/org.etsi.mts.tdl.ttcn3/.settings/org.eclipse.jdt.core.prefs index 0c68a61dca867ceb49e79d2402935261ec3e3809..4a7e0723d6efee0525a636a07706c95bbbe13f88 100644 --- a/plugins/org.etsi.mts.tdl.ttcn3/.settings/org.eclipse.jdt.core.prefs +++ b/plugins/org.etsi.mts.tdl.ttcn3/.settings/org.eclipse.jdt.core.prefs @@ -1,7 +1,7 @@ eclipse.preferences.version=1 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 -org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.compliance=11 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error org.eclipse.jdt.core.compiler.problem.enumIdentifier=error -org.eclipse.jdt.core.compiler.source=1.8 +org.eclipse.jdt.core.compiler.source=11 diff --git a/plugins/org.etsi.mts.tdl.ttcn3/.settings/org.eclipse.m2e.core.prefs b/plugins/org.etsi.mts.tdl.ttcn3/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000000000000000000000000000000000000..f897a7f1cb2389f85fe6381425d29f0a9866fb65 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.ttcn3/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/plugins/org.etsi.mts.tdl.ttcn3/META-INF/MANIFEST.MF b/plugins/org.etsi.mts.tdl.ttcn3/META-INF/MANIFEST.MF index 475474404530fbee1c6e64c8beae0313b99c4a40..92785ff9416e55bc559536fea52d91f9ae4a394e 100644 --- a/plugins/org.etsi.mts.tdl.ttcn3/META-INF/MANIFEST.MF +++ b/plugins/org.etsi.mts.tdl.ttcn3/META-INF/MANIFEST.MF @@ -4,15 +4,16 @@ Bundle-Name: TDL to TTCN-3 Core Bundle-SymbolicName: org.etsi.mts.tdl.ttcn3 Bundle-Version: 1.0.0.qualifier Automatic-Module-Name: org.etsi.mts.tdl.ttcn3 -Bundle-RequiredExecutionEnvironment: JavaSE-1.8 +Bundle-RequiredExecutionEnvironment: JavaSE-11 Require-Bundle: org.eclipse.emf.common, org.eclipse.core.runtime, org.eclipse.emf.ecore, org.eclipse.osgi, org.etsi.mts.tdl.model, - de.ugoe.cs.swe.TTCN3, + de.ugoe.cs.swe.TTCN3;resolution:=optional, org.eclipse.epsilon.common, org.eclipse.epsilon.emc.emf, org.eclipse.epsilon.eol.engine, - org.eclipse.epsilon.etl.engine + org.eclipse.epsilon.etl.engine, + org.etsi.mts.tdl.common Export-Package: org.etsi.mts.tdl.ttcn3 diff --git a/plugins/org.etsi.mts.tdl.ttcn3/build.properties b/plugins/org.etsi.mts.tdl.ttcn3/build.properties index 8c301529f8630df87482aeff9a67e2ef97242f67..ed74539b8377c0aa08f6d22d3e2c234520dc7511 100644 --- a/plugins/org.etsi.mts.tdl.ttcn3/build.properties +++ b/plugins/org.etsi.mts.tdl.ttcn3/build.properties @@ -1,5 +1,5 @@ source.. = src/ -output.. = bin/ +output.. = target/classes/ bin.includes = META-INF/,\ .,\ epsilon/ diff --git a/plugins/org.etsi.mts.tdl.ttcn3/epsilon/common.eol b/plugins/org.etsi.mts.tdl.ttcn3/epsilon/ttcn3/common.eol similarity index 100% rename from plugins/org.etsi.mts.tdl.ttcn3/epsilon/common.eol rename to plugins/org.etsi.mts.tdl.ttcn3/epsilon/ttcn3/common.eol diff --git a/plugins/org.etsi.mts.tdl.ttcn3/epsilon/debug.eol b/plugins/org.etsi.mts.tdl.ttcn3/epsilon/ttcn3/debug.eol similarity index 100% rename from plugins/org.etsi.mts.tdl.ttcn3/epsilon/debug.eol rename to plugins/org.etsi.mts.tdl.ttcn3/epsilon/ttcn3/debug.eol diff --git a/plugins/org.etsi.mts.tdl.ttcn3/epsilon/execution.eol b/plugins/org.etsi.mts.tdl.ttcn3/epsilon/ttcn3/execution.eol similarity index 98% rename from plugins/org.etsi.mts.tdl.ttcn3/epsilon/execution.eol rename to plugins/org.etsi.mts.tdl.ttcn3/epsilon/ttcn3/execution.eol index 8fa5eeb4031f2afb7c6a5eb408fc0fd618550c61..c3e37b014296fd3250f548a9d7bd56de42ff92c0 100644 --- a/plugins/org.etsi.mts.tdl.ttcn3/epsilon/execution.eol +++ b/plugins/org.etsi.mts.tdl.ttcn3/epsilon/ttcn3/execution.eol @@ -242,8 +242,8 @@ operation TDL!Block executeAltBlock() : TTCN!GuardStatement { operation TDL!BoundedLoopBehaviour execute() { //TODO: no component? for (le in self.numIteration) { - currentScope = le.scope; - var sc = self.getMainContext(le.scope); + currentScope = le.componentInstance; + var sc = self.getMainContext(le.componentInstance); var sb = stack.get(sc).last(); var tsl = new TTCN!FunctionStatementList(); @@ -324,7 +324,7 @@ operation TDL!BoundedLoopBehaviour execute() { fs.basic.loop.forStm.statement = block; - var cf = self.getMainContext(le.scope); + var cf = self.getMainContext(le.componentInstance); stack.get(cf).add(block); for (b in self.block.behaviour) { @@ -349,8 +349,8 @@ operation TDL!ConditionalBehaviour execute() { var guards = self.block.get(0).`guard`; for (le in guards) { - currentScope = le.scope; - var sc = self.getMainContext(le.scope); + currentScope = le.componentInstance; + var sc = self.getMainContext(le.componentInstance); var sb = stack.get(sc).last(); var tsl = new TTCN!FunctionStatementList(); @@ -369,7 +369,7 @@ operation TDL!ConditionalBehaviour execute() { var block = new TTCN!StatementBlock(); sfs.basic.conditional.statement = block; - var cf = self.getMainContext(le.scope); + var cf = self.getMainContext(le.componentInstance); stack.get(cf).add(block); for (b in self.block.get(0).behaviour) { diff --git a/plugins/org.etsi.mts.tdl.ttcn3/epsilon/helper.eol b/plugins/org.etsi.mts.tdl.ttcn3/epsilon/ttcn3/helper.eol similarity index 100% rename from plugins/org.etsi.mts.tdl.ttcn3/epsilon/helper.eol rename to plugins/org.etsi.mts.tdl.ttcn3/epsilon/ttcn3/helper.eol diff --git a/plugins/org.etsi.mts.tdl.ttcn3/epsilon/logging.eol b/plugins/org.etsi.mts.tdl.ttcn3/epsilon/ttcn3/logging.eol similarity index 100% rename from plugins/org.etsi.mts.tdl.ttcn3/epsilon/logging.eol rename to plugins/org.etsi.mts.tdl.ttcn3/epsilon/ttcn3/logging.eol diff --git a/plugins/org.etsi.mts.tdl.ttcn3/epsilon/reusable.eol b/plugins/org.etsi.mts.tdl.ttcn3/epsilon/ttcn3/reusable.eol similarity index 100% rename from plugins/org.etsi.mts.tdl.ttcn3/epsilon/reusable.eol rename to plugins/org.etsi.mts.tdl.ttcn3/epsilon/ttcn3/reusable.eol diff --git a/plugins/org.etsi.mts.tdl.ttcn3/epsilon/ttcn3mapping.etl b/plugins/org.etsi.mts.tdl.ttcn3/epsilon/ttcn3/ttcn3mapping.etl similarity index 100% rename from plugins/org.etsi.mts.tdl.ttcn3/epsilon/ttcn3mapping.etl rename to plugins/org.etsi.mts.tdl.ttcn3/epsilon/ttcn3/ttcn3mapping.etl diff --git a/plugins/org.etsi.mts.tdl.ttcn3/pom.xml b/plugins/org.etsi.mts.tdl.ttcn3/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..4c3044206782c08e56ba40be0f5b54c3c2d4c67d --- /dev/null +++ b/plugins/org.etsi.mts.tdl.ttcn3/pom.xml @@ -0,0 +1,19 @@ + + 4.0.0 + + org.etsi.mts.tdl + org.etsi.mts.tdl.parent + 1.0.0-SNAPSHOT + ../../org.etsi.mts.tdl.parent + + + org.etsi.mts.tdl.ttcn3 + eclipse-plugin + + + + maven-compiler-plugin + + + + \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.ttcn3/src/org/etsi/mts/tdl/ttcn3/Transform.java b/plugins/org.etsi.mts.tdl.ttcn3/src/org/etsi/mts/tdl/ttcn3/Transform.java index 77f38d48fc0eca461c49012322620963afd32f0b..18b037caacd72540087d3d480cbbae4cc1435329 100644 --- a/plugins/org.etsi.mts.tdl.ttcn3/src/org/etsi/mts/tdl/ttcn3/Transform.java +++ b/plugins/org.etsi.mts.tdl.ttcn3/src/org/etsi/mts/tdl/ttcn3/Transform.java @@ -1,5 +1,6 @@ package org.etsi.mts.tdl.ttcn3; +import java.net.URI; import java.net.URL; import org.eclipse.core.runtime.Platform; @@ -11,6 +12,7 @@ import org.eclipse.epsilon.eol.exceptions.EolRuntimeException; import org.eclipse.epsilon.eol.models.IModel; import org.eclipse.epsilon.etl.EtlModule; import org.etsi.mts.tdl.tdlPackage; +import org.etsi.mts.tdl.resources.ResourceHandler; import org.osgi.framework.Bundle; import de.ugoe.cs.swe.tTCN3.TTCN3Package; @@ -19,13 +21,11 @@ public class Transform { public void transform(Resource r, Resource tr) { try { //load transformation scripts - String source = "epsilon/ttcn3mapping.etl"; - - Bundle bundle = Platform.getBundle("org.etsi.mts.tdl.ttcn3"); - URL url = bundle.getEntry(source); + String source = "epsilon/ttcn3/ttcn3mapping.etl"; + URI uri = ResourceHandler.getSourceUri(this.getClass(), "org.etsi.mts.tdl.ttcn3", source); EtlModule module = new EtlModule(); - module.parse(url.toURI()); + module.parse(uri); //TODO: integrate error reporting if (module.getParseProblems().size() > 0) { diff --git a/plugins/org.etsi.mts.tdl.tx.ide/.classpath b/plugins/org.etsi.mts.tdl.tx.ide/.classpath index bc001b4a78c0b5010a989e262b982d3992129788..376d2e95d674426da468104d8af6541f0c43b7a4 100644 --- a/plugins/org.etsi.mts.tdl.tx.ide/.classpath +++ b/plugins/org.etsi.mts.tdl.tx.ide/.classpath @@ -1,9 +1,9 @@ - + - + diff --git a/plugins/org.etsi.mts.tdl.tx.ide/.project b/plugins/org.etsi.mts.tdl.tx.ide/.project index 709166e1b00a6a32a0b0124b85607dd2d61a0903..67233de53adf14f3b9f8e7795e9e24721a1823d8 100644 --- a/plugins/org.etsi.mts.tdl.tx.ide/.project +++ b/plugins/org.etsi.mts.tdl.tx.ide/.project @@ -25,10 +25,27 @@ + + org.eclipse.m2e.core.maven2Builder + + + + org.eclipse.m2e.core.maven2Nature org.eclipse.xtext.ui.shared.xtextNature org.eclipse.jdt.core.javanature org.eclipse.pde.PluginNature + + + 1681418411977 + + 30 + + org.eclipse.core.resources.regexFilterMatcher + node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__ + + + diff --git a/plugins/org.etsi.mts.tdl.tx.ide/.settings/org.eclipse.jdt.core.prefs b/plugins/org.etsi.mts.tdl.tx.ide/.settings/org.eclipse.jdt.core.prefs index c872bd038503c9d8d28340ed4e64db93110da44b..4066686a7037980436d75a26d2be734e098c76e5 100644 --- a/plugins/org.etsi.mts.tdl.tx.ide/.settings/org.eclipse.jdt.core.prefs +++ b/plugins/org.etsi.mts.tdl.tx.ide/.settings/org.eclipse.jdt.core.prefs @@ -1,10 +1,10 @@ eclipse.preferences.version=1 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 -org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.compliance=11 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled org.eclipse.jdt.core.compiler.problem.enumIdentifier=error org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning org.eclipse.jdt.core.compiler.release=disabled -org.eclipse.jdt.core.compiler.source=1.8 +org.eclipse.jdt.core.compiler.source=11 diff --git a/plugins/org.etsi.mts.tdl.tx.ide/.settings/org.eclipse.m2e.core.prefs b/plugins/org.etsi.mts.tdl.tx.ide/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000000000000000000000000000000000000..f897a7f1cb2389f85fe6381425d29f0a9866fb65 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.tx.ide/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/plugins/org.etsi.mts.tdl.tx.ide/META-INF/MANIFEST.MF b/plugins/org.etsi.mts.tdl.tx.ide/META-INF/MANIFEST.MF index 210e4d6bb6fe7c0a335a6215fe05b3ece68cb499..1188a6213246f16bd2079cb4ea05f536428a9281 100644 --- a/plugins/org.etsi.mts.tdl.tx.ide/META-INF/MANIFEST.MF +++ b/plugins/org.etsi.mts.tdl.tx.ide/META-INF/MANIFEST.MF @@ -11,6 +11,6 @@ Require-Bundle: org.etsi.mts.tdl.tx, org.eclipse.xtext.ide, org.eclipse.xtext.xbase.ide, org.antlr.runtime;bundle-version="[3.2.0,3.2.1)" -Bundle-RequiredExecutionEnvironment: JavaSE-1.8 +Bundle-RequiredExecutionEnvironment: JavaSE-11 Export-Package: org.etsi.mts.tdl.ide.contentassist.antlr.internal, org.etsi.mts.tdl.ide.contentassist.antlr diff --git a/plugins/org.etsi.mts.tdl.tx.ide/pom.xml b/plugins/org.etsi.mts.tdl.tx.ide/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..7650bd7266f906b65f2f6fadd8f90fbaff53a3bb --- /dev/null +++ b/plugins/org.etsi.mts.tdl.tx.ide/pom.xml @@ -0,0 +1,19 @@ + + + 4.0.0 + + + org.etsi.mts.tdl + org.etsi.mts.tdl.parent + 1.0.0-SNAPSHOT + ../../org.etsi.mts.tdl.parent + + + + org.etsi.mts.tdl.tx.ide + eclipse-plugin + + TDLtx Brace-Based Textual Syntax IDE + + \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.tx.ui/.classpath b/plugins/org.etsi.mts.tdl.tx.ui/.classpath index bc001b4a78c0b5010a989e262b982d3992129788..f208d6d3928b4cca50476cc9df40e0a34b3cd264 100644 --- a/plugins/org.etsi.mts.tdl.tx.ui/.classpath +++ b/plugins/org.etsi.mts.tdl.tx.ui/.classpath @@ -1,9 +1,13 @@ - + + + + + - + diff --git a/plugins/org.etsi.mts.tdl.tx.ui/.project b/plugins/org.etsi.mts.tdl.tx.ui/.project index 666b5d4f73e722b90bdc3537bef8984978248da1..8f0583ba4899102356b70324628f0ef27e9537d1 100644 --- a/plugins/org.etsi.mts.tdl.tx.ui/.project +++ b/plugins/org.etsi.mts.tdl.tx.ui/.project @@ -25,20 +25,26 @@ + + org.eclipse.m2e.core.maven2Builder + + + + org.eclipse.m2e.core.maven2Nature org.eclipse.xtext.ui.shared.xtextNature org.eclipse.jdt.core.javanature org.eclipse.pde.PluginNature - 1636230009252 + 1681418411985 30 org.eclipse.core.resources.regexFilterMatcher - node_modules|.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__ + node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__ diff --git a/plugins/org.etsi.mts.tdl.tx.ui/.settings/org.eclipse.jdt.core.prefs b/plugins/org.etsi.mts.tdl.tx.ui/.settings/org.eclipse.jdt.core.prefs index c872bd038503c9d8d28340ed4e64db93110da44b..a58ebdcad300d0a088dcbd63941d2c89e78a4f98 100644 --- a/plugins/org.etsi.mts.tdl.tx.ui/.settings/org.eclipse.jdt.core.prefs +++ b/plugins/org.etsi.mts.tdl.tx.ui/.settings/org.eclipse.jdt.core.prefs @@ -1,10 +1,15 @@ eclipse.preferences.version=1 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 -org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate +org.eclipse.jdt.core.compiler.codegen.targetPlatform=11 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=11 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate org.eclipse.jdt.core.compiler.problem.assertIdentifier=error org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled org.eclipse.jdt.core.compiler.problem.enumIdentifier=error org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning -org.eclipse.jdt.core.compiler.release=disabled -org.eclipse.jdt.core.compiler.source=1.8 +org.eclipse.jdt.core.compiler.release=enabled +org.eclipse.jdt.core.compiler.source=11 diff --git a/plugins/org.etsi.mts.tdl.tx.ui/.settings/org.eclipse.m2e.core.prefs b/plugins/org.etsi.mts.tdl.tx.ui/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000000000000000000000000000000000000..f897a7f1cb2389f85fe6381425d29f0a9866fb65 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.tx.ui/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/plugins/org.etsi.mts.tdl.tx.ui/META-INF/MANIFEST.MF b/plugins/org.etsi.mts.tdl.tx.ui/META-INF/MANIFEST.MF index e8cc206c4461e7c48ca4fbfbe76be67adf2e9c28..87291d9223a84042937e355aea1ab7a00391571f 100644 --- a/plugins/org.etsi.mts.tdl.tx.ui/META-INF/MANIFEST.MF +++ b/plugins/org.etsi.mts.tdl.tx.ui/META-INF/MANIFEST.MF @@ -16,10 +16,19 @@ Require-Bundle: org.etsi.mts.tdl.tx, org.eclipse.ui.ide;bundle-version="3.5.0", org.eclipse.ui, org.eclipse.compare, - org.eclipse.xtext.builder + org.eclipse.xtext.builder, + org.eclipse.jdt.core, + org.eclipse.xtend.lib, + org.eclipse.core.runtime, + org.eclipse.core.resources, + org.eclipse.pde.core, + org.eclipse.ui.forms, + org.etsi.mts.tdl.openapi2tdl.next Import-Package: org.apache.log4j -Bundle-RequiredExecutionEnvironment: JavaSE-1.8 -Export-Package: org.etsi.mts.tdl.ui.contentassist, +Bundle-RequiredExecutionEnvironment: JavaSE-11 +Export-Package: org.etsi.mts.tdl.tx.ui.internal, + org.etsi.mts.tdl.ui.contentassist, + org.etsi.mts.tdl.ui.outline, org.etsi.mts.tdl.ui.quickfix, - org.etsi.mts.tdl.tx.ui.internal + org.etsi.mts.tdl.ui.wizard Bundle-Activator: org.etsi.mts.tdl.tx.ui.internal.TxActivator diff --git a/plugins/org.etsi.mts.tdl.tx.ui/README.md b/plugins/org.etsi.mts.tdl.tx.ui/README.md new file mode 100644 index 0000000000000000000000000000000000000000..0f0093c88b383fcd114c1c5b59a34c89c9746d5f --- /dev/null +++ b/plugins/org.etsi.mts.tdl.tx.ui/README.md @@ -0,0 +1,7 @@ +# Support for Templates + +Templates provide more sophisticated and configurable completion. Consult the [Xtext documentation](https://www.eclipse.org/Xtext/documentation/310_eclipse_support.html#templates) and the [Eclipse documentation](http://help.eclipse.org/luna/topic/org.eclipse.cdt.doc.user/tasks/cdt_t_imp_code_temp.htm) for reference. + +Currently, it is best to create and test templates within Eclipse with the installed TOP components. Once the templates are tested and validated, all templates shall be exported and the exported file shall be placed in the templates folder. As the exported file does not include the required IDs, these need to be added. The ID generator can help with that. + +Currently, only the brace-based textual syntax is supported. The indentation-based and legacy syntax notations may be supported in the future as well. The goal shall be to reuse the templates as far as possible, at least between the indentaiton-based and brace-based syntaxes. Using the Xtext-specific extensions shall make that possible, albeit making the template specification a bit more challenging due to the use of corresponding context types instead of plain keywords / syntax elements. \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.tx.ui/build.properties b/plugins/org.etsi.mts.tdl.tx.ui/build.properties index d4280ed153d4a2dc305b6c13377c7fb391932252..183cbda20fb0c86f1a623e495acfbaa55e6a3434 100644 --- a/plugins/org.etsi.mts.tdl.tx.ui/build.properties +++ b/plugins/org.etsi.mts.tdl.tx.ui/build.properties @@ -4,5 +4,6 @@ source.. = src/,\ bin.includes = .,\ META-INF/,\ plugin.xml,\ - css/ + templates/,\ + icons/ bin.excludes = **/*.xtend diff --git a/plugins/org.etsi.mts.tdl.tx.ui/icons/file_template.png b/plugins/org.etsi.mts.tdl.tx.ui/icons/file_template.png new file mode 100644 index 0000000000000000000000000000000000000000..0c639178969b785c8d4e05ee4f6d23d88613cf47 Binary files /dev/null and b/plugins/org.etsi.mts.tdl.tx.ui/icons/file_template.png differ diff --git a/plugins/org.etsi.mts.tdl.tx.ui/icons/new_TDLtx_file.png b/plugins/org.etsi.mts.tdl.tx.ui/icons/new_TDLtx_file.png new file mode 100644 index 0000000000000000000000000000000000000000..4bd4eadb2439f0f12bde6a3c728e7d0ff24b79cb Binary files /dev/null and b/plugins/org.etsi.mts.tdl.tx.ui/icons/new_TDLtx_file.png differ diff --git a/plugins/org.etsi.mts.tdl.tx.ui/icons/new_TDLtx_proj.gif b/plugins/org.etsi.mts.tdl.tx.ui/icons/new_TDLtx_proj.gif new file mode 100644 index 0000000000000000000000000000000000000000..984bc91396e28d92b957e4661e1b6249caecca6f Binary files /dev/null and b/plugins/org.etsi.mts.tdl.tx.ui/icons/new_TDLtx_proj.gif differ diff --git a/plugins/org.etsi.mts.tdl.tx.ui/icons/project_template.png b/plugins/org.etsi.mts.tdl.tx.ui/icons/project_template.png new file mode 100644 index 0000000000000000000000000000000000000000..fddcb8c4edba947a86eb4892ab4fc90dc31922a1 Binary files /dev/null and b/plugins/org.etsi.mts.tdl.tx.ui/icons/project_template.png differ diff --git a/plugins/org.etsi.mts.tdl.tx.ui/plugin.xml b/plugins/org.etsi.mts.tdl.tx.ui/plugin.xml index 8bdc82d520146c3dbb54019f58c6264112696296..7968b6524b8f34315db1fd9af9ed90b7b4043cc6 100644 --- a/plugins/org.etsi.mts.tdl.tx.ui/plugin.xml +++ b/plugins/org.etsi.mts.tdl.tx.ui/plugin.xml @@ -438,4 +438,105 @@ type="text"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/plugins/org.etsi.mts.tdl.tx.ui/plugin.xml_gen b/plugins/org.etsi.mts.tdl.tx.ui/plugin.xml_gen index 574deedbaa6aee3a55c50c049d549a334468309a..c390f8d59246ea8d4cdead302254cb5187a0685d 100644 --- a/plugins/org.etsi.mts.tdl.tx.ui/plugin.xml_gen +++ b/plugins/org.etsi.mts.tdl.tx.ui/plugin.xml_gen @@ -431,4 +431,105 @@ type="text"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/plugins/org.etsi.mts.tdl.tx.ui/pom.xml b/plugins/org.etsi.mts.tdl.tx.ui/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..a79f0e32520703930c6fbbc83cafdde45ede2ebb --- /dev/null +++ b/plugins/org.etsi.mts.tdl.tx.ui/pom.xml @@ -0,0 +1,37 @@ + + + 4.0.0 + + + org.etsi.mts.tdl + org.etsi.mts.tdl.parent + 1.0.0-SNAPSHOT + ../../org.etsi.mts.tdl.parent + + + + org.etsi.mts.tdl.tx.ui + eclipse-plugin + + TDLtx Brace-Based Textual Syntax UI + + + + + org.apache.maven.plugins + maven-clean-plugin + + + gen-clean + clean + + + + + org.eclipse.xtend + xtend-maven-plugin + + + + \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.tx.ui/src/org/etsi/mts/tdl/ui/TDLtxUiModule.java b/plugins/org.etsi.mts.tdl.tx.ui/src/org/etsi/mts/tdl/ui/TDLtxUiModule.java index fb2418dcad3dbef5be51b333f97434822c88955b..f4feae09d355be031003666023636aeb85805978 100644 --- a/plugins/org.etsi.mts.tdl.tx.ui/src/org/etsi/mts/tdl/ui/TDLtxUiModule.java +++ b/plugins/org.etsi.mts.tdl.tx.ui/src/org/etsi/mts/tdl/ui/TDLtxUiModule.java @@ -4,6 +4,8 @@ package org.etsi.mts.tdl.ui; import org.eclipse.ui.plugin.AbstractUIPlugin; +import org.eclipse.xtext.ui.editor.hover.IEObjectHoverProvider; +import org.etsi.mts.tdl.ui.hover.TDLtxHoverProvider; /** * Use this class to register components to be used within the Eclipse IDE. @@ -13,4 +15,18 @@ public class TDLtxUiModule extends AbstractTDLtxUiModule { public TDLtxUiModule(AbstractUIPlugin plugin) { super(plugin); } + + public Class bindIEObjectHoverProvider() { + return TDLtxHoverProvider.class; + } + +// @Override +// public Class bindIResourceSetProvider() { +// //potential optimisation based on https://alexruizlog.blogspot.com/2012/07/make-your-xtext-based-editor-300-times.html?m=1#! +// //TODO: remove in case of problems +// return SimpleResourceSetProvider.class; +// } + + + } diff --git a/plugins/org.etsi.mts.tdl.tx.ui/src/org/etsi/mts/tdl/ui/contentassist/TDLtxProposalProvider.java b/plugins/org.etsi.mts.tdl.tx.ui/src/org/etsi/mts/tdl/ui/contentassist/TDLtxProposalProvider.java index dfd92507cbc906e7e8da2d959b9be7225be9c7c6..f68929f5fdd3df12140c5f0acc668807c9a3e9d9 100644 --- a/plugins/org.etsi.mts.tdl.tx.ui/src/org/etsi/mts/tdl/ui/contentassist/TDLtxProposalProvider.java +++ b/plugins/org.etsi.mts.tdl.tx.ui/src/org/etsi/mts/tdl/ui/contentassist/TDLtxProposalProvider.java @@ -3,12 +3,16 @@ */ package org.etsi.mts.tdl.ui.contentassist; +import org.eclipse.emf.common.util.EList; import org.eclipse.emf.ecore.EObject; import org.eclipse.xtext.Assignment; import org.eclipse.xtext.RuleCall; import org.eclipse.xtext.ui.editor.contentassist.ContentAssistContext; import org.eclipse.xtext.ui.editor.contentassist.ICompletionProposalAcceptor; +import org.etsi.mts.tdl.Connection; import org.etsi.mts.tdl.Member; +import org.etsi.mts.tdl.Message; +import org.etsi.mts.tdl.Target; import org.etsi.mts.tdl.StructuredDataInstance; import org.etsi.mts.tdl.StructuredDataType; @@ -39,5 +43,57 @@ public class TDLtxProposalProvider extends AbstractTDLtxProposalProvider { acceptor.accept(createCompletionProposal("instance returned from ",context)); super.complete_FunctionCall(model, ruleCall, context, acceptor); } + + @Override + public void completePredefinedFunctionCallBinary_Function(EObject model, Assignment assignment, + ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // TODO: handle here or in scope provider - exclude incorrect proposals + super.completePredefinedFunctionCallBinary_Function(model, assignment, context, acceptor); + } + @Override + public void completePredefinedFunctionCallBinary_ActualParameters(EObject model, Assignment assignment, + ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // TODO: refine? + super.completePredefinedFunctionCallBinary_ActualParameters(model, assignment, context, acceptor); + } + + @Override + public void complete_PredefinedFunctionCallBinary(EObject model, RuleCall ruleCall, ContentAssistContext context, + ICompletionProposalAcceptor acceptor) { + // TODO: refine? + super.complete_PredefinedFunctionCallBinary(model, ruleCall, context, acceptor); + } + + @Override + public void complete_TargetMessage(EObject model, RuleCall ruleCall, ContentAssistContext context, + ICompletionProposalAcceptor acceptor) { + super.complete_TargetMessage(model, ruleCall, context, acceptor); + } + + @Override + public void completeMessage_Target(EObject model, Assignment assignment, ContentAssistContext context, + ICompletionProposalAcceptor acceptor) { + super.completeMessage_Target(model, assignment, context, acceptor); + } + + @Override + public void completeTargetMessage_TargetGate(EObject model, Assignment assignment, ContentAssistContext context, + ICompletionProposalAcceptor acceptor) { + super.completeTargetMessage_TargetGate(model, assignment, context, acceptor); + EList connection = ((Message) model).getParentTestDescription().getTestConfiguration().getConnection(); + for (Connection c : connection) { + //TODO: simplify, filter? move upstream?, also for procedure target? + acceptor.accept(createCompletionProposal(c.getEndPoint().get(0).getComponent().getName()+"::"+c.getEndPoint().get(0).getGate().getName(), context)); + acceptor.accept(createCompletionProposal(c.getEndPoint().get(1).getComponent().getName()+"::"+c.getEndPoint().get(1).getGate().getName(), context)); + } + } + + @Override + public void complete_TimeConstraintFragment(EObject model, RuleCall ruleCall, ContentAssistContext context, + ICompletionProposalAcceptor acceptor) { + acceptor.accept(createCompletionProposal("{ }",context)); + super.complete_TimeConstraintFragment(model, ruleCall, context, acceptor); + } + } diff --git a/plugins/org.etsi.mts.tdl.tx.ui/src/org/etsi/mts/tdl/ui/hover/TDLtxHoverProvider.java b/plugins/org.etsi.mts.tdl.tx.ui/src/org/etsi/mts/tdl/ui/hover/TDLtxHoverProvider.java new file mode 100644 index 0000000000000000000000000000000000000000..2e90e276e23a966209e810b14fe447a71ba3922a --- /dev/null +++ b/plugins/org.etsi.mts.tdl.tx.ui/src/org/etsi/mts/tdl/ui/hover/TDLtxHoverProvider.java @@ -0,0 +1,41 @@ +package org.etsi.mts.tdl.ui.hover; + +import java.util.Collection; +import java.util.stream.Collectors; + +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EStructuralFeature.Setting; +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.xtext.ui.editor.hover.html.DefaultEObjectHoverProvider; +import org.etsi.mts.tdl.StructuredDataType; +import org.etsi.mts.tdl.TestDescription; +import org.etsi.mts.tdl.TestObjective; + + +public class TDLtxHoverProvider extends DefaultEObjectHoverProvider { + protected String getHoverInfoAsHtml(EObject o) { + String html = super.getHoverInfoAsHtml(o); + if (o instanceof TestObjective) { + //TODO: search within resource set? + //TODO: basic PoC, elaborate further, e.g. links, other info + Collection found = EcoreUtil.UsageCrossReferencer.find(o, o.eResource()); + String targets = found.stream().map(e -> ((TestDescription)e.getEObject()).getName()).collect(Collectors.joining("
  • ")); + for (Setting f : found) { + f.getEObject(); + } + html+="

    Referenced in:
    • "+targets+"
    "; + } + if (o instanceof StructuredDataType) { + String members = ((StructuredDataType) o).allMembers().stream().map(e -> e.getName() + " : "+e.getDataType().getName()).collect(Collectors.joining("
  • ")); + html+="

    Members:
    • "+members+"
    "; + } + return html; + } + + protected String getHoverInfoAsHtml(TestObjective o) { + String html = super.getHoverInfoAsHtml(o); + System.out.println(html); + return html; + } + +} \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.tx.ui/src/org/etsi/mts/tdl/ui/wizard/Messages.java b/plugins/org.etsi.mts.tdl.tx.ui/src/org/etsi/mts/tdl/ui/wizard/Messages.java new file mode 100644 index 0000000000000000000000000000000000000000..05f84eac226b97aecd642d166452f003972f23cf --- /dev/null +++ b/plugins/org.etsi.mts.tdl.tx.ui/src/org/etsi/mts/tdl/ui/wizard/Messages.java @@ -0,0 +1,33 @@ +/* + * generated by Xtext 2.27.0 + */ +package org.etsi.mts.tdl.ui.wizard; + +import org.eclipse.osgi.util.NLS; + +public class Messages extends NLS { + private static final String BUNDLE_NAME = "org.etsi.mts.tdl.ui.wizard.messages"; //$NON-NLS-1$ + + public static String TDLtxProject_Label; + public static String TDLtxProject_Description; + public static String TDLtxFile_Label; + public static String TDLtxFile_Description; + public static String TDLtxFileExtras_Label; + public static String TDLtxFileExtras_Description; + public static String TDLtxProjectWithOpenAPI_Label; + public static String TDLtxProjectWithOpenAPI_Description; + public static String TDLtxFileFromOpenAPI_Label; + public static String TDLtxFileFromOpenAPI_Description; + public static String TDLtxLibrary_Label; + public static String TDLtxLibrary_Description; + public static String TDLtxProjectBase_Label; + public static String TDLtxProjectBase_Description; + + static { + // initialize resource bundle + NLS.initializeMessages(BUNDLE_NAME, Messages.class); + } + + private Messages() { + } +} diff --git a/plugins/org.etsi.mts.tdl.tx.ui/src/org/etsi/mts/tdl/ui/wizard/TDLtxFileTemplateProvider.xtend b/plugins/org.etsi.mts.tdl.tx.ui/src/org/etsi/mts/tdl/ui/wizard/TDLtxFileTemplateProvider.xtend new file mode 100644 index 0000000000000000000000000000000000000000..3c68a8f9cc1fd7c6b355d489dbe596cf5955df27 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.tx.ui/src/org/etsi/mts/tdl/ui/wizard/TDLtxFileTemplateProvider.xtend @@ -0,0 +1,103 @@ +/* + * generated by Xtext 2.27.0 + */ +package org.etsi.mts.tdl.ui.wizard + + +import org.eclipse.xtext.ui.wizard.template.FileTemplate +import org.eclipse.xtext.ui.wizard.template.IFileGenerator +import org.eclipse.xtext.ui.wizard.template.IFileTemplateProvider +import org.etsi.mts.tdl.openapi2tdl.next.ConverterNext +import org.eclipse.core.runtime.preferences.InstanceScope +import org.eclipse.ui.preferences.ScopedPreferenceStore +import org.etsi.mts.tdl.ui.wizard.TemplateHelper.Libraries + +/** + * Create a list with all file templates to be shown in the template new file wizard. + * + * Each template is able to generate one or more files. + */ +class TDLtxFileTemplateProvider implements IFileTemplateProvider { + override getFileTemplates() { + #[ + new TDLtxFile, + new TDLtxFileFromOpenAPI, + new TDLtxLibrary + ] + } +} + +@FileTemplate(label="TDLtx", icon="file_template.png", description="Create a new package for TDLtx.") +final class TDLtxFile { + //TODO: make it more sensible + val packageName = text("Package Name:", "EmptyPackage", "The name of the package") + + //TODO: reuse? + override generateFiles(IFileGenerator generator) { + generator.generate('''«folder»/«name».tdltx''', ''' + /* + * This is an example model + */ + Package «packageName» { + + } + ''') +// generator.generate('''«folder»/«packageName».tdltx''', TemplateContent.Example) + } +} + +@FileTemplate(label="TDLtx Library", icon="file_template.png", description="Add library for TDL.") +final class TDLtxLibrary { + //TODO: make it more sensible + //TODO: name should not be asked for... + val name = text("Name:", "Standard") + val packageName = combo("Library:", #["Standard", "HTTP"], "The library to be added.") + var validated = false + + override protected updateVariables() { + validated = true + super.updateVariables() + } + + //TODO: reuse? + override generateFiles(IFileGenerator generator) { + //TODO: use enum values? + if (validated) { + generator.generate('''«folder»/«name».tdltx''', TemplateHelper.getLibrary(packageName.value)) + } + } +} + + +@FileTemplate(label="Data definitions import from OpenAPI", icon="file_template.png", description="Create a new package for TDLtx from OpenAPI data definitions.") +final class TDLtxFileFromOpenAPI { + //TODO: more modern way? + val s = new ScopedPreferenceStore(new InstanceScope(), "org.etsi.mts.tdl.tx.ui.template.data.openapi") + val lastUsed = "LAST_USED" + //TODO: file prompt? + val dataDefinitionsPath = text("Data Definitions Path:", s.getString(lastUsed), "The data definitions path to import from") + val sourceMapping = text("Source mapping tag:", "SOURCE_MAPPING", "The source mapping tag to be used for the data mappings") + val targetMapping = text("Target mapping tag:", "TARGET_MAPPING", "The target mapping tag to be used for the data mappings") + + var validated = false + + override protected updateVariables() { + validated = true + s.setValue(lastUsed, dataDefinitionsPath.value) + s.save() + super.updateVariables() + } + + override generateFiles(IFileGenerator generator) { + //NOTE: this is triggered on every key stroke.. -> lock until second screen + if (validated) { + generator.generate('''«folder»/«name».tdltx''', + ConverterNext.processToString(dataDefinitionsPath.value, + folder+"/"+name+".tdltx", + sourceMapping.value, + targetMapping.value + )) + } + } + +} diff --git a/plugins/org.etsi.mts.tdl.tx.ui/src/org/etsi/mts/tdl/ui/wizard/TDLtxProject.xtend b/plugins/org.etsi.mts.tdl.tx.ui/src/org/etsi/mts/tdl/ui/wizard/TDLtxProject.xtend new file mode 100644 index 0000000000000000000000000000000000000000..3c46619d8a8e4e366f53e4dbbe6bdf3338cd0655 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.tx.ui/src/org/etsi/mts/tdl/ui/wizard/TDLtxProject.xtend @@ -0,0 +1,122 @@ +package org.etsi.mts.tdl.ui.wizard +import org.eclipse.xtext.ui.wizard.template.ProjectTemplate +import com.google.inject.Inject +import org.eclipse.xtext.ui.PluginImageHelper +import org.eclipse.core.runtime.Status +import static org.eclipse.core.runtime.IStatus.* +import org.eclipse.xtext.ui.wizard.template.IProjectGenerator +import org.eclipse.xtext.ui.util.PluginProjectFactory +import org.eclipse.jdt.core.JavaCore +import org.eclipse.xtext.ui.XtextProjectHelper +import org.etsi.mts.tdl.tx.ui.internal.TxActivator +import org.eclipse.swt.graphics.Image +import java.util.List +import org.eclipse.core.resources.ResourcesPlugin +import org.eclipse.core.runtime.Path +import org.eclipse.ui.PlatformUI +import org.eclipse.ui.ide.IDE +import org.eclipse.swt.widgets.Display + +//TODO: customise +@ProjectTemplate(label="TDLtx", icon="project_template.png", description="

    TDLtx

    +

    This is a parameterized project for TDLtx. You can set a parameter to modify the content in the generated file +and a parameter to set the path the file is created in.

    ") +final class TDLtxProject { + //TODO: remove after testing + val advanced = check("Advanced:", false) + val advancedGroup = group("Properties") +// val name = combo("Package Name:", #["Example", "Sample", "Tutorial", "Pack"], "The name of the package", advancedGroup) + val name = text("Main Package Name:", "Main", "The name of the main package") + val path = text("Path:", "tdl", "The package path to place the files in", advancedGroup) + //TODO: add other options + val importStandard = check("Import Standard Library", true, "Import TDL standard library definitions.", advancedGroup) + val importHTTP = check("Import HTTP Library", false, "Import TDL HTTP library definitions.", advancedGroup) + val extendedNature = check("Add additional natures", false, "Add Eclipse Plug-in and Java natures", advancedGroup) + + @Inject + PluginImageHelper pluginImageHelper + + override protected updateVariables() { + name.enabled = advanced.value + path.enabled = advanced.value + importStandard.enabled = advanced.value + importHTTP.enabled = advanced.value + extendedNature.enabled = advanced.value + if (!advanced.value) { + name.value = "Main" + path.value = "tdl" + importStandard.value = true + importHTTP.value = false + extendedNature.value = false + } + } + + override protected validate() { + //TODO: validate name as well + if (path.value.matches('[a-z][a-z0-9_.]*(/[a-z][a-z0-9_.]*)*')) + null + else + new Status(ERROR, "Wizard", "'" + path + "' is not a valid package name") + //TODO: validate data definitions as well + } + + override generateProjects(IProjectGenerator generator) { + generator.generate(new PluginProjectFactory => [ + projectName = projectInfo.projectName + location = projectInfo.locationPath + projectNatures += #[XtextProjectHelper.NATURE_ID] + builderIds += #[XtextProjectHelper.BUILDER_ID] + if (extendedNature.value) { + projectNatures += #[JavaCore.NATURE_ID, "org.eclipse.pde.PluginNature"] + builderIds += #[JavaCore.BUILDER_ID] + } + folders += "src" + //TODO: remove hardcoded import + var imports = "" + if (importStandard.value) { + addFile('''src/«path»/Standard.tdltx''', TemplateHelper.getLibrary("Standard")) + imports += "Import all from Standard\n" + } + if (importHTTP.value) { + addFile('''src/«path»/HTTP.tdltx''', TemplateHelper.getLibrary("HTTP")) + imports += "Import all from HTTP\n" + imports += "Import all from HTTP.MessageBased\n" + } + addFile('''src/«path»/«name».tdltx''', ''' + /* + * This is an example package + */ + Package «name» { + «imports» + //example type + Type float + //define additional elements here + } + ''') + ]) + //TODO: make more robust and share among other templates + open(projectInfo.projectName+"/src/"+path+"/"+name+".tdltx") + } + + private def open(String filePath) { + val path = new Path(filePath) + val ifile=ResourcesPlugin.getWorkspace().getRoot().getFile(path) +// val page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(); + val page = PlatformUI.workbench.workbenchWindows.get(0).activePage + Display.^default.asyncExec(new Runnable() { + + override run() { + IDE.openEditor(page, ifile) + } + + }) + } + + protected override List> getImages() { + #["project_template.png".image] + } + private def image(String id) { + id -> pluginImageHelper.getImage('''platform:/plugin/«TxActivator.PLUGIN_ID»/«id»''') + } + +} diff --git a/plugins/org.etsi.mts.tdl.tx.ui/src/org/etsi/mts/tdl/ui/wizard/TDLtxProjectBase.xtend b/plugins/org.etsi.mts.tdl.tx.ui/src/org/etsi/mts/tdl/ui/wizard/TDLtxProjectBase.xtend new file mode 100644 index 0000000000000000000000000000000000000000..465b544fff1b99b0706176f6e64406a1bf6200a0 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.tx.ui/src/org/etsi/mts/tdl/ui/wizard/TDLtxProjectBase.xtend @@ -0,0 +1,122 @@ +package org.etsi.mts.tdl.ui.wizard +import org.eclipse.xtext.ui.wizard.template.ProjectTemplate +import com.google.inject.Inject +import org.eclipse.xtext.ui.PluginImageHelper +import org.eclipse.core.runtime.Status +import static org.eclipse.core.runtime.IStatus.* +import org.eclipse.xtext.ui.wizard.template.IProjectGenerator +import org.eclipse.xtext.ui.util.PluginProjectFactory +import org.eclipse.jdt.core.JavaCore +import org.eclipse.xtext.ui.XtextProjectHelper +import org.etsi.mts.tdl.tx.ui.internal.TxActivator +import org.eclipse.swt.graphics.Image +import java.util.List +import org.eclipse.core.resources.ResourcesPlugin +import org.eclipse.core.runtime.Path +import org.eclipse.ui.PlatformUI +import org.eclipse.ui.ide.IDE +import org.eclipse.swt.widgets.Display + +//TODO: customise +@ProjectTemplate(label="TDLtx Base", icon="project_template.png", description="

    TDLtx

    +

    This is a parameterized project for TDLtx. You can set a parameter to modify the content in the generated file +and a parameter to set the path the file is created in.

    ") +final class TDLtxProjectBase { + //TODO: remove after testing + val advanced = check("Advanced:", false) + val advancedGroup = group("Properties") +// val name = combo("Package Name:", #["Example", "Sample", "Tutorial", "Pack"], "The name of the package", advancedGroup) + val name = text("Main Package Name:", "Main", "The name of the main package") + val path = text("Path:", "tdl", "The package path to place the files in", advancedGroup) + //TODO: add other options + val importStandard = check("Import Standard Library", true, "Import TDL standard library definitions.", advancedGroup) + val importHTTP = check("Import HTTP Library", false, "Import TDL HTTP library definitions.", advancedGroup) + val extendedNature = check("Add additional natures", false, "Add Eclipse Plug-in and Java natures", advancedGroup) + + @Inject + PluginImageHelper pluginImageHelper + + override protected updateVariables() { + name.enabled = advanced.value + path.enabled = advanced.value + importStandard.enabled = advanced.value + importHTTP.enabled = advanced.value + extendedNature.enabled = advanced.value + if (!advanced.value) { + name.value = "Main" + path.value = "tdl" + importStandard.value = true + importHTTP.value = false + extendedNature.value = false + } + } + + override protected validate() { + //TODO: validate name as well + if (path.value.matches('[a-z][a-z0-9_.]*(/[a-z][a-z0-9_.]*)*')) + null + else + new Status(ERROR, "Wizard", "'" + path + "' is not a valid package name") + //TODO: validate data definitions as well + } + + override generateProjects(IProjectGenerator generator) { + generator.generate(new PluginProjectFactory => [ + projectName = projectInfo.projectName + location = projectInfo.locationPath + projectNatures += #[XtextProjectHelper.NATURE_ID] + builderIds += #[XtextProjectHelper.BUILDER_ID] + if (extendedNature.value) { + projectNatures += #[JavaCore.NATURE_ID, "org.eclipse.pde.PluginNature"] + builderIds += #[JavaCore.BUILDER_ID] + } + folders += "src" + //TODO: remove hardcoded import + var imports = "" + if (importStandard.value) { + addFile('''src/«path»/Standard.tdltx''', TemplateHelper.getLibrary("Standard")) + imports += "Import all from Standard\n" + } + if (importHTTP.value) { + addFile('''src/«path»/HTTP.tdltx''', TemplateHelper.getLibrary("HTTP")) + imports += "Import all from HTTP\n" + imports += "Import all from HTTP.MessageBased\n" + } + addFile('''src/«path»/«name».tdltx''', ''' + /* + * This is an example package + */ + Package «name» { + «imports» + //example type + Type float + //define additional elements here + } + ''') + ]) + //TODO: make more robust and share among other templates + open(projectInfo.projectName+"/src/"+path+"/"+name+".tdltx") + } + + private def open(String filePath) { + val path = new Path(filePath) + val ifile=ResourcesPlugin.getWorkspace().getRoot().getFile(path) +// val page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(); + val page = PlatformUI.workbench.workbenchWindows.get(0).activePage + Display.^default.asyncExec(new Runnable() { + + override run() { + IDE.openEditor(page, ifile) + } + + }) + } + + protected override List> getImages() { + #["project_template.png".image] + } + private def image(String id) { + id -> pluginImageHelper.getImage('''platform:/plugin/«TxActivator.PLUGIN_ID»/«id»''') + } + +} diff --git a/plugins/org.etsi.mts.tdl.tx.ui/src/org/etsi/mts/tdl/ui/wizard/TDLtxProjectTemplateProvider.xtend b/plugins/org.etsi.mts.tdl.tx.ui/src/org/etsi/mts/tdl/ui/wizard/TDLtxProjectTemplateProvider.xtend new file mode 100644 index 0000000000000000000000000000000000000000..3b47c33a2daf29794b4225585d5aea6c53cd0e01 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.tx.ui/src/org/etsi/mts/tdl/ui/wizard/TDLtxProjectTemplateProvider.xtend @@ -0,0 +1,34 @@ +/* + * generated by Xtext 2.27.0 + */ +package org.etsi.mts.tdl.ui.wizard + +import com.google.inject.Inject +import org.eclipse.xtext.ui.wizard.template.IProjectTemplateProvider + +/** + * Create a list with all project templates to be shown in the template new project wizard. + * + * Each template is able to generate one or more projects. Each project can be configured such that any number of files are included. + */ +class TDLtxProjectTemplateProvider implements IProjectTemplateProvider { + @Inject + TDLtxProject iTDLtxProject + + @Inject + TDLtxProjectBase iTDLtxProjectBase + + @Inject + TDLtxProjectWithOpenAPI iTDLtxProjectWithOpenAPI + + override getProjectTemplates() { + #[ +// new TDLtxProject, +// new TDLtxProjectBase, +// new TDLtxProjectWithOpenAPI + iTDLtxProject, + iTDLtxProjectBase, + iTDLtxProjectWithOpenAPI + ] + } +} diff --git a/plugins/org.etsi.mts.tdl.tx.ui/src/org/etsi/mts/tdl/ui/wizard/TDLtxProjectWithOpenAPI.xtend b/plugins/org.etsi.mts.tdl.tx.ui/src/org/etsi/mts/tdl/ui/wizard/TDLtxProjectWithOpenAPI.xtend new file mode 100644 index 0000000000000000000000000000000000000000..35fb43aa9af42e848f3db830a2a4fa52513c2442 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.tx.ui/src/org/etsi/mts/tdl/ui/wizard/TDLtxProjectWithOpenAPI.xtend @@ -0,0 +1,155 @@ +package org.etsi.mts.tdl.ui.wizard + +import com.google.inject.Inject +import java.util.List +import org.eclipse.core.runtime.Status +import org.eclipse.core.runtime.preferences.InstanceScope +import org.eclipse.jdt.core.JavaCore +import org.eclipse.swt.graphics.Image +import org.eclipse.ui.preferences.ScopedPreferenceStore +import org.eclipse.xtext.ui.PluginImageHelper +import org.eclipse.xtext.ui.XtextProjectHelper +import org.eclipse.xtext.ui.util.PluginProjectFactory +import org.eclipse.xtext.ui.wizard.template.IProjectGenerator +import org.eclipse.xtext.ui.wizard.template.ProjectTemplate +import org.etsi.mts.tdl.openapi2tdl.next.ConverterNext +import org.etsi.mts.tdl.tx.ui.internal.TxActivator +import org.eclipse.core.resources.ResourcesPlugin +import org.eclipse.core.runtime.Path +import org.eclipse.ui.PlatformUI +import org.eclipse.ui.ide.IDE +import org.eclipse.swt.widgets.Display + +import static org.eclipse.core.runtime.IStatus.* + +//TODO: customise further, reuse? +@ProjectTemplate(label="TDLtx with OpenAPI", icon="project_template.png", description="

    TDLtx with OpenAPI

    +

    This is a parameterized project for TDLtx with the option to import data definitions from OpenAPI. +You can set a parameter to modify the content in the generated file +and a parameter to set the path the file is created in.

    ") +final class TDLtxProjectWithOpenAPI { + //TODO: more modern way? + //TODO: differentiate for project vs file wizard + val s = new ScopedPreferenceStore(new InstanceScope(), "org.etsi.mts.tdl.tx.ui.template.data.openapi") + val lastUsed = "LAST_USED" + //TODO: file prompt? + //TODO: remove after testing + val advanced = check("Advanced:", false) + val advancedGroup = group("Properties") +// val name = combo("Package Name:", #["Example", "Sample", "Tutorial", "Pack"], "The name of the package", advancedGroup) + val name = text("Main Package Name:", "Main", "The name of the main package") + //TODO: add other options + val importStandard = check("Import Standard Library", true, "Import TDL standard library definitions.", advancedGroup) + val importHTTP = check("Import HTTP Library", false, "Import TDL HTTP library definitions.", advancedGroup) + val extendedNature = check("Add additional natures", false, "Add Eclipse Plug-in and Java natures", advancedGroup) + val path = text("Path:", "tdl", "The package path to place the files in", advancedGroup) + val dataDefinitionsPath = text("Data DefinitionsPath:", s.getString(lastUsed), "The data definitions path to import from", advancedGroup) + val sourceMapping = text("Source mapping tag:", "SOURCE_MAPPING", "The source mapping tag to be used for the data mappings", advancedGroup) + val targetMapping = text("Target mapping tag:", "TARGET_MAPPING", "The target mapping tag to be used for the data mappings", advancedGroup) + + @Inject + PluginImageHelper pluginImageHelper + + override protected updateVariables() { + name.enabled = advanced.value + path.enabled = advanced.value + importStandard.enabled = advanced.value + importHTTP.enabled = advanced.value + extendedNature.enabled = advanced.value + + dataDefinitionsPath.enabled = advanced.value + sourceMapping.enabled = advanced.value + targetMapping.enabled = advanced.value + + if (!advanced.value) { + name.value = "Main" + path.value = "tdl" + importStandard.value = true + importHTTP.value = false + extendedNature.value = false + + dataDefinitionsPath.value = s.getString(lastUsed) + sourceMapping.value = "SOURCE_MAPPING" + targetMapping.value = "TARGET_MAPPING" + } + } + + override protected validate() { + //TODO: validate name as well + if (path.value.matches('[a-z][a-z0-9_.]*(/[a-z][a-z0-9_.]*)*')) + null + else + new Status(ERROR, "Wizard", "'" + path + "' is not a valid package name") + //TODO: validate data definitions as well + } + + override generateProjects(IProjectGenerator generator) { + generator.generate(new PluginProjectFactory => [ + projectName = projectInfo.projectName + location = projectInfo.locationPath + projectNatures += #[XtextProjectHelper.NATURE_ID] + builderIds += #[XtextProjectHelper.BUILDER_ID] + if (extendedNature.value) { + projectNatures += #[JavaCore.NATURE_ID, "org.eclipse.pde.PluginNature"] + builderIds += #[JavaCore.BUILDER_ID] + } + folders += "src" + addRequiredBundles(List.of("org.etsi.mts.tdl.tx.ui")) + + //TODO: remove hardcoded import + var imports = "" + if (importStandard.value) { + addFile('''src/«path»/Standard.tdltx''', TemplateHelper.getLibrary("Standard")) + imports += "Import all from Standard\n" + } + if (importHTTP.value) { + addFile('''src/«path»/HTTP.tdltx''', TemplateHelper.getLibrary("HTTP")) + imports += "Import all from HTTP\n" + imports += "Import all from HTTP.MessageBased\n" + } + //TODO: make target package name configurable? i.e. based on name + addFile('''src/«path»/imported.tdltx''', + ConverterNext.processToString(dataDefinitionsPath.value, + "src/"+path.value+"/Imported.tdltx", + sourceMapping.value, + targetMapping.value + )) + val importsName = "generated_from_"+ConverterNext.getTargetPackageName(dataDefinitionsPath.value) + addFile('''src/«path»/«name».tdltx''', ''' + /* + * This is an example package + */ + Package «name» { + Import all from Standard + Import all from «importsName» + Type simple + } + ''') + + ]) + //TODO: make more robust and share among other templates + open(projectInfo.projectName+"/src/"+path+"/"+name+".tdltx") + } + + private def open(String filePath) { + val path = new Path(filePath) + val ifile=ResourcesPlugin.getWorkspace().getRoot().getFile(path) +// val page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(); + val page = PlatformUI.workbench.workbenchWindows.get(0).activePage + Display.^default.asyncExec(new Runnable() { + + override run() { + IDE.openEditor(page, ifile) + } + + }) + } + + protected override List> getImages() { + #["project_template.png".image] + } + private def image(String id) { + id -> pluginImageHelper.getImage('''platform:/plugin/«TxActivator.PLUGIN_ID»/«id»''') + } + +} diff --git a/plugins/org.etsi.mts.tdl.tx.ui/src/org/etsi/mts/tdl/ui/wizard/TemplateContent.xtend b/plugins/org.etsi.mts.tdl.tx.ui/src/org/etsi/mts/tdl/ui/wizard/TemplateContent.xtend new file mode 100644 index 0000000000000000000000000000000000000000..e6a340ce9388de574b3073d74efc9fb857fcdade --- /dev/null +++ b/plugins/org.etsi.mts.tdl.tx.ui/src/org/etsi/mts/tdl/ui/wizard/TemplateContent.xtend @@ -0,0 +1,49 @@ +/******************************************************************************* + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * SPDX-License-Identifier: EPL-2.0 + *******************************************************************************/ +package org.etsi.mts.tdl.ui.wizard + +import java.nio.file.Files +import java.nio.file.Path +import org.eclipse.core.runtime.Platform +import org.osgi.framework.Bundle +import java.net.URL +import java.io.File +import java.net.URI + +class TemplateContent { + //TODO: can we access the shared templates instead? + public static val Example = ''' + Package Wizardry { + //standard annotations for STO + Annotation Initial conditions + Annotation Expected behaviour + Annotation Final conditions + Annotation Test Purpose Description + Annotation when + Annotation then + //example types + Type integer + Type string + //example configuration + Message Gate http accepts string, integer + Component node { + gate http interface + } + Configuration base { + node sut as SUT, + node tester as Tester, + connect sut::interface to tester::interface + } + //example test description + Test example uses base { + tester::interface sends "hello" {string} to sut::interface + } + } + ''' + +} diff --git a/plugins/org.etsi.mts.tdl.tx.ui/src/org/etsi/mts/tdl/ui/wizard/TemplateHelper.java b/plugins/org.etsi.mts.tdl.tx.ui/src/org/etsi/mts/tdl/ui/wizard/TemplateHelper.java new file mode 100644 index 0000000000000000000000000000000000000000..1df5bcc259e45e944f95d65d9b0fa37b8040be16 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.tx.ui/src/org/etsi/mts/tdl/ui/wizard/TemplateHelper.java @@ -0,0 +1,45 @@ +package org.etsi.mts.tdl.ui.wizard; + +import java.io.File; +import java.net.URI; +import java.net.URL; +import java.nio.file.Files; +import java.nio.file.Path; + +import org.eclipse.core.runtime.FileLocator; +import org.eclipse.core.runtime.Platform; +import org.eclipse.xtext.xbase.lib.Exceptions; +import org.osgi.framework.Bundle; + +public class TemplateHelper { + enum Libraries { + Standard, HTTP + } + public static String getLibrary(String name) { + String library = ""; + try { + System.out.println("Get standard library..."); + String absolutePath = Path.of("templates/"+name+".tdltx").toFile().getAbsolutePath(); + System.out.println(" Path: " + absolutePath); + String source = "templates/"+name+".tdltx"; + URI uri = new File(source).toURI(); + if (Platform.isRunning()) { + System.out.println("Running as plugin..."); + Bundle bundle = Platform.getBundle("org.etsi.mts.tdl.tx.ui"); + URL url = bundle.getEntry(source); + uri = FileLocator.toFileURL(url).toURI(); + } else { + System.out.println("Get from class localtion..."); + String binPath = TemplateContent.class.getClass().getProtectionDomain().getCodeSource() + .getLocation().getPath(); + String projectPath = new File(binPath).getParent(); + uri = new File(((projectPath + "/") + source)).toURI(); + } + library = Files.readString(Path.of(uri)); + } catch (Throwable _e) { + throw Exceptions.sneakyThrow(_e); + } + return library; + } + +} diff --git a/plugins/org.etsi.mts.tdl.tx.ui/src/org/etsi/mts/tdl/ui/wizard/TemplateIDGenerator.java b/plugins/org.etsi.mts.tdl.tx.ui/src/org/etsi/mts/tdl/ui/wizard/TemplateIDGenerator.java new file mode 100644 index 0000000000000000000000000000000000000000..6f6351b940554003936cf40d76ef6a8ab1a0044e --- /dev/null +++ b/plugins/org.etsi.mts.tdl.tx.ui/src/org/etsi/mts/tdl/ui/wizard/TemplateIDGenerator.java @@ -0,0 +1,47 @@ +package org.etsi.mts.tdl.ui.wizard; + +import java.io.File; + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerFactory; +import javax.xml.transform.dom.DOMSource; +import javax.xml.transform.stream.StreamResult; + +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.NodeList; + +import com.google.common.io.Files; + +public class TemplateIDGenerator { + + public static void main(String[] args) throws Exception { + //utility for adding ids to exported templates + //TODO: later can potentially assemble from other files + //TODO: extract to separate component? + String prefix = "org.etsi.mts.tdl.tx.templates."; + String source = "templates/templates.xml"; + Files.copy(new File(source), new File(source+"back")); + DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); + Document doc = builder.parse(new File(source)); + NodeList list = doc.getElementsByTagName("template"); + for (int i = 0; iTDLtx

    This is a parameterized project for TDLtx. You can set a parameter to modify the content in the generated file and a parameter to set the path the file is created in.

    +TDLtxFile_Label=TDLtx +TDLtxFile_Description=Create a new package for TDLtx. +TDLtxFileExtras_Label=Data definitions import from OpenAPI +TDLtxFileExtras_Description=Create a new package for TDLtx from OpenAPI data definitions. +TDLtxProjectWithOpenAPI_Label=TDLtx with OpenAPI +TDLtxProjectWithOpenAPI_Description=

    TDLtx with OpenAPI

    This is a parameterized project for TDLtx with the option to import data definitions from OpenAPI. You can set a parameter to modify the content in the generated file and a parameter to set the path the file is created in.

    +TDLtxFileFromOpenAPI_Label=Data definitions import from OpenAPI +TDLtxFileFromOpenAPI_Description=Create a new package for TDLtx from OpenAPI data definitions. +TDLtxLibrary_Label=TDLtx Library +TDLtxLibrary_Description=Add library for TDL. +TDLtxProjectBase_Label=TDLtx Base +TDLtxProjectBase_Description=

    TDLtx

    This is a parameterized project for TDLtx. You can set a parameter to modify the content in the generated file and a parameter to set the path the file is created in.

    diff --git a/plugins/org.etsi.mts.tdl.tx.ui/templates/HTTP.tdltx b/plugins/org.etsi.mts.tdl.tx.ui/templates/HTTP.tdltx new file mode 100644 index 0000000000000000000000000000000000000000..cc499b5315df393478da024c79a1bb1f3b9c44b8 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.tx.ui/templates/HTTP.tdltx @@ -0,0 +1,125 @@ +Package HTTP { + Package MessageBasedConfiguration { + Import all from MessageBased + Message Gate HTTPGate accepts Request,Response + Component API { + //Add variables and timers here or define new component types and configurations + gate HTTPGate http + } + Configuration BasicClientServer { + API client as Tester, + API server as SUT, + connect client::http to server::http + } + + } Note : "Message based types and instances" + + Package MessageBased { + Import all from Standard + + //Generic Method type + Type Method + Method mGET + Method mPOST + Method mPUT + Method mPATCH + Method mDELETE + + //Generic Request type + Structure Request ( + String uri, + optional Method method, + optional Headers headers, + optional Parameters parameters, + optional Body body + ) + + //Generic Request instances + Request GET ( ) + Request POST ( ) + Request PUT ( ) + Request PATCH ( ) + Request DELETE ( ) + + //Generic Response type + Structure Response ( + optional Integer status, + optional String statusMessage, + optional Headers headers, + optional Body body + ) + + //Generic Response instances, name = status code + + Response r200 (statusMessage = "OK") + Response r201 (statusMessage = "Created") + Response r204 (statusMessage = "No Content") + Response r400 (statusMessage = "Bad Request") + Response r401 (statusMessage = "Not Found") + Response r403 (statusMessage = "Not Authorized") + Response r404 (statusMessage = "Forbidden") + + //Generic Response instances, name = status message + Response OK (status = "200") + Response Created (status = "201") + Response NoContent (status = "204") + Response BadRequest (status = "400") + Response NotFound (status = "404") + Response NotAuthorized (status = "401") + Response Forbidden (status = "403") + + //supporting types + Collection Parameters of Parameter + Structure Parameter ( + Location location, + String ^name, + String ^value + ) + Type Location + Location path + Location query + + //may need a structure, not necessarily relevant in standardized testing + Location cookie + + //separate headers -> not necessary + //Location header; + Collection Headers of Header + Structure Header ( + String ^name, + String ^value + //not relevant in TDL? + //optional contentLength of type Integer, + //optional contentType of type String + ) + + //Base body for extension + Structure Body ( ) + + //Basic string body + Structure StringBody extends Body ( + String text + ) + + //Basic wrapper for collection responses + Structure CollectionBody extends Body ( + Bodies items + ) + + //Any body can be included + //If consistent type is needed, a custom subtype shall be defined and used + Collection Bodies of Body + + //Custom collection data instances can be defined + // - inline in the responses + // - predefined as a separate data element + //Custom collection data instances can be defined + //to enforce type consistency specific for API + + //Basic form body + Structure FormBody extends Body ( + String field, + String content + ) + } +} \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.tx.ui/templates/Standard.tdltx b/plugins/org.etsi.mts.tdl.tx.ui/templates/Standard.tdltx new file mode 100644 index 0000000000000000000000000000000000000000..9af8d103a1d6978b245383e27b367805df797040 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.tx.ui/templates/Standard.tdltx @@ -0,0 +1,56 @@ +Package Standard { + //TODO: extract to standard library + Constraint length + Constraint minLength + Constraint maxLength + Constraint range + Constraint format + Constraint union + Constraint uniontype + + Type Boolean + Type Integer + Type String + Type Verdict + + //TODO: these do not work at present -> literal values take precedence? +// Boolean true +// Boolean false + Boolean True + Boolean False + + Verdict pass + Verdict fail + Verdict inconclusive + + Time second + + Annotation Master + Annotation MappingName + + //standard annotations for STO + Annotation Initial conditions + Annotation Expected behaviour + Annotation Final conditions + Annotation Test Purpose Description + Annotation when + Annotation then + + Predefined == returns Boolean + Predefined != returns Boolean + Predefined and returns Boolean + Predefined or returns Boolean + Predefined xor returns Boolean + Predefined not returns Boolean + Predefined < returns Boolean + Predefined > returns Boolean + Predefined <= returns Boolean + Predefined >= returns Boolean + Predefined + + Predefined - + Predefined * + Predefined / + Predefined mod + Predefined size returns Integer + +} \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.tx.ui/templates/templates.id.xml b/plugins/org.etsi.mts.tdl.tx.ui/templates/templates.id.xml new file mode 100644 index 0000000000000000000000000000000000000000..73d3811534e9ed6b9978de94467e46d11be15ddc --- /dev/null +++ b/plugins/org.etsi.mts.tdl.tx.ui/templates/templates.id.xml @@ -0,0 +1,56 @@ + \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.tx.ui/templates/templates.xml b/plugins/org.etsi.mts.tdl.tx.ui/templates/templates.xml new file mode 100644 index 0000000000000000000000000000000000000000..9b51117ffec6756058d9675a07b4cc111228a476 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.tx.ui/templates/templates.xml @@ -0,0 +1,281 @@ + \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.tx.ui/templates/templates.xmlback b/plugins/org.etsi.mts.tdl.tx.ui/templates/templates.xmlback new file mode 100644 index 0000000000000000000000000000000000000000..9801be16b2852be02bc72285e8ad5d2fee8a5f9b --- /dev/null +++ b/plugins/org.etsi.mts.tdl.tx.ui/templates/templates.xmlback @@ -0,0 +1,281 @@ + \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.tx/.classpath b/plugins/org.etsi.mts.tdl.tx/.classpath index bc001b4a78c0b5010a989e262b982d3992129788..f208d6d3928b4cca50476cc9df40e0a34b3cd264 100644 --- a/plugins/org.etsi.mts.tdl.tx/.classpath +++ b/plugins/org.etsi.mts.tdl.tx/.classpath @@ -1,9 +1,13 @@ - + + + + + - + diff --git a/plugins/org.etsi.mts.tdl.tx/.launch/TDL.tx and TDL.txi.launch b/plugins/org.etsi.mts.tdl.tx/.launch/TDL.tx and TDL.txi.launch index 02495e55e0989a3a19bcbb9e9cbf8f17447e6fae..88e42895a23415ee8f02f3e578b79c70d840e8c2 100644 --- a/plugins/org.etsi.mts.tdl.tx/.launch/TDL.tx and TDL.txi.launch +++ b/plugins/org.etsi.mts.tdl.tx/.launch/TDL.tx and TDL.txi.launch @@ -12,15 +12,10 @@ - - - - - - - + + @@ -35,37 +30,28 @@ - - + - - - - - - - + - - @@ -75,10 +61,6 @@ - - - - @@ -180,7 +162,6 @@ - @@ -269,11 +250,8 @@ - - - - + @@ -285,10 +263,6 @@ - - - - @@ -297,20 +271,29 @@ + - + + + + + - + + + + + @@ -319,9 +302,7 @@ - - - + diff --git a/plugins/org.etsi.mts.tdl.tx/.project b/plugins/org.etsi.mts.tdl.tx/.project index d907302bebcbf72e5198918d56ee85fec3fff927..66a21dd5bd3f12e4ca23fc866cdcdbb80a1fa686 100644 --- a/plugins/org.etsi.mts.tdl.tx/.project +++ b/plugins/org.etsi.mts.tdl.tx/.project @@ -25,10 +25,27 @@ + + org.eclipse.m2e.core.maven2Builder + + + + org.eclipse.m2e.core.maven2Nature org.eclipse.xtext.ui.shared.xtextNature org.eclipse.jdt.core.javanature org.eclipse.pde.PluginNature + + + 1681418411949 + + 30 + + org.eclipse.core.resources.regexFilterMatcher + node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__ + + + diff --git a/plugins/org.etsi.mts.tdl.tx/.settings/org.eclipse.jdt.core.prefs b/plugins/org.etsi.mts.tdl.tx/.settings/org.eclipse.jdt.core.prefs index c872bd038503c9d8d28340ed4e64db93110da44b..7adc0fb9a0d32bd6b4e3ce6f305ab7165208865c 100644 --- a/plugins/org.etsi.mts.tdl.tx/.settings/org.eclipse.jdt.core.prefs +++ b/plugins/org.etsi.mts.tdl.tx/.settings/org.eclipse.jdt.core.prefs @@ -1,10 +1,10 @@ eclipse.preferences.version=1 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 -org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=11 +org.eclipse.jdt.core.compiler.compliance=11 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled org.eclipse.jdt.core.compiler.problem.enumIdentifier=error org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning -org.eclipse.jdt.core.compiler.release=disabled -org.eclipse.jdt.core.compiler.source=1.8 +org.eclipse.jdt.core.compiler.release=enabled +org.eclipse.jdt.core.compiler.source=11 diff --git a/plugins/org.etsi.mts.tdl.tx/.settings/org.eclipse.m2e.core.prefs b/plugins/org.etsi.mts.tdl.tx/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000000000000000000000000000000000000..f897a7f1cb2389f85fe6381425d29f0a9866fb65 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.tx/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/plugins/org.etsi.mts.tdl.tx/META-INF/MANIFEST.MF b/plugins/org.etsi.mts.tdl.tx/META-INF/MANIFEST.MF index ac167b6b804ae59e54627774d2d10e55e4dd7535..98d4d472c757bc7c8039162fe2b49ec0feba4c65 100644 --- a/plugins/org.etsi.mts.tdl.tx/META-INF/MANIFEST.MF +++ b/plugins/org.etsi.mts.tdl.tx/META-INF/MANIFEST.MF @@ -12,9 +12,14 @@ Require-Bundle: org.etsi.mts.tdl.model, org.eclipse.equinox.common;bundle-version="3.5.0", org.eclipse.xtext.xbase.lib;bundle-version="2.14.0", org.eclipse.xtext.util, + org.eclipse.core.runtime, org.etsi.mts.tdl.common, - org.antlr.runtime;bundle-version="[3.2.0,3.2.1)" -Bundle-RequiredExecutionEnvironment: JavaSE-1.8 + org.antlr.runtime;bundle-version="[3.2.0,3.2.1)", + org.eclipse.epsilon.evl.emf.validation, + org.eclipse.epsilon.evl.engine, + org.eclipse.epsilon.eol.engine, + org.eclipse.epsilon.emc.emf +Bundle-RequiredExecutionEnvironment: JavaSE-11 Export-Package: org.etsi.mts.tdl.parser.antlr.internal, org.etsi.mts.tdl.scoping, org.etsi.mts.tdl.parser.antlr, diff --git a/plugins/org.etsi.mts.tdl.tx/pom.xml b/plugins/org.etsi.mts.tdl.tx/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..e93b8668351d126067a73931046bbcf0335ec260 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.tx/pom.xml @@ -0,0 +1,172 @@ + + + 4.0.0 + + + org.etsi.mts.tdl + org.etsi.mts.tdl.parent + 1.0.0-SNAPSHOT + ../../org.etsi.mts.tdl.parent + + + + org.etsi.mts.tdl.tx + eclipse-plugin + + TDLtx Brace-Based Textual Syntax + + + + + org.codehaus.mojo + exec-maven-plugin + 3.0.0 + + + mwe2Launcher + generate-sources + + java + + + + + org.eclipse.emf.mwe2.launch.runtime.Mwe2Launcher + + /${project.basedir}/src/org/etsi/mts/tdl/GenerateTDLtx.mwe2 + -p + rootPath=/${project.basedir}/.. + + compile + true + false + + + + org.eclipse.xtext + xtext-antlr-generator + 2.1.1 + + + + + org.eclipse.xtend + xtend-maven-plugin + + + + org.apache.maven.plugins + maven-clean-plugin + + + + ${basedir}/../org.etsi.mts.tdl.tx/src-gen/ + + **/* + + + .gitignore + + + + ${basedir}/../org.etsi.mts.tdl.tx/xtend-gen/ + + **/* + + + .gitignore + + + + + ${basedir}/../org.etsi.mts.tdl.tx.ide/src-gen/ + + **/* + + + .gitignore + + + + ${basedir}/../org.etsi.mts.tdl.tx.ide/xtend-gen/ + + **/* + + + .gitignore + + + + ${basedir}/../org.etsi.mts.tdl.tx.ui/src-gen/ + + **/* + + + .gitignore + + + + ${basedir}/../org.etsi.mts.tdl.tx.ui/xtend-gen/ + + **/* + + + .gitignore + + + + + + + + + + + + org.eclipse.m2e + lifecycle-mapping + 1.0.0 + + + + + + + org.codehaus.mojo + + + exec-maven-plugin + + + [1.2.1,) + + + java + + + + + + + + + + + + + + + diff --git a/plugins/org.etsi.mts.tdl.tx/src/org/etsi/mts/tdl/GenerateTDLtx.mwe2 b/plugins/org.etsi.mts.tdl.tx/src/org/etsi/mts/tdl/GenerateTDLtx.mwe2 index ede03f9be5dde7cda932233c7df7387af24c0ef5..9eef2ec5bd1833ba1fb93c56547553de3032d403 100644 --- a/plugins/org.etsi.mts.tdl.tx/src/org/etsi/mts/tdl/GenerateTDLtx.mwe2 +++ b/plugins/org.etsi.mts.tdl.tx/src/org/etsi/mts/tdl/GenerateTDLtx.mwe2 @@ -47,6 +47,21 @@ Workflow { generator = { generateXtendStub = false } + //TODO: also for indentation based? or can it be reused? + projectWizard = { + generate = true + generateToolbarButton = true + pluginProject = false + } + fileWizard = { + generate = true + generateToolbarButton = true + } + + renameRefactoring = { + useChangeSerializer = true + } + junitSupport = { junitVersion = "5" } diff --git a/plugins/org.etsi.mts.tdl.tx/src/org/etsi/mts/tdl/TDLtx.xtext b/plugins/org.etsi.mts.tdl.tx/src/org/etsi/mts/tdl/TDLtx.xtext index 2f3a65a78a7af87b0fa78b64ee0d96f5cb98afea..e05c666c776c2785683dcf72d553ddfd429ae55e 100644 --- a/plugins/org.etsi.mts.tdl.tx/src/org/etsi/mts/tdl/TDLtx.xtext +++ b/plugins/org.etsi.mts.tdl.tx/src/org/etsi/mts/tdl/TDLtx.xtext @@ -14,9 +14,9 @@ Package returns tdl::Package: AnnotationCommentFragment 'Package' name=Identifier (BEGIN - (^import+=ElementImport)* - (packagedElement+=PackageableElement)* - (nestedPackage+=Package)* + (^import+=ElementImport//)* + | packagedElement+=PackageableElement //)* + | nestedPackage+=Package)* END)? ; @@ -95,21 +95,13 @@ Comment returns tdl::Comment: ; Annotation returns tdl::Annotation: - '@' key=[tdl::AnnotationType|Identifier] + '@' key=[tdl::AnnotationType|AIdentifier] (':' value=EString)? ; AnnotationType returns tdl::AnnotationType: AnnotationCommentFragment - 'Annotation' name = ( - Identifier - | InitialBlockName - | ExpectedBlockName - | FinalBlockName - | TestPurposeDescriptionName - | When - | Then - ) + 'Annotation' name = AIdentifier ('extends' extension=Extension)? ; @@ -150,7 +142,7 @@ DataResourceMapping returns tdl::DataResourceMapping: DataElementMapping returns tdl::DataElementMapping: AnnotationCommentFragment - 'Map' mappableDataElement=[tdl::MappableDataElement|Identifier] + 'Map' mappableDataElement=[tdl::MappableDataElement|GRIdentifier] ('to' elementURI=EString)? 'in' dataResourceMapping=[tdl::DataResourceMapping|Identifier] 'as' name=Identifier @@ -455,6 +447,7 @@ PredefinedFunctionCallNot returns tdl::PredefinedFunctionCall: ; PredefinedFunctionCallBinary returns tdl::PredefinedFunctionCall: + //Note: necessary to avoid left recursion LParen actualParameters+=DataUse function=[tdl::PredefinedFunction|PredefinedIdentifierBinary] @@ -710,13 +703,13 @@ Block returns tdl::Block: LocalExpression returns tdl::LocalExpression: //NOTE: No annotations or comments expression=DataUse - ('on' scope=[tdl::ComponentInstance|Identifier])? + ('on' componentInstance=[tdl::ComponentInstance|Identifier])? ; LocalLoopExpression returns tdl::LocalExpression: //NOTE: No annotations or comments expression=DataUse 'times' - ('on' scope=[tdl::ComponentInstance|Identifier])? + ('on' componentInstance=[tdl::ComponentInstance|Identifier])? ; @@ -731,8 +724,8 @@ fragment WithCombinedFragment returns tdl::CombinedBehaviour: NameFragment? ObjectiveFragment? (comment+=Comment)* - (periodic+=PeriodicBehaviour)* - (exceptional+=ExceptionalBehaviour)* + (periodic+=PeriodicBehaviour //)* + | exceptional+=ExceptionalBehaviour)* END ; @@ -1020,7 +1013,7 @@ Assignment returns tdl::Assignment: //## ValueConverter Rules (Pseudo-terminals) -//TODO: why does this strip quotes when it is a single word? +//DONE: why does this strip quotes when it is a single word? -> added custom value converter EString: STRING // | ID @@ -1033,7 +1026,19 @@ EString: Identifier: - ID + ID + //implementation specific + | 'name' | 'type' //TODO: exclude other keywords to the extent possible? +; + +AIdentifier: + Identifier + | InitialBlockName + | ExpectedBlockName + | FinalBlockName + | TestPurposeDescriptionName + | When + | Then ; GRIdentifier: @@ -1721,13 +1726,15 @@ InitialConditionsBehaviour returns tdl::CompoundBehaviour: ExpectedBehaviourBehaviour returns tdl::CompoundBehaviour: annotation+=ExpectedBehaviourAnnotation - 'ensure' 'that' + 'ensure' 'that' ( BEGIN block=WhenThenBlock END ) - | block=Block + //TODO: this does not seem to work + | + block=Block ; FinalConditionsBehaviour returns tdl::CompoundBehaviour: @@ -1882,3 +1889,9 @@ Then: KIdentifier: ID | 'sends' | 'receives' | 'triggers' | 'in' ; + +//TODO: document? +@Override +//terminal ID: '^'?('a'..'z'|'A'..'Z'|'_') (ALPHANUM | (('-'|':') ALPHANUM))*; +terminal ID: '^'?('a'..'z'|'A'..'Z'|'_') (ALPHANUM | (('-') ALPHANUM))*; +terminal fragment ALPHANUM: ('a'..'z'|'A'..'Z'|'_'|'0'..'9'); \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.tx/src/org/etsi/mts/tdl/TDLtxRuntimeModule.java b/plugins/org.etsi.mts.tdl.tx/src/org/etsi/mts/tdl/TDLtxRuntimeModule.java index 7460d19e0ac68a538b7b5a3c7906acbe321bde94..7147cf327b0acad484bd948fea8292dcc225eacb 100644 --- a/plugins/org.etsi.mts.tdl.tx/src/org/etsi/mts/tdl/TDLtxRuntimeModule.java +++ b/plugins/org.etsi.mts.tdl.tx/src/org/etsi/mts/tdl/TDLtxRuntimeModule.java @@ -3,9 +3,25 @@ */ package org.etsi.mts.tdl; +import org.eclipse.xtext.conversion.IValueConverterService; +import org.eclipse.xtext.naming.IQualifiedNameConverter; +import org.eclipse.xtext.naming.IQualifiedNameProvider; +import org.etsi.mts.tdl.scoping.TDLQualifiedNameConverter; +import org.etsi.mts.tdl.scoping.TdlQualifiedNameProvider; /** * Use this class to register components to be used at runtime / without the Equinox extension registry. */ public class TDLtxRuntimeModule extends AbstractTDLtxRuntimeModule { + @Override + public Class bindIValueConverterService() { + return TDLValueConverterService.class; + } + + public Class bindIQualifiedNameConverter() { + return TDLQualifiedNameConverter.class; + } + public Class bindIQualifiedNameProvider() { + return TdlQualifiedNameProvider.class; + } } diff --git a/plugins/org.etsi.mts.tdl.tx/src/org/etsi/mts/tdl/formatting2/TDLtxFormatter.java b/plugins/org.etsi.mts.tdl.tx/src/org/etsi/mts/tdl/formatting2/TDLtxFormatter.java index 16f3ffb22ab7459eb7854ee28470e454141614d7..d4d505f7481e2f37b9adb85829106096f6aa1dc1 100644 --- a/plugins/org.etsi.mts.tdl.tx/src/org/etsi/mts/tdl/formatting2/TDLtxFormatter.java +++ b/plugins/org.etsi.mts.tdl.tx/src/org/etsi/mts/tdl/formatting2/TDLtxFormatter.java @@ -5,6 +5,7 @@ package org.etsi.mts.tdl.formatting2; import java.util.List; +import org.eclipse.emf.common.util.EList; import org.eclipse.emf.ecore.EObject; import org.eclipse.xtext.Assignment; import org.eclipse.xtext.Keyword; @@ -19,6 +20,7 @@ import org.eclipse.xtext.xbase.lib.Procedures.Procedure1; import org.etsi.mts.tdl.Element; import org.etsi.mts.tdl.ElementImport; import org.etsi.mts.tdl.PackageableElement; +import org.etsi.mts.tdl.ParameterBinding; import org.etsi.mts.tdl.ParameterMapping; import org.etsi.mts.tdl.StructuredDataType; import org.etsi.mts.tdl.EnumDataType; @@ -32,9 +34,12 @@ import org.etsi.mts.tdl.Connection; import org.etsi.mts.tdl.Annotation; import org.etsi.mts.tdl.Extension; import org.etsi.mts.tdl.DataElementMapping; +import org.etsi.mts.tdl.DataElementUse; +import org.etsi.mts.tdl.DataUse; import org.etsi.mts.tdl.TestConfiguration; import org.etsi.mts.tdl.TestDescription; import org.etsi.mts.tdl.Behaviour; +import org.etsi.mts.tdl.Block; import org.etsi.mts.tdl.ExceptionalBehaviour; import org.etsi.mts.tdl.PeriodicBehaviour; import org.etsi.mts.tdl.SimpleDataInstance; @@ -43,12 +48,20 @@ import org.etsi.mts.tdl.FormalParameter; import org.etsi.mts.tdl.LocalExpression; import org.etsi.mts.tdl.Member; import org.etsi.mts.tdl.MemberAssignment; +import org.etsi.mts.tdl.NamedElement; import org.etsi.mts.tdl.Package; import org.etsi.mts.tdl.structuredobjectives.EventOccurrence; +import org.etsi.mts.tdl.structuredobjectives.EventReference; import org.etsi.mts.tdl.structuredobjectives.ExpectedBehaviour; import org.etsi.mts.tdl.structuredobjectives.FinalConditions; import org.etsi.mts.tdl.structuredobjectives.InitialConditions; +import org.etsi.mts.tdl.structuredobjectives.LiteralValue; +import org.etsi.mts.tdl.structuredobjectives.PICSReference; import org.etsi.mts.tdl.structuredobjectives.StructuredTestObjective; +import org.etsi.mts.tdl.structuredobjectives.Value; +import org.etsi.mts.tdl.structuredobjectives.Content; +import org.etsi.mts.tdl.structuredobjectives.EntityReference; +import org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage; import org.etsi.mts.tdl.services.TDLtxGrammarAccess; import com.google.inject.Inject; @@ -60,7 +73,7 @@ public class TDLtxFormatter extends AbstractJavaFormatter { //NOTE: Backported from indentation-based syntax.. added some refinements //TODO: Clean-up, merge, validate, and supersede downstream - protected void format(org.etsi.mts.tdl.Block e, IFormattableDocument doc) { + protected void format(Block e, IFormattableDocument doc) { for (EObject m : e.eContents()) { if (!(m instanceof Annotation) && !(m instanceof LocalExpression)) { //TODO: handle nested behaviour @@ -75,20 +88,60 @@ public class TDLtxFormatter extends AbstractJavaFormatter { } } - protected void format(org.etsi.mts.tdl.Element e, IFormattableDocument doc) { + protected void format(LiteralValue e, IFormattableDocument doc) { +// doc.surround(e, indent()); +// doc.surround(e, newLine()); + List keywords = this.textRegionExtensions.regionFor(e).keywords(","); + for (ISemanticRegion f : keywords) { + doc.surround(f, indent()); + } + + for (EObject m : e.eContents()) { + if ((m instanceof Content)) { + doc.prepend(m, newLine()); + } else { + } + doc.format(m); + } + } + + protected void format(Content e, IFormattableDocument doc) { + doc.surround(e, indent()); +// doc.surround(e, newLine()); + List keywords = this.textRegionExtensions.regionFor(e).keywords(","); + for (ISemanticRegion f : keywords) { + doc.surround(f, indent()); + } + for (EObject m : e.eContents()) { + if ((m instanceof Content)) { + //TODO: works but possibly fragile + doc.prepend(m, newLine()); + if (!((Content)m).getContent().isEmpty() || + (((Content)m).getValue()!=null && + !((LiteralValue) ((Content)m).getValue()).getContent().isEmpty())) { + doc.append(m, newLine()); + } + } else { + } + doc.format(m); + } + } + + + protected void format(Element e, IFormattableDocument doc) { List open = this.textRegionExtensions.regionFor(e).ruleCallsTo(this._grammarAccess.getBEGINRule()); List close = this.textRegionExtensions.regionFor(e).ruleCallsTo(this._grammarAccess.getENDRule()); if (!open.isEmpty()) { - doc.append(open.get(0), p->p.newLine()); - doc.interior(open.get(0), close.get(0), p->p.indent()); + doc.append(open.get(0), newLine()); + doc.interior(open.get(0), close.get(0), indent()); } -// doc.interior(e, p->p.indent()); +// doc.interior(e, indent); if (e instanceof Behaviour) { // List assignments = this.textRegionExtensions.regionFor(e).assignments(this._grammarAccess.findAssignments(this._grammarAccess.getTimeConstraintFragmentRule()).toArray(new Assignment[] {})); // for (var a : assignments) { -// doc.prepend(a.getPreviousSemanticRegion(), p->p.newLine()); -// doc.surround(a.getPreviousSemanticRegion(), p->p.indent()); -// doc.append(a, p->p.newLine()); +// doc.prepend(a.getPreviousSemanticRegion(), newLine()); +// doc.surround(a.getPreviousSemanticRegion(), indent); +// doc.append(a, newLine()); // } List features = this.textRegionExtensions.regionFor(e).features( tdlPackage.Literals.BEHAVIOUR__TEST_OBJECTIVE @@ -97,21 +150,20 @@ public class TDLtxFormatter extends AbstractJavaFormatter { ); for (ISemanticRegion f : features) { //TODO: this depends on keywords.. - doc.prepend(f.getPreviousSemanticRegion(), p->p.newLine()); - ////doc.surround(f.getPreviousSemanticRegion(), p->p.indent()); - doc.append(f, p->p.newLine()); + doc.prepend(f.getPreviousSemanticRegion(), newLine()); + ////doc.surround(f.getPreviousSemanticRegion(), indent); + doc.append(f, newLine()); } } if (e instanceof Connection) { - doc.prepend(e, p->p.newLine()); + doc.prepend(e, newLine()); } if (e instanceof EventOccurrence) { - doc.prepend(e, p->p.newLine()); - doc.surround(e, p->p.indent()); - doc.append(e, p->p.newLine()); + doc.prepend(e, newLine()); + doc.surround(e, indent()); + doc.append(e, newLine()); //TODO: expand custom formatting - when then, event occurrence arguments, etc. - return; } if (e instanceof ExpectedBehaviour) { @@ -123,17 +175,23 @@ public class TDLtxFormatter extends AbstractJavaFormatter { m instanceof TimeConstraint //|| // m instanceof Comment ) { - doc.append(m, p->p.newLine()); + doc.append(m, newLine()); } else if ( m instanceof Annotation || m instanceof Comment ) { - doc.prepend(m, p->p.newLine()); - doc.append(m, p->p.newLine()); + if (!(e instanceof EntityReference || e instanceof EventReference )) { + doc.prepend(m, newLine()); + doc.append(m, newLine()); + } else { + //doc.prepend(m, newLine()); + } + } else if (m instanceof EntityReference) { + doc.prepend(m, newLine()); } else if (m instanceof EventOccurrence) { - doc.prepend(m, p->p.newLine()); - doc.append(m, p->p.newLine()); + doc.prepend(m, newLine()); + doc.append(m, newLine()); } else if ( m instanceof Annotation || m instanceof Comment || @@ -141,42 +199,52 @@ public class TDLtxFormatter extends AbstractJavaFormatter { m instanceof ExceptionalBehaviour || m instanceof PeriodicBehaviour ) { - doc.prepend(m, p->p.newLine()); - doc.surround(m, p->p.indent()); - doc.append(m, p->p.newLine()); + doc.prepend(m, newLine()); + doc.surround(m, indent()); + doc.append(m, newLine()); } doc.format(m); } } + public Procedure1 indent() { + Procedure1 indent = p->p.indent(); + return indent; + } + + public Procedure1 newLine() { + Procedure1 newLine = p->p.newLine(); + return newLine; + } + - protected void format(org.etsi.mts.tdl.NamedElement e, IFormattableDocument doc) { - doc.prepend(e, p->p.newLine()); -// doc.interior(e, p->p.indent()); + protected void format(NamedElement e, IFormattableDocument doc) { + doc.prepend(e, newLine()); +// doc.interior(e, indent()); // doc.format(e); -// doc.interior(e, p->p.indent()); +// doc.interior(e, indent()); if (e instanceof StructuredDataType) { // var open = this.textRegionExtensions.regionFor(e).ruleCallsTo(this._grammarAccess.getBEGINRule()); // var close = this.textRegionExtensions.regionFor(e).ruleCallsTo(this._grammarAccess.getENDRule()); // -// doc.append(open.get(0), p->p.newLine()); -// doc.interior(open.get(0), close.get(0), p->p.indent()); +// doc.append(open.get(0), newLine()); +// doc.interior(open.get(0), close.get(0), indent()); if (!((StructuredDataType) e).getMember().isEmpty()) { // doc.interior( -// doc.append(this.textRegionExtensions.regionFor(e).keyword("("), r->r.newLine()), -// doc.prepend(this.textRegionExtensions.regionFor(e).keyword(")"), r->r.newLine()), -// r->r.indent()); +// doc.append(this.textRegionExtensions.regionFor(e).keyword("("), r->r.newLine()()), +// doc.prepend(this.textRegionExtensions.regionFor(e).keyword(")"), r->r.newLine()()), +// r->r.indent()()); } int size = ((StructuredDataType)e).getMember().size(); int i = 0; for (Member m : ((StructuredDataType)e).getMember()) { i++; - doc.prepend(m, p->p.newLine()); - doc.surround(m, p->p.indent()); + doc.prepend(m, newLine()); + doc.surround(m, indent()); if (i==size) { - doc.append(m, p->p.newLine()); + doc.append(m, newLine()); } doc.format(m); } @@ -187,11 +255,11 @@ public class TDLtxFormatter extends AbstractJavaFormatter { int i = 0; for (MemberAssignment m : ((StructuredDataInstance)e).getMemberAssignment()) { i++; - doc.prepend(m, p->p.newLine()); - doc.surround(m, p->p.indent()); -// doc.append(m, p->p.newLine()); + doc.prepend(m, newLine()); + doc.surround(m, indent()); +// doc.append(m, newLine()); if (i==size) { - doc.append(m, p->p.newLine()); + doc.append(m, newLine()); } doc.format(m); } @@ -202,11 +270,11 @@ public class TDLtxFormatter extends AbstractJavaFormatter { int i = 0; for (SimpleDataInstance m : ((EnumDataType)e).getValue()) { i++; - doc.prepend(m, p->p.newLine()); - doc.surround(m, p->p.indent()); -// doc.append(m, p->p.newLine()); + doc.prepend(m, newLine()); + doc.surround(m, indent()); +// doc.append(m, newLine()()); if (i==size) { - doc.append(m, p->p.newLine()); + doc.append(m, newLine()); } doc.format(m); } @@ -222,34 +290,41 @@ public class TDLtxFormatter extends AbstractJavaFormatter { if (!(m instanceof Annotation) && !(m instanceof Extension) && !(m instanceof FormalParameter)) { - doc.prepend(m, p->p.newLine()); - doc.surround(m, p->p.indent()); - //doc.append(m, p->p.newLine()); + doc.prepend(m, newLine()); + doc.surround(m, indent()); + //doc.append(m, newLine()); doc.format(m); } if (i==e.eContents().size()) { - doc.append(m, p->p.newLine()); + doc.append(m, newLine()); } } } if (e instanceof DataElementMapping) { for (ParameterMapping m : ((DataElementMapping)e).getParameterMapping()) { - doc.prepend(m, p->p.newLine()); - doc.surround(m, p->p.indent()); -// doc.append(m, p->p.newLine()); + doc.prepend(m, newLine()); + doc.surround(m, indent()); +// doc.append(m, newLine()); doc.format(m); } + + List close = this.textRegionExtensions.regionFor(e).ruleCallsTo(this._grammarAccess.getENDRule()); + if (!close.isEmpty()) { + doc.prepend(close.get(0), newLine()); + } + } //Test Objective Only if (e instanceof TestObjective) { + // ISemanticRegion dKeyword = this.textRegionExtensions.regionFor(e).keyword("Description:"); -// doc.prepend(dKeyword, p->p.newLine()); -// doc.surround(dKeyword, p->p.indent()); +// doc.prepend(dKeyword, newLine()); +// doc.surround(dKeyword, indent()); // ISemanticRegion rKeyword = this.textRegionExtensions.regionFor(e).keyword("References:"); -// doc.prepend(rKeyword, p->p.newLine()); -// doc.surround(rKeyword, p->p.indent()); +// doc.prepend(rKeyword, newLine()); +// doc.surround(rKeyword, indent()); List features = this.textRegionExtensions.regionFor(e).features( tdlPackage.Literals.TEST_OBJECTIVE__DESCRIPTION, @@ -259,65 +334,121 @@ public class TDLtxFormatter extends AbstractJavaFormatter { ); for (ISemanticRegion f : features) { //TODO: this depends on keywords.. - doc.prepend(f.getPreviousSemanticRegion(), p->p.newLine()); - doc.surround(f.getPreviousSemanticRegion(), p->p.indent()); - doc.append(f, p->p.newLine()); + doc.prepend(f.getPreviousSemanticRegion(), newLine()); + doc.surround(f.getPreviousSemanticRegion(), indent()); + doc.append(f, newLine()); } if (e instanceof StructuredTestObjective) { + //TODO: this depends on keywords.. + List keywords = this.textRegionExtensions.regionFor(e).keywords("Configuration:", "PICS:"); + for (ISemanticRegion f : keywords) { + doc.prepend(f, newLine()); + doc.surround(f, indent()); + } + InitialConditions ic = ((StructuredTestObjective) e).getInitialConditions(); - doc.prepend(ic, p->p.newLine()); - doc.surround(ic, p->p.indent()); - doc.append(ic, p->p.newLine()); + doc.prepend(ic, newLine()); + doc.surround(ic, indent()); + doc.append(ic, newLine()); doc.format(ic); ExpectedBehaviour eb = ((StructuredTestObjective) e).getExpectedBehaviour(); - doc.prepend(eb, p->p.newLine()); - doc.surround(eb, p->p.indent()); - doc.append(eb, p->p.newLine()); + doc.prepend(eb, newLine()); + doc.surround(eb, indent()); + doc.append(eb, newLine()); doc.format(eb); FinalConditions fc = ((StructuredTestObjective) e).getFinalConditions(); - doc.prepend(fc, p->p.newLine()); - doc.surround(fc, p->p.indent()); - doc.append(fc, p->p.newLine()); + doc.prepend(fc, newLine()); + doc.surround(fc, indent()); + doc.append(fc, newLine()); doc.format(fc); } } //All + //DONE: exclude initial conditions -> not triggered ISemanticRegion withKeyword = this.textRegionExtensions.regionFor(e).keyword("with"); if (withKeyword!=null) { - doc.surround(withKeyword, p->p.newLine()); - doc.append(withKeyword, p->p.indent()); + doc.surround(withKeyword, newLine()); + doc.append(withKeyword, indent()); // doc.interior( // withKeyword.getNextHiddenRegion().getNextSemanticRegion(), // this.textRegionExtensions.nextHiddenRegion(e).getNextSemanticRegion(), -// p->p.indent() +// indent() // ); } - //doc.prepend(withKeyword, p->p.indent()); + //doc.prepend(withKeyword, indent()); //withKeyword.getNextSemanticRegion(); // var rbs = this.textRegionExtensions.regionFor(e).ruleCallTo(this._grammarAccess.()); for (Comment c : e.getComment()) { if (!(e instanceof Member)) { - doc.surround(c, p->p.indent()); + doc.surround(c, indent()); + } + if (!(e instanceof EntityReference)) { + doc.append(c, newLine()); } - doc.append(c, p->p.newLine()); doc.format(c); } for (Annotation a : e.getAnnotation()) { - doc.append(a, p->p.newLine()); + doc.append(a, newLine()); doc.format(a); } } protected void format(org.etsi.mts.tdl.TestDescription e, IFormattableDocument doc) { + for (Annotation a : e.getAnnotation()) { + doc.surround(a, p->p.newLine()); +// doc.append(a, p->p.noIndentation()); + doc.format(a); +// doc.prepend(a, p->p.newLine()); + } + for (TestObjective a : e.getTestObjective()) { + doc.append(a, p->p.newLine()); +// doc.append(a, p->p.noIndentation()); + doc.format(a); + } + for (Comment c : e.getComment()) { + doc.append(c, p->p.newLine()); +// doc.append(c, p->p.noIndentation()); + doc.format(c); + } + for (EObject m : e.eContents()) { doc.format(m); } } + + protected void format(org.etsi.mts.tdl.DataUse e, IFormattableDocument doc) { + for (ParameterBinding m : e.getArgument()) { + doc.prepend(m, newLine()); + doc.surround(m, indent()); +// doc.append(m, p->p.newLine()); + doc.format(m); + } + if (e instanceof DataElementUse) { + for (DataUse m : ((DataElementUse) e).getItem()) { + doc.prepend(m, p->p.newLine()); + doc.surround(m, p->p.indent()); +// doc.append(m, p->p.newLine()); + doc.format(m); + } + } + + List closeParen = this.textRegionExtensions.regionFor(e).ruleCallsTo(this._grammarAccess.getRParenRule()); + if (!closeParen.isEmpty()) { + doc.prepend(closeParen.get(0), p->p.newLine()); + } + List closeItems = this.textRegionExtensions.regionFor(e).keywords("]"); + if (!closeItems.isEmpty()) { + doc.prepend(closeItems.get(0), p->p.newLine()); + } + + + } + protected void format(org.etsi.mts.tdl.Package _package, IFormattableDocument doc) { // TODO: format HiddenRegions around keywords, attributes, cross references, etc. diff --git a/plugins/org.etsi.mts.tdl.tx/src/org/etsi/mts/tdl/validation/TDLtxValidator.java b/plugins/org.etsi.mts.tdl.tx/src/org/etsi/mts/tdl/validation/TDLtxValidator.java index b372a836b07ba0ae793bb9a2e6916030da55d66f..9d52ec79af2d366afe03757fa2d7ec87e0122488 100644 --- a/plugins/org.etsi.mts.tdl.tx/src/org/etsi/mts/tdl/validation/TDLtxValidator.java +++ b/plugins/org.etsi.mts.tdl.tx/src/org/etsi/mts/tdl/validation/TDLtxValidator.java @@ -3,6 +3,23 @@ */ package org.etsi.mts.tdl.validation; +import java.net.URI; +import java.net.URISyntaxException; + +import org.eclipse.core.runtime.Platform; +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.EValidator; +import org.eclipse.emf.ecore.util.EObjectValidator; +import org.eclipse.epsilon.evl.emf.validation.CompositeEValidator; +import org.eclipse.epsilon.evl.emf.validation.EvlValidator; +import org.eclipse.ocl.pivot.internal.utilities.PivotDiagnostician.BasicDiagnosticWithRemove; +import org.eclipse.xtext.validation.AbstractValidationDiagnostic; +import org.eclipse.xtext.validation.Check; +import org.etsi.mts.tdl.Element; +import org.etsi.mts.tdl.TestConfiguration; +import org.etsi.mts.tdl.tdlPackage; /** * This class contains custom validation rules. @@ -10,8 +27,19 @@ package org.etsi.mts.tdl.validation; * See https://www.eclipse.org/Xtext/documentation/303_runtime_concepts.html#validation */ public class TDLtxValidator extends AbstractTDLtxValidator { + private static boolean initialised; + + static { +// try { +// init(); +// } catch (Exception e) { +// // TODO Auto-generated catch block +// e.printStackTrace(); +// } + } -// public static final String INVALID_NAME = "invalidName"; + + public static final String INVALID_NAME = "invalidName"; // // @Check // public void checkGreetingStartsWithCapital(Greeting greeting) { @@ -21,5 +49,106 @@ public class TDLtxValidator extends AbstractTDLtxValidator { // INVALID_NAME); // } // } + private static EvlValidator evlValidator; + + + public TDLtxValidator() { + super(); + try { +// init(); + } catch (Exception e) { +// TODO Auto-generated catch block + e.printStackTrace(); + } + } + + public static void init() throws Exception { + if (initialised) { + return; + } + //TODO: goes a bit in circles + //TODO: extract into an activator or something? also as command + //TODO: works in principle, occasionally causes hangs and strange errors though... + System.out.println("Init EVL validator.."); + // Assuming you have generated the metamodel code + EPackage ePackage = tdlPackage.eINSTANCE; + + // Pass a model name if your script uses it + // Pass a valid bundle ID as it used for reporting (if not in a plugin use your project name or similar) + + String modelName = "TDL"; //This seems to be important! Otherwise strange hangs occur -> TDL? + String bundleId = "org.etsi.mts.tdl.constraints"; + URI evlScriptURI = new URI("platform:/plugin/"+bundleId+"/constraints/tdl-generated-ETSI-ES-203-119-1-V1.5.1-fixed.evl"); + //TODO: try out extension point integration + //TODO: try out fixes -> can they be in a separate module? + //TODO: add other constraints for TO/TC + evlValidator = new EvlValidator( + evlScriptURI, modelName , ePackage.getNsURI(), bundleId); + + evlValidator.setShowErrorDialog(false); + //TODO: extract to optional on demand / auto validation + //TODO: this brings all the epsilon dependencies here as well + //-> effectively requires constraints to be installed.. shall be plugged in ideally.. + //-> check again extension point integration.. +// registerValidator(ePackage); + initialised = true; + } + + private static void registerValidator(EPackage ePackage) { + EValidator existingValidator = EValidator.Registry.INSTANCE.getEValidator(ePackage); + if (existingValidator instanceof CompositeEValidator) { + ((CompositeEValidator) existingValidator).getDelegates().add(evlValidator); + } else { + if (existingValidator == null) { + existingValidator = EObjectValidator.INSTANCE; + } + CompositeEValidator newValidator = new CompositeEValidator(); + newValidator.getDelegates().add(existingValidator); + newValidator.getDelegates().add(evlValidator); + EValidator.Registry.INSTANCE.put(ePackage, newValidator); + } + } + + +//TODO: try to add individual element-based checks on demand with different priorities to reduce overhead when editing.. + +// @Check +// public void checkConfigurationsStartWithCapital(TestConfiguration c) { +// if (!Character.isUpperCase(c.getName().charAt(0))) { +// warning("Name should start with a capital", +// tdlPackage.Literals.ELEMENT__NAME, +// INVALID_NAME); +// } +//} + + @Check + public void checkConfig(TestConfiguration e) { +// System.out.println("Checkxs: "+e); +// BasicDiagnosticWithRemove.validate(e, null); +// BasicDiagnostic d = new BasicDiagnostic(); +// if (!evlValidator.validate(e, d, null)) { +// System.out.println(" Warning: "); +// d.getChildren().forEach(m->System.out.println(" "+m.getMessage())); +// }; + } + + @Check + public void checkElement(Element e) { +// System.out.println("Checks: "+e); +// BasicDiagnosticWithRemove.validate(e, null); +// BasicDiagnostic d = new BasicDiagnostic(); +// if (!evlValidator.validate(e, d, null)) { +// System.out.println(" Warning: "); +// }; +// d.getChildren().forEach(m->System.out.println(" "+m.getMessage())); +// BasicDiagnostic diagnostics = createDefaultDiagnostic(e); + +// if (!Character.isUpperCase() { +// warning("Name should start with a capital", +// tdlPackage.Literals.ELEMENT__NAME, +// INVALID_NAME); +// } +} + } diff --git a/plugins/org.etsi.mts.tdl.txi.ide/.classpath b/plugins/org.etsi.mts.tdl.txi.ide/.classpath index bc001b4a78c0b5010a989e262b982d3992129788..376d2e95d674426da468104d8af6541f0c43b7a4 100644 --- a/plugins/org.etsi.mts.tdl.txi.ide/.classpath +++ b/plugins/org.etsi.mts.tdl.txi.ide/.classpath @@ -1,9 +1,9 @@ - + - + diff --git a/plugins/org.etsi.mts.tdl.txi.ide/.project b/plugins/org.etsi.mts.tdl.txi.ide/.project index e501f2445cedc02fef47aea3c3388e4490d7280d..cd87fc4a6a86b9c68173563141655c3e4862423c 100644 --- a/plugins/org.etsi.mts.tdl.txi.ide/.project +++ b/plugins/org.etsi.mts.tdl.txi.ide/.project @@ -25,10 +25,27 @@ + + org.eclipse.m2e.core.maven2Builder + + + + org.eclipse.m2e.core.maven2Nature org.eclipse.xtext.ui.shared.xtextNature org.eclipse.jdt.core.javanature org.eclipse.pde.PluginNature + + + 1681418411992 + + 30 + + org.eclipse.core.resources.regexFilterMatcher + node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__ + + + diff --git a/plugins/org.etsi.mts.tdl.txi.ide/.settings/org.eclipse.jdt.core.prefs b/plugins/org.etsi.mts.tdl.txi.ide/.settings/org.eclipse.jdt.core.prefs index c872bd038503c9d8d28340ed4e64db93110da44b..4066686a7037980436d75a26d2be734e098c76e5 100644 --- a/plugins/org.etsi.mts.tdl.txi.ide/.settings/org.eclipse.jdt.core.prefs +++ b/plugins/org.etsi.mts.tdl.txi.ide/.settings/org.eclipse.jdt.core.prefs @@ -1,10 +1,10 @@ eclipse.preferences.version=1 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 -org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.compliance=11 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled org.eclipse.jdt.core.compiler.problem.enumIdentifier=error org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning org.eclipse.jdt.core.compiler.release=disabled -org.eclipse.jdt.core.compiler.source=1.8 +org.eclipse.jdt.core.compiler.source=11 diff --git a/plugins/org.etsi.mts.tdl.txi.ide/.settings/org.eclipse.m2e.core.prefs b/plugins/org.etsi.mts.tdl.txi.ide/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000000000000000000000000000000000000..f897a7f1cb2389f85fe6381425d29f0a9866fb65 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.txi.ide/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/plugins/org.etsi.mts.tdl.txi.ide/META-INF/MANIFEST.MF b/plugins/org.etsi.mts.tdl.txi.ide/META-INF/MANIFEST.MF index d5c351e91683284ec98d234f2ba129443f90137e..c51693000d894aa8abce7ce2b4356395015e4c9a 100644 --- a/plugins/org.etsi.mts.tdl.txi.ide/META-INF/MANIFEST.MF +++ b/plugins/org.etsi.mts.tdl.txi.ide/META-INF/MANIFEST.MF @@ -12,7 +12,7 @@ Require-Bundle: org.etsi.mts.tdl.txi, org.eclipse.xtext.ide, org.eclipse.xtext.xbase.ide, org.antlr.runtime;bundle-version="[3.2.0,3.2.1)" -Bundle-RequiredExecutionEnvironment: JavaSE-1.8 +Bundle-RequiredExecutionEnvironment: JavaSE-11 Export-Package: org.etsi.mts.tdl.ide.contentassist.antlr.internal, org.etsi.mts.tdl.ide.contentassist.antlr, org.etsi.mts.tdl.ide.contentassist.antlr.lexer diff --git a/plugins/org.etsi.mts.tdl.txi.ide/pom.xml b/plugins/org.etsi.mts.tdl.txi.ide/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..570900df40d906667a7b3e50051ea4eb3c11b2db --- /dev/null +++ b/plugins/org.etsi.mts.tdl.txi.ide/pom.xml @@ -0,0 +1,19 @@ + + + 4.0.0 + + + org.etsi.mts.tdl + org.etsi.mts.tdl.parent + 1.0.0-SNAPSHOT + ../../org.etsi.mts.tdl.parent + + + + org.etsi.mts.tdl.txi.ide + eclipse-plugin + + TDLtx Indentation-Based Textual Syntax IDE + + \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.txi.ui/.classpath b/plugins/org.etsi.mts.tdl.txi.ui/.classpath index bc001b4a78c0b5010a989e262b982d3992129788..376d2e95d674426da468104d8af6541f0c43b7a4 100644 --- a/plugins/org.etsi.mts.tdl.txi.ui/.classpath +++ b/plugins/org.etsi.mts.tdl.txi.ui/.classpath @@ -1,9 +1,9 @@ - + - + diff --git a/plugins/org.etsi.mts.tdl.txi.ui/.project b/plugins/org.etsi.mts.tdl.txi.ui/.project index abf0a5fe7b977168a4b30fdabc6d975e582f2696..cde79586a021e61547c19ad78f0c9b6f290b81e1 100644 --- a/plugins/org.etsi.mts.tdl.txi.ui/.project +++ b/plugins/org.etsi.mts.tdl.txi.ui/.project @@ -25,20 +25,26 @@ + + org.eclipse.m2e.core.maven2Builder + + + + org.eclipse.m2e.core.maven2Nature org.eclipse.xtext.ui.shared.xtextNature org.eclipse.jdt.core.javanature org.eclipse.pde.PluginNature - 1636230009272 + 1681418411998 30 org.eclipse.core.resources.regexFilterMatcher - node_modules|.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__ + node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__ diff --git a/plugins/org.etsi.mts.tdl.txi.ui/.settings/org.eclipse.jdt.core.prefs b/plugins/org.etsi.mts.tdl.txi.ui/.settings/org.eclipse.jdt.core.prefs index c872bd038503c9d8d28340ed4e64db93110da44b..4066686a7037980436d75a26d2be734e098c76e5 100644 --- a/plugins/org.etsi.mts.tdl.txi.ui/.settings/org.eclipse.jdt.core.prefs +++ b/plugins/org.etsi.mts.tdl.txi.ui/.settings/org.eclipse.jdt.core.prefs @@ -1,10 +1,10 @@ eclipse.preferences.version=1 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 -org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.compliance=11 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled org.eclipse.jdt.core.compiler.problem.enumIdentifier=error org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning org.eclipse.jdt.core.compiler.release=disabled -org.eclipse.jdt.core.compiler.source=1.8 +org.eclipse.jdt.core.compiler.source=11 diff --git a/plugins/org.etsi.mts.tdl.txi.ui/.settings/org.eclipse.m2e.core.prefs b/plugins/org.etsi.mts.tdl.txi.ui/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000000000000000000000000000000000000..f897a7f1cb2389f85fe6381425d29f0a9866fb65 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.txi.ui/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/plugins/org.etsi.mts.tdl.txi.ui/META-INF/MANIFEST.MF b/plugins/org.etsi.mts.tdl.txi.ui/META-INF/MANIFEST.MF index 60242d3cb1b48fa2a2bae5be954e58385b82a99f..dc5494a6da715415d37327a9cce96139f521be04 100644 --- a/plugins/org.etsi.mts.tdl.txi.ui/META-INF/MANIFEST.MF +++ b/plugins/org.etsi.mts.tdl.txi.ui/META-INF/MANIFEST.MF @@ -19,7 +19,7 @@ Require-Bundle: org.etsi.mts.tdl.txi, org.eclipse.compare, org.eclipse.xtext.builder Import-Package: org.apache.log4j -Bundle-RequiredExecutionEnvironment: JavaSE-1.8 +Bundle-RequiredExecutionEnvironment: JavaSE-11 Export-Package: org.etsi.mts.tdl.ui.contentassist, org.etsi.mts.tdl.txi.ui.internal, org.etsi.mts.tdl.ui.quickfix diff --git a/plugins/org.etsi.mts.tdl.txi.ui/pom.xml b/plugins/org.etsi.mts.tdl.txi.ui/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..ca339795c6aa3977fbfb6d4c9afd1cdaa5ac20aa --- /dev/null +++ b/plugins/org.etsi.mts.tdl.txi.ui/pom.xml @@ -0,0 +1,37 @@ + + + 4.0.0 + + + org.etsi.mts.tdl + org.etsi.mts.tdl.parent + 1.0.0-SNAPSHOT + ../../org.etsi.mts.tdl.parent + + + + org.etsi.mts.tdl.txi.ui + eclipse-plugin + + TDLtx Indentation-Based Textual Syntax UI + + + + + org.apache.maven.plugins + maven-clean-plugin + + + gen-clean + clean + + + + + org.eclipse.xtend + xtend-maven-plugin + + + + \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.txi.ui/src/org/etsi/mts/tdl/ui/outline/TDLtxiOutlineTreeProvider.java b/plugins/org.etsi.mts.tdl.txi.ui/src/org/etsi/mts/tdl/ui/outline/TDLtxiOutlineTreeProvider.java index 915570fd1ffd134d2ea428e3d0a4ca18bdd21f3a..69f28c5a8b82e0db95f3a451a06b1724db51be1e 100644 --- a/plugins/org.etsi.mts.tdl.txi.ui/src/org/etsi/mts/tdl/ui/outline/TDLtxiOutlineTreeProvider.java +++ b/plugins/org.etsi.mts.tdl.txi.ui/src/org/etsi/mts/tdl/ui/outline/TDLtxiOutlineTreeProvider.java @@ -10,6 +10,6 @@ import org.eclipse.xtext.ui.editor.outline.impl.DefaultOutlineTreeProvider; * * See https://www.eclipse.org/Xtext/documentation/310_eclipse_support.html#outline */ -public class TDLtxiOutlineTreeProvider extends DefaultOutlineTreeProvider { +public class TDLtxiOutlineTreeProvider extends TDLtxOutlineTreeProvider { } diff --git a/plugins/org.etsi.mts.tdl.txi/.classpath b/plugins/org.etsi.mts.tdl.txi/.classpath index bc001b4a78c0b5010a989e262b982d3992129788..f208d6d3928b4cca50476cc9df40e0a34b3cd264 100644 --- a/plugins/org.etsi.mts.tdl.txi/.classpath +++ b/plugins/org.etsi.mts.tdl.txi/.classpath @@ -1,9 +1,13 @@ - + + + + + - + diff --git a/plugins/org.etsi.mts.tdl.txi/.launch/Generate TDLtxi (tdltxi) Language Infrastructure.launch b/plugins/org.etsi.mts.tdl.txi/.launch/Generate TDLtxi (tdltxi) Language Infrastructure.launch index 0a14edb3446ac25234e53564cf3d7aaa3ace0026..327d7e57e7e6487732a946ae2d472de3dc3d8151 100644 --- a/plugins/org.etsi.mts.tdl.txi/.launch/Generate TDLtxi (tdltxi) Language Infrastructure.launch +++ b/plugins/org.etsi.mts.tdl.txi/.launch/Generate TDLtxi (tdltxi) Language Infrastructure.launch @@ -1,5 +1,6 @@ + @@ -17,7 +18,7 @@ - + diff --git a/plugins/org.etsi.mts.tdl.txi/.project b/plugins/org.etsi.mts.tdl.txi/.project index a69323b7ecdeaeec8b866020cb367da31dbab0ed..617fccb838e9ff2b9f30f99443716f6ed72d24c9 100644 --- a/plugins/org.etsi.mts.tdl.txi/.project +++ b/plugins/org.etsi.mts.tdl.txi/.project @@ -25,10 +25,27 @@ + + org.eclipse.m2e.core.maven2Builder + + + + org.eclipse.m2e.core.maven2Nature org.eclipse.xtext.ui.shared.xtextNature org.eclipse.jdt.core.javanature org.eclipse.pde.PluginNature + + + 1681418411987 + + 30 + + org.eclipse.core.resources.regexFilterMatcher + node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__ + + + diff --git a/plugins/org.etsi.mts.tdl.txi/.settings/org.eclipse.jdt.core.prefs b/plugins/org.etsi.mts.tdl.txi/.settings/org.eclipse.jdt.core.prefs index c872bd038503c9d8d28340ed4e64db93110da44b..cd8d089a199afbc99d4b030fdec8e7c404068845 100644 --- a/plugins/org.etsi.mts.tdl.txi/.settings/org.eclipse.jdt.core.prefs +++ b/plugins/org.etsi.mts.tdl.txi/.settings/org.eclipse.jdt.core.prefs @@ -1,10 +1,15 @@ eclipse.preferences.version=1 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 -org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate +org.eclipse.jdt.core.compiler.codegen.targetPlatform=11 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=11 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate org.eclipse.jdt.core.compiler.problem.assertIdentifier=error org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled org.eclipse.jdt.core.compiler.problem.enumIdentifier=error org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning org.eclipse.jdt.core.compiler.release=disabled -org.eclipse.jdt.core.compiler.source=1.8 +org.eclipse.jdt.core.compiler.source=11 diff --git a/plugins/org.etsi.mts.tdl.txi/.settings/org.eclipse.m2e.core.prefs b/plugins/org.etsi.mts.tdl.txi/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000000000000000000000000000000000000..f897a7f1cb2389f85fe6381425d29f0a9866fb65 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.txi/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/plugins/org.etsi.mts.tdl.txi/META-INF/MANIFEST.MF b/plugins/org.etsi.mts.tdl.txi/META-INF/MANIFEST.MF index b9c505ce28ab1e7d19d3ac549ad64c2fab5850eb..50f0e3c5a4593eb7a83cd28acb352d0d72d7f425 100644 --- a/plugins/org.etsi.mts.tdl.txi/META-INF/MANIFEST.MF +++ b/plugins/org.etsi.mts.tdl.txi/META-INF/MANIFEST.MF @@ -14,7 +14,7 @@ Require-Bundle: org.etsi.mts.tdl.model, org.eclipse.xtext.xbase.lib;bundle-version="2.14.0", org.eclipse.xtext.util, org.antlr.runtime;bundle-version="[3.2.0,3.2.1)" -Bundle-RequiredExecutionEnvironment: JavaSE-1.8 +Bundle-RequiredExecutionEnvironment: JavaSE-11 Export-Package: org.etsi.mts.tdl.parser.antlr.internal, org.etsi.mts.tdl.scoping, org.etsi.mts.tdl.parser.antlr, diff --git a/plugins/org.etsi.mts.tdl.txi/pom.xml b/plugins/org.etsi.mts.tdl.txi/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..9515ed4736b3cb2cb1dfb1bea10ea9951f63bc54 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.txi/pom.xml @@ -0,0 +1,172 @@ + + + 4.0.0 + + + org.etsi.mts.tdl + org.etsi.mts.tdl.parent + 1.0.0-SNAPSHOT + ../../org.etsi.mts.tdl.parent + + + + org.etsi.mts.tdl.txi + eclipse-plugin + + TDLtx Indentation-Based Textual Syntax + + + + + org.codehaus.mojo + exec-maven-plugin + 3.0.0 + + + mwe2Launcher + generate-sources + + java + + + + + org.eclipse.emf.mwe2.launch.runtime.Mwe2Launcher + + /${project.basedir}/src/org/etsi/mts/tdl/GenerateTDLtxi.mwe2 + -p + rootPath=/${project.basedir}/.. + + compile + true + false + + + + org.eclipse.xtext + xtext-antlr-generator + 2.1.1 + + + + + org.eclipse.xtend + xtend-maven-plugin + + + + org.apache.maven.plugins + maven-clean-plugin + + + + ${basedir}/../org.etsi.mts.tdl.txi/src-gen/ + + **/* + + + .gitignore + + + + ${basedir}/../org.etsi.mts.tdl.txi/xtend-gen/ + + **/* + + + .gitignore + + + + + ${basedir}/../org.etsi.mts.tdl.txi.ide/src-gen/ + + **/* + + + .gitignore + + + + ${basedir}/../org.etsi.mts.tdl.txi.ui/src-gen/ + + **/* + + + .gitignore + + + + ${basedir}/../org.etsi.mts.tdl.txi.ui/xtend-gen/ + + **/* + + + .gitignore + + + + ${basedir}/../org.etsi.mts.tdl.txi.ui/xtend-gen/ + + **/* + + + .gitignore + + + + + + + + + + + + org.eclipse.m2e + lifecycle-mapping + 1.0.0 + + + + + + + org.codehaus.mojo + + + exec-maven-plugin + + + [1.2.1,) + + + java + + + + + + + + + + + + + + + diff --git a/plugins/org.etsi.mts.tdl.txi/src/org/etsi/mts/tdl/TDLtxiRuntimeModule.java b/plugins/org.etsi.mts.tdl.txi/src/org/etsi/mts/tdl/TDLtxiRuntimeModule.java index d5c3ba7074b95a917b8dea86057273d171501598..e592a59b6b1fbed4314fb0dfa34806345f5edac7 100644 --- a/plugins/org.etsi.mts.tdl.txi/src/org/etsi/mts/tdl/TDLtxiRuntimeModule.java +++ b/plugins/org.etsi.mts.tdl.txi/src/org/etsi/mts/tdl/TDLtxiRuntimeModule.java @@ -3,9 +3,25 @@ */ package org.etsi.mts.tdl; +import org.eclipse.xtext.conversion.IValueConverterService; +import org.eclipse.xtext.naming.IQualifiedNameConverter; +import org.eclipse.xtext.naming.IQualifiedNameProvider; +import org.etsi.mts.tdl.scoping.TDLQualifiedNameConverter; +import org.etsi.mts.tdl.scoping.TdlQualifiedNameProvider; /** * Use this class to register components to be used at runtime / without the Equinox extension registry. */ public class TDLtxiRuntimeModule extends AbstractTDLtxiRuntimeModule { + @Override + public Class bindIValueConverterService() { + return TDLValueConverterService.class; + } + + public Class bindIQualifiedNameConverter() { + return TDLQualifiedNameConverter.class; + } + public Class bindIQualifiedNameProvider() { + return TdlQualifiedNameProvider.class; + } } diff --git a/plugins/org.etsi.mts.tdl.wizards/.classpath b/plugins/org.etsi.mts.tdl.wizards/.classpath new file mode 100644 index 0000000000000000000000000000000000000000..1db08c6b4ce2fb50395b2f9c9a50c140a0bab199 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.wizards/.classpath @@ -0,0 +1,7 @@ + + + + + + + diff --git a/plugins/org.etsi.mts.tdl.wizards/.project b/plugins/org.etsi.mts.tdl.wizards/.project new file mode 100644 index 0000000000000000000000000000000000000000..4f890a64ca79e45e77607b7f1cf6a25e7b00ef00 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.wizards/.project @@ -0,0 +1,45 @@ + + + org.etsi.mts.tdl.wizards + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.eclipse.m2e.core.maven2Nature + org.eclipse.pde.PluginNature + org.eclipse.jdt.core.javanature + + + + 1681418412003 + + 30 + + org.eclipse.core.resources.regexFilterMatcher + node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__ + + + + diff --git a/plugins/org.etsi.mts.tdl.wizards/.settings/org.eclipse.core.resources.prefs b/plugins/org.etsi.mts.tdl.wizards/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000000000000000000000000000000000000..99f26c0203a7844de00dbfc56e6a35d8ed3c022c --- /dev/null +++ b/plugins/org.etsi.mts.tdl.wizards/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/plugins/org.etsi.mts.tdl.wizards/.settings/org.eclipse.jdt.core.prefs b/plugins/org.etsi.mts.tdl.wizards/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000000000000000000000000000000000000..c9545f06a4120d5b4a1228fb19f67a1171bc0f5b --- /dev/null +++ b/plugins/org.etsi.mts.tdl.wizards/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,9 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=11 +org.eclipse.jdt.core.compiler.compliance=11 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning +org.eclipse.jdt.core.compiler.release=enabled +org.eclipse.jdt.core.compiler.source=11 diff --git a/plugins/org.etsi.mts.tdl.wizards/.settings/org.eclipse.m2e.core.prefs b/plugins/org.etsi.mts.tdl.wizards/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000000000000000000000000000000000000..f897a7f1cb2389f85fe6381425d29f0a9866fb65 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.wizards/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/plugins/org.etsi.mts.tdl.wizards/META-INF/MANIFEST.MF b/plugins/org.etsi.mts.tdl.wizards/META-INF/MANIFEST.MF new file mode 100644 index 0000000000000000000000000000000000000000..b919eef00d01602a42af0bc1f39f258456af0573 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.wizards/META-INF/MANIFEST.MF @@ -0,0 +1,21 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: TDL Wizards +Bundle-SymbolicName: org.etsi.mts.tdl.wizards;singleton:=true +Bundle-Version: 1.0.0.qualifier +Bundle-Activator: org.etsi.mts.tdl.wizards.Activator +Require-Bundle: org.eclipse.ui, + org.eclipse.core.runtime, + org.eclipse.ui.ide, + org.eclipse.core.resources, + org.etsi.mts.tdl.openapi2tdl.next, + org.eclipse.xtext.util, + org.etsi.mts.tdl.helper, + org.etsi.mts.tdl.json2tdl, + org.etsi.mts.tdl.common, + org.eclipse.emf.ecore, + org.eclipse.equinox.preferences +Bundle-RequiredExecutionEnvironment: JavaSE-11 +Automatic-Module-Name: org.etsi.mts.tdl.wizards +Bundle-ActivationPolicy: lazy +Import-Package: com.google.gson diff --git a/plugins/org.etsi.mts.tdl.wizards/build.properties b/plugins/org.etsi.mts.tdl.wizards/build.properties new file mode 100644 index 0000000000000000000000000000000000000000..6f4455d0e120b77b0904d2835d63f30dcde30b90 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.wizards/build.properties @@ -0,0 +1,6 @@ +source.. = src/ +output.. = target/classes/ +bin.includes = plugin.xml,\ + META-INF/,\ + .,\ + icons/ diff --git a/plugins/org.etsi.mts.tdl.wizards/icons/sample.png b/plugins/org.etsi.mts.tdl.wizards/icons/sample.png new file mode 100644 index 0000000000000000000000000000000000000000..02c4b79e10986d56bda97051eb0da2e9119c97f5 Binary files /dev/null and b/plugins/org.etsi.mts.tdl.wizards/icons/sample.png differ diff --git a/plugins/org.etsi.mts.tdl.wizards/icons/sample@2x.png b/plugins/org.etsi.mts.tdl.wizards/icons/sample@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..c1224d1fce3debb7eb66e63ac948fcd6d33d2999 Binary files /dev/null and b/plugins/org.etsi.mts.tdl.wizards/icons/sample@2x.png differ diff --git a/plugins/org.etsi.mts.tdl.wizards/plugin.xml b/plugins/org.etsi.mts.tdl.wizards/plugin.xml new file mode 100644 index 0000000000000000000000000000000000000000..f77c01d35a72d4c5fa7143809ad271e7e5026353 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.wizards/plugin.xml @@ -0,0 +1,43 @@ + + + + + + + + + + Import a file from the local file system into the workspace. + + + + + + + + + + + + + diff --git a/plugins/org.etsi.mts.tdl.wizards/pom.xml b/plugins/org.etsi.mts.tdl.wizards/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..e8359a04129fd5b7809e9b60282168de7740a5bd --- /dev/null +++ b/plugins/org.etsi.mts.tdl.wizards/pom.xml @@ -0,0 +1,19 @@ + + 4.0.0 + + org.etsi.mts.tdl + org.etsi.mts.tdl.parent + 1.0.0-SNAPSHOT + ../../org.etsi.mts.tdl.parent + + + org.etsi.mts.tdl.wizards + eclipse-plugin + + + + maven-compiler-plugin + + + + \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.wizards/src/org/etsi/mts/tdl/wizards/Activator.java b/plugins/org.etsi.mts.tdl.wizards/src/org/etsi/mts/tdl/wizards/Activator.java new file mode 100644 index 0000000000000000000000000000000000000000..f938e924e18554d83e8e48b3f72de308936e7053 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.wizards/src/org/etsi/mts/tdl/wizards/Activator.java @@ -0,0 +1,44 @@ +package org.etsi.mts.tdl.wizards; + +import org.eclipse.ui.plugin.AbstractUIPlugin; +import org.osgi.framework.BundleContext; + +/** + * The activator class controls the plug-in life cycle + */ +public class Activator extends AbstractUIPlugin { + + // The plug-in ID + public static final String PLUGIN_ID = "org.etsi.mts.tdl.wizards"; //$NON-NLS-1$ + + // The shared instance + private static Activator plugin; + + /** + * The constructor + */ + public Activator() { + } + + @Override + public void start(BundleContext context) throws Exception { + super.start(context); + plugin = this; + } + + @Override + public void stop(BundleContext context) throws Exception { + plugin = null; + super.stop(context); + } + + /** + * Returns the shared instance + * + * @return the shared instance + */ + public static Activator getDefault() { + return plugin; + } + +} diff --git a/plugins/org.etsi.mts.tdl.wizards/src/org/etsi/mts/tdl/wizards/importWizards/ImportWizard.java b/plugins/org.etsi.mts.tdl.wizards/src/org/etsi/mts/tdl/wizards/importWizards/ImportWizard.java new file mode 100644 index 0000000000000000000000000000000000000000..efd3a19ce7535e7b63ca74e03660837fffc97ced --- /dev/null +++ b/plugins/org.etsi.mts.tdl.wizards/src/org/etsi/mts/tdl/wizards/importWizards/ImportWizard.java @@ -0,0 +1,64 @@ +package org.etsi.mts.tdl.wizards.importWizards; + +import java.io.IOException; +import java.nio.file.Path; +import java.nio.file.StandardCopyOption; + +import org.eclipse.core.resources.IFile; +import org.eclipse.core.runtime.IPath; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.jface.wizard.Wizard; +import org.eclipse.ui.IImportWizard; +import org.eclipse.ui.IWorkbench; + +public class ImportWizard extends Wizard implements IImportWizard { + + ImportWizardPage mainPage; + + public ImportWizard() { + super(); + } + + /* (non-Javadoc) + * @see org.eclipse.jface.wizard.Wizard#performFinish() + */ + public boolean performFinish() { + IFile file = mainPage.createNewFile(); + //TODO: copy original (optionally) + //TODO: use eclipse way? + //TODO: separate location for source? + if (mainPage.isCopySource()) { + IPath sourcePath = mainPage.getSourcePath(); + try { + java.nio.file.Files.copy( + Path.of(sourcePath.toOSString()), + Path.of(file.getParent().getLocation().append(sourcePath.lastSegment()).toOSString()), + StandardCopyOption.REPLACE_EXISTING); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + if (file == null) + return false; + return true; + } + + /* (non-Javadoc) + * @see org.eclipse.ui.IWorkbenchWizard#init(org.eclipse.ui.IWorkbench, org.eclipse.jface.viewers.IStructuredSelection) + */ + public void init(IWorkbench workbench, IStructuredSelection selection) { + setWindowTitle("Data Definitions Import Wizard"); //NON-NLS-1 + setNeedsProgressMonitor(true); + mainPage = new ImportWizardPage("Import Data Definitions",selection); //NON-NLS-1 + } + + /* (non-Javadoc) + * @see org.eclipse.jface.wizard.IWizard#addPages() + */ + public void addPages() { + super.addPages(); + addPage(mainPage); + } + +} diff --git a/plugins/org.etsi.mts.tdl.wizards/src/org/etsi/mts/tdl/wizards/importWizards/ImportWizardPage.java b/plugins/org.etsi.mts.tdl.wizards/src/org/etsi/mts/tdl/wizards/importWizards/ImportWizardPage.java new file mode 100644 index 0000000000000000000000000000000000000000..2cf154faff0a1c0fc10398ba4ee9eeec05f13d87 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.wizards/src/org/etsi/mts/tdl/wizards/importWizards/ImportWizardPage.java @@ -0,0 +1,208 @@ +package org.etsi.mts.tdl.wizards.importWizards; + +import java.io.InputStream; +import java.util.ArrayList; +import java.util.Collection; +import java.util.LinkedHashMap; +import java.util.List; + +import org.eclipse.core.runtime.IPath; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.Path; +import org.eclipse.core.runtime.Platform; +import org.eclipse.core.runtime.Status; +import org.eclipse.core.runtime.preferences.InstanceScope; +import org.eclipse.jface.preference.FileFieldEditor; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.swt.SWT; +import org.eclipse.swt.events.SelectionEvent; +import org.eclipse.swt.events.SelectionListener; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Button; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Label; +import org.eclipse.ui.dialogs.WizardNewFileCreationPage; +import org.eclipse.xtext.util.StringInputStream; +import org.etsi.mts.tdl.json2tdl.JSONConverter; +import org.etsi.mts.tdl.openapi2tdl.next.ConverterNext; +import org.osgi.service.prefs.Preferences; + + +public class ImportWizardPage extends WizardNewFileCreationPage { + + protected FileFieldEditor editor; + private boolean inline = false; + private boolean copySource = false; + private IPath sourcePath; + LinkedHashMap dataFormats = new LinkedHashMap<>(); + + public ImportWizardPage(String pageName, IStructuredSelection selection) { + super(pageName, selection); + setTitle(pageName); //NON-NLS-1 + setDescription("Import data definitions from a file from the local file system into the workspace"); //NON-NLS-1 + loadDataFormat("org.etsi.mts.tdl.openapi2tdl.next", "OpenAPI", "*.yaml"); + loadDataFormat("org.etsi.mts.tdl.asn2tdl", "ASN.1", "*.asn1;*.asn"); + loadDataFormat("org.etsi.mts.tdl.json2tdl", "JSON", "*.json"); + loadDataFormat("org.etsi.mts.tdl.yang2tdl", "YANG", "*.yang"); + } + + /* (non-Javadoc) + * @see org.eclipse.ui.dialogs.WizardNewFileCreationPage#createAdvancedControls(org.eclipse.swt.widgets.Composite) + */ + protected void createAdvancedControls(Composite parent) { + Composite fileSelectionArea = new Composite(parent, SWT.NONE); + GridData fileSelectionData = new GridData(GridData.GRAB_HORIZONTAL + | GridData.FILL_HORIZONTAL); + fileSelectionArea.setLayoutData(fileSelectionData); + + GridLayout fileSelectionLayout = new GridLayout(); + fileSelectionLayout.numColumns = 3; + fileSelectionLayout.makeColumnsEqualWidth = false; + fileSelectionLayout.marginWidth = 0; + fileSelectionLayout.marginHeight = 0; + fileSelectionArea.setLayout(fileSelectionLayout); + + //DONE: ensure that is a valid path (not-empty and existing and having the right extension + //DONE: store and pre-fill with last used -> consider expanding with injected preferences for other controls as well + String lastUsed = "LAST_USED"; + Preferences preferences = InstanceScope.INSTANCE.getNode("org.etsi.mts.tdl.wizarads.import.data"); + + editor = new FileFieldEditor("fileSelect","Select Data File: ",fileSelectionArea); //NON-NLS-1 //NON-NLS-2 + editor.getTextControl(fileSelectionArea).addModifyListener(e -> { + setSourcePath(new Path(ImportWizardPage.this.editor.getStringValue())); + if (!getSourcePath().lastSegment().equals("null")) { + preferences.put(lastUsed, getSourcePath().toOSString()); + setFileName(getSourcePath().lastSegment()+".tdltx"); //TODO: generalise + } + }); + editor.getTextControl(fileSelectionArea).setText(preferences.get(lastUsed, "")); + + //DONE: add option to copy source + //TODO: adapt extensions based on available bundles + List extensions = new ArrayList(); + extensions.add(String.join(";",dataFormats.values())); + extensions.addAll(dataFormats.values()); + editor.setFileExtensions(extensions.toArray(String[]::new)); + fileSelectionArea.moveAbove(null); + + + Label labelCopy = new Label(fileSelectionArea, SWT.NONE); + labelCopy.setText("Copy Data File:"); + Button buttonCopy = new Button(fileSelectionArea, SWT.CHECK); + buttonCopy.setSelection(false); + buttonCopy.addSelectionListener(SelectionListener.widgetSelectedAdapter(this::copyDataDefinitions)); + //fill empty cell + new Label(fileSelectionArea, SWT.NONE); + + Label labelFlatten = new Label(fileSelectionArea, SWT.NONE); + //TODO: for OpenAPI only? + labelFlatten.setText("Import Inline Definitions:"); + //TODO: link and verify results + Button buttonFlatten = new Button(fileSelectionArea, SWT.CHECK); + buttonFlatten.setSelection(false); + buttonFlatten.addSelectionListener(SelectionListener.widgetSelectedAdapter(this::flattenDataDefinitions)); +// fill empty cell + new Label(fileSelectionArea, SWT.NONE); + } + + private void loadDataFormat(String bundleName, String label, String extension) { + if (Platform.getBundle(bundleName) != null) { + dataFormats.put(label, extension); + } + } + + + /* (non-Javadoc) + * @see org.eclipse.ui.dialogs.WizardNewFileCreationPage#createLinkTarget() + */ + protected void createLinkTarget() { + } + + /* (non-Javadoc) + * @see org.eclipse.ui.dialogs.WizardNewFileCreationPage#getInitialContents() + */ + protected InputStream getInitialContents() { + try { + if (editor.getStringValue().endsWith(".yaml")) { + //YAML + System.out.println("From OpenAPI YAML..."); + String content = ConverterNext.processToString(editor.getStringValue(), + editor.getStringValue()+".tdltx", + "SOURCE_MAPPING", + "TARGET_MAPPING", + inline + ); + return new StringInputStream(content); + } else if (editor.getStringValue().endsWith(".json")) { + System.out.println("From JSON..."); + //JSON +// JsonSyntaxException e; +// AbstractTranslator translator = new JSON2TDLTranslator(); +// Resource tr = TDLHelper.create(editor.getStringValue()+"-generated.tdltx"); +// translator.setTargetResource(tr); +// translator.initTargetResource(translator.cleanName(editor.getStringValue())); +// translator.translate(editor.getStringValue()); +// String content = TDLHelper.getText(tr); + String content = JSONConverter.processToString(editor.getStringValue(), editor.getStringValue()+"-generated.tdltx"); + return new StringInputStream(content); + } else { + return null; + } +// return new FileInputStream(new File(editor.getStringValue())); + } catch (Exception e) { + e.printStackTrace(); + return null; + } + } + + /* (non-Javadoc) + * @see org.eclipse.ui.dialogs.WizardNewFileCreationPage#getNewFileLabel() + */ + protected String getNewFileLabel() { + return "Imported Package Name:"; //NON-NLS-1 + } + + /* (non-Javadoc) + * @see org.eclipse.ui.dialogs.WizardNewFileCreationPage#validateLinkedResource() + */ + protected IStatus validateLinkedResource() { + return Status.OK_STATUS; + } + + @Override + protected boolean validatePage() { + boolean validatePage = super.validatePage(); + //basic check for referenced data file + IPath sourcePath = Path.fromOSString(this.editor.getStringValue()); + boolean exists = sourcePath.toFile().exists(); + if (!exists) { + setErrorMessage("The selected data file path is not valid."); + } + return exists && validatePage; + } + + private void flattenDataDefinitions(SelectionEvent e) { + inline = ((Button) e.getSource()).getSelection(); + } + + private void copyDataDefinitions(SelectionEvent e) { + setCopySource(((Button) e.getSource()).getSelection()); + } + + public boolean isCopySource() { + return copySource; + } + + public void setCopySource(boolean copySource) { + this.copySource = copySource; + } + + public IPath getSourcePath() { + return sourcePath; + } + + public void setSourcePath(IPath sourcePath) { + this.sourcePath = sourcePath; + } +} diff --git a/plugins/org.etsi.mts.tdl.wizards/src/org/etsi/mts/tdl/wizards/wizards/TDLNewWizard.java b/plugins/org.etsi.mts.tdl.wizards/src/org/etsi/mts/tdl/wizards/wizards/TDLNewWizard.java new file mode 100644 index 0000000000000000000000000000000000000000..47194a86342ab5f1111959e6da3bef5d5e368d02 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.wizards/src/org/etsi/mts/tdl/wizards/wizards/TDLNewWizard.java @@ -0,0 +1,152 @@ +package org.etsi.mts.tdl.wizards.wizards; + +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.jface.wizard.Wizard; +import org.eclipse.ui.INewWizard; +import org.eclipse.ui.IWorkbench; +import org.eclipse.core.runtime.*; +import org.eclipse.jface.operation.*; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.jface.dialogs.MessageDialog; +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.core.resources.*; +import org.eclipse.core.runtime.CoreException; +import java.io.*; +import org.eclipse.ui.*; +import org.eclipse.ui.ide.IDE; + +/** + * This is a sample new wizard. Its role is to create a new file + * resource in the provided container. If the container resource + * (a folder or a project) is selected in the workspace + * when the wizard is opened, it will accept it as the target + * container. The wizard creates one file with the extension + * "tdltx". If a sample multi-page editor (also available + * as a template) is registered for the same extension, it will + * be able to open it. + */ + +public class TDLNewWizard extends Wizard implements INewWizard { + private TDLNewWizardPage page; + private ISelection selection; + private boolean importStandard; + + /** + * Constructor for TDLNewWizard. + */ + public TDLNewWizard() { + super(); + setNeedsProgressMonitor(true); + } + + /** + * Adding the page to the wizard. + */ + @Override + public void addPages() { + page = new TDLNewWizardPage(selection); + addPage(page); + } + + /** + * This method is called when 'Finish' button is pressed in + * the wizard. We will create an operation and run it + * using wizard as execution context. + */ + @Override + public boolean performFinish() { + final String containerName = page.getContainerName(); + final String fileName = page.getFileName(); + //TODO: do properly + importStandard = page.getImportStandard().getSelection(); + IRunnableWithProgress op = monitor -> { + try { + doFinish(containerName, fileName, monitor); + } catch (CoreException e) { + throw new InvocationTargetException(e); + } finally { + monitor.done(); + } + }; + try { + getContainer().run(true, false, op); + } catch (InterruptedException e) { + return false; + } catch (InvocationTargetException e) { + Throwable realException = e.getTargetException(); + MessageDialog.openError(getShell(), "Error", realException.getMessage()); + return false; + } + return true; + } + + /** + * The worker method. It will find the container, create the + * file if missing or just replace its contents, and open + * the editor on the newly created file. + */ + + private void doFinish( + String containerName, + String fileName, + IProgressMonitor monitor) + throws CoreException { + // create a sample file + monitor.beginTask("Creating " + fileName, 2); + IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot(); + IResource resource = root.findMember(new Path(containerName)); + if (!resource.exists() || !(resource instanceof IContainer)) { + throw new CoreException(Status.error("Location \"" + containerName + "\" does not exist.")); + } + IContainer container = (IContainer) resource; + final IFile file = container.getFile(new Path(fileName)); + try { + InputStream stream = openContentStream(); + if (file.exists()) { + file.setContents(stream, true, true, monitor); + } else { + file.create(stream, true, monitor); + } + stream.close(); + } catch (IOException e) { + } + monitor.worked(1); + monitor.setTaskName("Opening file for editing..."); + getShell().getDisplay().asyncExec(() -> { + IWorkbenchPage page = + PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(); + try { + IDE.openEditor(page, file, true); + } catch (PartInitException e) { + } + }); + monitor.worked(1); + } + + /** + * We will initialize file contents with a sample text. + */ + + private InputStream openContentStream() { + String name = "NewPackage"; + String imports = ""; + if (importStandard) { + imports += " Import all from Standard"; + } + String contents = "Package "+name+" {\n" + + imports + + " " + + "\n}"; + return new ByteArrayInputStream(contents.getBytes()); + } + + /** + * We will accept the selection in the workbench to see if + * we can initialize from it. + * @see IWorkbenchWizard#init(IWorkbench, IStructuredSelection) + */ + @Override + public void init(IWorkbench workbench, IStructuredSelection selection) { + this.selection = selection; + } +} \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.wizards/src/org/etsi/mts/tdl/wizards/wizards/TDLNewWizardPage.java b/plugins/org.etsi.mts.tdl.wizards/src/org/etsi/mts/tdl/wizards/wizards/TDLNewWizardPage.java new file mode 100644 index 0000000000000000000000000000000000000000..265002bbfb45a0e322d0e19200930032ce1b05e4 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.wizards/src/org/etsi/mts/tdl/wizards/wizards/TDLNewWizardPage.java @@ -0,0 +1,202 @@ +package org.etsi.mts.tdl.wizards.wizards; + +import org.eclipse.core.resources.IContainer; +import org.eclipse.core.resources.IResource; +import org.eclipse.core.resources.ResourcesPlugin; +import org.eclipse.core.runtime.Path; +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.jface.wizard.WizardPage; +import org.eclipse.swt.SWT; +import org.eclipse.swt.events.SelectionAdapter; +import org.eclipse.swt.events.SelectionEvent; +import org.eclipse.swt.events.SelectionListener; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Button; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Event; +import org.eclipse.swt.widgets.Label; +import org.eclipse.swt.widgets.Text; +import org.eclipse.ui.dialogs.ContainerSelectionDialog; + +/** + * The "New" wizard page allows setting the container for the new file as well + * as the file name. The page will only accept file name without the extension + * OR with the extension that matches the expected one (tdltx). + */ + +public class TDLNewWizardPage extends WizardPage { + private Text containerText; + + private Text fileText; + + private ISelection selection; + + private Button importStandard; + + /** + * Constructor for SampleNewWizardPage. + * + * @param pageName + */ + public TDLNewWizardPage(ISelection selection) { + super("wizardPage"); + setTitle("New TDLtx File"); + setDescription("This wizard creates a new file with *.tdltx extension with the TDLtx editor."); + this.selection = selection; + } + + @Override + public void createControl(Composite parent) { + Composite container = new Composite(parent, SWT.NULL); + GridLayout layout = new GridLayout(); + container.setLayout(layout); + layout.numColumns = 3; + layout.verticalSpacing = 9; + Label label = new Label(container, SWT.NULL); + label.setText("&Location:"); + + containerText = new Text(container, SWT.BORDER | SWT.SINGLE); + GridData gd = new GridData(GridData.FILL_HORIZONTAL); + containerText.setLayoutData(gd); + containerText.addModifyListener(e -> dialogChanged()); + + Button button = new Button(container, SWT.PUSH); + button.setText("Browse..."); + button.addSelectionListener(new SelectionAdapter() { + public void widgetSelected(SelectionEvent e) { + handleBrowse(); + } + }); + label = new Label(container, SWT.NULL); + label.setText("&File name:"); + + fileText = new Text(container, SWT.BORDER | SWT.SINGLE); + gd = new GridData(GridData.FILL_HORIZONTAL); + fileText.setLayoutData(gd); + fileText.addModifyListener(e -> dialogChanged()); + + //fill empty cell + new Label(container, SWT.NONE); + Label labelCheck = new Label(container, SWT.NONE); + labelCheck.setText("Import Standard:"); + setImportStandard(new Button(container, SWT.CHECK)); + getImportStandard().setSelection(true); + getImportStandard().addSelectionListener(SelectionListener.widgetSelectedAdapter(this::importStandardChanged)); + + + initialize(); + dialogChanged(); + setControl(container); + } + + private void importStandardChanged(SelectionEvent e) { + boolean selection = ((Button) e.widget).getSelection(); + if (selection) { +// addContent = " Import all from Standard\n"; + } + } + + /** + * Tests if the current workbench selection is a suitable container to use. + */ + + private void initialize() { + if (selection != null && selection.isEmpty() == false + && selection instanceof IStructuredSelection) { + IStructuredSelection ssel = (IStructuredSelection) selection; + if (ssel.size() > 1) + return; + Object obj = ssel.getFirstElement(); + if (obj instanceof IResource) { + IContainer container; + if (obj instanceof IContainer) + container = (IContainer) obj; + else + container = ((IResource) obj).getParent(); + containerText.setText(container.getFullPath().toString()); + } + } + fileText.setText("NewPackage.tdltx"); + } + + /** + * Uses the standard container selection dialog to choose the new value for + * the container field. + */ + + private void handleBrowse() { + ContainerSelectionDialog dialog = new ContainerSelectionDialog( + getShell(), ResourcesPlugin.getWorkspace().getRoot(), false, + "Select the location for the new file"); + if (dialog.open() == ContainerSelectionDialog.OK) { + Object[] result = dialog.getResult(); + if (result.length == 1) { + containerText.setText(((Path) result[0]).toString()); + } + } + } + + /** + * Ensures that both text fields are set. + */ + + private void dialogChanged() { + IResource container = ResourcesPlugin.getWorkspace().getRoot() + .findMember(new Path(getContainerName())); + String fileName = getFileName(); + + if (getContainerName().length() == 0) { + updateStatus("The location must be specified"); + return; + } + if (container == null + || (container.getType() & (IResource.PROJECT | IResource.FOLDER)) == 0) { + updateStatus("The location must exist"); + return; + } + if (!container.isAccessible()) { + updateStatus("Project must be writable"); + return; + } + if (fileName.length() == 0) { + updateStatus("File name must be specified"); + return; + } + if (fileName.replace('\\', '/').indexOf('/', 1) > 0) { + updateStatus("File name must be valid"); + return; + } + int dotLoc = fileName.lastIndexOf('.'); + if (dotLoc != -1) { + String ext = fileName.substring(dotLoc + 1); + if (ext.equalsIgnoreCase("tdltx") == false) { + updateStatus("File extension must be \"tdltx\""); + return; + } + } + updateStatus(null); + } + + private void updateStatus(String message) { + setErrorMessage(message); + setPageComplete(message == null); + } + + public String getContainerName() { + return containerText.getText(); + } + + public String getFileName() { + return fileText.getText(); + } + + public Button getImportStandard() { + return importStandard; + } + + public void setImportStandard(Button importStandard) { + this.importStandard = importStandard; + } +} \ No newline at end of file diff --git a/updatesite/org.etsi.mts.tdl.updatesite/.project b/updatesite/org.etsi.mts.tdl.updatesite/.project new file mode 100644 index 0000000000000000000000000000000000000000..202d794cab5b07d969de8152ea3409495b89f4b6 --- /dev/null +++ b/updatesite/org.etsi.mts.tdl.updatesite/.project @@ -0,0 +1,17 @@ + + + org.etsi.mts.tdl.updatesite + + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.eclipse.m2e.core.maven2Nature + + diff --git a/updatesite/org.etsi.mts.tdl.updatesite/category.xml b/updatesite/org.etsi.mts.tdl.updatesite/category.xml new file mode 100644 index 0000000000000000000000000000000000000000..011992158bdcd03942eff5b74691013a647951b2 --- /dev/null +++ b/updatesite/org.etsi.mts.tdl.updatesite/category.xml @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/updatesite/org.etsi.mts.tdl.updatesite/pom.xml b/updatesite/org.etsi.mts.tdl.updatesite/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..71891ba26822bbddaf3baad0abf00769241e8d10 --- /dev/null +++ b/updatesite/org.etsi.mts.tdl.updatesite/pom.xml @@ -0,0 +1,48 @@ + + 4.0.0 + + + org.etsi.mts.tdl + org.etsi.mts.tdl.parent + 1.0.0-SNAPSHOT + ../../org.etsi.mts.tdl.parent + + + org.etsi.mts.tdl.updatesite + eclipse-repository + + TDL Open Source Project (TOP) Update Site + + + + + + + org.eclipse.m2e + lifecycle-mapping + 1.0.0 + + + + + + org.apache.maven.plugins + maven-clean-plugin + [2.5,) + + clean + + + + + + + + + + + + + + \ No newline at end of file