svn commit: r18617 - trunk/src/argouml-core-transformer: . .settings META-INF build-eclipse src src/.settings src/META-INF src/org src/org/argouml src/org/argouml/transformer

[email protected]
Newsgroups gmane.comp.lang.uml.argouml.cvs
Message-ID <[email protected]>
Author: bobtarling
Date: 2010-08-03 08:03:41-0700
New Revision: 18617

Added:
   trunk/src/argouml-core-transformer/.checkstyle
   trunk/src/argouml-core-transformer/.classpath
   trunk/src/argouml-core-transformer/.project
   trunk/src/argouml-core-transformer/.settings/
   trunk/src/argouml-core-transformer/.settings/de.mvmsoft.checkclipse.prefs
   trunk/src/argouml-core-transformer/.settings/org.eclipse.jdt.core.prefs
   trunk/src/argouml-core-transformer/.settings/org.eclipse.jdt.ui.prefs
   trunk/src/argouml-core-transformer/META-INF/
   trunk/src/argouml-core-transformer/META-INF/MANIFEST.MF
   trunk/src/argouml-core-transformer/build-eclipse/
   trunk/src/argouml-core-transformer/build.properties
   trunk/src/argouml-core-transformer/build.xml
   trunk/src/argouml-core-transformer/plugin.properties
   trunk/src/argouml-core-transformer/src/
   trunk/src/argouml-core-transformer/src/.settings/
   trunk/src/argouml-core-transformer/src/.settings/org.eclipse.jdt.ui.prefs
   trunk/src/argouml-core-transformer/src/META-INF/
   trunk/src/argouml-core-transformer/src/META-INF/MANIFEST.MF
   trunk/src/argouml-core-transformer/src/org/
   trunk/src/argouml-core-transformer/src/org/argouml/
   trunk/src/argouml-core-transformer/src/org/argouml/transformer/
   trunk/src/argouml-core-transformer/src/org/argouml/transformer/EventTransformer.java
   trunk/src/argouml-core-transformer/src/org/argouml/transformer/SimpleStateTransformer.java
   trunk/src/argouml-core-transformer/src/org/argouml/transformer/Transformer.java
   trunk/src/argouml-core-transformer/src/org/argouml/transformer/TransformerAction.java
   trunk/src/argouml-core-transformer/src/org/argouml/transformer/TransformerManager.java
   trunk/src/argouml-core-transformer/src/org/argouml/transformer/TransformerModule.java

Log:
The transformer subsystem as a module

Added: trunk/src/argouml-core-transformer/.checkstyle
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-transformer/.checkstyle?view=markup&pathrev=18617
==============================================================================
--- (empty file)
+++ trunk/src/argouml-core-transformer/.checkstyle	2010-08-03 08:03:41-0700
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<fileset-config file-format-version="1.2.0" simple-config="true">
+  <local-check-config name="ArgoUML conventions" location="/argouml-core-tools/checkstyle/checkstyle5_argouml.xml" type="project" description="The Checkstyle configuration used in the ArgoUML project.">
+    <property name="checkstyle.header.file" value="${workspace_loc}/argouml-core-tools/checkstyle/java.header"/>
+    <additional-data name="protect-config-file" value="false"/>
+  </local-check-config>
+  <fileset name="all" enabled="true" check-config-name="ArgoUML conventions" local="true">
+    <file-match-pattern match-pattern="." include-pattern="true"/>
+  </fileset>
+  <filter name="WriteProtectedFiles" enabled="true"/>
+  <filter name="FilesFromPackage" enabled="true">
+    <filter-data value="src_generated"/>
+  </filter>
+  <filter name="NonSrcDirs" enabled="true"/>
+</fileset-config>

Added: trunk/src/argouml-core-transformer/.classpath
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-transformer/.classpath?view=markup&pathrev=18617
==============================================================================
--- (empty file)
+++ trunk/src/argouml-core-transformer/.classpath	2010-08-03 08:03:41-0700
@@ -0,0 +1,8 @@
+<?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="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/3"/>

+	<classpathentry kind="output" path="build-eclipse"/>

+</classpath>


Added: trunk/src/argouml-core-transformer/.project
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-transformer/.project?view=markup&pathrev=18617
==============================================================================
--- (empty file)
+++ trunk/src/argouml-core-transformer/.project	2010-08-03 08:03:41-0700
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<projectDescription>

+	<name>argouml-core-transformer</name>

+	<comment></comment>

+	<projects>

+	</projects>

+	<buildSpec>

+		<buildCommand>

+			<name>org.eclipse.jdt.core.javabuilder</name>

+			<arguments>

+			</arguments>

+		</buildCommand>

+		<buildCommand>

+			<name>de.mvmsoft.checkclipse.CheckclipseBuilder</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>net.sf.eclipsecs.core.CheckstyleBuilder</name>

+			<arguments>

+			</arguments>

+		</buildCommand>

+	</buildSpec>

+	<natures>

+		<nature>de.mvmsoft.checkclipse.CheckclipseNature</nature>

+		<nature>org.eclipse.jdt.core.javanature</nature>

+		<nature>org.eclipse.pde.PluginNature</nature>

+		<nature>net.sf.eclipsecs.core.CheckstyleNature</nature>

+	</natures>

+</projectDescription>


Added: trunk/src/argouml-core-transformer/.settings/de.mvmsoft.checkclipse.prefs
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-transformer/.settings/de.mvmsoft.checkclipse.prefs?view=markup&pathrev=18617
==============================================================================
--- (empty file)
+++ trunk/src/argouml-core-transformer/.settings/de.mvmsoft.checkclipse.prefs	2010-08-03 08:03:41-0700
@@ -0,0 +1,4 @@
+#Mon Apr 16 04:15:54 CEST 2007

+filenames.properties=/argouml-core-tools/checkstyle/checkstyle.properties

+enabled=true

+filenames.config=/argouml-core-tools/checkstyle/checkstyle_argouml.xml


Added: trunk/src/argouml-core-transformer/.settings/org.eclipse.jdt.core.prefs
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-transformer/.settings/org.eclipse.jdt.core.prefs?view=markup&pathrev=18617
==============================================================================
--- (empty file)
+++ trunk/src/argouml-core-transformer/.settings/org.eclipse.jdt.core.prefs	2010-08-03 08:03:41-0700
@@ -0,0 +1,322 @@
+#Mon Apr 13 12:42:07 EDT 2009

+eclipse.preferences.version=1

+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled

+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5

+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve

+org.eclipse.jdt.core.compiler.compliance=1.5

+org.eclipse.jdt.core.compiler.debug.lineNumber=generate

+org.eclipse.jdt.core.compiler.debug.localVariable=generate

+org.eclipse.jdt.core.compiler.debug.sourceFile=generate

+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning

+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error

+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore

+org.eclipse.jdt.core.compiler.problem.deprecation=warning

+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled

+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled

+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning

+org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore

+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error

+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore

+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled

+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore

+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning

+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning

+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error

+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning

+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning

+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore

+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore

+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore

+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning

+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore

+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore

+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=ignore

+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning

+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning

+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore

+org.eclipse.jdt.core.compiler.problem.nullReference=ignore

+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning

+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore

+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore

+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore

+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning

+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore

+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled

+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning

+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled

+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore

+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning

+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning

+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore

+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning

+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore

+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore

+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore

+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore

+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled

+org.eclipse.jdt.core.compiler.problem.unusedImport=warning

+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning

+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning

+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore

+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled

+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled

+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled

+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning

+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=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_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_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_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=20

+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=20

+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=1

+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=do not insert

+org.eclipse.jdt.core.formatter.comment.line_length=80

+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.format_guardian_clause_on_one_line=false

+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=8

+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_member=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_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_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_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_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_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_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.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=true

+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false

+org.eclipse.jdt.core.formatter.lineSplit=80

+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=space

+org.eclipse.jdt.core.formatter.tabulation.size=4

+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false

+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true


Added: trunk/src/argouml-core-transformer/.settings/org.eclipse.jdt.ui.prefs
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-transformer/.settings/org.eclipse.jdt.ui.prefs?view=markup&pathrev=18617
==============================================================================
--- (empty file)
+++ trunk/src/argouml-core-transformer/.settings/org.eclipse.jdt.ui.prefs	2010-08-03 08:03:41-0700
@@ -0,0 +1,6 @@
+#Thu Feb 11 22:31:31 CET 2010

+eclipse.preferences.version=1

+formatter_profile=_ArgoUML

+formatter_settings_version=11

+org.eclipse.jdt.ui.javadoc=false

+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return Returns the ${bare_field_name}.\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} The ${bare_field_name} to set.\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for cr
 eated constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" 
 context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/**\r\n * \r\n */</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n *\r\n * ${tags}\r\n * @author ${user}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false
 " description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><templa
 te autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/**\r\n * ${tags}\r\n * ${see_to_overridden}\r\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="false" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">/* $$Id$$\r\n **************************
 *****************************************************\r\n * Copyright (c) ${year} Contributors - see below\r\n * All rights reserved. This program and the accompanying materials\r\n * are ma
 de available under the terms of the Eclipse Public License v1.0\r\n * which accompanies this distribution, and is available at\r\n * http\://www.eclipse.org/legal/epl-v10.html\r\n *\r\n * Contributors\:\r\n *    ${user}\r\n *******************************************************************************\r\n */\r\n\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetem
 plates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="tru
 e" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="false" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// TODO\: Auto-generated catch block\r\nLOG.error("Exception", ${exception_var});</template><template autoinsert\="false" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.cod
 etemplates.methodbody" name\="methodbody">// TODO\: Auto-generated method stub\r\n${body_statement}</template><template autoinsert\="false" context\="constructorbody_context" deleted\="false
 " description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// TODO\: Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>


Added: trunk/src/argouml-core-transformer/META-INF/MANIFEST.MF
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-transformer/META-INF/MANIFEST.MF?view=markup&pathrev=18617
==============================================================================
--- (empty file)
+++ trunk/src/argouml-core-transformer/META-INF/MANIFEST.MF	2010-08-03 08:03:41-0700
@@ -0,0 +1,14 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.argouml.transformer
+Bundle-Version: 0.29.3.qualifier
+Bundle-ClassPath: .
+Export-Package: org.argouml.transformer
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Bundle-Vendor: %pluginProvider
+Require-Bundle: org.argouml.app;bundle-version="0.29.3",
+ org.argouml.core.infra;bundle-version="0.29.3"
+Bundle-Localization: plugin
+Eclipse-RegisterBuddy: org.argouml.core.infra,org.argouml.app
+

Added: trunk/src/argouml-core-transformer/build.properties
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-transformer/build.properties?view=markup&pathrev=18617
==============================================================================
--- (empty file)
+++ trunk/src/argouml-core-transformer/build.properties	2010-08-03 08:03:41-0700
@@ -0,0 +1,6 @@
+custom = true

+source.. = src/,\

+           tests/

+bin.includes = META-INF/,\

+               .,\

+               plugin.properties


Added: trunk/src/argouml-core-transformer/build.xml
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-transformer/build.xml?view=markup&pathrev=18617
==============================================================================
--- (empty file)
+++ trunk/src/argouml-core-transformer/build.xml	2010-08-03 08:03:41-0700
@@ -0,0 +1,343 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!-- $Id: build.xml 17806 2010-01-12 18:21:28Z linus $

+

+    Ant build file for argouml-core-transformer.

+

+    This is designed to work:

+    - in the subdirectory named argouml-core-transformer,

+      as stored in the repository.

+      Used when compiling, running tests from the command line.

+    - When checked out from within Eclipse (project named

+      argouml-core-transformer)

+      Used for generating code.

+

+Building this requires:

+    argouml-core-infra

+    argouml-core-model

+    argouml-app

+

+  -->

+

+<project basedir="." default="compile" name="argouml-core-transformer">

+

+  <!-- =================================================================== -->

+  <!-- Initialization target                                               -->

+  <!-- =================================================================== -->

+

+  <target name="init" depends="pde-init">

+    

+    <property name="build.dir" location="build" />

+    <property name="build.classes" value="${build.dir}/classes" />

+

+    <path id="src.compile.classpath">

+      <fileset dir="../argouml-core-infra/build/">

+        <include name="*.jar"/>

+      </fileset>

+      <fileset dir="../argouml-core-model/build/">

+        <include name="*.jar"/>

+      </fileset>

+      <fileset dir="../argouml-app/build/">

+        <include name="*.jar"/>

+      </fileset>

+    </path>

+

+    <!-- This runtime classpath is used for tests and other things started

+         from this file.

+      -->

+    <path id="src.run.classpath">

+      <path refid="src.compile.classpath"/>

+      <!-- only one of the following will be used at a time -->

+      <!-- we put them together because there's little risk of crosstalk -->

+      <fileset dir="../argouml-core-model-mdr/build/">

+        <include name="*.jar"/>

+      </fileset>

+      <fileset dir="../argouml-core-model-euml/build/">

+        <include name="*.jar"/>

+      </fileset>

+    </path>

+

+    <!-- Try to figure out where our tools directory is. Done after overrides

+    are loaded so user can override, but before defaults -->

+    <property name="tool.test.file" value="checkstyle/java.header"/>

+    <available file="../argouml-core-tools/${tool.test.file}" type="file"

+	       value="../argouml-core-tools"

+               property="argo.tools.dir"

+	       />

+    <available file="../../tools/${tool.test.file}" type="file"

+	       value="../../tools"

+               property="argo.tools.dir"

+	       />

+

+    <path id="tests.compile.classpath">

+      <pathelement location="${build.classes}"/>

+      <pathelement location="${argo.tools.dir}/junit-3.8.2/junit.jar"/>

+      <path refid="src.compile.classpath"/>

+    </path>

+

+    <path id="tests.run.classpath">

+      <path refid="tests.compile.classpath"/>

+      <fileset dir="../argouml-core-model-mdr/build/">

+        <include name="*.jar"/>

+      </fileset>

+    </path>

+    

+    <path id="tests.all.classpath">

+      <pathelement location="${build.classes}"/>

+      <pathelement location="build/tests/classes"/>

+      <path refid="tests.run.classpath"/>

+    </path>

+      

+  </target>

+	

+  <!-- =================================================================== -->

+  <!-- Initialization target for optional ant tasks                        -->

+  <!-- =================================================================== -->

+  <target name="ant.optional.init" depends="init">

+    <path id="ant.optional.classpath">

+      <pathelement location="${ant.home}/libopt/ant-junit.jar"/>

+      <pathelement location="${argo.tools.dir}/junit-3.8.2/junit.jar"/>

+    </path>

+

+    <taskdef classname="org.apache.tools.ant.taskdefs.optional.junit.JUnitTask" name="junit">

+      <classpath>

+        <path refid="ant.optional.classpath"/>

+      </classpath>

+    </taskdef>

+  </target>

+

+

+  <!-- =================================================================== -->

+  <!-- Prepares the build directory                                        -->

+  <!-- =================================================================== -->

+

+  <target name="prepare" depends="init">

+    <mkdir dir="${build.dir}"/>

+    <mkdir dir="${build.classes}"/>

+  </target>

+

+  <!-- =================================================================== -->

+  <!-- Compiles the source directory                                       -->

+  <!-- =================================================================== -->

+  <target name="compile" depends="prepare"

+      description="Compile the sources.">

+

+    <echo message="Compiling the sources in argouml-core-transformer"/>

+

+    <javac debug="on" 

+    	   deprecation="on"

+    	   destdir="${build.classes}"

+    	   includes="org/argouml/**/*.java"

+    	   optimize="on"

+           includeAntRuntime="no" 

+           bootclasspath="${bundleBootClasspath}" 

+    	   srcdir="src"

+    	   source="1.5"

+    	   target="1.5">

+      <compilerarg compiler="javac1.5" line="-Xlint:unchecked"/>

+      <compilerarg line="-log '${build.dir}/compile.log'" compiler="org.eclipse.jdt.core.JDTCompilerAdapter" />      

+      <classpath>

+        <path refid="src.compile.classpath"/>

+      </classpath>

+    </javac>

+  </target>

+

+  <!-- =================================================================== -->

+  <!-- Creates the jar file                                                -->

+  <!-- =================================================================== -->

+  <target name="jar" depends="compile"

+          description="Build the main jar file.">

+    <jar basedir="${build.classes}"

+         excludes="*.txt,*.bat,*.xml,*.sh" 

+         includes="org/argouml/**"

+         manifest="src/META-INF/MANIFEST.MF"

+	 jarfile="${build.dir}/argouml-transformer.jar" />

+  </target>

+

+

+  <!-- =================================================================== -->

+  <!-- Clean targets                                                       -->

+  <!-- =================================================================== -->

+  <target name="clean" depends="init"

+          description="Clean out all built files.">

+    <delete dir="${build.dir}"/>

+    <antcall target="pde-clean" />

+  </target>

+

+

+

+  <!-- ################################################################### -->

+  <!-- Section with tests.                                                 -->

+  <!-- ################################################################### -->

+

+

+  <!-- =================================================================== -->

+  <!-- Compiles the tests                                                  -->

+  <!-- =================================================================== -->

+

+  <target name="compile-tests" depends="prepare">

+

+    <!-- create directories -->

+    <mkdir dir="build/tests/classes"/>

+

+    <javac debug="true" 

+           deprecation="on"

+           optimize="false" 

+           destdir="build/tests/classes"

+           srcdir="tests"

+    	   source="1.5"

+           target="1.5">

+      <compilerarg compiler="javac1.5" line="-Xlint:unchecked"/>

+      <classpath>

+        <path refid="tests.compile.classpath"/>

+      </classpath>

+    </javac>

+

+    <!-- copy test files -->

+    <copy todir="build/tests/classes/testmodels">

+      <fileset dir="tests/testmodels" includes="**/**"/>

+    </copy>

+  </target>

+

+  <!-- =================================================================== -->

+  <!-- Run the junit tests.                                                -->

+  <!-- =================================================================== -->

+  <target name="tests-xml" depends="compile,compile-tests"

+          description="Run all tests that don't require any GUI components in headleass mode.">

+

+    <mkdir dir="build/tests/reports"/>

+      

+    <junit errorproperty="junit.failure" failureproperty="junit.failure" 

+           fork="yes" dir="${basedir}" forkmode="perTest"

+           haltonfailure="false"

+           maxmemory="48M" printsummary="true">

+      <sysproperty key="log4j.configuration" value="org/argouml/resource/default.lcf"/>

+      <sysproperty key="java.awt.headless" value="true"/>

+      <sysproperty key="argouml.tests.dir" value="tests"/>

+      <assertions>

+        <enable/>

+      </assertions>

+      <classpath refid="tests.all.classpath"/>

+      <formatter type="xml"/>

+      <batchtest todir="build/tests/reports">

+        <fileset dir="tests">

+          <include name="org/argouml/**/Test*.java"/>

+        </fileset>

+      </batchtest>

+    </junit>

+  </target>

+

+  <target name="tests" depends="tests-xml"

+          description="Run all the tests."

+  />

+

+  <!-- =================================================================== -->

+  <!-- Eclipse PDE targets from here to end of file                        -->

+  <!-- =================================================================== -->

+  <!-- 

+    Required targets (called in this order) are:

+      build.jars

+      gather.bin.parts - must create and populate "${destination.temp.folder}/<Bundle-SymbolicName>_<Bundle-Version>

+      gather.logs

+    If p2.gathering = true in build.properties:

+      publish.bin.parts target replaces gather.bin.parts

+  -->

+  

+    <target name="pde-properties" if="eclipse.running">

+      <property name="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter" />

+    </target>

+  

+    <target name="pde-init" depends="pde-properties">

+

+      <property name="bundleId" value="org.argouml.transformer" />

+

+      <!-- This property is magic and will have its value substituted by PDE -->

+      <property name="version.suffix" value="0.29.3.201001020415"/>

+      <property name="bundleVersion" value="${version.suffix}" />

+

+      <!-- Compiler settings. -->

+      <condition property="dir_bootclasspath" value="${java.home}/../Classes">

+        <os family="mac" />

+      </condition>

+      <property name="dir_bootclasspath" value="${java.home}/lib" />

+      <path id="path_bootclasspath">

+        <fileset dir="${dir_bootclasspath}">

+          <include name="*.jar" />

+        </fileset>

+      </path>

+      <property name="bootclasspath" refid="path_bootclasspath" />

+      <property name="bundleBootClasspath" value="${bootclasspath}" />

+

+      <condition property="pluginTemp" value="${buildTempFolder}/plugins">

+        <isset property="buildTempFolder" />

+      </condition>

+      <property name="pluginTemp" value="${basedir}" />

+      <condition property="build.result.folder" value="${pluginTemp}/${bundleId}_${bundleVersion}">

+        <isset property="buildTempFolder" />

+      </condition>

+      <property name="build.result.folder" value="${basedir}" />

+      <property name="plugin.destination" value="${basedir}" />            

+      <condition property="p2.publish.parts" value="true">

+        <istrue value="${p2.gathering}"/>

+      </condition>  

+    </target>

+

+  <target name="pde-clean" depends="pde-init">

+    <delete file="${plugin.destination}/${bundleId}_*.jar" />

+    <delete file="${plugin.destination}/${bundleId}_*.zip" />

+  </target>

+

+  <target name="build.jars" depends="jar" description="Compile classes and build nested jars for the plug-in: ${bundleId}.">

+    <mkdir dir="${build.result.folder}/@dot"/>

+    <copy todir="${build.result.folder}/@dot" failonerror="true" overwrite="false">

+      <fileset dir="${build.classes}" includes="org/argouml/**" excludes="*.txt,*.bat,*.xml,*.sh" />

+    </copy>

+  </target>

+

+  <target name="gather.bin.parts" depends="init" if="destination.temp.folder">

+    <mkdir dir="${destination.temp.folder}/${bundleId}_${bundleVersion}" />

+    <copy todir="${destination.temp.folder}/${bundleId}_${bundleVersion}" failonerror="true" overwrite="false">

+      <fileset dir="${build.result.folder}/@dot" includes="**"/>

+    </copy>

+    

+    <copy todir="${destination.temp.folder}/${bundleId}_${bundleVersion}" failonerror="true" overwrite="false">

+      <fileset dir="${basedir}">

+        <include name="META-INF/"/>

+        <include name="plugin.xml"/>

+        <include name="plugin.properties"/>

+      </fileset>

+    </copy>

+

+    <eclipse.versionReplacer path="${destination.temp.folder}/${bundleId}_${bundleVersion}" version="${bundleVersion}" />

+  </target>

+

+

+  <target name="publish.bin.parts" depends="init" if="p2.publish.parts">

+

+    <!-- First call old target to gather binaries -->

+    <antcall target="gather.bin.parts">

+      <param name="destination.temp.folder" value="${build.result.folder}"/>

+    </antcall>

+

+    <eclipse.versionReplacer path="${build.result.folder}" version="${bundleVersion}" />

+

+    <!-- Now use P2 publishing tools to publish to our build repository -->

+    <eclipse.gatherBundle

+      metadataRepository="${p2.build.repo}"

+      artifactRepository="${p2.build.repo}"

+      buildResultFolder="${build.result.folder}"

+      baseDirectory="${basedir}"

+    />

+  </target>

+    

+  <target name="gather.logs" depends="init" if="destination.temp.folder">

+    <mkdir dir="${destination.temp.folder}/${bundleId}_${bundleVersion}"/>

+    <copy todir="${destination.temp.folder}/${bundleId}_${bundleVersion}" failonerror="false" overwrite="false">

+      <fileset dir="${build.dir}">

+        <include name="compile.log"/>  

+      </fileset>

+    </copy>

+  </target>

+

+</project>

+

+


Added: trunk/src/argouml-core-transformer/plugin.properties
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-transformer/plugin.properties?view=markup&pathrev=18617
==============================================================================
--- (empty file)
+++ trunk/src/argouml-core-transformer/plugin.properties	2010-08-03 08:03:41-0700
@@ -0,0 +1,3 @@
+#Properties file for argouml-core-transformer

+pluginProvider = The ArgoUML team

+pluginName = ArgoUML Transformer Subsystem
\ No newline at end of file

Added: trunk/src/argouml-core-transformer/src/.settings/org.eclipse.jdt.ui.prefs
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-transformer/src/.settings/org.eclipse.jdt.ui.prefs?view=markup&pathrev=18617
==============================================================================
--- (empty file)
+++ trunk/src/argouml-core-transformer/src/.settings/org.eclipse.jdt.ui.prefs	2010-08-03 08:03:41-0700
@@ -0,0 +1,3 @@
+#Sun Apr 15 03:41:15 CEST 2007

+eclipse.preferences.version=1

+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?><templates/>


Added: trunk/src/argouml-core-transformer/src/META-INF/MANIFEST.MF
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-transformer/src/META-INF/MANIFEST.MF?view=markup&pathrev=18617
==============================================================================
--- (empty file)
+++ trunk/src/argouml-core-transformer/src/META-INF/MANIFEST.MF	2010-08-03 08:03:41-0700
@@ -0,0 +1,12 @@
+Manifest-Version: 2.0

+Class-Path: argouml.jar

+Created-By: 1.2 (Sun Microsystems Inc.) 

+

+Name: org/argouml/transformer/TransformerModule.class

+Extension-name: org.argouml.transformer.TransformerModule

+Specification-Title: Transformer Module

+Specification-Version: 0.1

+Specification-Vendor: ArgoUML Team

+Implementation-Title: Transformer Module

+Implementation-Version: 0.1

+Implementation-Vendor: ArgoUML Team
\ No newline at end of file

Added: trunk/src/argouml-core-transformer/src/org/argouml/transformer/EventTransformer.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-transformer/src/org/argouml/transformer/EventTransformer.java?view=markup&pathrev=18617
==============================================================================
--- (empty file)
+++ trunk/src/argouml-core-transformer/src/org/argouml/transformer/EventTransformer.java	2010-08-03 08:03:41-0700
@@ -0,0 +1,204 @@
+/* $Id$
+ *******************************************************************************
+ * Copyright (c) 2010 Contributors - see below
+ * 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:
+ *    mvw
+ *******************************************************************************
+ */
+
+package org.argouml.transformer;
+
+import java.awt.event.ActionEvent;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+
+import javax.swing.Action;
+
+import org.argouml.kernel.Project;
+import org.argouml.model.Model;
+
+class EventTransformer implements Transformer {
+
+    public List<Action> actions(Project p, Object sourceModelElement) {
+        assert Model.getFacade().isAEvent(sourceModelElement);
+        List<Action> result = new ArrayList<Action>();
+        if (!Model.getFacade().isACallEvent(sourceModelElement)) {
+            result.add(new EventToCallEvent(p, sourceModelElement));
+        }
+        if (!Model.getFacade().isASignalEvent(sourceModelElement)) {
+            result.add(new EventToSignalEvent(p, sourceModelElement));
+        }
+        if (!Model.getFacade().isAChangeEvent(sourceModelElement)) {
+            result.add(new EventToChangeEvent(p, sourceModelElement));
+        }
+        if (!Model.getFacade().isATimeEvent(sourceModelElement)) {
+            result.add(new EventToTimeEvent(p, sourceModelElement));
+        }
+        return result;
+    }
+
+    public boolean canTransform(Object sourceModelElement) {
+        return Model.getFacade().isAEvent(sourceModelElement);
+    }
+    
+    abstract class EventTransformerAction extends TransformerAction {
+        /**
+         * Constructor.
+         */
+        EventTransformerAction(String nameKey, Project project, Object sourceModelElement) {
+            super(nameKey, project, sourceModelElement);
+        }
+        
+        public void actionPerformed(ActionEvent e) {
+            super.actionPerformed(e);
+            String text = getText();
+            String name = getName();
+            Object ns = Model.getFacade().getNamespace(getSource());
+            /* Need to copy the lists since we will be moving the elements 
+             * one by one: */
+            Collection transitions = new ArrayList(
+                    Model.getFacade().getTransitions(getSource()));
+            Collection parameters = new ArrayList(
+                    Model.getFacade().getParameters(getSource()));
+            // Deleting "source" here would probably delete the parameters...
+
+            Object trans = null;
+            if (!transitions.isEmpty()) {
+                trans = transitions.iterator().next();
+            }
+            Object evt = buildEvent(text, name, ns, trans);
+            
+            for (Object param : parameters) {
+                Model.getCoreHelper().removeParameter(getSource(), param);
+                Model.getCoreHelper().addParameter(evt, param);
+            }
+            for (Object t : transitions) {
+                Model.getStateMachinesHelper().setTrigger(t, null);
+                Model.getStateMachinesHelper().setTrigger(t, evt);
+            }
+
+            Model.getUmlFactory().delete(getSource());
+        }
+
+        protected String getText() {
+            String text = "";
+            if (Model.getFacade().isACallEvent(getSource())) {
+                text = Model.getFacade().getName(getSource());
+            }
+            if (Model.getFacade().isAChangeEvent(getSource())) {
+                Object changeExpr = Model.getFacade().getChangeExpression(getSource());
+                if (changeExpr != null) {
+                    text = Model.getDataTypesHelper().getBody(changeExpr);
+                }
+            }
+            if (Model.getFacade().isATimeEvent(getSource())) {
+                Object timeExpr =  Model.getFacade().getWhen(getSource());
+                if (timeExpr != null) {
+                    text = Model.getDataTypesHelper().getBody(timeExpr);
+                }
+            }
+            if (Model.getFacade().isASignalEvent(getSource())) {
+                text = Model.getFacade().getName(getSource());
+            }
+            return text;
+        }
+        
+        /*
+         * Only set the name if it differs from the text.
+         */
+        protected String getName() {
+            String name = "";
+            if (Model.getFacade().isAChangeEvent(getSource())) {
+                name = Model.getFacade().getName(getSource());
+            }
+            if (Model.getFacade().isATimeEvent(getSource())) {
+                name = Model.getFacade().getName(getSource());
+            }
+            return name;
+        }
+
+        abstract protected Object buildEvent(String text, String name, Object ns, Object trans);
+    }
+
+    class EventToCallEvent extends EventTransformerAction {
+
+        /**
+         * Constructor.
+         */
+        EventToCallEvent(Project project, Object sourceModelElement) {
+            super("Transform to Call Event", project, sourceModelElement);
+        }
+
+        @Override
+        protected Object buildEvent(String text, String name, Object ns, Object trans) {
+            Object evt = Model.getStateMachinesFactory().buildCallEvent(
+                    ns);
+            Model.getCoreHelper().setName(evt, text);
+            Object op = Model.getStateMachinesHelper().findOperationByName(
+                    trans, text);
+            if (op != null) {
+                Model.getCommonBehaviorHelper().setOperation(evt, op);
+            }
+            return evt;
+        }
+    }
+    
+    class EventToSignalEvent extends EventTransformerAction {
+
+        /**
+         * Constructor.
+         */
+        EventToSignalEvent(Project project, Object sourceModelElement) {
+            super("Transform to Signal Event", project, sourceModelElement);
+        }
+
+        @Override
+        protected Object buildEvent(String text, String name, Object ns, Object trans) {
+            return Model.getStateMachinesFactory().buildSignalEvent(
+                    text, ns);
+        }
+    }
+
+    class EventToChangeEvent extends EventTransformerAction {
+
+        /**
+         * Constructor.
+         */
+       EventToChangeEvent(Project project, Object sourceModelElement) {
+            super("Transform to Change Event", project, sourceModelElement);
+        }
+
+        @Override
+        protected Object buildEvent(String text, String name, Object ns, Object trans) {
+            Object evt =  Model.getStateMachinesFactory().buildChangeEvent(
+                    text, ns);
+            Model.getCoreHelper().setName(evt, name);
+            return evt;
+        }
+    }
+    
+    class EventToTimeEvent extends EventTransformerAction {
+
+        /**
+         * Constructor.
+         */
+       EventToTimeEvent(Project project, Object sourceModelElement) {
+            super("Transform to Time Event", project, sourceModelElement);
+        }
+
+        @Override
+        protected Object buildEvent(String text, String name, Object ns, Object trans) {
+            Object evt =  Model.getStateMachinesFactory().buildTimeEvent(
+                    text, ns);
+            Model.getCoreHelper().setName(evt, name);
+            return evt;
+        }
+    }
+
+}

Added: trunk/src/argouml-core-transformer/src/org/argouml/transformer/SimpleStateTransformer.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-transformer/src/org/argouml/transformer/SimpleStateTransformer.java?view=markup&pathrev=18617
==============================================================================
--- (empty file)
+++ trunk/src/argouml-core-transformer/src/org/argouml/transformer/SimpleStateTransformer.java	2010-08-03 08:03:41-0700
@@ -0,0 +1,251 @@
+/* $Id$
+ *******************************************************************************
+ * Copyright (c) 2010 Contributors - see below
+ * 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:
+ *    michiel
+ *******************************************************************************
+ */
+
+package org.argouml.transformer;
+
+import java.awt.Rectangle;
+import java.awt.event.ActionEvent;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+
+import javax.swing.Action;
+
+import org.apache.log4j.Logger;
+import org.argouml.kernel.Project;
+import org.argouml.model.Model;
+import org.argouml.uml.diagram.DiagramSettings;
+import org.argouml.uml.diagram.state.ui.FigCompositeState;
+import org.argouml.uml.diagram.state.ui.FigSimpleState;
+import org.argouml.uml.diagram.state.ui.FigTransition;
+import org.argouml.uml.diagram.ui.FigEdgeModelElement;
+import org.argouml.uml.diagram.ui.FigNodeModelElement;
+import org.tigris.gef.base.Layer;
+import org.tigris.gef.base.LayerPerspective;
+import org.tigris.gef.presentation.Fig;
+import org.tigris.gef.presentation.FigEdge;
+import org.tigris.gef.presentation.FigNode;
+
+/**
+ * This class transforms a SimpleState into a CompositeState. <p>
+ * 
+ * This involves copying the following:
+ * from State:
+ *      entry : Action
+ *      exit : Action
+ *      deferrableEvent : Event
+ *      internalTransition : Transition
+ *      doActivity : Action
+ *      stateMachine : StateMachine
+ * from StateVertex:
+ *      container : CompositeState
+ *      outgoing : Transition
+ *      incoming : Transition
+ * from ModelElement:
+ *      name
+ *      and maybe others...
+ *
+ * @author michiel
+ */
+class SimpleStateTransformer implements Transformer {
+
+    private static final Logger LOG = 
+        Logger.getLogger(SimpleStateTransformer.class);
+    
+    public List<Action> actions(Project p, Object sourceModelElement) {
+        assert Model.getFacade().isASimpleState(sourceModelElement);
+        List<Action> result = new ArrayList<Action>();
+        result.add(new SimpleStateToCompositeState(p, sourceModelElement));
+        return result;
+    }
+
+    public boolean canTransform(Object sourceModelElement) {
+        return Model.getFacade().isASimpleState(sourceModelElement);
+    }
+    
+    class SimpleStateToCompositeState extends TransformerAction {
+
+        SimpleStateToCompositeState(Project project, Object sourceModelElement) {
+            super("Transform to Composite State", project, sourceModelElement);
+        }
+        
+        public void actionPerformed(ActionEvent e) {
+            LOG.debug("Transforming a SimpleState into a CompositeState");
+//            Editor editor = Globals.curEditor();
+//            GraphModel gm = editor.getGraphModel();
+//            LayerDiagram lay =
+//                ((LayerDiagram) editor.getLayerManager().getActiveLayer());
+
+
+            super.actionPerformed(e);
+            Object entry = Model.getFacade().getEntry(getSource());
+            Object exit = Model.getFacade().getExit(getSource());
+            /* Need to copy the lists since we will be moving the elements: */
+            Collection deferEvts = new ArrayList(Model.getFacade().getDeferrableEvents(getSource()));
+            Collection intTrans = new ArrayList(Model.getFacade().getInternalTransitions(getSource()));
+            Object doActivity = Model.getFacade().getDoActivity(getSource());
+            Object sm = Model.getFacade().getStateMachine(getSource());
+            Object container = Model.getFacade().getContainer(getSource());
+            Collection outgoings = new ArrayList(Model.getFacade().getOutgoings(getSource()));
+            Collection incomings = new ArrayList(Model.getFacade().getIncomings(getSource()));
+            
+            outgoings.removeAll(intTrans);
+            incomings.removeAll(intTrans);
+            LOG.debug("Transformer found " + intTrans.size() + " internal transitions.");
+            LOG.debug("Transformer found " + incomings.size() + " incoming transitions.");
+            LOG.debug("Transformer found " + outgoings.size() + " outgoing transitions.");
+            
+            String name = Model.getFacade().getName(getSource());
+            Object cs = Model.getStateMachinesFactory().buildCompositeState(container);
+            Model.getStateMachinesHelper().setEntry(getSource(), null);
+            Model.getStateMachinesHelper().setEntry(cs, entry);
+            Model.getStateMachinesHelper().setExit(getSource(), null);
+            Model.getStateMachinesHelper().setExit(cs, exit);
+            for (Object de : deferEvts) {
+                Model.getStateMachinesHelper().removeDeferrableEvent(getSource(), de);
+                Model.getStateMachinesHelper().addDeferrableEvent(cs, de);
+            }
+            Model.getStateMachinesHelper().setInternalTransitions(getSource(), Collections.EMPTY_LIST);
+            Model.getStateMachinesHelper().setInternalTransitions(cs, intTrans);
+            Model.getStateMachinesHelper().setDoActivity(getSource(), null);
+            Model.getStateMachinesHelper().setDoActivity(cs, doActivity);
+            Model.getStateMachinesHelper().setStateMachine(cs, sm);
+            for (Object to : outgoings) {
+                Model.getStateMachinesHelper().setSource(to, null);
+                Model.getStateMachinesHelper().setSource(to, cs);
+            }
+            for (Object ti : incomings) {
+                Model.getCommonBehaviorHelper().setTarget(ti, null);
+                Model.getCommonBehaviorHelper().setTarget(ti, cs);
+            }
+            Model.getCoreHelper().setName(cs, name);
+
+
+            
+            // This is not necessarily the current diagram!
+            Collection<Fig> figs = getProject().findAllPresentationsFor(getSource());
+            LOG.debug("Transformer found " + figs.size() + " representations (Figs).");
+            for (Fig ssFig : figs) {
+                LOG.debug("Transformer found a Fig: " + ssFig);
+                assert ssFig.getOwner() == getSource();
+                assert ssFig instanceof FigSimpleState;
+                Rectangle bounds = ssFig.getBounds();
+                DiagramSettings settings = ((FigNodeModelElement) ssFig).getSettings();
+                Layer lay = ssFig.getLayer();
+                /* Remove the old fig from the diagram, so we can draw the 
+                 * new one in its place: */
+                ssFig.removeFromDiagram();
+
+                FigCompositeState fcs = 
+                    new FigCompositeState(cs, bounds, settings);
+                lay.add(fcs);
+                fcs.setBounds(bounds);
+                ((LayerPerspective) lay).putInPosition(fcs);
+                fcs.renderingChanged();
+                
+                for (Object to : outgoings) {
+                    makeTransition(settings, lay, to);
+                }
+                for (Object ti : incomings) {
+                    makeTransition(settings, lay, ti);
+                }
+            }
+            
+            Model.getUmlFactory().delete(getSource());
+//            p.moveToTrash(source);
+        }
+
+        private void makeTransition(DiagramSettings settings, Layer lay,
+                Object transUml) {
+            FigTransition transFig = new FigTransition(transUml, settings);
+            setPorts(lay, transFig);
+            lay.add(transFig);
+            transFig.computeRoute();
+            transFig.renderingChanged();
+        }
+        
+        /**
+         * TODO: Copied from UmlDiagramRenderer.
+         * 
+         * Find the Figs in the given layer that should be the source and
+         * destination and attach these to either end of the FigEdge
+         * @param layer the layer to look for the FigNodes
+         * @param newEdge The edge to attach
+         */
+        protected final void setPorts(Layer layer, FigEdge newEdge) {
+            Object modelElement = newEdge.getOwner();
+            if (newEdge.getSourcePortFig() == null) {
+                Object tSource;
+                tSource = Model.getUmlHelper().getSource(modelElement);
+                FigNode sourceNode = getNodePresentationFor(layer, tSource);
+                assert (sourceNode != null) : "No FigNode found for " + tSource;
+                setSourcePort(newEdge, sourceNode);
+            }
+            if (newEdge.getDestPortFig() == null) {
+                Object tDest;
+                tDest = Model.getUmlHelper().getDestination(newEdge.getOwner());
+                setDestPort(newEdge, getNodePresentationFor(layer, tDest));
+            }
+            if (newEdge.getSourcePortFig() == null
+                    || newEdge.getDestPortFig() == null) {
+                throw new IllegalStateException("Edge of type "
+                    + newEdge.getClass().getName()
+                    + " created with no source or destination port");
+            }
+        }
+
+        private void setSourcePort(FigEdge edge, FigNode source) {
+            edge.setSourcePortFig(source);
+            edge.setSourceFigNode(source);
+        }
+
+        private void setDestPort(FigEdge edge, FigNode dest) {
+            edge.setDestPortFig(dest);
+            edge.setDestFigNode(dest);
+        }
+        
+        /**
+         * TODO: Copied from UmlDiagramRenderer.
+         * 
+         * Get the FigNode from the given layer that represents the given
+         * model element.
+         * The FigNode portion of an association class is returned in preference
+         * to the FigEdge portion.
+         * If no FigNode is found then a FIgEdge is searched for and the FigNode
+         * that acts as its edge port is returned.
+         * @param lay the layer containing the Fig
+         * @param modelElement the model element to find presentation for
+         * @return the FigNode presentation of the model element
+         */
+        private FigNode getNodePresentationFor(Layer lay, Object modelElement) {
+            assert modelElement != null : "A modelElement must be supplied";
+            for (Object fig : lay.getContentsNoEdges()) {
+     
+                if (fig instanceof FigNode
+                        && modelElement.equals(((FigNode) fig).getOwner())) {
+                    return ((FigNode) fig);
+                }
+            }
+            for (Object fig : lay.getContentsEdgesOnly()) {
+                if (fig instanceof FigEdgeModelElement
+                        && modelElement.equals(((FigEdgeModelElement) fig)
+                                .getOwner())) {
+                    return ((FigEdgeModelElement) fig).getEdgePort();
+                }
+            }
+            return null;
+        }
+    }
+
+}

Added: trunk/src/argouml-core-transformer/src/org/argouml/transformer/Transformer.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-transformer/src/org/argouml/transformer/Transformer.java?view=markup&pathrev=18617
==============================================================================
--- (empty file)
+++ trunk/src/argouml-core-transformer/src/org/argouml/transformer/Transformer.java	2010-08-03 08:03:41-0700
@@ -0,0 +1,48 @@
+/* $Id$
+ *******************************************************************************
+ * Copyright (c) 2010 Contributors - see below
+ * 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:
+ *    mvw
+ *******************************************************************************
+ */
+
+package org.argouml.transformer;
+
+import java.util.List;
+
+import javax.swing.Action;
+
+import org.argouml.kernel.Project;
+
+/**
+ * Interface implemented by a class that is able to transform 
+ * (convert, mutate) one modelelement into another type. 
+ * E.g. converting a SimpleState into a CompositeState.
+ *
+ * @author mvw
+ */
+interface Transformer {
+
+    /**
+     * Determine if this implementation is able to transform the supplied 
+     * element. In fact, this boolean only determines if the transformation 
+     * menu will become visible - it is still exceptionally possible that the 
+     * actual conversion fails.
+     * 
+     * @param sourceModelElement an UML element. Null is not allowed.
+     * @return true if the given element is transformable
+     */
+    boolean canTransform(Object sourceModelElement);
+
+    /**
+     * @param p the project in which the modelelement resides 
+     * @param sourceModelElement
+     * @return
+     */
+    List<Action> actions(Project p, Object sourceModelElement);
+}

Added: trunk/src/argouml-core-transformer/src/org/argouml/transformer/TransformerAction.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-transformer/src/org/argouml/transformer/TransformerAction.java?view=markup&pathrev=18617
==============================================================================
--- (empty file)
+++ trunk/src/argouml-core-transformer/src/org/argouml/transformer/TransformerAction.java	2010-08-03 08:03:41-0700
@@ -0,0 +1,59 @@
+/* $Id$
+ *******************************************************************************
+ * Copyright (c) 2010 Contributors - see below
+ * 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:
+ *    mvw
+ *******************************************************************************
+ */
+
+package org.argouml.transformer;
+
+
+import javax.swing.Action;
+
+import org.argouml.application.helpers.ResourceLoaderWrapper;
+import org.argouml.i18n.Translator;
+import org.argouml.kernel.Project;
+import org.argouml.ui.UndoableAction;
+
+/**
+ * This class guarantees a similar layout for all transformer menu items.
+ *
+ * @author mvw
+ */
+class TransformerAction extends UndoableAction {
+    private Project project;
+    private Object source;
+    
+    /**
+     * Constructor.
+     */
+    TransformerAction(String s) {
+        super(s);
+//        Object icon = ResourceLoaderWrapper.lookupIcon(s);
+//        putValue(Action.NAME, Translator.localize(s));
+//        putValue(Action.SMALL_ICON, icon);
+//        // Set the tooltip string:
+//        putValue(Action.SHORT_DESCRIPTION, Translator.localize(s));
+    }
+    
+    TransformerAction(String nameKey, Project project, Object sourceModelElement) {
+        this(nameKey);
+        this.project = project;
+        source = sourceModelElement;
+    }
+    
+    protected Object getSource() {
+        return source;
+    }
+
+    protected Project getProject() {
+        return project;
+    }
+
+}

Added: trunk/src/argouml-core-transformer/src/org/argouml/transformer/TransformerManager.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-transformer/src/org/argouml/transformer/TransformerManager.java?view=markup&pathrev=18617
==============================================================================
--- (empty file)
+++ trunk/src/argouml-core-transformer/src/org/argouml/transformer/TransformerManager.java	2010-08-03 08:03:41-0700
@@ -0,0 +1,79 @@
+/* $Id$
+ *******************************************************************************
+ * Copyright (c) 2010 Contributors - see below
+ * 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:
+ *    Michiel van der Wulp
+ *******************************************************************************
+ */
+
+package org.argouml.transformer;
+
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+
+import javax.swing.Action;
+
+import org.argouml.kernel.Project;
+import org.argouml.kernel.ProjectManager;
+import org.argouml.ui.ContextActionFactory;
+
+/**
+ * This is a singleton.
+ *
+ * @author Michiel van der Wulp
+ */
+public final class TransformerManager implements ContextActionFactory {
+    
+    private HashSet<Transformer> transformers;
+    
+    /**
+     * The singleton instance.
+     */
+    private static TransformerManager instance = new TransformerManager();
+
+    /**
+     * Singleton constructor should remain private.
+     */
+    private TransformerManager() {
+    }
+
+    /**
+     * Singleton retrieval method.
+     * @return the transformermanager
+     */
+    public static TransformerManager getInstance() {
+        return instance;
+    }
+
+    private HashSet<Transformer> getTransformers() {
+        if (transformers == null) {
+            transformers = new HashSet<Transformer>();
+        }
+        return transformers;
+    }
+
+    void addTransformer(Transformer t) {
+        getTransformers().add(t);
+    }
+
+    public List createContextPopupActions(Object element) {
+        Project p = ProjectManager.getManager().getCurrentProject();
+        
+        List<Action> result = new ArrayList<Action>();
+        for (Transformer t : getTransformers()) {
+            if (t.canTransform(element)) {
+                result.addAll(t.actions(p, element));
+            }
+        }
+        return result;
+    }
+    
+    
+    
+}

Added: trunk/src/argouml-core-transformer/src/org/argouml/transformer/TransformerModule.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-transformer/src/org/argouml/transformer/TransformerModule.java?view=markup&pathrev=18617
==============================================================================
--- (empty file)
+++ trunk/src/argouml-core-transformer/src/org/argouml/transformer/TransformerModule.java	2010-08-03 08:03:41-0700
@@ -0,0 +1,63 @@
+/* $Id: $

+ *****************************************************************************

+ * Copyright (c) 2010 Contributors - see below

+ * 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:

+ *    Michiel Van Der Wulp

+ *    Bob Tarling

+ *****************************************************************************

+ */

+

+package org.argouml.transformer;

+

+import org.apache.log4j.Logger;

+import org.argouml.moduleloader.ModuleInterface;

+import org.argouml.ui.ContextActionFactoryManager;

+

+

+public class TransformerModule implements ModuleInterface {

+

+    private static final Logger LOG = Logger

+            .getLogger(TransformerModule.class);

+

+    public boolean enable() {

+        

+        TransformerManager.getInstance().addTransformer(

+                new EventTransformer());

+        TransformerManager.getInstance().addTransformer(

+                new SimpleStateTransformer());

+        ContextActionFactoryManager.addContextPopupFactory(TransformerManager.getInstance());

+        LOG.info("Transformer Module enabled.");

+        return true;

+    }

+

+    public boolean disable() {

+        ContextActionFactoryManager.removeContextPopupFactory(TransformerManager.getInstance());

+

+        LOG.info("Transformer Module disabled.");

+        return true;

+    }

+

+    public String getName() {

+        return "ArgoUML-Transformer";

+    }

+

+    public String getInfo(int type) {

+        switch (type) {

+        case DESCRIPTION:

+            return "The model element transformer";

+        case AUTHOR:

+            return "The ArgoUML Team";

+        case VERSION:

+            return "0.32";

+        case DOWNLOADSITE:

+            return "http://argouml.tigris.org";

+        default:

+            return null;

+        }

+    }

+}



------------------------------------------------------
http://argouml.tigris.org/ds/viewMessage.do?dsForumId=5905&dsMessageId=2642358

To unsubscribe from this discussion, e-mail: [[email protected]].
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.