Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEd Willink2016-09-20 18:48:45 +0000
committerEd Willink2016-09-20 18:48:45 +0000
commit297106e8ee8897a05d08f642d6f4e46ab5c8845e (patch)
tree111de57cb1dfaa1cd2635d42b93e65ca1f417c6c
parent20c6c4b728d8282b3e5e88d52d8209ddc3052f79 (diff)
downloadorg.eclipse.qvtd-297106e8ee8897a05d08f642d6f4e46ab5c8845e.tar.gz
org.eclipse.qvtd-297106e8ee8897a05d08f642d6f4e46ab5c8845e.tar.xz
org.eclipse.qvtd-297106e8ee8897a05d08f642d6f4e46ab5c8845e.zip
[doc] Scripts for QVTi AS documentation
-rw-r--r--doc/org.eclipse.qvtd.doc/doc/2500-qvtimperative-as.textile421
-rw-r--r--doc/org.eclipse.qvtd.doc/doc/qvtd-index.txt2
-rw-r--r--releng/org.eclipse.qvtd.build/.classpath2
-rw-r--r--releng/org.eclipse.qvtd.build/src/org/eclipse/qvtd/build/textile/Generate Textile for QVT Imperative.launch16
-rw-r--r--releng/org.eclipse.qvtd.build/src/org/eclipse/qvtd/build/textile/GenerateTextileForQVTimperative.mwe241
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"
+ }
+}
+

Back to the top