summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Gettel2012-09-10 05:37:16 (EDT)
committerPaul Gettel2012-09-10 05:37:16 (EDT)
commita02fa41e98f15a4eed00599d7270ace5048e6590 (patch)
tree59f38c88892aaf7ca50be0ca651658362167ea31
parent5df2cac4ee7ef9062cf1632ee897aff954dbe810 (diff)
downloadorg.eclipse.stardust.ide-a02fa41e98f15a4eed00599d7270ace5048e6590.zip
org.eclipse.stardust.ide-a02fa41e98f15a4eed00599d7270ace5048e6590.tar.gz
org.eclipse.stardust.ide-a02fa41e98f15a4eed00599d7270ace5048e6590.tar.bz2
Transform Timer StartEvent attributes (start/duration)refs/changes/98/7698/1
-rw-r--r--model/org.eclipse.stardust.model.bpmn2.transform/src/main/java/org/eclipse/stardust/model/bpmn2/transform/xpdl/Bpmn2StardustXPDL.java63
-rw-r--r--model/org.eclipse.stardust.model.bpmn2.transform/src/test/java/org/eclipse/stardust/test/model/transformation/bpmn/Bpmn2CarnotXPDLTest.java35
-rw-r--r--model/org.eclipse.stardust.model.bpmn2.transform/src/test/java/org/eclipse/stardust/test/model/transformation/bpmn/TestBpmnTimerCycle.java99
-rw-r--r--model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/StartEventTimer.bpmn42
-rw-r--r--model/org.eclipse.stardust.model.bpmn2/.settings/org.eclipse.jdt.core.prefs286
-rw-r--r--model/org.eclipse.stardust.model.bpmn2/.settings/org.eclipse.jdt.ui.prefs4
-rw-r--r--model/org.eclipse.stardust.model.bpmn2/.settings/org.eclipse.m2e.core.prefs5
-rw-r--r--model/org.eclipse.stardust.model.bpmn2/src/test/java/org/eclipse/stardust/test/model/bpmn2/sdbpmn/BpmnExtensionTest.java60
8 files changed, 550 insertions, 44 deletions
diff --git a/model/org.eclipse.stardust.model.bpmn2.transform/src/main/java/org/eclipse/stardust/model/bpmn2/transform/xpdl/Bpmn2StardustXPDL.java b/model/org.eclipse.stardust.model.bpmn2.transform/src/main/java/org/eclipse/stardust/model/bpmn2/transform/xpdl/Bpmn2StardustXPDL.java
index b8b0c7e..1ad1d65 100644
--- a/model/org.eclipse.stardust.model.bpmn2.transform/src/main/java/org/eclipse/stardust/model/bpmn2/transform/xpdl/Bpmn2StardustXPDL.java
+++ b/model/org.eclipse.stardust.model.bpmn2.transform/src/main/java/org/eclipse/stardust/model/bpmn2/transform/xpdl/Bpmn2StardustXPDL.java
@@ -26,8 +26,12 @@ import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
+import java.util.Date;
import java.util.List;
+import javax.xml.datatype.DatatypeFactory;
+import javax.xml.datatype.Duration;
+
import org.apache.log4j.Logger;
import org.eclipse.bpmn2.Activity;
import org.eclipse.bpmn2.DataObject;
@@ -38,6 +42,7 @@ import org.eclipse.bpmn2.Documentation;
import org.eclipse.bpmn2.EndEvent;
import org.eclipse.bpmn2.EventDefinition;
import org.eclipse.bpmn2.ExclusiveGateway;
+import org.eclipse.bpmn2.Expression;
import org.eclipse.bpmn2.FlowElementsContainer;
import org.eclipse.bpmn2.FlowNode;
import org.eclipse.bpmn2.FormalExpression;
@@ -59,6 +64,7 @@ import org.eclipse.bpmn2.SubProcess;
import org.eclipse.bpmn2.Task;
import org.eclipse.bpmn2.TimerEventDefinition;
import org.eclipse.bpmn2.UserTask;
+import org.eclipse.stardust.common.Period;
import org.eclipse.stardust.engine.api.model.PredefinedConstants;
import org.eclipse.stardust.engine.core.extensions.triggers.timer.TimerTriggerValidator;
import org.eclipse.stardust.engine.extensions.jms.trigger.JMSTriggerValidator;
@@ -68,6 +74,7 @@ import org.eclipse.stardust.model.bpmn2.transform.util.Bpmn2ProxyResolver;
import org.eclipse.stardust.model.bpmn2.transform.xpdl.elements.Gateway2Stardust;
import org.eclipse.stardust.model.bpmn2.transform.xpdl.elements.Sequence2Stardust;
import org.eclipse.stardust.model.bpmn2.transform.xpdl.helper.BpmnModelQuery;
+import org.eclipse.stardust.model.bpmn2.transform.xpdl.helper.BpmnTimerCycle;
import org.eclipse.stardust.model.bpmn2.transform.xpdl.helper.CarnotModelQuery;
import org.eclipse.stardust.model.bpmn2.transform.xpdl.helper.DocumentationTool;
import org.eclipse.stardust.model.xpdl.builder.common.AbstractElementBuilder;
@@ -82,6 +89,7 @@ import org.eclipse.stardust.model.xpdl.carnot.ProcessDefinitionType;
import org.eclipse.stardust.model.xpdl.carnot.TransitionType;
import org.eclipse.stardust.model.xpdl.carnot.TriggerType;
import org.eclipse.stardust.model.xpdl.carnot.TriggerTypeType;
+import org.eclipse.stardust.model.xpdl.carnot.util.AttributeUtil;
/**
* @author Simon Nikles
*
@@ -341,21 +349,72 @@ public class Bpmn2StardustXPDL implements Transformator {
}
}
- private void addTimerTrigger(StartEvent event, EventDefinition def, FlowElementsContainer container, ProcessDefinitionType processDef) {
+ private void addTimerTrigger(StartEvent event, TimerEventDefinition def, FlowElementsContainer container, ProcessDefinitionType processDef) {
logger.debug("addTimerTrigger " + event);
+
TriggerTypeType triggerType = XpdlModelUtils.findElementById(carnotModel.getTriggerType(), PredefinedConstants.TIMER_TRIGGER);
if (triggerType != null) {
TriggerType trigger = AbstractElementBuilder.F_CWM.createTriggerType();
trigger.setType(triggerType);
trigger.setId(event.getId());
trigger.setName(event.getName());
- Bpmn2StardustXPDLExtension.addTimerStartEventExtensions(event, trigger);
+ setTimerTriggerDefinition(event, def, trigger);
+ Bpmn2StardustXPDLExtension.addTimerStartEventExtensions(event, trigger);
processDef.getTrigger().add(trigger);
} else {
failures.add(FAIL_ELEMENT_CREATION + "(Start event: " + event.getId() + " - trigger type + " + PredefinedConstants.JMS_TRIGGER + " not found)");
}
}
+ private void setTimerTriggerDefinition(StartEvent event, TimerEventDefinition eventDef, TriggerType trigger) {
+ // According to OMG-BPMN, only one (date, cycle or duration) for executable processes;
+ // duration is not considered here (rather useful for waiting-timers)
+ if (eventDef.getTimeCycle()!= null) {
+ setTimerCycleDefinition(eventDef, trigger);
+ } else if (eventDef.getTimeDate() != null) {
+ setTimerTimeDefinition(event, eventDef, trigger);
+ }
+ }
+
+ private void setTimerCycleDefinition(TimerEventDefinition eventDef, TriggerType trigger) {
+ Expression cycleExpression = eventDef.getTimeCycle();
+ if (cycleExpression instanceof FormalExpression) {
+ FormalExpression formalCycle = (FormalExpression)cycleExpression;
+ String body = formalCycle.getBody();
+ BpmnTimerCycle cycle = BpmnTimerCycle.getCycle(body);
+ Duration dur = cycle.getCycleDuration();
+ Period p = new Period((short)dur.getYears(), (short)dur.getMonths(), (short)dur.getDays(), (short)dur.getHours(), (short)dur.getMinutes(), (short)dur.getSeconds());
+ AttributeUtil.setAttribute(trigger, PredefinedConstants.TIMER_TRIGGER_START_TIMESTAMP_ATT, "long", String.valueOf(cycle.getStartDate().getTime()));
+ AttributeUtil.setAttribute(trigger, PredefinedConstants.TIMER_TRIGGER_PERIODICITY_ATT, "Period", String.valueOf(p.toString()));
+ } else {
+ String expression = DocumentationTool.getInformalExpressionValue(cycleExpression);
+ DescriptionType descriptor = trigger.getDescription() != null ? trigger.getDescription() : AbstractElementBuilder.F_CWM.createDescriptionType();
+ String descr = XpdlModelUtils.getCDataString(descriptor.getMixed());
+ XpdlModelUtils.setCDataString(descriptor.getMixed(), expression.concat(descr), true);
+ }
+ }
+
+ private void setTimerTimeDefinition(StartEvent event, TimerEventDefinition eventDef, TriggerType trigger) {
+ Expression timeExpression = eventDef.getTimeDate();
+ if (timeExpression instanceof FormalExpression) {
+ FormalExpression formalCycle = (FormalExpression)timeExpression;
+ String body = formalCycle.getBody();
+ try {
+ Date d = DatatypeFactory.newInstance().newXMLGregorianCalendar(body).toGregorianCalendar().getTime();
+ AttributeUtil.setAttribute(trigger, PredefinedConstants.TIMER_TRIGGER_START_TIMESTAMP_ATT, "long", String.valueOf(d.getTime()));
+ } catch (Exception e) {
+ logger.info("Date cannot be parsed: " + body + " (Start Event " + event.getId() + " )");
+ }
+ } else {
+ String expression = DocumentationTool.getInformalExpressionValue(timeExpression);
+ DescriptionType descriptor = trigger.getDescription() != null ? trigger.getDescription() : AbstractElementBuilder.F_CWM.createDescriptionType();
+ String descr = XpdlModelUtils.getCDataString(descriptor.getMixed());
+ if (null!=descr) expression = expression.concat(descr);
+ XpdlModelUtils.setCDataString(descriptor.getMixed(), expression, true);
+ trigger.setDescription(descriptor);
+ }
+ }
+
public void addParticipant(Participant participant, Process process) {
}
diff --git a/model/org.eclipse.stardust.model.bpmn2.transform/src/test/java/org/eclipse/stardust/test/model/transformation/bpmn/Bpmn2CarnotXPDLTest.java b/model/org.eclipse.stardust.model.bpmn2.transform/src/test/java/org/eclipse/stardust/test/model/transformation/bpmn/Bpmn2CarnotXPDLTest.java
index fd6b9f9..e4bfe8b 100644
--- a/model/org.eclipse.stardust.model.bpmn2.transform/src/test/java/org/eclipse/stardust/test/model/transformation/bpmn/Bpmn2CarnotXPDLTest.java
+++ b/model/org.eclipse.stardust.model.bpmn2.transform/src/test/java/org/eclipse/stardust/test/model/transformation/bpmn/Bpmn2CarnotXPDLTest.java
@@ -14,9 +14,7 @@ import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.net.URL;
-import java.text.DateFormat;
import java.util.Calendar;
-import java.util.Date;
import junit.framework.Test;
import junit.framework.TestCase;
@@ -125,14 +123,39 @@ public class Bpmn2CarnotXPDLTest extends TestCase {
final String modelFile = BPMN_MODEL_DIR + "StartEventTimer.bpmn";
final String fileOutput = getResourceFilePath(OUTPUT_DIR) + "testStartEventTimer.xpdl";
+ Calendar cal = Calendar.getInstance();
+ cal.set(2012, 8, 18, 0, 0, 0);
+ cal.set(Calendar.MILLISECOND, 0);
+ long stopTime = cal.getTime().getTime();
+ cal.set(2012, 8, 1, 11, 0, 0);
+ cal.set(Calendar.MILLISECOND, 0);
+ long startTime = cal.getTime().getTime(); //2012-09-01T11:00:00
+ String period = "000001:000002:000001:000020:000030:000000";
+
ModelType result = transformModel(loadBpmnModel(modelFile), fileOutput);
ProcessDefinitionType process = result.getProcessDefinition().get(0);
-
assertNotNull(process);
assertNotNull(result);
- TriggerType trigger = CarnotModelQuery.findTrigger(process, TEST_ID_START_EVENT);
- assertNotNull(trigger);
- assertEquals(PredefinedConstants.TIMER_TRIGGER, trigger.getType().getId());
+ TriggerType triggerCycle = CarnotModelQuery.findTrigger(process, TEST_ID_START_EVENT_TIMER_CYCLE_STOP);
+ TriggerType triggerDate = CarnotModelQuery.findTrigger(process, TEST_ID_START_EVENT_TIMER_DATE);
+
+ assertNotNull(triggerDate);
+ assertNotNull(triggerCycle);
+
+ assertEquals(PredefinedConstants.TIMER_TRIGGER, triggerDate.getType().getId());
+ assertEquals(PredefinedConstants.TIMER_TRIGGER, triggerCycle.getType().getId());
+
+ String dateStart = AttributeUtil.getAttributeValue(triggerDate, PredefinedConstants.TIMER_TRIGGER_START_TIMESTAMP_ATT);
+ String cycleStart = AttributeUtil.getAttributeValue(triggerCycle, PredefinedConstants.TIMER_TRIGGER_START_TIMESTAMP_ATT);
+ String cyclePeriod = AttributeUtil.getAttributeValue(triggerCycle, PredefinedConstants.TIMER_TRIGGER_PERIODICITY_ATT);
+ String cycleStop = AttributeUtil.getAttributeValue(triggerCycle, PredefinedConstants.TIMER_TRIGGER_STOP_TIMESTAMP_ATT);
+
+ assertEquals(startTime, Long.parseLong(dateStart));
+ assertEquals(startTime, Long.parseLong(cycleStart));
+ assertEquals(period, cyclePeriod);
+ assertEquals(stopTime, Long.parseLong(cycleStop));
+
+
}
public void testUserTask() {
diff --git a/model/org.eclipse.stardust.model.bpmn2.transform/src/test/java/org/eclipse/stardust/test/model/transformation/bpmn/TestBpmnTimerCycle.java b/model/org.eclipse.stardust.model.bpmn2.transform/src/test/java/org/eclipse/stardust/test/model/transformation/bpmn/TestBpmnTimerCycle.java
new file mode 100644
index 0000000..6e6c2cd
--- /dev/null
+++ b/model/org.eclipse.stardust.model.bpmn2.transform/src/test/java/org/eclipse/stardust/test/model/transformation/bpmn/TestBpmnTimerCycle.java
@@ -0,0 +1,99 @@
+package org.eclipse.stardust.test.model.transformation.bpmn;
+
+import java.util.Calendar;
+
+import javax.xml.datatype.Duration;
+
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+import org.eclipse.stardust.model.bpmn2.transform.xpdl.helper.BpmnTimerCycle;
+
+public class TestBpmnTimerCycle extends TestCase {
+
+ public static Test suite() {
+ TestSuite suite = new TestSuite(TestBpmnTimerCycle.class);
+ return suite;
+ }
+
+ public void testFromLexicalValueDurationOnly() {
+ String lex = "P3Y6M4DT12H30M5S";
+ BpmnTimerCycle cycle = BpmnTimerCycle.getCycle(lex);
+
+ Duration duration = cycle.getCycleDuration();
+
+ assertNull(cycle.getStartDate());
+ assertEquals(-1, cycle.getRecurrences());
+
+ assertEquals(3, duration.getYears());
+ assertEquals(6, duration.getMonths());
+ assertEquals(4, duration.getDays());
+ assertEquals(12, duration.getHours());
+ assertEquals(30, duration.getMinutes());
+ assertEquals(5, duration.getSeconds());
+
+ }
+
+ public void testFromLexicalValueDurationWithRepeatSign() {
+ String lex = "R/P3Y6M4DT12H30M5S";
+ BpmnTimerCycle cycle = BpmnTimerCycle.getCycle(lex);
+ Duration duration = cycle.getCycleDuration();
+
+ assertNull(cycle.getStartDate());
+ assertEquals(-1, cycle.getRecurrences());
+
+ assertEquals(3, duration.getYears());
+ assertEquals(6, duration.getMonths());
+ assertEquals(4, duration.getDays());
+ assertEquals(12, duration.getHours());
+ assertEquals(30, duration.getMinutes());
+ assertEquals(5, duration.getSeconds());
+ }
+
+ public void testFromLexicalValueDurationWithStartdate() {
+ String lex = "2012-09-01T11:00:00/P1Y2M1DT20H30M";
+ BpmnTimerCycle cycle = BpmnTimerCycle.getCycle(lex);
+ Duration duration = cycle.getCycleDuration();
+
+ Calendar cal = Calendar.getInstance();
+ cal.setTime(cycle.getStartDate());
+
+ assertEquals(2012, cal.get(Calendar.YEAR));
+ assertEquals(9, cal.get(Calendar.MONTH)+1);
+ assertEquals(1, cal.get(Calendar.DATE));
+ assertEquals(11, cal.get(Calendar.HOUR));
+
+ assertEquals(-1, cycle.getRecurrences());
+
+ assertEquals(1, duration.getYears());
+ assertEquals(2, duration.getMonths());
+ assertEquals(1, duration.getDays());
+ assertEquals(20, duration.getHours());
+ assertEquals(30, duration.getMinutes());
+ }
+
+ public void testFromLexicalValueDurationWithNRepeatsAndStartdate() {
+ String lex = "R5/2012-09-01T11:00:00/P1Y2M1DT20H30M";
+ BpmnTimerCycle cycle = BpmnTimerCycle.getCycle(lex);
+ Duration duration = cycle.getCycleDuration();
+
+ Calendar cal = Calendar.getInstance();
+ cal.setTime(cycle.getStartDate());
+
+ assertEquals(2012, cal.get(Calendar.YEAR));
+ assertEquals(9, cal.get(Calendar.MONTH)+1);
+ assertEquals(1, cal.get(Calendar.DATE));
+ assertEquals(11, cal.get(Calendar.HOUR));
+
+ assertEquals(5, cycle.getRecurrences());
+
+ assertEquals(1, duration.getYears());
+ assertEquals(2, duration.getMonths());
+ assertEquals(1, duration.getDays());
+ assertEquals(20, duration.getHours());
+ assertEquals(30, duration.getMinutes());
+ }
+
+
+}
diff --git a/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/StartEventTimer.bpmn b/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/StartEventTimer.bpmn
index 5fd17ad..9a42799 100644
--- a/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/StartEventTimer.bpmn
+++ b/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/StartEventTimer.bpmn
@@ -1,34 +1,30 @@
-<?xml version="1.0" encoding="utf-8"?>
+<?xml version="1.0" encoding="utf-8"?>
<!--Created by Process Modeler 5 SR7 for Microsoft Visio (http://www.itp-commerce.com)-->
-<definitions targetNamespace="http://www.itp-commerce.com" xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:itp="http://www.itp-commerce.com/BPMN2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL schemas/BPMN20.xsd" exporter="Process Modeler 5 for Microsoft Visio" exporterVersion="5.2769.13758 SR7" itp:name="Mein Diagramm" itp:version="1.0" itp:author="simon nikles" itp:creationDate="28.06.2012 09:29:58" itp:modificationDate="28.06.2012 09:37:13" itp:createdWithVersion="5.2769.13758 SR7" itp:conformanceSubClass="Full" id="_9be861c8-bb4a-4f30-a848-d7f4eb178051" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC">
+<definitions targetNamespace="http://www.itp-commerce.com" xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:itp="http://www.itp-commerce.com/BPMN2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL schemas/BPMN20.xsd" exporter="Process Modeler 5 for Microsoft Visio" exporterVersion="5.2769.13758 SR7" itp:name="Mein Diagramm" itp:version="1.0" itp:author="simon nikles" itp:creationDate="28.06.2012 09:29:58" itp:modificationDate="28.06.2012 09:37:13" itp:createdWithVersion="5.2769.13758 SR7" itp:conformanceSubClass="Full" id="_9be861c8-bb4a-4f30-a848-d7f4eb178051" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC"
+ xmlns:sdbpmn="http://www.eclipse.org/stardust/bpmn20/sdbpmn"
+ xmlns:stardust="http://www.carnot.ag/workflowmodel/3.1"
+>
<process id="_a1d182de-7971-4662-9009-cab25f298bdd" name="Hauptprozess" processType="None">
<extensionElements>
- <itp:systemDefinedAttributes>
- <attribute name="Hyperlinks" type="String" value="0 Hyperlinks" />
- <attribute name="ExternalId" type="String" />
- <attribute name="KPICost" type="Float" value="1" format="Currency;Fr.;;KPI;2" />
- <attribute name="KPIDuration" type="Float" value="1" format="Duration;;;KPI;3">
- <attribute name="KPIActiveTime" type="Float" value="1" format="Duration;;;KPI;3" />
- <attribute name="KPIWaitTime" type="Float" value="0" format="Duration;;;KPI;3" />
- </attribute>
- </itp:systemDefinedAttributes>
- <itp:localization>
- <itp:label lang="unspecified" text="Hauptprozess" default="True" />
- </itp:localization>
</extensionElements>
- <startEvent id="TestModelStartEventId" name="TimerStartEvent">
+ <startEvent id="TestModelTimerStartEventTime" name="TimerStartEventTime">
+ <documentation>Documentation: Timer Start Event</documentation>
+ <extensionElements/>
+ <timerEventDefinition>
+ <timeDate xsi:type="tFormalExpression">2012-09-01T11:00:00</timeDate>
+ </timerEventDefinition>
+ </startEvent>
+ <startEvent id="TestModelStartEventCycleStop" name="TimerStartEvent">
<documentation>Documentation: Timer Start Event</documentation>
<extensionElements>
- <itp:systemDefinedAttributes>
- <attribute name="Hyperlinks" type="String" value="0 Hyperlinks" />
- <attribute name="ExternalId" type="String" />
- </itp:systemDefinedAttributes>
- <itp:localization>
- <itp:label lang="unspecified" text="TimerStartEvent" default="True" />
- </itp:localization>
+ <sdbpmn:StardustTimerStartEvent>
+ <sdbpmn:StardustAttributes>
+ <stardust:AttributeType name="carnot:engine:stopTime" type="long" value="1347919200000"/>
+ </sdbpmn:StardustAttributes>
+ </sdbpmn:StardustTimerStartEvent>
</extensionElements>
<timerEventDefinition>
- <timeCycle>CycleValue</timeCycle>
+ <timeCycle xsi:type="tFormalExpression" id="_J4Gw4fi3EeGWf5efbeOuhA">2012-09-01T11:00:00/P1Y2M1DT20H30M</timeCycle>
</timerEventDefinition>
</startEvent>
</process>
diff --git a/model/org.eclipse.stardust.model.bpmn2/.settings/org.eclipse.jdt.core.prefs b/model/org.eclipse.stardust.model.bpmn2/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..b4672ad
--- /dev/null
+++ b/model/org.eclipse.stardust.model.bpmn2/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,286 @@
+#Mon Sep 10 11:18:56 CEST 2012
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
+org.eclipse.jdt.core.compiler.source=1.5
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_assignment=0
+org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
+org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.blank_lines_before_field=0
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
+org.eclipse.jdt.core.formatter.comment.format_block_comments=true
+org.eclipse.jdt.core.formatter.comment.format_header=false
+org.eclipse.jdt.core.formatter.comment.format_html=true
+org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
+org.eclipse.jdt.core.formatter.comment.format_line_comments=true
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
+org.eclipse.jdt.core.formatter.comment.line_length=80
+org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
+org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
+org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
+org.eclipse.jdt.core.formatter.compact_else_if=true
+org.eclipse.jdt.core.formatter.continuation_indentation=2
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
+org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
+org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_empty_lines=false
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
+org.eclipse.jdt.core.formatter.indentation.size=4
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
+org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.join_lines_in_comments=true
+org.eclipse.jdt.core.formatter.join_wrapped_lines=true
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.lineSplit=120
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
+org.eclipse.jdt.core.formatter.tabulation.char=tab
+org.eclipse.jdt.core.formatter.tabulation.size=4
+org.eclipse.jdt.core.formatter.use_on_off_tags=false
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
+org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
diff --git a/model/org.eclipse.stardust.model.bpmn2/.settings/org.eclipse.jdt.ui.prefs b/model/org.eclipse.stardust.model.bpmn2/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 0000000..8020544
--- /dev/null
+++ b/model/org.eclipse.stardust.model.bpmn2/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,4 @@
+#Mon Sep 10 11:18:56 CEST 2012
+eclipse.preferences.version=1
+formatter_profile=_Eclipse based LongLines
+formatter_settings_version=12
diff --git a/model/org.eclipse.stardust.model.bpmn2/.settings/org.eclipse.m2e.core.prefs b/model/org.eclipse.stardust.model.bpmn2/.settings/org.eclipse.m2e.core.prefs
new file mode 100644
index 0000000..5e7739e
--- /dev/null
+++ b/model/org.eclipse.stardust.model.bpmn2/.settings/org.eclipse.m2e.core.prefs
@@ -0,0 +1,5 @@
+#Mon Sep 10 09:07:40 CEST 2012
+activeProfiles=
+eclipse.preferences.version=1
+resolveWorkspaceProjects=true
+version=1
diff --git a/model/org.eclipse.stardust.model.bpmn2/src/test/java/org/eclipse/stardust/test/model/bpmn2/sdbpmn/BpmnExtensionTest.java b/model/org.eclipse.stardust.model.bpmn2/src/test/java/org/eclipse/stardust/test/model/bpmn2/sdbpmn/BpmnExtensionTest.java
index dbdb4d0..cdf360f 100644
--- a/model/org.eclipse.stardust.model.bpmn2/src/test/java/org/eclipse/stardust/test/model/bpmn2/sdbpmn/BpmnExtensionTest.java
+++ b/model/org.eclipse.stardust.model.bpmn2/src/test/java/org/eclipse/stardust/test/model/bpmn2/sdbpmn/BpmnExtensionTest.java
@@ -11,12 +11,16 @@ import junit.framework.TestSuite;
import org.eclipse.bpmn2.Bpmn2Factory;
import org.eclipse.bpmn2.Definitions;
+import org.eclipse.bpmn2.Expression;
import org.eclipse.bpmn2.ExtensionAttributeValue;
import org.eclipse.bpmn2.FlowElement;
import org.eclipse.bpmn2.FlowElementsContainer;
+import org.eclipse.bpmn2.FormalExpression;
import org.eclipse.bpmn2.Process;
import org.eclipse.bpmn2.ProcessType;
import org.eclipse.bpmn2.RootElement;
+import org.eclipse.bpmn2.StartEvent;
+import org.eclipse.bpmn2.TimerEventDefinition;
import org.eclipse.bpmn2.UserTask;
import org.eclipse.bpmn2.util.Bpmn2Resource;
import org.eclipse.bpmn2.util.Bpmn2ResourceFactoryImpl;
@@ -29,14 +33,19 @@ import org.eclipse.stardust.model.bpmn2.input.BPMNModelImporter;
import org.eclipse.stardust.model.bpmn2.output.BPMNModelExporter;
import org.eclipse.stardust.model.bpmn2.sdbpmn.SdbpmnFactory;
import org.eclipse.stardust.model.bpmn2.sdbpmn.SdbpmnPackage;
+import org.eclipse.stardust.model.bpmn2.sdbpmn.StardustAttributesType;
import org.eclipse.stardust.model.bpmn2.sdbpmn.StardustServiceTaskType;
+import org.eclipse.stardust.model.bpmn2.sdbpmn.StardustTimerStartEventType;
import org.eclipse.stardust.model.bpmn2.sdbpmn.StardustUserTaskType;
import org.eclipse.stardust.model.bpmn2.sdbpmn.TStardustCommon;
+import org.eclipse.stardust.model.xpdl.carnot.AttributeType;
+import org.eclipse.stardust.model.xpdl.carnot.util.AttributeUtil;
public class BpmnExtensionTest extends TestCase {
private static final String USER_TASK_ID = "userTaskA";
private static final String OID = "5000";
+ private static final String START_EVENT_ID = "startEventA";
private Bpmn2Factory fac = Bpmn2Factory.eINSTANCE;
private SdbpmnFactory efac = SdbpmnFactory.eINSTANCE;
@@ -72,23 +81,32 @@ public class BpmnExtensionTest extends TestCase {
Process proc = fac.createProcess();
defs.getRootElements().add(proc);
+ StartEvent event = createTestStartEvent();
+ UserTask utask = createTestUserTask();
+ proc.setProcessType(ProcessType.PRIVATE);
+ proc.getFlowElements().add(utask);
+ proc.getFlowElements().add(event);
+ }
+
+ private UserTask createTestUserTask() {
UserTask utask = fac.createUserTask();
- utask.setId(USER_TASK_ID);
-
+ utask.setId(USER_TASK_ID);
ExtensionHelper.getInstance().setUserTaskExtension(utask, createUserTaskExtension());
-
- /*
- ExtensionAttributeValue extensionElement = Bpmn2Factory.eINSTANCE.createExtensionAttributeValue();
- FeatureMap.Entry extensionElementEntry =
- new SimpleFeatureMapEntry((Internal)SdbpmnPackage.Literals.DOCUMENT_ROOT__STARDUST_USER_TASK, userTaskExtension);
+ return utask;
+ }
- utask.getExtensionValues().add(extensionElement);
- extensionElement.getValue().add(extensionElementEntry);
- */
-
- proc.setProcessType(ProcessType.PRIVATE);
- proc.getFlowElements().add(utask);
+ private StartEvent createTestStartEvent() {
+ StartEvent event = fac.createStartEvent();
+ event.setId(START_EVENT_ID);
+ TimerEventDefinition timer = fac.createTimerEventDefinition();
+ timer.setId("StartTimerDef");
+ FormalExpression expr = fac.createFormalExpression();
+ expr.setBody("2012-09-01T11:00:00/P1Y2M1DT20H30M");
+ timer.setTimeCycle(expr);
+ event.getEventDefinitions().add(timer);
+ ExtensionHelper.getInstance().setTimerStartEventExtension(event, createTimerStartExtension());
+ return event;
}
private StardustUserTaskType createUserTaskExtension() {
@@ -99,6 +117,16 @@ public class BpmnExtensionTest extends TestCase {
return userTaskExtension;
}
+ private StardustTimerStartEventType createTimerStartExtension() {
+ StardustTimerStartEventType event = efac.createStardustTimerStartEventType();
+ StardustAttributesType attr = efac.createStardustAttributesType();
+ event.setStardustAttributes(attr);
+ AttributeType attrType = AttributeUtil.createAttribute("carnot:engine:stopTime");
+ attrType.setAttributeValue("long", "1347919200000");
+ attr.getAttributeType().add(attrType);
+ return event;
+ }
+
private void exportModel() throws IOException {
BPMNModelExporter.exportModel((Bpmn2Resource) defs.eResource(), testModelPath);
}
@@ -131,6 +159,12 @@ public class BpmnExtensionTest extends TestCase {
assertEquals(OID, taskExtension.getElementOid());
assertEquals(true, taskExtension.isHibernateOnCreation());
+ StartEvent event = (StartEvent)findFlowElement(defs, START_EVENT_ID);
+ StardustTimerStartEventType ext = ExtensionHelper.getInstance().getTimerStartEventExtension(event);
+ AttributeType attr = ext.getStardustAttributes().getAttributeType().get(0);
+ assertEquals("carnot:engine:stopTime", attr.getName());
+ assertEquals("1347919200000", attr.getValue());
+
}