initial commit
diff --git a/runtime/org.eclipse.egf.usecase.fc.uc1/.classpath b/runtime/org.eclipse.egf.usecase.fc.uc1/.classpath new file mode 100644 index 0000000..45f024e --- /dev/null +++ b/runtime/org.eclipse.egf.usecase.fc.uc1/.classpath
@@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8"?> +<classpath> + <classpathentry kind="src" path="src"/> + <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/> + <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/> + <classpathentry kind="output" path="bin"/> +</classpath>
diff --git a/runtime/org.eclipse.egf.usecase.fc.uc1/.project b/runtime/org.eclipse.egf.usecase.fc.uc1/.project new file mode 100644 index 0000000..6d9ad86 --- /dev/null +++ b/runtime/org.eclipse.egf.usecase.fc.uc1/.project
@@ -0,0 +1,34 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>org.eclipse.egf.usecase.fc.uc1</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.egf.pattern.ui.PatternBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.ManifestBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.SchemaBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.pde.PluginNature</nature> + <nature>org.eclipse.egf.core.EGFNature</nature> + <nature>org.eclipse.jdt.core.javanature</nature> + </natures> +</projectDescription>
diff --git a/runtime/org.eclipse.egf.usecase.fc.uc1/META-INF/MANIFEST.MF b/runtime/org.eclipse.egf.usecase.fc.uc1/META-INF/MANIFEST.MF new file mode 100644 index 0000000..a96df5c --- /dev/null +++ b/runtime/org.eclipse.egf.usecase.fc.uc1/META-INF/MANIFEST.MF
@@ -0,0 +1,8 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: org.eclipse.egf.usecase.fc.uc1 +Bundle-SymbolicName: org.eclipse.egf.usecase.fc.uc1;singleton:=true +Bundle-Version: 0.1.0.qualifier +Bundle-RequiredExecutionEnvironment: J2SE-1.5 +Require-Bundle: org.eclipse.egf.model.ftask;visibility:=reexport +Export-Package: org.eclipse.egf.usecase.fc.uc1
diff --git a/runtime/org.eclipse.egf.usecase.fc.uc1/build.properties b/runtime/org.eclipse.egf.usecase.fc.uc1/build.properties new file mode 100644 index 0000000..6832b74 --- /dev/null +++ b/runtime/org.eclipse.egf.usecase.fc.uc1/build.properties
@@ -0,0 +1,17 @@ +## +# Copyright (c) 2010 Thales Corporate Services S.A.S. +# 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: +# Thales Corporate Services S.A.S - initial API and implementation +## + +bin.includes = META-INF/,\ + egf/,\ + plugin.xml,\ + .,\ + bin/ +source.. = src/
diff --git a/runtime/org.eclipse.egf.usecase.fc.uc1/egf/FC_UC1_0_AllTogether.fcore b/runtime/org.eclipse.egf.usecase.fc.uc1/egf/FC_UC1_0_AllTogether.fcore new file mode 100644 index 0000000..020c8fe --- /dev/null +++ b/runtime/org.eclipse.egf.usecase.fc.uc1/egf/FC_UC1_0_AllTogether.fcore
@@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8"?> +<fcore:FactoryComponent xmi:version="2.0" + xmlns:xmi="http://www.omg.org/XMI" xmlns:fcore="http://www.eclipse.org/egf/1.0.0/fcore" + xmlns:fprod="http://www.eclipse.org/egf/1.0.0/fprod" xmi:id="_UaP9kBvVEd-W6L66jY5sHw" + name="UseCase - Factory Component - UC1 - All Together"> + <orchestration xmi:type="fprod:ProductionPlan" xmi:id="_aMiFQBvVEd-W6L66jY5sHw"> + <invocations xmi:id="_azHkIBvVEd-W6L66jY5sHw" invokedActivity="fcore:FactoryComponent platform:/plugin/org.eclipse.egf.usecase.fc.uc1/egf/FC_UC1_1_FCAndTask.fcore#_NTILsRuaEd-ffO4YhZA0ZQ"/> + <invocations xmi:id="_e4LVABvVEd-W6L66jY5sHw" invokedActivity="fcore:FactoryComponent platform:/plugin/org.eclipse.egf.usecase.fc.uc1/egf/FC_UC1_2_FCWithContracts.fcore#_NHi_EBugEd-ffO4YhZA0ZQ"/> + <invocations xmi:id="_nl_xABvmEd-W6L66jY5sHw" invokedActivity="fcore:FactoryComponent platform:/plugin/org.eclipse.egf.usecase.fc.uc1/egf/FC_UC1_3_FCPricer.fcore#_rPuYIBvjEd-W6L66jY5sHw"/> + </orchestration> +</fcore:FactoryComponent>
diff --git a/runtime/org.eclipse.egf.usecase.fc.uc1/egf/FC_UC1_1_FCAndTask.fcore b/runtime/org.eclipse.egf.usecase.fc.uc1/egf/FC_UC1_1_FCAndTask.fcore new file mode 100644 index 0000000..cc330bc --- /dev/null +++ b/runtime/org.eclipse.egf.usecase.fc.uc1/egf/FC_UC1_1_FCAndTask.fcore
@@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="UTF-8"?> +<xmi:XMI xmi:version="2.0" + xmlns:xmi="http://www.omg.org/XMI" xmlns:fcore="http://www.eclipse.org/egf/1.0.0/fcore" + xmlns:fprod="http://www.eclipse.org/egf/1.0.0/fprod" xmlns:ftask="http://www.eclipse.org/egf/1.0.0/ftask" + xmlns:types="http://www.eclipse.org/egf/1.0.0/types"> + <fcore:FactoryComponent xmi:id="_NTILsRuaEd-ffO4YhZA0ZQ" name="FC - UC1.1 - FC"> + <orchestration xmi:type="fprod:ProductionPlan" xmi:id="_PjN_ABuaEd-ffO4YhZA0ZQ"> + <invocations xmi:id="_Uj7DUBubEd-ffO4YhZA0ZQ" invokedActivity="#_Q5pmcBuaEd-ffO4YhZA0ZQ"/> + <invocations xmi:id="_Zrmu0BubEd-ffO4YhZA0ZQ" invokedActivity="#_Q5pmcBuaEd-ffO4YhZA0ZQ"> + <invocationContractContainer xmi:id="_btGFcBubEd-ffO4YhZA0ZQ"> + <invocationContracts xmi:id="_cd0XwBubEd-ffO4YhZA0ZQ" invokedContract="#_KRvo4BubEd-ffO4YhZA0ZQ"> + <type xmi:type="types:TypeString" xmi:id="_eT1eMBubEd-ffO4YhZA0ZQ" value="Folks"/> + </invocationContracts> + </invocationContractContainer> + </invocations> + </orchestration> + </fcore:FactoryComponent> + <ftask:TaskJava xmi:id="_Q5pmcBuaEd-ffO4YhZA0ZQ" name="FC - UC1.1 - HelloWorldTask" + value="org.eclipse.egf.usecase.fc.uc1.HelloWorld"> + <contractContainer xmi:id="_Jyv_wBubEd-ffO4YhZA0ZQ"> + <contracts xmi:id="_KRvo4BubEd-ffO4YhZA0ZQ" name="value"> + <type xmi:type="types:TypeString" xmi:id="_OgDcYBubEd-ffO4YhZA0ZQ" value="World"/> + </contracts> + </contractContainer> + </ftask:TaskJava> +</xmi:XMI>
diff --git a/runtime/org.eclipse.egf.usecase.fc.uc1/egf/FC_UC1_2_FCWithContracts.fcore b/runtime/org.eclipse.egf.usecase.fc.uc1/egf/FC_UC1_2_FCWithContracts.fcore new file mode 100644 index 0000000..6ebaf2a --- /dev/null +++ b/runtime/org.eclipse.egf.usecase.fc.uc1/egf/FC_UC1_2_FCWithContracts.fcore
@@ -0,0 +1,34 @@ +<?xml version="1.0" encoding="UTF-8"?> +<xmi:XMI xmi:version="2.0" + xmlns:xmi="http://www.omg.org/XMI" xmlns:fcore="http://www.eclipse.org/egf/1.0.0/fcore" + xmlns:fprod="http://www.eclipse.org/egf/1.0.0/fprod" xmlns:ftask="http://www.eclipse.org/egf/1.0.0/ftask" + xmlns:types="http://www.eclipse.org/egf/1.0.0/types"> + <fcore:FactoryComponent xmi:id="_NHi_EBugEd-ffO4YhZA0ZQ" name="FC - UC1.2 - FC with contracts"> + <orchestration xmi:type="fprod:ProductionPlan" xmi:id="_C2OuABulEd-iZpx-nITNvw"> + <invocations xmi:id="_G-IXgBulEd-iZpx-nITNvw" invokedActivity="#_NTILsRuaEd-ffO4YhZA0ZQ"> + <invocationContractContainer xmi:id="_J7OawBulEd-iZpx-nITNvw"> + <invocationContracts xmi:id="_KbkHsBulEd-iZpx-nITNvw" invokedContract="#_b0jmEBugEd-ffO4YhZA0ZQ"> + <type xmi:type="types:TypeString" xmi:id="_L1RFkBulEd-iZpx-nITNvw" value="Romeo and Juliet"/> + </invocationContracts> + </invocationContractContainer> + </invocations> + </orchestration> + </fcore:FactoryComponent> + <fcore:FactoryComponent xmi:id="_NTILsRuaEd-ffO4YhZA0ZQ" name="FC - UC1.2 - FC parameterized"> + <contractContainer xmi:id="_bSIOcBugEd-ffO4YhZA0ZQ"> + <contracts xmi:type="fcore:FactoryComponentContract" xmi:id="_b0jmEBugEd-ffO4YhZA0ZQ" + name="who" invocationContracts="#_6UjIMBuhEd-ffO4YhZA0ZQ"> + <type xmi:type="types:TypeString" xmi:id="_8gwroRuiEd-iZpx-nITNvw" value="undefined"/> + </contracts> + </contractContainer> + <orchestration xmi:type="fprod:ProductionPlan" xmi:id="_PjN_ABuaEd-ffO4YhZA0ZQ"> + <invocations xmi:id="_Uj7DUBubEd-ffO4YhZA0ZQ" name="Hello for Who Parameter" + invokedActivity="ftask:TaskJava platform:/plugin/org.eclipse.egf.usecase.fc.uc1/egf/FC_UC1_1_FCAndTask.fcore#_Q5pmcBuaEd-ffO4YhZA0ZQ"> + <invocationContractContainer xmi:id="_5p7d4BuhEd-ffO4YhZA0ZQ"> + <invocationContracts xmi:id="_6UjIMBuhEd-ffO4YhZA0ZQ" description="" factoryComponentContract="#_b0jmEBugEd-ffO4YhZA0ZQ" + invokedContract="platform:/plugin/org.eclipse.egf.usecase.fc.uc1/egf/FC_UC1_1_FCAndTask.fcore#_KRvo4BubEd-ffO4YhZA0ZQ"/> + </invocationContractContainer> + </invocations> + </orchestration> + </fcore:FactoryComponent> +</xmi:XMI>
diff --git a/runtime/org.eclipse.egf.usecase.fc.uc1/egf/FC_UC1_3_FCPricer.fcore b/runtime/org.eclipse.egf.usecase.fc.uc1/egf/FC_UC1_3_FCPricer.fcore new file mode 100644 index 0000000..0027a7a --- /dev/null +++ b/runtime/org.eclipse.egf.usecase.fc.uc1/egf/FC_UC1_3_FCPricer.fcore
@@ -0,0 +1,172 @@ +<?xml version="1.0" encoding="UTF-8"?> +<xmi:XMI xmi:version="2.0" + xmlns:xmi="http://www.omg.org/XMI" xmlns:fcore="http://www.eclipse.org/egf/1.0.0/fcore" + xmlns:fprod="http://www.eclipse.org/egf/1.0.0/fprod" xmlns:ftask="http://www.eclipse.org/egf/1.0.0/ftask" + xmlns:types="http://www.eclipse.org/egf/1.0.0/types"> + <fcore:FactoryComponent xmi:id="_rPuYIBvjEd-W6L66jY5sHw" name="FC - UC1.3 - FCPricer"> + <orchestration xmi:type="fprod:ProductionPlan" xmi:id="_uAJRUBvjEd-W6L66jY5sHw"> + <invocations xmi:id="_uzs1MBvjEd-W6L66jY5sHw" invokedActivity="#_ni7LsBviEd-W6L66jY5sHw"/> + <invocations xmi:id="_zIGpoBvjEd-W6L66jY5sHw" invokedActivity="#_P_2ckBvaEd-W6L66jY5sHw"/> + </orchestration> + </fcore:FactoryComponent> + <fcore:FactoryComponent xmi:id="_ni7LsBviEd-W6L66jY5sHw" name="FC - UC1.3 - FCPricer - Version with Task call"> + <contractContainer xmi:id="_ECwpYBvjEd-W6L66jY5sHw"> + <contracts xmi:type="fcore:FactoryComponentContract" xmi:id="_ECwpYRvjEd-W6L66jY5sHw" + name="quantity" mandatory="true" invocationContracts="#_Rlhq0BvjEd-W6L66jY5sHw #_ZWwygBvjEd-W6L66jY5sHw"> + <type xmi:type="types:TypeInteger" xmi:id="_ECwpYhvjEd-W6L66jY5sHw" value="2"/> + </contracts> + <contracts xmi:type="fcore:FactoryComponentContract" xmi:id="_ECwpYxvjEd-W6L66jY5sHw" + name="price" mandatory="true" invocationContracts="#_UJSBABvjEd-W6L66jY5sHw #_bCfUgBvjEd-W6L66jY5sHw"> + <type xmi:type="types:TypeFloat" xmi:id="_ECwpZBvjEd-W6L66jY5sHw" value="4.0"/> + </contracts> + <contracts xmi:type="fcore:FactoryComponentContract" xmi:id="_ECwpZRvjEd-W6L66jY5sHw" + name="amount" mode="Out"> + <type xmi:type="types:TypeFloat" xmi:id="_ECwpZhvjEd-W6L66jY5sHw" value="0.0"/> + </contracts> + </contractContainer> + <orchestration xmi:type="fprod:ProductionPlan" xmi:id="_ECwpZxvjEd-W6L66jY5sHw"> + <invocations xmi:id="_ECwpaBvjEd-W6L66jY5sHw" invokedActivity="#_Si3L4BvaEd-W6L66jY5sHw"> + <invocationContractContainer xmi:id="_RRQrABvjEd-W6L66jY5sHw"> + <invocationContracts xmi:id="_Rlhq0BvjEd-W6L66jY5sHw" factoryComponentContract="#_ECwpYRvjEd-W6L66jY5sHw" + invokedContract="#_bvSfMBvaEd-W6L66jY5sHw"/> + <invocationContracts xmi:id="_UJSBABvjEd-W6L66jY5sHw" factoryComponentContract="#_ECwpYxvjEd-W6L66jY5sHw" + invokedContract="#_hllkMBvaEd-W6L66jY5sHw"/> + <invocationContracts xmi:id="_WSX0cBvjEd-W6L66jY5sHw" targetInvocationContract="#_dQfdIBvjEd-W6L66jY5sHw" + invokedContract="#_l5PxwBvaEd-W6L66jY5sHw"/> + </invocationContractContainer> + </invocations> + <invocations xmi:id="_ECwpbRvjEd-W6L66jY5sHw" invokedActivity="#_DZf4sBvdEd-W6L66jY5sHw"> + <invocationContractContainer xmi:id="_Y_XmMBvjEd-W6L66jY5sHw"> + <invocationContracts xmi:id="_ZWwygBvjEd-W6L66jY5sHw" factoryComponentContract="#_ECwpYRvjEd-W6L66jY5sHw" + invokedContract="#_PEwl8RvdEd-W6L66jY5sHw"/> + <invocationContracts xmi:id="_bCfUgBvjEd-W6L66jY5sHw" factoryComponentContract="#_ECwpYxvjEd-W6L66jY5sHw" + invokedContract="#_PEwl8xvdEd-W6L66jY5sHw"/> + <invocationContracts xmi:id="_dQfdIBvjEd-W6L66jY5sHw" sourceInvocationContract="#_WSX0cBvjEd-W6L66jY5sHw" + invokedContract="#_PEwl9RvdEd-W6L66jY5sHw"/> + </invocationContractContainer> + </invocations> + </orchestration> + </fcore:FactoryComponent> + <fcore:FactoryComponent xmi:id="_P_2ckBvaEd-W6L66jY5sHw" name="FC - UC1.3 - FCPricer - Version with FC call"> + <contractContainer xmi:id="_sRw2MBveEd-W6L66jY5sHw"> + <contracts xmi:type="fcore:FactoryComponentContract" xmi:id="_sRw2MRveEd-W6L66jY5sHw" + name="quantity" mandatory="true" invocationContracts="#_IVHosBveEd-W6L66jY5sHw #_VjUvYBveEd-W6L66jY5sHw"> + <type xmi:type="types:TypeInteger" xmi:id="_sRw2MhveEd-W6L66jY5sHw" value="3"/> + </contracts> + <contracts xmi:type="fcore:FactoryComponentContract" xmi:id="_sRw2MxveEd-W6L66jY5sHw" + name="price" mandatory="true" invocationContracts="#_LivbQBveEd-W6L66jY5sHw #_9gjdcBveEd-W6L66jY5sHw"> + <type xmi:type="types:TypeFloat" xmi:id="_sRw2NBveEd-W6L66jY5sHw" value="5.0"/> + </contracts> + <contracts xmi:type="fcore:FactoryComponentContract" xmi:id="_sRw2NRveEd-W6L66jY5sHw" + name="amount" mode="Out"> + <type xmi:type="types:TypeFloat" xmi:id="_sRw2NhveEd-W6L66jY5sHw" value="0.0"/> + </contracts> + </contractContainer> + <orchestration xmi:type="fprod:ProductionPlan" xmi:id="_4pQz0BvdEd-W6L66jY5sHw"> + <invocations xmi:id="_EnJiIBveEd-W6L66jY5sHw" invokedActivity="#_5AJKIBvaEd-W6L66jY5sHw"> + <invocationContractContainer xmi:id="_H77soBveEd-W6L66jY5sHw"> + <invocationContracts xmi:id="_IVHosBveEd-W6L66jY5sHw" factoryComponentContract="#_sRw2MRveEd-W6L66jY5sHw" + invokedContract="#_SiuzkBvbEd-W6L66jY5sHw"/> + <invocationContracts xmi:id="_LivbQBveEd-W6L66jY5sHw" factoryComponentContract="#_sRw2MxveEd-W6L66jY5sHw" + invokedContract="#_WrOS8BvbEd-W6L66jY5sHw"/> + <invocationContracts xmi:id="_OsWQgBveEd-W6L66jY5sHw" targetInvocationContract="#_Dcq2kBvfEd-W6L66jY5sHw" + invokedContract="#_evOloBvbEd-W6L66jY5sHw"/> + </invocationContractContainer> + </invocations> + <invocations xmi:id="_ScjLsBveEd-W6L66jY5sHw" invokedActivity="#_11YzcBvcEd-W6L66jY5sHw"> + <invocationContractContainer xmi:id="_VELVQBveEd-W6L66jY5sHw"> + <invocationContracts xmi:id="_VjUvYBveEd-W6L66jY5sHw" factoryComponentContract="#_sRw2MRveEd-W6L66jY5sHw" + invokedContract="#_5360wBvcEd-W6L66jY5sHw"/> + <invocationContracts xmi:id="_9gjdcBveEd-W6L66jY5sHw" factoryComponentContract="#_sRw2MxveEd-W6L66jY5sHw" + invokedContract="#_5360whvcEd-W6L66jY5sHw"/> + <invocationContracts xmi:id="_Dcq2kBvfEd-W6L66jY5sHw" sourceInvocationContract="#_OsWQgBveEd-W6L66jY5sHw" + invokedContract="#_5360xBvcEd-W6L66jY5sHw"/> + </invocationContractContainer> + </invocations> + </orchestration> + </fcore:FactoryComponent> + <fcore:FactoryComponent xmi:id="_5AJKIBvaEd-W6L66jY5sHw" name="FC - UC1.3 - FCPricer - Computation"> + <contractContainer xmi:id="_9oNhcBvaEd-W6L66jY5sHw"> + <contracts xmi:type="fcore:FactoryComponentContract" xmi:id="_SiuzkBvbEd-W6L66jY5sHw" + name="quantity" mandatory="true" invocationContracts="#_qqlkYBvbEd-W6L66jY5sHw"> + <type xmi:type="types:TypeInteger" xmi:id="_WRvb8BvbEd-W6L66jY5sHw" value="0"/> + </contracts> + <contracts xmi:type="fcore:FactoryComponentContract" xmi:id="_WrOS8BvbEd-W6L66jY5sHw" + name="price" mandatory="true" invocationContracts="#_vWFqMBvbEd-W6L66jY5sHw"> + <type xmi:type="types:TypeFloat" xmi:id="_eJh3kBvbEd-W6L66jY5sHw" value="0.0"/> + </contracts> + <contracts xmi:type="fcore:FactoryComponentContract" xmi:id="_evOloBvbEd-W6L66jY5sHw" + name="amount" mandatory="true" mode="Out" invocationContracts="#_x7x6EBvbEd-W6L66jY5sHw"> + <type xmi:type="types:TypeFloat" xmi:id="_iNPkoBvbEd-W6L66jY5sHw" value="0.0"/> + </contracts> + </contractContainer> + <orchestration xmi:type="fprod:ProductionPlan" xmi:id="_m86_0BvbEd-W6L66jY5sHw"> + <invocations xmi:id="_nmMmUBvbEd-W6L66jY5sHw" invokedActivity="#_Si3L4BvaEd-W6L66jY5sHw"> + <invocationContractContainer xmi:id="_qWBpoBvbEd-W6L66jY5sHw"> + <invocationContracts xmi:id="_qqlkYBvbEd-W6L66jY5sHw" factoryComponentContract="#_SiuzkBvbEd-W6L66jY5sHw" + invokedContract="#_bvSfMBvaEd-W6L66jY5sHw"/> + <invocationContracts xmi:id="_vWFqMBvbEd-W6L66jY5sHw" factoryComponentContract="#_WrOS8BvbEd-W6L66jY5sHw" + invokedContract="#_hllkMBvaEd-W6L66jY5sHw"/> + <invocationContracts xmi:id="_x7x6EBvbEd-W6L66jY5sHw" factoryComponentContract="#_evOloBvbEd-W6L66jY5sHw" + invokedContract="#_l5PxwBvaEd-W6L66jY5sHw"/> + </invocationContractContainer> + </invocations> + </orchestration> + </fcore:FactoryComponent> + <fcore:FactoryComponent xmi:id="_11YzcBvcEd-W6L66jY5sHw" name="FC - UC1.3 - FCPricer - Display"> + <contractContainer xmi:id="_46-EUBvcEd-W6L66jY5sHw"> + <contracts xmi:type="fcore:FactoryComponentContract" xmi:id="_5360wBvcEd-W6L66jY5sHw" + name="quantity" mandatory="true" invocationContracts="#_UKfJoBvdEd-W6L66jY5sHw"> + <type xmi:type="types:TypeInteger" xmi:id="_5360wRvcEd-W6L66jY5sHw" value="0"/> + </contracts> + <contracts xmi:type="fcore:FactoryComponentContract" xmi:id="_5360whvcEd-W6L66jY5sHw" + name="price" mandatory="true" invocationContracts="#_Wo4esBvdEd-W6L66jY5sHw"> + <type xmi:type="types:TypeFloat" xmi:id="_5360wxvcEd-W6L66jY5sHw" value="0.0"/> + </contracts> + <contracts xmi:type="fcore:FactoryComponentContract" xmi:id="_5360xBvcEd-W6L66jY5sHw" + name="amount" mandatory="true" invocationContracts="#_YoSKoBvdEd-W6L66jY5sHw"> + <type xmi:type="types:TypeFloat" xmi:id="_5360xRvcEd-W6L66jY5sHw" value="0.0"/> + </contracts> + </contractContainer> + <orchestration xmi:type="fprod:ProductionPlan" xmi:id="_8qbYoBvcEd-W6L66jY5sHw"> + <invocations xmi:id="_9XR3kBvcEd-W6L66jY5sHw" invokedActivity="#_DZf4sBvdEd-W6L66jY5sHw"> + <invocationContractContainer xmi:id="_Ti2h4BvdEd-W6L66jY5sHw"> + <invocationContracts xmi:id="_UKfJoBvdEd-W6L66jY5sHw" factoryComponentContract="#_5360wBvcEd-W6L66jY5sHw" + invokedContract="#_PEwl8RvdEd-W6L66jY5sHw"/> + <invocationContracts xmi:id="_Wo4esBvdEd-W6L66jY5sHw" factoryComponentContract="#_5360whvcEd-W6L66jY5sHw" + invokedContract="#_PEwl8xvdEd-W6L66jY5sHw"/> + <invocationContracts xmi:id="_YoSKoBvdEd-W6L66jY5sHw" factoryComponentContract="#_5360xBvcEd-W6L66jY5sHw" + invokedContract="#_PEwl9RvdEd-W6L66jY5sHw"/> + </invocationContractContainer> + </invocations> + </orchestration> + </fcore:FactoryComponent> + <ftask:TaskJava xmi:id="_Si3L4BvaEd-W6L66jY5sHw" name="FC - UC1.3 - PricerComputerTask" + value="org.eclipse.egf.usecase.fc.uc1.PricerComputation"> + <contractContainer xmi:id="_bRMN8BvaEd-W6L66jY5sHw"> + <contracts xmi:id="_bvSfMBvaEd-W6L66jY5sHw" name="quantity" mandatory="true"> + <type xmi:type="types:TypeInteger" xmi:id="_hGTAIBvaEd-W6L66jY5sHw"/> + </contracts> + <contracts xmi:id="_hllkMBvaEd-W6L66jY5sHw" name="price" mandatory="true"> + <type xmi:type="types:TypeFloat" xmi:id="_kZ430BvaEd-W6L66jY5sHw"/> + </contracts> + <contracts xmi:id="_l5PxwBvaEd-W6L66jY5sHw" name="amount" mandatory="true" mode="Out"> + <type xmi:type="types:TypeFloat" xmi:id="_rGkyQBvaEd-W6L66jY5sHw"/> + </contracts> + </contractContainer> + </ftask:TaskJava> + <ftask:TaskJava xmi:id="_DZf4sBvdEd-W6L66jY5sHw" name="FC - UC1.3 - PricerDisplayTask" + value="org.eclipse.egf.usecase.fc.uc1.PricerDisplay"> + <contractContainer xmi:id="_PEwl8BvdEd-W6L66jY5sHw"> + <contracts xmi:id="_PEwl8RvdEd-W6L66jY5sHw" name="quantity" mandatory="true"> + <type xmi:type="types:TypeInteger" xmi:id="_PEwl8hvdEd-W6L66jY5sHw" value="0"/> + </contracts> + <contracts xmi:id="_PEwl8xvdEd-W6L66jY5sHw" name="price" mandatory="true"> + <type xmi:type="types:TypeFloat" xmi:id="_PEwl9BvdEd-W6L66jY5sHw" value="0.0"/> + </contracts> + <contracts xmi:id="_PEwl9RvdEd-W6L66jY5sHw" name="amount" mandatory="true"> + <type xmi:type="types:TypeFloat" xmi:id="_PEwl9hvdEd-W6L66jY5sHw" value="0.0"/> + </contracts> + </contractContainer> + </ftask:TaskJava> +</xmi:XMI>
diff --git a/runtime/org.eclipse.egf.usecase.fc.uc1/plugin.xml b/runtime/org.eclipse.egf.usecase.fc.uc1/plugin.xml new file mode 100644 index 0000000..9f18e40 --- /dev/null +++ b/runtime/org.eclipse.egf.usecase.fc.uc1/plugin.xml
@@ -0,0 +1,32 @@ +<?xml version="1.0" encoding="UTF-8"?> +<?eclipse version="3.2"?> +<!-- + Copyright (c) 2010 Thales Corporate Services S.A.S. + 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: + Thales Corporate Services S.A.S - initial API and implementation + --> + +<plugin> + <extension + point="org.eclipse.egf.core.fcore"> + <fcore + id="egf/FC_UC1_1_FCAndTask.fcore"> + </fcore> + <fcore + id="egf/FC_UC1_2_FCWithContracts.fcore"> + </fcore> + <fcore + id="egf/FC_UC1_0_AllTogether.fcore"> + </fcore> + <fcore + id="egf/FC_UC1_3_FCPricer.fcore"> + </fcore> + </extension> + + +</plugin>
diff --git a/runtime/org.eclipse.egf.usecase.fc.uc1/src/org/eclipse/egf/usecase/fc/uc1/HelloWorld.java b/runtime/org.eclipse.egf.usecase.fc.uc1/src/org/eclipse/egf/usecase/fc/uc1/HelloWorld.java new file mode 100644 index 0000000..cab08fd --- /dev/null +++ b/runtime/org.eclipse.egf.usecase.fc.uc1/src/org/eclipse/egf/usecase/fc/uc1/HelloWorld.java
@@ -0,0 +1,52 @@ +/** + * <copyright> + * + * Copyright (c) 2010 Thales Corporate Services S.A.S. + * 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: + * Thales Corporate Services S.A.S - initial API and implementation + * + * </copyright> + */ + +package org.eclipse.egf.usecase.fc.uc1; + +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.egf.core.EGFCorePlugin; +import org.eclipse.egf.core.producer.InvocationException; +import org.eclipse.egf.ftask.producer.context.ITaskProductionContext; +import org.eclipse.egf.ftask.producer.invocation.ITaskProduction; + +/** + * @author Benoit Langlois + * + */ + +public class HelloWorld implements ITaskProduction { + + private static final String VALUE_PARAMETER = "value"; + + public void preExecute(ITaskProductionContext taskProductionContext, IProgressMonitor monitor) throws InvocationException { + // TODO Auto-generated method stub + } + + public void doExecute(ITaskProductionContext taskProductionContext, IProgressMonitor monitor) throws InvocationException { + String value = taskProductionContext.getInputValue(VALUE_PARAMETER, String.class); + String message = new String ("Hello " + value + "!"); + + // Message on the default console + System.out.println(message); + + // Message on the EGF console + EGFCorePlugin.getDefault().logInfo(message); + } + + public void postExecute(ITaskProductionContext taskProductionContext, IProgressMonitor monitor) throws InvocationException { + // TODO Auto-generated method stub + } + +}
diff --git a/runtime/org.eclipse.egf.usecase.fc.uc1/src/org/eclipse/egf/usecase/fc/uc1/PricerComputation.java b/runtime/org.eclipse.egf.usecase.fc.uc1/src/org/eclipse/egf/usecase/fc/uc1/PricerComputation.java new file mode 100644 index 0000000..4430596 --- /dev/null +++ b/runtime/org.eclipse.egf.usecase.fc.uc1/src/org/eclipse/egf/usecase/fc/uc1/PricerComputation.java
@@ -0,0 +1,51 @@ +/** + * <copyright> + * + * Copyright (c) 2010 Thales Corporate Services S.A.S. + * 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: + * Thales Corporate Services S.A.S - initial API and implementation + * + * </copyright> + */ + +package org.eclipse.egf.usecase.fc.uc1; + +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.egf.core.producer.InvocationException; +import org.eclipse.egf.ftask.producer.context.ITaskProductionContext; +import org.eclipse.egf.ftask.producer.invocation.ITaskProduction; + +/** + * @author Benoit Langlois + * + */ + +public class PricerComputation implements ITaskProduction { + + private static final String PRICE_PARAMETER = "price"; + private static final String QUANTITY_PARAMETER = "quantity"; + private static final String AMOUNT_PARAMETER = "amount"; + + private Integer quantity; + private Float price; + private Float amount; + + public void preExecute(ITaskProductionContext taskProductionContext, IProgressMonitor monitor) throws InvocationException { + quantity = taskProductionContext.getInputValue(QUANTITY_PARAMETER, Integer.class); + price = taskProductionContext.getInputValue(PRICE_PARAMETER, Float.class); + } + + public void doExecute(ITaskProductionContext taskProductionContext, IProgressMonitor monitor) throws InvocationException { + amount = quantity * price; + } + + public void postExecute(ITaskProductionContext taskProductionContext, IProgressMonitor monitor) throws InvocationException { + taskProductionContext.setOutputValue(AMOUNT_PARAMETER, amount); + } + +}
diff --git a/runtime/org.eclipse.egf.usecase.fc.uc1/src/org/eclipse/egf/usecase/fc/uc1/PricerDisplay.java b/runtime/org.eclipse.egf.usecase.fc.uc1/src/org/eclipse/egf/usecase/fc/uc1/PricerDisplay.java new file mode 100644 index 0000000..b8de012 --- /dev/null +++ b/runtime/org.eclipse.egf.usecase.fc.uc1/src/org/eclipse/egf/usecase/fc/uc1/PricerDisplay.java
@@ -0,0 +1,61 @@ +/** + * <copyright> + * + * Copyright (c) 2010 Thales Corporate Services S.A.S. + * 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: + * Thales Corporate Services S.A.S - initial API and implementation + * + * </copyright> + */ + +package org.eclipse.egf.usecase.fc.uc1; + +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.egf.core.EGFCorePlugin; +import org.eclipse.egf.core.producer.InvocationException; +import org.eclipse.egf.ftask.producer.context.ITaskProductionContext; +import org.eclipse.egf.ftask.producer.invocation.ITaskProduction; + +/** + * @author Benoit Langlois + * + */ + +public class PricerDisplay implements ITaskProduction { + + private static final String PRICE_PARAMETER = "price"; + private static final String QUANTITY_PARAMETER = "quantity"; + private static final String AMOUNT_PARAMETER = "amount"; + + private Integer quantity; + private Float price; + private Float amount; + + public void preExecute(ITaskProductionContext taskProductionContext, IProgressMonitor monitor) throws InvocationException { + // TODO Auto-generated method stub + } + + public void doExecute(ITaskProductionContext taskProductionContext, IProgressMonitor monitor) throws InvocationException { + quantity = taskProductionContext.getInputValue(QUANTITY_PARAMETER, Integer.class); + price = taskProductionContext.getInputValue(PRICE_PARAMETER, Float.class); + amount = taskProductionContext.getInputValue(AMOUNT_PARAMETER, Float.class); + + String message = new String ("Pricer: " + quantity + " * " + price + " = " + amount); + + // Message on the default console + System.out.println(message); + + // Message on the EGF console + EGFCorePlugin.getDefault().logInfo(message); + } + + public void postExecute(ITaskProductionContext taskProductionContext, IProgressMonitor monitor) throws InvocationException { + // TODO Auto-generated method stub + } + +}