diff options
author | Ed Willink | 2016-09-20 18:48:45 +0000 |
---|---|---|
committer | Ed Willink | 2016-09-20 18:48:45 +0000 |
commit | 297106e8ee8897a05d08f642d6f4e46ab5c8845e (patch) | |
tree | 111de57cb1dfaa1cd2635d42b93e65ca1f417c6c | |
parent | 20c6c4b728d8282b3e5e88d52d8209ddc3052f79 (diff) | |
download | org.eclipse.qvtd-297106e8ee8897a05d08f642d6f4e46ab5c8845e.tar.gz org.eclipse.qvtd-297106e8ee8897a05d08f642d6f4e46ab5c8845e.tar.xz org.eclipse.qvtd-297106e8ee8897a05d08f642d6f4e46ab5c8845e.zip |
[doc] Scripts for QVTi AS documentation
5 files changed, 481 insertions, 1 deletions
diff --git a/doc/org.eclipse.qvtd.doc/doc/2500-qvtimperative-as.textile b/doc/org.eclipse.qvtd.doc/doc/2500-qvtimperative-as.textile new file mode 100644 index 000000000..ed51c954d --- /dev/null +++ b/doc/org.eclipse.qvtd.doc/doc/2500-qvtimperative-as.textile @@ -0,0 +1,421 @@ + +h1(#pivot). **@pivot@** + + +h2(#OCLExpression). **@OCLExpression@** + +*Associations* + +@AddStatement : qvtimperative::AddStatement[?]@ + +@BufferStatement : qvtimperative::BufferStatement[?]@ + +@CheckStatement : qvtimperative::CheckStatement[?]@ + +@DeclareStatement : qvtimperative::DeclareStatement[?]@ + +@MappingLoop : qvtimperative::MappingLoop[?]@ + +@NewStatement : qvtimperative::NewStatement[?]@ + +@SetStatement : qvtimperative::SetStatement[?]@ + +@SimpleParameterBinding : qvtimperative::SimpleParameterBinding[?]@ + +h2(#Property). **@Property@** + +*Attributes* + +@ObservableStatement : Bag(qvtimperative::ObservableStatement)@ + +*Associations* + +@assignment : qvtimperative::SetStatement[?]@ + +h2(#VariableDeclaration). **@VariableDeclaration@** + +*Associations* + +@assignment : qvtimperative::SetStatement[?]@ + +h1(#qvtimperative). **@qvtimperative@** + +The Package for an Imperative QVT transformation. + +An Imperative QVT trabsformation is expected to be created by an autogenerator that observes the following run-time restrictions: + +A mapping that my be re-invoked must have MappingCall.isInfinite set for every possible invocation. + +A mapping that reads object slots before they are guaranteed to have been assigned must declare the slots property in a corresponding ImperativeArea.checkedProperties entry. + +A mapping that assigns an object slot that any mapping may access before assignment is guaranteed must declare declare the slots property in a corresponding ImperativeArea.enforcedProperties entry. + +All reads by Functions/Queries must be guaranteed to succeed; i.e. the invoking mapping must check readiness before calling the query. + +All writes to multi-valued properties must be guaranteed to occur before any read of the property. + + +h2(#AddStatement). **@AddStatement@** + +A ConnectionStatement assigns results to a ConnectionVariable. + +conformsTo "@MappingStatement@":#MappingStatement, "@ObservableStatement@":#ObservableStatement + +*Attributes* + +@isEnforcedUnique : Boolean[?]@ + +*Associations* + +@ownedExpression : OCLExpression[1]@ + +@targetVariable : ::ConnectionVariable[1]@ + +h2(#AppendParameter). **@AppendParameter@** + +A ConnectionVariable accumulates one or more assignments. + +conformsTo "@ConnectionVariable@":#ConnectionVariable, "@MappingParameter@":#MappingParameter + +h2(#AppendParameterBinding). **@AppendParameterBinding@** + +A MappingCallBinding specifies the binding of a single variable as part of +a MappingCall. A value is bound to the variable. OPtionally isLoop may be true +to indicate that the value is a collection of values, each of which is to +be used as part of a distinct invocation. + +conformsTo "@MappingParameterBinding@":#MappingParameterBinding + +*Associations* + +@value : ::ConnectionVariable[1]@ + +The value or collection of values to bind to boundVariable + +h2(#BufferStatement). **@BufferStatement@** + +A ConnectionVariable accumulates one or more assignments. + +conformsTo "@ConnectionVariable@":#ConnectionVariable, "@VariableStatement@":#VariableStatement, "@ObservableStatement@":#ObservableStatement + +*Associations* + +@ownedExpression : OCLExpression[?]@ + +h2(#CheckStatement). **@CheckStatement@** + +conformsTo "@ObservableStatement@":#ObservableStatement + +*Associations* + +@ownedExpression : OCLExpression[1]@ + +h2(#ConnectionVariable). **@ConnectionVariable@** + +A ConnectionVariable accumulates one or more assignments. + +conformsTo "@VariableDeclaration@":#VariableDeclaration + +*Attributes* + +@AppendParameterBinding : Bag(qvtimperative::AppendParameterBinding)@ + +@GuardParameterBinding : Bag(qvtimperative::GuardParameterBinding)@ + +*Associations* + +@assignment : ::AddStatement[?]@ + +h2(#DeclareStatement). **@DeclareStatement@** + +conformsTo "@VariableStatement@":#VariableStatement, "@ObservableStatement@":#ObservableStatement + +*Attributes* + +@isCheck : Boolean[?]@ + +Whether the variable initialization needs to be checked as a predicate. This is a derivation of not ownedInit.type.conformsTo(self.type). + +*Associations* + +@ownedExpression : OCLExpression[1]@ + +h2(#GuardParameter). **@GuardParameter@** + +A ConnectionVariable accumulates one or more assignments. + +conformsTo "@MappingParameter@":#MappingParameter + +*Associations* + +@referredTypedModel : ::ImperativeTypedModel[1]@ + +h2(#GuardParameterBinding). **@GuardParameterBinding@** + +A MappingCallBinding specifies the binding of a single variable as part of +a MappingCall. A value is bound to the variable. OPtionally isLoop may be true +to indicate that the value is a collection of values, each of which is to +be used as part of a distinct invocation. + +conformsTo "@MappingParameterBinding@":#MappingParameterBinding + +*Attributes* + +@isCheck : Boolean[?]@ + +Whether the variable initialization needs to be checked as a predicate. This is a derivation of not ownedInit.type.conformsTo(self.type). + +*Associations* + +@value : ::ConnectionVariable[1]@ + +The value or collection of values to bind to boundVariable + +h2(#ImperativeModel). **@ImperativeModel@** + +The Model of an Imperative QVT transformation. + +conformsTo "@BaseModel@":#BaseModel + +h2(#ImperativeTypedModel). **@ImperativeTypedModel@** + +The Model of an Imperative QVT transformation. + +conformsTo "@TypedModel@":#TypedModel + +*Attributes* + +@GuardParameter : Bag(qvtimperative::GuardParameter)@ + +@NewStatement : Bag(qvtimperative::NewStatement)@ + +@SimpleParameter : Bag(qvtimperative::SimpleParameter)@ + +@isChecked : Boolean[?]@ + +@isEnforced : Boolean[?]@ + +h2(#LoopParameterBinding). **@LoopParameterBinding@** + +A MappingCallBinding specifies the binding of a single variable as part of +a MappingCall. A value is bound to the variable. OPtionally isLoop may be true +to indicate that the value is a collection of values, each of which is to +be used as part of a distinct invocation. + +conformsTo "@MappingParameterBinding@":#MappingParameterBinding + +*Attributes* + +@isCheck : Boolean[?]@ + +Whether the variable initialization needs to be checked as a predicate. This is a derivation of not ownedInit.type.conformsTo(self.type). + +*Associations* + +@value : ::LoopVariable[1]@ + +The value or collection of values to bind to boundVariable + +h2(#LoopVariable). **@LoopVariable@** + +conformsTo "@VariableDeclaration@":#VariableDeclaration + +*Attributes* + +@LoopParameterBinding : Bag(qvtimperative::LoopParameterBinding)@ + +*Associations* + +@owningMappingLoop : ::MappingLoop[1]@ + +h2(#Mapping). **@Mapping@** + +An Imperative Mapping extends the abstract declarative mapping to support +explicit nested invocation of mappings with bindings for the invoked mapping's +bound variables. + +conformsTo "@Rule@":#Rule + +*Attributes* + +@MappingCall : Bag(qvtimperative::MappingCall)@ + +@ownedParameters : Set(qvtimperative::MappingParameter)[*|1]@ + +@ownedStatements : OrderedSet(qvtimperative::Statement)[*|1]@ + +h2(#MappingCall). **@MappingCall@** + +A MappingCall specifies the invocation of a referredMapping with a set of bindings +of the bound variables of the referredMapping to values provided in the invocation. +Where Collections of values are provided for isLoop bindings, a distinct invocation +is performed for each distinct permutation of Collection elements. + +conformsTo "@MappingStatement@":#MappingStatement, "@ReferringElement@":#ReferringElement + +*Attributes* + +@binding : OrderedSet(qvtimperative::MappingParameterBinding)[*|1]@ + +The Set of value to bound variable bindings. + +@isInfinite : Boolean[?]@ + +An infinite MappingCall requires re-invocation of the called mapping to be suppressed to avoid an infinite loop. + +@isInstall : Boolean[?]@ + +An infinite MappingCall requires re-invocation of the called mapping to be suppressed to avoid an infinite loop. + +@isInvoke : Boolean[?]@ + +An infinite MappingCall requires re-invocation of the called mapping to be suppressed to avoid an infinite loop. + +*Associations* + +@referredMapping : ::Mapping[1]@ + +The Mapping invoked by the MappingCall. + +h2(#MappingLoop). **@MappingLoop@** + +An Imperative MappingLoop support an iterated nested mapping call. + +conformsTo "@MappingStatement@":#MappingStatement, "@ObservableStatement@":#ObservableStatement + +*Attributes* + +@ownedIterators : OrderedSet(qvtimperative::LoopVariable)[*|1]@ + +@ownedMappingStatements : OrderedSet(qvtimperative::MappingStatement)[*|1]@ + +*Associations* + +@ownedExpression : OCLExpression[1]@ + +h2(#MappingParameter). **@MappingParameter@** + +A ConnectionVariable accumulates one or more assignments. + +conformsTo "@VariableDeclaration@":#VariableDeclaration + +*Attributes* + +@MappingParameterBinding : Bag(qvtimperative::MappingParameterBinding)@ + +*Associations* + +@Mapping : ::Mapping[?]@ + +h2(#MappingParameterBinding). **@MappingParameterBinding@** + +A MappingCallBinding specifies the binding of a single variable as part of +a MappingCall. A value is bound to the variable. OPtionally isLoop may be true +to indicate that the value is a collection of values, each of which is to +be used as part of a distinct invocation. + +conformsTo "@Element@":#Element + +*Associations* + +@boundVariable : ::MappingParameter[1]@ + +The variable with the mappingCall.referredMapping bound to the/a value + +@mappingCall : ::MappingCall[?]@ + +The containing MappingCall. + +h2(#MappingStatement). **@MappingStatement@** + +A MappingCall specifies the invocation of a referredMapping with a set of bindings +of the bound variables of the referredMapping to values provided in the invocation. +Where Collections of values are provided for isLoop bindings, a distinct invocation +is performed for each distinct permutation of Collection elements. + +conformsTo "@Statement@":#Statement + +*Associations* + +@MappingLoop : ::MappingLoop[?]@ + +h2(#NewStatement). **@NewStatement@** + +conformsTo "@VariableStatement@":#VariableStatement, "@ObservableStatement@":#ObservableStatement + +*Associations* + +@ownedExpression : OCLExpression[?]@ + +@referredTypedModel : ::ImperativeTypedModel[1]@ + +h2(#ObservableStatement). **@ObservableStatement@** + +conformsTo "@Statement@":#Statement + +*Attributes* + +@observedProperties : Set(Property)[*|1]@ + +The properties whose accesses must be polled for readiness prior to use here. + +h2(#SetStatement). **@SetStatement@** + +conformsTo "@ObservableStatement@":#ObservableStatement + +*Attributes* + +@isNotify : Boolean[?]@ + +@isOpposite : Boolean[?]@ + +*Associations* + +@ownedExpression : OCLExpression[1]@ + +@targetProperty : Property[1]@ + +@targetVariable : VariableDeclaration[1]@ + +h2(#SimpleParameter). **@SimpleParameter@** + +A ConnectionVariable accumulates one or more assignments. + +conformsTo "@MappingParameter@":#MappingParameter + +*Associations* + +@referredTypedModel : ::ImperativeTypedModel[1]@ + +h2(#SimpleParameterBinding). **@SimpleParameterBinding@** + +A MappingCallBinding specifies the binding of a single variable as part of +a MappingCall. A value is bound to the variable. OPtionally isLoop may be true +to indicate that the value is a collection of values, each of which is to +be used as part of a distinct invocation. + +conformsTo "@MappingParameterBinding@":#MappingParameterBinding + +*Attributes* + +@isCheck : Boolean[?]@ + +Whether the variable initialization needs to be checked as a predicate. This is a derivation of not ownedInit.type.conformsTo(self.type). + +*Associations* + +@value : OCLExpression[1]@ + +The value or collection of values to bind to boundVariable + +h2(#Statement). **@Statement@** + +conformsTo "@NamedElement@":#NamedElement + +*Associations* + +@Mapping : ::Mapping[?]@ + +h2(#VariableStatement). **@VariableStatement@** + +conformsTo "@VariableDeclaration@":#VariableDeclaration, "@Statement@":#Statement diff --git a/doc/org.eclipse.qvtd.doc/doc/qvtd-index.txt b/doc/org.eclipse.qvtd.doc/doc/qvtd-index.txt index c25621f35..ec8688766 100644 --- a/doc/org.eclipse.qvtd.doc/doc/qvtd-index.txt +++ b/doc/org.eclipse.qvtd.doc/doc/qvtd-index.txt @@ -1,2 +1,4 @@ 0000-introduction.textile +2500-qvtimperative-as.textile + diff --git a/releng/org.eclipse.qvtd.build/.classpath b/releng/org.eclipse.qvtd.build/.classpath index 5db19cf2a..a651599fd 100644 --- a/releng/org.eclipse.qvtd.build/.classpath +++ b/releng/org.eclipse.qvtd.build/.classpath @@ -10,7 +10,7 @@ <attribute name="annotationpath" value="/org.eclipse.qvtd.pivot.qvtbase/annotations"/> </attributes> </classpathentry> - <classpathentry kind="src" path="src"/> + <classpathentry excluding="**/*.launch" kind="src" path="src"/> <classpathentry kind="src" path="xtend-gen"/> <classpathentry kind="output" path="bin"/> </classpath> diff --git a/releng/org.eclipse.qvtd.build/src/org/eclipse/qvtd/build/textile/Generate Textile for QVT Imperative.launch b/releng/org.eclipse.qvtd.build/src/org/eclipse/qvtd/build/textile/Generate Textile for QVT Imperative.launch new file mode 100644 index 000000000..95ee3b5ad --- /dev/null +++ b/releng/org.eclipse.qvtd.build/src/org/eclipse/qvtd/build/textile/Generate Textile for QVT Imperative.launch @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.emf.mwe2.launch.Mwe2LaunchConfigurationType">
+<stringAttribute key="org.eclipse.debug.core.ATTR_REFRESH_SCOPE" value="${workspace}"/>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/org.eclipse.qvtd.build"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="4"/>
+</listAttribute>
+<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="false"/>
+<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.emf.mwe2.launch.runtime.Mwe2Launcher"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="src/org/eclipse/qvtd/build/textile/GenerateTextileForQVTimperative.mwe2"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.qvtd.build"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-ea"/>
+</launchConfiguration>
diff --git a/releng/org.eclipse.qvtd.build/src/org/eclipse/qvtd/build/textile/GenerateTextileForQVTimperative.mwe2 b/releng/org.eclipse.qvtd.build/src/org/eclipse/qvtd/build/textile/GenerateTextileForQVTimperative.mwe2 new file mode 100644 index 000000000..0b92b8862 --- /dev/null +++ b/releng/org.eclipse.qvtd.build/src/org/eclipse/qvtd/build/textile/GenerateTextileForQVTimperative.mwe2 @@ -0,0 +1,41 @@ +/******************************************************************************* + * Copyright (c) 2010, 2013 Willink Transformations and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * E.D.Willink - initial API and implementation + * E.D.Willink (CEA LIST) - Bug 424034 + * + * Run As->MWE2 Workflow to regenerate the pivot model. + *******************************************************************************/ +module GenerateTextileForQVTimperative + +import org.eclipse.ocl.examples.build.textile.* +import org.eclipse.ocl.examples.build.utilities.* +import org.eclipse.emf.mwe.utils.* +import org.eclipse.emf.ecore.resource.impl.* + +var sourceName = "org.eclipse.qvtd.pivot.qvtimperative" +var targetName = "org.eclipse.qvtd.doc" + +/** + * Generate the QVTimperative AS documentation, by converting QVTimperative.ecore to 2500-qvtimperative-as.textile. + */ +Workflow { + bean = ResourceSetImpl : resourceSet {} + bean = StandaloneSetup { resourceSet = resourceSet + platformUri = ".." + scanClassPath = true + } + bean = GenModelSetup { resourceSet = resourceSet } + component = GenerateTextileForModelXtend { resourceSet = resourceSet + projectName = "${sourceName}" + modelFile = "model/QVTimperative.ecore" + textileFolder = "/../doc/${targetName}/doc" + textileFileName = "2500-qvtimperative-as" + } +} + |